From f2d1e69d815c2a0e5e79e982929c81122b000259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sat, 4 Jan 2014 00:53:05 +0100 Subject: [PATCH] rf433 send bug fix --- libhive/radio433.cpp | 42 +------------------ libhive/radio433.h | 2 - .../devicepluginelro/devicepluginelro.cpp | 2 +- .../devicepluginintertechno.cpp | 26 +++++++++--- tests/addconfigureddevice.sh | 5 +-- 5 files changed, 26 insertions(+), 51 deletions(-) diff --git a/libhive/radio433.cpp b/libhive/radio433.cpp index 423851cd..319f3b63 100644 --- a/libhive/radio433.cpp +++ b/libhive/radio433.cpp @@ -14,7 +14,7 @@ Radio433::Radio433(QObject *parent) : // Set up transmitter m_transmitter = new Gpio(this,22); m_transmitter->setDirection(OUTPUT); - m_transmitter->setValue(HIGH); + m_transmitter->setValue(LOW); connect(m_receiver,SIGNAL(pinInterrupt()),this,SLOT(handleInterrupt())); @@ -41,12 +41,10 @@ void Radio433::sendData(QList rawData) // 1 = High, 0 = Low m_transmitter->setValue(flag %2); flag++; - //qDebug() << "flag" << flag %2; delayMicros(delay); } } - //qDebug() << "signal sent." << rawData; - + m_transmitter->setValue(LOW); // re-enable it m_receiver->start(); @@ -63,42 +61,6 @@ int Radio433::micros() return (int)(now - m_epochMicro) ; } -void Radio433::delayMilli(int milliSeconds) -{ - struct timespec sleeper, dummy ; - - sleeper.tv_sec = (time_t)(milliSeconds / 1000) ; - sleeper.tv_nsec = (long)(milliSeconds % 1000) * 1000000; - - nanosleep (&sleeper, &dummy) ; -} - -//void Radio433::delayMicroseconds(int pulseLength) -//{ -// struct timespec sleeper ; - -// if(pulseLength <= 0){ -// return; -// }else { -// if(pulseLength < 100){ -// struct timeval tNow, tLong, tEnd ; - -// gettimeofday (&tNow, NULL) ; -// tLong.tv_sec = pulseLength / 1000000 ; -// tLong.tv_usec = pulseLength % 1000000 ; -// timeradd (&tNow, &tLong, &tEnd) ; - -// while (timercmp (&tNow, &tEnd, <)){ -// gettimeofday (&tNow, NULL) ; -// } -// } -// sleeper.tv_sec = 0 ; -// sleeper.tv_nsec = (long)(pulseLength * 1000) ; -// nanosleep (&sleeper, NULL); -// //qDebug() << "time " << sleeper.tv_nsec; -// } -//} - void Radio433::delayMicros(int microSeconds) { struct timespec sleeper; diff --git a/libhive/radio433.h b/libhive/radio433.h index 11de9a0c..3f00ce52 100644 --- a/libhive/radio433.h +++ b/libhive/radio433.h @@ -30,9 +30,7 @@ private: unsigned int m_epochMicro; int micros(); - void delayMicroseconds(int pulseLength); void delayMicros(int microSeconds); - void delayMilli(int milliSeconds); private slots: void handleInterrupt(); diff --git a/plugins/deviceplugins/devicepluginelro/devicepluginelro.cpp b/plugins/deviceplugins/devicepluginelro/devicepluginelro.cpp index d70ef6d7..8fd298c3 100644 --- a/plugins/deviceplugins/devicepluginelro/devicepluginelro.cpp +++ b/plugins/deviceplugins/devicepluginelro/devicepluginelro.cpp @@ -358,7 +358,7 @@ void DevicePluginElro::receiveData(QList rawData) DeviceClass deviceClass = supportedDevices().first(); foreach (const TriggerType &triggerType, deviceClass.triggers()) { if (triggerType.name() == button) { - qDebug() << "emit trigger " << group << triggerType.name() << power; + qDebug() << "emit trigger " << pluginName() << group << triggerType.name() << power; Trigger trigger = Trigger(triggerType.id(), device->id(), params); emit emitTrigger(trigger); return; diff --git a/plugins/deviceplugins/devicepluginintertechno/devicepluginintertechno.cpp b/plugins/deviceplugins/devicepluginintertechno/devicepluginintertechno.cpp index 8fa4b821..ff0ebd6f 100644 --- a/plugins/deviceplugins/devicepluginintertechno/devicepluginintertechno.cpp +++ b/plugins/deviceplugins/devicepluginintertechno/devicepluginintertechno.cpp @@ -25,7 +25,7 @@ QList DevicePluginIntertechno::supportedDevices() const QVariantList remoteParams; QVariantMap familyParam; // family code = A-P - familyParam.insert("name", "familycode"); + familyParam.insert("name", "familyCode"); familyParam.insert("type", "string"); remoteParams.append(familyParam); @@ -144,7 +144,7 @@ QList DevicePluginIntertechno::supportedDevices() const QVariantList switchDeviceParams; QVariantMap buttonParam; // button code = 1-16 - buttonParam.insert("name", "buttoncode"); + buttonParam.insert("name", "buttonCode"); buttonParam.insert("type", "int"); switchDeviceParams.append(familyParam); @@ -192,6 +192,22 @@ QUuid DevicePluginIntertechno::pluginId() const void DevicePluginIntertechno::executeAction(Device *device, const Action &action) { + QList rawData; + QByteArray binCode; + + QString familyCode = device->params().value("familyCode").toString(); + + if(familyCode == "A"){ + binCode.append("00000000"); + }else if(familyCode == "B"){ + binCode.append("01000000"); + } + + + + + + } void DevicePluginIntertechno::receiveData(QList rawData) @@ -391,14 +407,14 @@ void DevicePluginIntertechno::receiveData(QList rawData) // =================================================== Device *device = 0; foreach (Device *dev, deviceList) { - if (dev->params().contains("familycode") && dev->params().value("familycode").toString() == familyCode) { + if (dev->params().contains("familyCode") && dev->params().value("familyCode").toString() == familyCode) { // Yippie! We found the device. device = dev; break; } } if (!device) { - qWarning() << "couldn't find any configured device for intertech familycode:" << familyCode; + qWarning() << "couldn't find any configured device for intertech familyCode:" << familyCode; return; } @@ -409,7 +425,7 @@ void DevicePluginIntertechno::receiveData(QList rawData) DeviceClass deviceClass = supportedDevices().first(); foreach (const TriggerType &triggerType, deviceClass.triggers()) { if (triggerType.name() == buttonCode) { - qDebug() << "emit trigger " << familyCode << triggerType.name() << power; + qDebug() << "emit trigger " << pluginName() << familyCode << triggerType.name() << power; Trigger trigger = Trigger(triggerType.id(), device->id(), params); emit emitTrigger(trigger); return; diff --git a/tests/addconfigureddevice.sh b/tests/addconfigureddevice.sh index 067f5777..0bbda85e 100755 --- a/tests/addconfigureddevice.sh +++ b/tests/addconfigureddevice.sh @@ -6,9 +6,8 @@ if [ -z $1 ]; then else # Adds an ELRO remote control on channel 00000 (echo '{"id":1, "method":"Devices.AddConfiguredDevice", "params":{"deviceClass": "{d85c1ef4-197c-4053-8e40-707aa671d302}","params":{"channel1":"false", "channel2":"false", "channel3":"false", "channel4": "false", "channel5":"false" }}}'; sleep 1) | nc $1 1234 - # Adds a ELRO power switch on channel 00000 and group E + # Adds a ELRO power switch on channel 00000 and group B (echo '{"id":1, "method":"Devices.AddConfiguredDevice", "params":{"deviceClass": "{308ae6e6-38b3-4b3a-a513-3199da2764f8}","params":{"channel1":"false","channel2":"false", "channel3":"false", "channel4": "false","channel5":"false","A":"false","B":"true","C":"false","D":"false","E":"false" }}}'; sleep 1) | nc $1 1234 # Adds an intertechno remote control - (echo '{"id":1, "method":"Devices.AddConfiguredDevice", "params":{"deviceClass": "{ab73ad2f-6594-45a3-9063-8f72d365c5e5}","params":{"familycode":"J"}}}'; sleep 1) | nc $1 1234 - + (echo '{"id":1, "method":"Devices.AddConfiguredDevice", "params":{"deviceClass": "{ab73ad2f-6594-45a3-9063-8f72d365c5e5}","params":{"familyCode":"J"}}}'; sleep 1) | nc $1 1234 fi