Merge branch 'john30-master'

This commit is contained in:
Roland Jax
2014-10-23 23:13:47 +02:00
2 changed files with 21 additions and 16 deletions
+6 -6
View File
@@ -151,7 +151,7 @@ std::string BaseLoop::decodeMessage(const std::string& data)
ebusCommand += m_commands->getEbusCommand(index);
std::transform(ebusCommand.begin(), ebusCommand.end(), ebusCommand.begin(), tolower);
BusCommand* busCommand = new BusCommand(ebusCommand);
BusCommand* busCommand = new BusCommand(ebusCommand, false);
L.log(bas, trace, " msg: %s", ebusCommand.c_str());
// send busCommand
m_ebusloop->addBusCommand(busCommand);
@@ -159,7 +159,7 @@ std::string BaseLoop::decodeMessage(const std::string& data)
if (!busCommand->isErrorResult()) {
// decode data
Command* command = new Command(index, (*m_commands)[index], busCommand->getResult());
Command* command = new Command(index, (*m_commands)[index], busCommand->getMessageStr()); // TODO use getCommand()+getResult()
// return result
result << command->calcResult(cmd);
@@ -204,7 +204,7 @@ std::string BaseLoop::decodeMessage(const std::string& data)
std::transform(ebusCommand.begin(), ebusCommand.end(), ebusCommand.begin(), tolower);
BusCommand* busCommand = new BusCommand(ebusCommand);
BusCommand* busCommand = new BusCommand(ebusCommand, false);
L.log(bas, event, " msg: %s", ebusCommand.c_str());
// send busCommand
m_ebusloop->addBusCommand(busCommand);
@@ -214,7 +214,7 @@ std::string BaseLoop::decodeMessage(const std::string& data)
// decode result
if (busCommand->getType()==broadcast)
result << "done";
else if (busCommand->getResult().substr(busCommand->getResult().length()-8) == "00000000")
else if (busCommand->getMessageStr().substr(busCommand->getMessageStr().length()-8) == "00000000") // TODO use getResult()
result << "done";
else
result << "error";
@@ -273,7 +273,7 @@ std::string BaseLoop::decodeMessage(const std::string& data)
ebusCommand += cmd[1];
std::transform(ebusCommand.begin(), ebusCommand.end(), ebusCommand.begin(), tolower);
BusCommand* busCommand = new BusCommand(ebusCommand);
BusCommand* busCommand = new BusCommand(ebusCommand, false);
L.log(bas, trace, " msg: %s", ebusCommand.c_str());
// send busCommand
m_ebusloop->addBusCommand(busCommand);
@@ -283,7 +283,7 @@ std::string BaseLoop::decodeMessage(const std::string& data)
L.log(bas, error, " %s", busCommand->getResultCodeCStr());
result << busCommand->getResultCodeCStr();
} else {
result << busCommand->getResult();
result << busCommand->getMessageStr(); // TODO use getCommand()+getResult()
}
delete busCommand;
+15 -10
View File
@@ -80,15 +80,15 @@ void* EBusLoop::run()
// new cyc message arrived
if (busResult == RESULT_SYN || busResult == RESULT_BUS_LOCKED) {
std::string data = m_bus->getCycData();
SymbolString data = m_bus->getCycData();
if (data.size() == 0 && m_logAutoSyn == true)
L.log(bus, trace, "%s", "aa");
L.log(bus, trace, "aa");
if (data.size() != 0) {
L.log(bus, trace, "%s", data.c_str());
L.log(bus, trace, "%s", data.getDataStr().c_str());
int index = m_commands->storeCycData(data);
int index = m_commands->storeCycData(data.getDataStr());
if (index == -1) {
L.log(bus, debug, " command not found");
@@ -115,7 +115,7 @@ void* EBusLoop::run()
// add new bus command to send
if (busResult == RESULT_SYN && busCommandActive == false && m_sendBuffer.size() != 0) {
BusCommand* busCommand = m_sendBuffer.remove();
L.log(bus, debug, " msg: %s", busCommand->getCommand().c_str());
L.log(bus, debug, " msg: %s", busCommand->getCommand().getDataStr(true).c_str());
m_bus->addCommand(busCommand);
L.log(bus, debug, " addCommand success");
busCommandActive = true;
@@ -148,7 +148,7 @@ void* EBusLoop::run()
ebusCommand += m_commands->getEbusCommand(index);
std::transform(ebusCommand.begin(), ebusCommand.end(), ebusCommand.begin(), tolower);
BusCommand* busCommand = new BusCommand(ebusCommand);
BusCommand* busCommand = new BusCommand(ebusCommand, true);
L.log(bus, trace, " msg: %s", ebusCommand.c_str());
m_bus->addCommand(busCommand);
@@ -166,7 +166,7 @@ void* EBusLoop::run()
L.log(bus, trace, " getBus success");
lookbusretries = 0;
BusCommand* busCommand = m_bus->sendCommand();
L.log(bus, trace, " %s", busCommand->getResult().c_str());
L.log(bus, trace, " %s", busCommand->getMessageStr().c_str());
if (busCommand->isErrorResult() == true && retries < m_retries) {
retries++;
@@ -175,10 +175,10 @@ void* EBusLoop::run()
m_bus->addCommand(busCommand);
} else {
retries = 0;
if (pollCommandActive == true) {
if (busCommand->isPoll() == true) {
// only save correct results
if (busCommand->isErrorResult() == false)
m_commands->storePolData(busCommand->getResult().c_str());
m_commands->storePolData(busCommand->getMessageStr().c_str()); // TODO use getResult()
delete busCommand;
pollCommandActive = false;
@@ -198,7 +198,12 @@ void* EBusLoop::run()
L.log(bus, trace, " getBus failure");
if (lookbusretries >= m_lookbusretries) {
L.log(bus, event, " getBus failed - command deleted");
m_bus->delCommand();
BusCommand* busCommand = m_bus->delCommand();
if (busCommand->isPoll() == true) {
delete busCommand;
} else {
busCommand->sendSignal();
}
lookbusretries = 0;
busCommandActive = false;
pollCommandActive = false;