Simplify the IPSC class.

This commit is contained in:
Jonathan Naylor 2016-05-10 08:00:41 +01:00
parent efca4fa0cb
commit 7a3d77d5f5
2 changed files with 21 additions and 33 deletions

View file

@ -44,9 +44,8 @@ m_enabled(false),
m_slot1(slot1), m_slot1(slot1),
m_slot2(slot2), m_slot2(slot2),
m_status(DISCONNECTED), m_status(DISCONNECTED),
m_retryTimer(1000U, 10U), m_retryTimer(1000U, 5U),
m_timeoutTimer(1000U, 60U), m_timeoutTimer(1000U, 60U),
m_pingTimer(1000U, 5U),
m_buffer(NULL), m_buffer(NULL),
m_salt(NULL), m_salt(NULL),
m_streamId(NULL), m_streamId(NULL),
@ -119,8 +118,6 @@ bool CDMRIPSC::open()
if (!ret) if (!ret)
return false; return false;
writeLogin();
m_status = WAITING_LOGIN; m_status = WAITING_LOGIN;
m_timeoutTimer.start(); m_timeoutTimer.start();
m_retryTimer.start(); m_retryTimer.start();
@ -319,13 +316,11 @@ void CDMRIPSC::clock(unsigned int ms)
m_status = WAITING_LOGIN; m_status = WAITING_LOGIN;
m_timeoutTimer.start(); m_timeoutTimer.start();
m_retryTimer.start(); m_retryTimer.start();
m_pingTimer.stop();
} else { } else {
LogError("Login to the master has failed, stopping IPSC"); LogError("Login to the master has failed, stopping IPSC");
m_status = DISCONNECTED; m_status = DISCONNECTED;
m_timeoutTimer.stop(); m_timeoutTimer.stop();
m_retryTimer.stop(); m_retryTimer.stop();
m_pingTimer.stop();
} }
} else if (::memcmp(m_buffer, "RPTACK", 6U) == 0) { } else if (::memcmp(m_buffer, "RPTACK", 6U) == 0) {
switch (m_status) { switch (m_status) {
@ -346,8 +341,7 @@ void CDMRIPSC::clock(unsigned int ms)
LogMessage("Logged into the master successfully"); LogMessage("Logged into the master successfully");
m_status = RUNNING; m_status = RUNNING;
m_timeoutTimer.start(); m_timeoutTimer.start();
m_retryTimer.stop(); m_retryTimer.start();
m_pingTimer.start();
break; break;
default: default:
break; break;
@ -365,31 +359,26 @@ void CDMRIPSC::clock(unsigned int ms)
} }
} }
if (m_status != RUNNING) { m_retryTimer.clock(ms);
m_retryTimer.clock(ms); if (m_retryTimer.isRunning() && m_retryTimer.hasExpired()) {
if (m_retryTimer.isRunning() && m_retryTimer.hasExpired()) { switch (m_status) {
switch (m_status) { case WAITING_LOGIN:
case WAITING_LOGIN: writeLogin();
writeLogin(); break;
break; case WAITING_AUTHORISATION:
case WAITING_AUTHORISATION: writeAuthorisation();
writeAuthorisation(); break;
break; case WAITING_CONFIG:
case WAITING_CONFIG: writeConfig();
writeConfig(); break;
break; case RUNNING:
default: writePing();
break; break;
} default:
break;
}
m_retryTimer.start(); m_retryTimer.start();
}
} else {
m_pingTimer.clock(ms);
if (m_pingTimer.isRunning() && m_pingTimer.hasExpired()) {
writePing();
m_pingTimer.start();
}
} }
m_timeoutTimer.clock(ms); m_timeoutTimer.clock(ms);

View file

@ -73,7 +73,6 @@ private:
STATUS m_status; STATUS m_status;
CTimer m_retryTimer; CTimer m_retryTimer;
CTimer m_timeoutTimer; CTimer m_timeoutTimer;
CTimer m_pingTimer;
unsigned char* m_buffer; unsigned char* m_buffer;
unsigned char* m_salt; unsigned char* m_salt;
uint32_t* m_streamId; uint32_t* m_streamId;