daemon option 'lookbusretries' added.

This commit is contained in:
Roland Jax
2014-10-09 21:19:31 +02:00
parent 73f688a830
commit 78f6b9a70e
3 changed files with 18 additions and 1 deletions
+13 -1
View File
@@ -37,6 +37,8 @@ EBusLoop::EBusLoop(Commands* commands) : m_commands(commands), m_stop(false)
m_retries = A.getParam<int>("p_retries");
m_lookbusretries = A.getParam<int>("p_lookbusretries");
m_pollInterval = A.getParam<int>("p_pollinterval");
m_bus->connect();
@@ -59,6 +61,7 @@ void* EBusLoop::run()
{
int busResult;
int retries = 0;
int lookbusretries = 0;
bool busCommandActive = false;
time_t start, end;
time(&start);
@@ -151,6 +154,7 @@ void* EBusLoop::run()
// send bus command
if (busResult == 1 && busCommandActive == true) {
L.log(bus, trace, " getBus success");
lookbusretries = 0;
m_bus->sendCommand();
BusCommand* busCommand = m_bus->recvCommand();
L.log(bus, trace, " %s", busCommand->getResult().c_str());
@@ -174,8 +178,16 @@ void* EBusLoop::run()
}
}
if (busResult == 0)
if (busResult == 0) {
L.log(bus, trace, " getBus failure");
if (lookbusretries >= m_lookbusretries) {
L.log(bus, event, " getBus failed - command deleted");
m_bus->delCommand();
lookbusretries = 0;
}else {
lookbusretries++;
}
}
if (busResult == -1)
L.log(bus, event, " getBus error");
+1
View File
@@ -52,6 +52,7 @@ private:
WQueue<BusCommand*> m_sendBuffer;
WQueue<BusCommand*> m_recvBuffer;
int m_retries;
int m_lookbusretries;
double m_pollInterval;
};
+4
View File
@@ -52,6 +52,10 @@ void define_args()
"\tnumber retries send ebus command (2)",
Appl::type_int, Appl::opt_mandatory);
A.addItem("p_lookbusretries", Appl::Param(5), "", "lookbusretries",
"number retries to look ebus (5)",
Appl::type_int, Appl::opt_mandatory);
A.addItem("p_recvtimeout", Appl::Param(15000), "", "recvtimeout",
"receive timeout in 'us' (15000)\n",
Appl::type_long, Appl::opt_mandatory);