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:
Micke Prag 2012-02-27 15:32:21 +01:00
parent 237cf4e8e7
commit d728664785
6 changed files with 32 additions and 18 deletions

View file

@ -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);
}