serialEvent в новом классе
- Войдите на сайт для отправки комментариев
Сб, 16/02/2013 - 02:57
Здравствуйте. У меня имеется вот такой класс:
class Arscom : public HardwareSerial { public: Arscom() : HardwareSerial(Serial){} void welcome(); void setMouseEvent(void (*f)(byte, byte, byte)); void setQuickEvent(void (*f)(byte*, int)); private: void (*mouseEvent)(byte, byte, byte); void (*quickEvent)(byte*, int); };
как мне теперь добавить в мой класс функцию serialEvent? Я хочу чтобы мой класс сам реагировал на события от сериала.
Чтото вроде такого:
void serialEvent() { if(Serial.available()){ welcome(); } }
Но я прекрасно знаю что так недзя, нужен объект Arscom для вызывания функции welcome().
Еслия я дапишу так:
Arscom::serialEvent() { if(this->available()){ this->welcome(); } }
то эта функция становится моей, т.е. объекта Arscom не будит вызвана в случае события.
Как мне быть?
Сам задал, сам отвечу. Не канает такое, функцию serialEvent нелзя запихать в свой класс.
Единственная возможнасть спрятать это всё, это создать статичекий объект Arscom в нём создать функцию каторая будит обрабатыватся в serialEvent.
Примкрно так:
Только serialEvent не в стартовом классе а например в Arscom.cpp за приделом класса.