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_retries = A.getParam<int>("p_retries");
|
||||||
|
|
||||||
|
m_lookbusretries = A.getParam<int>("p_lookbusretries");
|
||||||
|
|
||||||
m_pollInterval = A.getParam<int>("p_pollinterval");
|
m_pollInterval = A.getParam<int>("p_pollinterval");
|
||||||
|
|
||||||
m_bus->connect();
|
m_bus->connect();
|
||||||
@@ -59,6 +61,7 @@ void* EBusLoop::run()
|
|||||||
{
|
{
|
||||||
int busResult;
|
int busResult;
|
||||||
int retries = 0;
|
int retries = 0;
|
||||||
|
int lookbusretries = 0;
|
||||||
bool busCommandActive = false;
|
bool busCommandActive = false;
|
||||||
time_t start, end;
|
time_t start, end;
|
||||||
time(&start);
|
time(&start);
|
||||||
@@ -151,6 +154,7 @@ void* EBusLoop::run()
|
|||||||
// send bus command
|
// send bus command
|
||||||
if (busResult == 1 && busCommandActive == true) {
|
if (busResult == 1 && busCommandActive == true) {
|
||||||
L.log(bus, trace, " getBus success");
|
L.log(bus, trace, " getBus success");
|
||||||
|
lookbusretries = 0;
|
||||||
m_bus->sendCommand();
|
m_bus->sendCommand();
|
||||||
BusCommand* busCommand = m_bus->recvCommand();
|
BusCommand* busCommand = m_bus->recvCommand();
|
||||||
L.log(bus, trace, " %s", busCommand->getResult().c_str());
|
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");
|
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)
|
if (busResult == -1)
|
||||||
L.log(bus, event, " getBus error");
|
L.log(bus, event, " getBus error");
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ private:
|
|||||||
WQueue<BusCommand*> m_sendBuffer;
|
WQueue<BusCommand*> m_sendBuffer;
|
||||||
WQueue<BusCommand*> m_recvBuffer;
|
WQueue<BusCommand*> m_recvBuffer;
|
||||||
int m_retries;
|
int m_retries;
|
||||||
|
int m_lookbusretries;
|
||||||
double m_pollInterval;
|
double m_pollInterval;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -52,6 +52,10 @@ void define_args()
|
|||||||
"\tnumber retries send ebus command (2)",
|
"\tnumber retries send ebus command (2)",
|
||||||
Appl::type_int, Appl::opt_mandatory);
|
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",
|
A.addItem("p_recvtimeout", Appl::Param(15000), "", "recvtimeout",
|
||||||
"receive timeout in 'us' (15000)\n",
|
"receive timeout in 'us' (15000)\n",
|
||||||
Appl::type_long, Appl::opt_mandatory);
|
Appl::type_long, Appl::opt_mandatory);
|
||||||
|
|||||||
Reference in New Issue
Block a user