intertechno action completed

pull/1/head
Simon Stürz 2014-01-04 02:14:49 +01:00
parent 4ce012117c
commit 0c71a0b111
3 changed files with 101 additions and 2 deletions

View File

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

View File

@ -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

View File

@ -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