Implemented TDSensorEvent in com.telldus.core

This commit is contained in:
Micke Prag 2011-05-12 15:33:49 +00:00
parent 6ac0d706a5
commit c7800b90ff
2 changed files with 11 additions and 1 deletions

View file

@ -7,11 +7,13 @@ TelldusCoreObject::TelldusCoreObject( QObject * parent )
tdInit();
deviceEventId = tdRegisterDeviceEvent(reinterpret_cast<TDDeviceEvent>(&TelldusCoreObject::deviceEventCallback), this);
deviceChangeEventId = tdRegisterDeviceChangeEvent(reinterpret_cast<TDDeviceChangeEvent>(&TelldusCoreObject::deviceChangeEventCallback), this);
sensorEventId = tdRegisterSensorEvent(reinterpret_cast<TDSensorEvent>(&TelldusCoreObject::sensorEventCallback), this);
}
TelldusCoreObject::~TelldusCoreObject() {
tdUnregisterCallback(deviceEventId);
tdUnregisterCallback(deviceChangeEventId);
tdUnregisterCallback(sensorEventId);
tdClose();
}
@ -108,7 +110,6 @@ void TelldusCoreObject::triggerError(int deviceId, int errorId) {
emit errorOccurred(deviceId, errorId, message);
}
void WINAPI TelldusCoreObject::deviceChangeEventCallback(int deviceId, int eventId, int changeType, int callbackId, void *context) {
TelldusCoreObject *parent = static_cast<TelldusCoreObject *>(context);
if (parent) {
@ -123,3 +124,9 @@ void WINAPI TelldusCoreObject::deviceEventCallback(int deviceId, int method, con
}
}
void WINAPI TelldusCoreObject::sensorEventCallback(const char *protocol, const char *model, int id, int dataType, const char *value, int timestamp, int callbackId, void *context) {
TelldusCoreObject *parent = static_cast<TelldusCoreObject *>(context);
if (parent) {
emit parent->sensorEvent(QString::fromUtf8(protocol), QString::fromUtf8(model), id, dataType, QString::fromUtf8(value), timestamp);
}
}

View file

@ -14,6 +14,7 @@ public:
signals:
void deviceChange( int deviceId, int eventId );
void deviceEvent( int deviceId, int method, const QString &data );
void sensorEvent( const QString &protocol, const QString &model, int id, int dataType, const QString &value, int timestamp);
void errorOccurred( int deviceId, int errorId, const QString &errorString );
public slots:
@ -37,9 +38,11 @@ private:
static void WINAPI deviceChangeEventCallback(int deviceId, int eventId, int changeType, int callbackId, void *context);
static void WINAPI deviceEventCallback(int deviceId, int method, const char *data, int callbackId, void *context);
static void WINAPI sensorEventCallback(const char *protocol, const char *model, int id, int dataType, const char *value, int timestamp, int callbackId, void *context);
int deviceEventId;
int deviceChangeEventId;
int sensorEventId;
};