From 6a5bdd28c5af89058c04a406da53553c9c929127 Mon Sep 17 00:00:00 2001 From: Roland Jax Date: Sun, 4 May 2014 21:53:19 +0200 Subject: [PATCH] class BaseLoop: daemon command SET implemented. --- contrib/csv/vaillant/vwx.csv | 1 + contrib/csv/vaillant/vwx.ods | Bin 21946 -> 21976 bytes src/baseloop.cpp | 92 +++++++++++++++++++++++++++-------- src/main.cpp | 1 + src/network.h | 2 +- 5 files changed, 75 insertions(+), 21 deletions(-) diff --git a/contrib/csv/vaillant/vwx.csv b/contrib/csv/vaillant/vwx.csv index b9740fb7..da8ec25c 100644 --- a/contrib/csv/vaillant/vwx.csv +++ b/contrib/csv/vaillant/vwx.csv @@ -95,6 +95,7 @@ get;vwxhw;TankTemp;Speichertemperatur IST;MS;08;B509;3;0D0000;2;temp;sd;1,2;d2c; get;vwxhw;TankTypePipe;Speichertyp ist Rohr;MS;25;B509;3;0DCD01;1;-;sd;1;uch;-;-;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwxmk;CoolingOperatingMode;Kühlung Betriebsart;MS;50;B509;3;0D8C01;1;-;sd;1;uch;-;-;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwxmk;DesiredTemp;Solltemperatur;MS;50;B509;3;0D3200;1;-;sd;1;d1c;1.0;°C;-;-;;;;;;;;;;;;;;;;;;;;;;;; +set;vwxmk;DesiredTemp;Solltemperatur;MS;50;B509;4;0E3200;1;-;sd;1;d1c;1.0;°C;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwxmk;DesiredTempLow;Absenktemperatur;MS;50;B509;3;0D3300;1;-;sd;1;d1c;1.0;°C;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwxmk;FloorProtectionTempLimit;Fußbodenschutz Temp > VF2;MS;50;B509;3;0D7B01;1;-;sd;1;uch;-;°C;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwxmk;FloorScreedDryingDay;Estrichtrocknung Tag;MS;50;B509;3;0D3B00;1;-;sd;1;uch;-;-;-;-;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/contrib/csv/vaillant/vwx.ods b/contrib/csv/vaillant/vwx.ods index d8a63c1a1455803b0023fd048ec2ebcb07ba77b5..23352b1b56369a15dbe4b4a35864fe30deb1163b 100644 GIT binary patch delta 12664 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°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 lLH5ySqC@TdYWNx8m;p=zsrp-(7FL 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 diff --git a/src/baseloop.cpp b/src/baseloop.cpp index 8827df60..ba49c233 100644 --- a/src/baseloop.cpp +++ b/src/baseloop.cpp @@ -37,7 +37,7 @@ void BaseLoop::start() data.erase(std::remove(data.begin(), data.end(), '\r'), data.end()); data.erase(std::remove(data.begin(), data.end(), '\n'), data.end()); - + L.log(bas, event, ">>> %s", data.c_str()); // decode message @@ -59,31 +59,29 @@ std::string BaseLoop::decodeMessage(const std::string& data) std::ostringstream result; std::string cycdata; int index; - BusCommand* busCommand; - + // prepare data std::string token; std::istringstream stream(data); std::vector cmd; - + while (std::getline(stream, token, ' ') != 0) cmd.push_back(token); if (cmd.size() == 0) return "command missing"; - + switch (getCase(cmd[0])) { case notfound: result << "command not found"; break; - + case get: - case set: if (cmd.size() < 3) { result << "format: type class cmd [sub]"; break; } - + index = m_commands->findCommand(data); if (index >= 0) { @@ -92,11 +90,11 @@ std::string BaseLoop::decodeMessage(const std::string& data) std::string ebusCommand(A.getParam("p_address")); ebusCommand += m_commands->getEbusCommand(index); std::transform(ebusCommand.begin(), ebusCommand.end(), ebusCommand.begin(), tolower); - + L.log(bas, event, " type: %s msg: %s", type.c_str(), ebusCommand.c_str()); // send busCommand m_ebusloop->addBusCommand(new BusCommand(type, ebusCommand)); - busCommand = m_ebusloop->getBusCommand(); + BusCommand* busCommand = m_ebusloop->getBusCommand(); if (busCommand->getResult().c_str()[0] != '-') { // decode data @@ -107,26 +105,80 @@ std::string BaseLoop::decodeMessage(const std::string& data) delete command; } else { + L.log(bas, error, " %s", busCommand->getResult().c_str()); result << busCommand->getResult().c_str(); } - - + + delete busCommand; } else { result << "ebus command not found"; } - + break; - + + case set: + if (cmd.size() != 4) { + result << "format: type class cmd value"; + break; + } + + index = m_commands->findCommand(data.substr(0, data.find(cmd[3])-1)); + + if (index >= 0) { + + std::string type = m_commands->getType(index); + std::string ebusCommand(A.getParam("p_address")); + ebusCommand += m_commands->getEbusCommand(index); + + // encode data + Command* command = new Command(index, (*m_commands)[index], cmd[3]); + std::string value = command->calcData(); + if (value[0] != '-') { + ebusCommand += value; + } else { + L.log(bas, error, " %s", value.c_str()); + delete command; + break; + } + + std::transform(ebusCommand.begin(), ebusCommand.end(), ebusCommand.begin(), tolower); + + L.log(bas, event, " type: %s msg: %s", type.c_str(), ebusCommand.c_str()); + // send busCommand + m_ebusloop->addBusCommand(new BusCommand(type, ebusCommand)); + BusCommand* busCommand = m_ebusloop->getBusCommand(); + + if (busCommand->getResult().c_str()[0] != '-') { + // decode result + if (busCommand->getResult().substr(busCommand->getResult().length()-8) == "00000000") + result << "done"; + else + result << "error"; + + } else { + L.log(bas, error, " %s", busCommand->getResult().c_str()); + result << busCommand->getResult().c_str(); + } + + delete busCommand; + delete command; + + } else { + result << "ebus command not found"; + } + + break; + case cyc: if (cmd.size() < 3) { result << "format: type class cmd [sub]"; break; } - + index = m_commands->findCommand(data); - + if (index >= 0) { // get cycdata cycdata = m_cycdata->getData(index); @@ -136,7 +188,7 @@ std::string BaseLoop::decodeMessage(const std::string& data) // return result result << command->calcResult(cmd); - + delete command; } else { result << "no data stored"; @@ -144,9 +196,9 @@ std::string BaseLoop::decodeMessage(const std::string& data) } else { result << "ebus command not found"; } - + break; - + case dump: if (cmd[1] == "on") m_ebusloop->dump(true); if (cmd[1] == "off") m_ebusloop->dump(false); @@ -160,7 +212,7 @@ std::string BaseLoop::decodeMessage(const std::string& data) if (cmd[1] == "debug") L.getSink(0)->setLevel(debug); result << "done"; break; - + default: break; } diff --git a/src/main.cpp b/src/main.cpp index db87c3b8..7fceab24 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with ebus-daemon. If not, see http://www.gnu.org/licenses/. */ + #include "libebus.h" #include "logger.h" #include "daemon.h" diff --git a/src/network.h b/src/network.h index 8642857f..ebde2738 100644 --- a/src/network.h +++ b/src/network.h @@ -25,8 +25,8 @@ #include "thread.h" #include "notify.h" #include "baseloop.h" -#include #include +#include class Connection : public Thread {