From 0c71a0b1112262f0f0153dbbab6066bca84c3a59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sat, 4 Jan 2014 02:14:49 +0100 Subject: [PATCH] intertechno action completed --- .../devicepluginintertechno.cpp | 99 +++++++++++++++++++ tests/addrule.sh | 2 +- tests/executeaction.sh | 2 +- 3 files changed, 101 insertions(+), 2 deletions(-) diff --git a/plugins/deviceplugins/devicepluginintertechno/devicepluginintertechno.cpp b/plugins/deviceplugins/devicepluginintertechno/devicepluginintertechno.cpp index c62a996a..17a88e2f 100644 --- a/plugins/deviceplugins/devicepluginintertechno/devicepluginintertechno.cpp +++ b/plugins/deviceplugins/devicepluginintertechno/devicepluginintertechno.cpp @@ -197,16 +197,115 @@ void DevicePluginIntertechno::executeAction(Device *device, const Action &action QString familyCode = device->params().value("familyCode").toString(); + // generate bin from family code if(familyCode == "A"){ binCode.append("00000000"); }else if(familyCode == "B"){ binCode.append("01000000"); + }else if(familyCode == "C"){ + binCode.append("00010000"); + }else if(familyCode == "D"){ + binCode.append("01010000"); + }else if(familyCode == "E"){ + binCode.append("00000100"); + }else if(familyCode == "F"){ + binCode.append("01000100"); + }else if(familyCode == "G"){ + binCode.append("01000000"); + }else if(familyCode == "H"){ + binCode.append("01010100"); + }else if(familyCode == "I"){ + binCode.append("00000001"); + }else if(familyCode == "J"){ + binCode.append("01000001"); + }else if(familyCode == "K"){ + binCode.append("00010001"); + }else if(familyCode == "L"){ + binCode.append("01010001"); + }else if(familyCode == "M"){ + binCode.append("00000101"); + }else if(familyCode == "N"){ + binCode.append("01000101"); + }else if(familyCode == "O"){ + binCode.append("00010101"); + }else if(familyCode == "P"){ + binCode.append("01010101"); + }else{ + return; } + QString buttonCode = device->params().value("buttonCode").toString(); + // generate bin from button code + if(familyCode == "1"){ + binCode.append("00000000"); + }else if(familyCode == "2"){ + binCode.append("01000000"); + }else if(familyCode == "3"){ + binCode.append("00010000"); + }else if(familyCode == "4"){ + binCode.append("01010000"); + }else if(familyCode == "5"){ + binCode.append("00000100"); + }else if(familyCode == "6"){ + binCode.append("01000100"); + }else if(familyCode == "7"){ + binCode.append("01000000"); + }else if(familyCode == "8"){ + binCode.append("01010100"); + }else if(familyCode == "9"){ + binCode.append("00000001"); + }else if(familyCode == "10"){ + binCode.append("01000001"); + }else if(familyCode == "11"){ + binCode.append("00010001"); + }else if(familyCode == "12"){ + binCode.append("01010001"); + }else if(familyCode == "13"){ + binCode.append("00000101"); + }else if(familyCode == "14"){ + binCode.append("01000101"); + }else if(familyCode == "15"){ + binCode.append("00010101"); + }else if(familyCode == "16"){ + binCode.append("01010101"); + }else{ + return; + } + // add fix bin nibble (0F) + binCode.append("0001"); + // add power nibble + if(action.params().value("power").toBool()){ + binCode.append("0101"); + }else{ + binCode.append("0100"); + } + qDebug() << "bin code:" << binCode; + // ======================================= + //create rawData timings list + int delay = 350; + // sync signal + rawData.append(delay); + rawData.append(delay*31); + + // add the code + foreach (QChar c, binCode) { + if(c == '0'){ + rawData.append(delay); + rawData.append(delay*3); + }else{ + rawData.append(delay*3); + rawData.append(delay); + } + } + + // ======================================= + // send data to driver + qDebug() << "rawData" << rawData; + transmitData(rawData); } diff --git a/tests/addrule.sh b/tests/addrule.sh index 300ec9ab..f2d7030d 100755 --- a/tests/addrule.sh +++ b/tests/addrule.sh @@ -1,7 +1,7 @@ #!/bin/bash if test -z $3; then - echo "usage: $1 host triggerId actionId" + echo "usage: $1 host triggerTypeId sourceDeviceId targetDeviceId" else (echo '{"id":1, "method":"Rules.AddRule", "params":{"trigger": {"triggerTypeId": "'$2'", "deviceId":"'$3'", "params":{"power":"true"}}, "action":{ "deviceId":"'$4'", "name":"rule 1", "params":{"power":"true"}}}}'; sleep 1) | nc $1 1234 (echo '{"id":1, "method":"Rules.AddRule", "params":{"trigger": {"triggerTypeId": "'$2'", "deviceId":"'$3'", "params":{"power":"false"}}, "action":{ "deviceId":"'$4'", "name":"rule 1", "params":{"power":"false"}}}}'; sleep 1) | nc $1 1234 diff --git a/tests/executeaction.sh b/tests/executeaction.sh index 8c7f4461..962badd4 100755 --- a/tests/executeaction.sh +++ b/tests/executeaction.sh @@ -1,7 +1,7 @@ #!/bin/bash if [ -z $1 ]; then - echo "usage: $0 host" + echo "usage: $0 host deviceId power" else (echo '{"id":1, "method":"Actions.ExecuteAction","params":{"action":{"deviceId":"{'$2'}","params":{"power":"'$3'"}}}}'; sleep 1) | nc $1 1234 fi