daemon option 'lookbusretries' added.
This commit is contained in:
+13
-1
@@ -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");
|
||||
|
||||
@@ -52,6 +52,7 @@ private:
|
||||
WQueue<BusCommand*> m_sendBuffer;
|
||||
WQueue<BusCommand*> m_recvBuffer;
|
||||
int m_retries;
|
||||
int m_lookbusretries;
|
||||
double m_pollInterval;
|
||||
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user