Я работаю над подключением своих лампочек Philips оттенка к Arduino и нашел некоторые ресурсы в Интернете.
У одного из ресурсов есть файл, который продолжает выдавать ошибку, и когда я смотрел на него, я никогда не видел, чтобы этот синтаксис использовался ранее.
Может кто-нибудь мне помочь?
#ifndef SERIALHUE_H
#define SERIALHUE_H
#include <Arduino.h>
#include <Stream.h>
#include <ArduinoHue.h>class SerialHue: public ArduinoHue{
public:
SerialHue(char* ipAddress, Stream* serial);
boolean connect(char* deviceId, char* username);
protected:
char* _ipAddress;
char* _deviceId;
char* _username;
boolean makePost(char* request, char* data);
boolean waitForResponse();
Stream* _serial;
};
#endif
Ошибка в этой строке:
*класс SerialHue: публичный ArduinoHue {*
Давать ошибку:
SerialHue.h: 10: ошибка: ожидаемое имя класса перед маркером ‘{‘
Что это за формат и что здесь не так?
проверьте настройки компилятора … возможно, он попытается скомпилировать код на c ++ с помощью компилятора c
о формате:
class X : public Y {
}
это синтаксис расширения класса в C ++
плюс: убедитесь, что ArduinoHue.h действительно определяет класс ArduinoHue
…если вы не можете понять это: взгляните на предварительно скомпилированный исходный файл (g ++ -E)
Во-первых, убедитесь, что вы не включаете файл рекурсивно, например, #include файл, который включает в себя #include другие файлы, которые вы также включили #include.
Кроме того, декларации Forward вместо #include ArduinoHue.h могут решить вашу проблему. такие как:
class ArduinoHue;
Я нашел похожие вопросы, они могут помочь вам:
ожидаемое имя класса до ‘{‘ токена