Signal the firmware version as a modified signal. This since we don't know the firmware when a new controller is found. We need to communicate with the device first and the version will be detected later
This commit is contained in:
parent
237cf4e8e7
commit
d728664785
6 changed files with 32 additions and 18 deletions
|
@ -1,17 +1,20 @@
|
|||
#include "Controller.h"
|
||||
#include "Protocol.h"
|
||||
#include <stdio.h> //TODO DEBUG
|
||||
#include "EventUpdateManager.h"
|
||||
#include "Strings.h"
|
||||
|
||||
class Controller::PrivateData {
|
||||
public:
|
||||
TelldusCore::EventRef event;
|
||||
int id;
|
||||
TelldusCore::EventRef event, updateEvent;
|
||||
int id, firmwareVersion;
|
||||
};
|
||||
|
||||
Controller::Controller(int id, TelldusCore::EventRef event){
|
||||
Controller::Controller(int id, TelldusCore::EventRef event, TelldusCore::EventRef updateEvent){
|
||||
d = new PrivateData;
|
||||
d->event = event;
|
||||
d->updateEvent = updateEvent;
|
||||
d->id = id;
|
||||
d->firmwareVersion = 0;
|
||||
}
|
||||
|
||||
Controller::~Controller(){
|
||||
|
@ -33,3 +36,18 @@ void Controller::decodePublishData(const std::string &data) const {
|
|||
this->publishData(*msgIt);
|
||||
}
|
||||
}
|
||||
|
||||
int Controller::firmwareVersion() const {
|
||||
return d->firmwareVersion;
|
||||
}
|
||||
|
||||
void Controller::setFirmwareVersion(int version) {
|
||||
d->firmwareVersion = version;
|
||||
EventUpdateData *eventData = new EventUpdateData();
|
||||
eventData->messageType = L"TDControllerEvent";
|
||||
eventData->controllerId = d->id;
|
||||
eventData->eventState = TELLSTICK_DEVICE_CHANGED;
|
||||
eventData->eventChangeType = TELLSTICK_CHANGE_FIRMWARE;
|
||||
eventData->eventValue = TelldusCore::intToWstring(version);
|
||||
d->updateEvent->signal(eventData);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue