void OTGWTCP::Do_Work() { bool bFirstTime=true; int sec_counter = 25; while (!m_stoprequested) { sleep_seconds(1); sec_counter++; if (sec_counter % 12 == 0) { m_LastHeartbeat=mytime(NULL); } if (bFirstTime) { bFirstTime=false; connect(m_szIPAddress,m_usIPPort); if (mIsConnected) { GetGatewayDetails(); } } else { if ((m_bDoRestart) && (sec_counter % 30 == 0)) { connect(m_szIPAddress,m_usIPPort); } update(); if (mIsConnected) { if ((sec_counter % 28 == 0) && (m_bRequestVersion)) { m_bRequestVersion = false; GetVersion(); } else if (sec_counter % 30 == 0)//updates every 30 seconds { bFirstTime=false; SendOutsideTemperature(); SendTime(); GetGatewayDetails(); } } } } _log.Log(LOG_STATUS,"OTGW: TCP/IP Worker stopped..."); }
void OTGWTCP::Do_Work() { bool bFirstTime=true; while (!m_stoprequested) { sleep_seconds(1); time_t atime = mytime(NULL); struct tm ltime; localtime_r(&atime, <ime); if (ltime.tm_sec % 12 == 0) { mytime(&m_LastHeartbeat); } if (bFirstTime) { bFirstTime=false; connect(m_szIPAddress,m_usIPPort); if (mIsConnected) { GetGatewayDetails(); } } else { time_t atime=time(NULL); if ((m_bDoRestart)&&(atime%30==0)) { connect(m_szIPAddress,m_usIPPort); } update(); if (mIsConnected) { time_t atime=time(NULL); if (atime%30==0)//updates every 30 seconds { bFirstTime=false; SendOutsideTemperature(); GetGatewayDetails(); } } } } _log.Log(LOG_STATUS,"OTGW: TCP/IP Worker stopped..."); }
void OTGWSerial::Do_PollWork() { bool bFirstTime=true; int sec_counter = 25; while (!m_stoprequestedpoller) { sleep_seconds(1); sec_counter++; if (sec_counter % 12 == 0) { m_LastHeartbeat=mytime(NULL); } if (!isOpen()) { if (m_retrycntr==0) { _log.Log(LOG_STATUS,"OTGW: serial setup retry in %d seconds...", RETRY_DELAY); } m_retrycntr++; if (m_retrycntr>=RETRY_DELAY) { m_retrycntr=0; if (OpenSerialDevice()) { bFirstTime = true; } } } else { if ((sec_counter % 28 == 0) && (m_bRequestVersion)) { m_bRequestVersion = false; GetVersion(); } else if ((sec_counter % 30 == 0) || (bFirstTime)) //updates every 30 seconds { bFirstTime = false; SendOutsideTemperature(); SendTime(); GetGatewayDetails(); } } } _log.Log(LOG_STATUS,"OTGW: Worker stopped..."); }
void CThermosmart::Do_Work() { _log.Log(LOG_STATUS,"Thermosmart: Worker started..."); int sec_counter = THERMOSMART_POLL_INTERVAL-5; while (!m_stoprequested) { sleep_seconds(1); sec_counter++; if (sec_counter % 12 == 0) { m_LastHeartbeat=mytime(NULL); } if (sec_counter % THERMOSMART_POLL_INTERVAL == 0) { SendOutsideTemperature(); GetMeterDetails(); } } _log.Log(LOG_STATUS,"Thermosmart: Worker stopped..."); }
void OTGWSerial::Do_PollWork() { bool bFirstTime=true; while (!m_stoprequestedpoller) { sleep_seconds(1); time_t atime = mytime(NULL); struct tm ltime; localtime_r(&atime, <ime); if (ltime.tm_sec % 12 == 0) { mytime(&m_LastHeartbeat); } if (!isOpen()) { if (m_retrycntr==0) { _log.Log(LOG_STATUS,"OTGW: serial setup retry in %d seconds...", RETRY_DELAY); } m_retrycntr++; if (m_retrycntr>=RETRY_DELAY) { m_retrycntr=0; if (OpenSerialDevice()) bFirstTime=true; } } else { time_t atime=time(NULL); if ((atime%30==0)||(bFirstTime)) //updates every 30 seconds { bFirstTime=false; SendOutsideTemperature(); SendTime(); GetGatewayDetails(); } } } _log.Log(LOG_STATUS,"OTGW: Worker stopped..."); }