54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
#include "ProtocolFuhaote.h"
|
|
|
|
int ProtocolFuhaote::methods() const {
|
|
return TELLSTICK_TURNON | TELLSTICK_TURNOFF;
|
|
}
|
|
|
|
std::string ProtocolFuhaote::getStringForMethod(int method, unsigned char, Controller *) {
|
|
const char S = 19;
|
|
const char L = 58;
|
|
const char B0[] = {S,L,L,S,0};
|
|
const char B1[] = {L,S,L,S,0};
|
|
const char OFF[] = {S,L,S,L,S,L,L,S,0};
|
|
const char ON[] = {S,L,L,S,S,L,S,L,0};
|
|
|
|
std::string strReturn = "S";
|
|
std::wstring strCode = this->getStringParameter(L"code", L"");
|
|
if (strCode == L"") {
|
|
return "";
|
|
}
|
|
|
|
//House code
|
|
for(size_t i = 0; i < 5; ++i) {
|
|
if (strCode[i] == '0') {
|
|
strReturn.append(B0);
|
|
} else if (strCode[i] == '1') {
|
|
strReturn.append(B1);
|
|
}
|
|
}
|
|
//Unit code
|
|
for(size_t i = 5; i < 10; ++i) {
|
|
if (strCode[i] == '0') {
|
|
strReturn.append(B0);
|
|
} else if (strCode[i] == '1') {
|
|
strReturn.append(1, S);
|
|
strReturn.append(1, L);
|
|
strReturn.append(1, S);
|
|
strReturn.append(1, L);
|
|
}
|
|
}
|
|
|
|
if (method == TELLSTICK_TURNON) {
|
|
strReturn.append(ON);
|
|
} else if (method == TELLSTICK_TURNOFF) {
|
|
strReturn.append(OFF);
|
|
} else {
|
|
return "";
|
|
}
|
|
|
|
strReturn.append(1, S);
|
|
strReturn.append("+");
|
|
return strReturn;
|
|
|
|
}
|
|
|