Exemple #1
0
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...");
} 
Exemple #2
0
void OTGWTCP::Do_Work()
{
	bool bFirstTime=true;

	while (!m_stoprequested)
	{
		sleep_seconds(1);

		time_t atime = mytime(NULL);
		struct tm ltime;
		localtime_r(&atime, &ltime);


		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...");
} 
Exemple #3
0
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...");
}
Exemple #4
0
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...");
}
Exemple #5
0
void OTGWSerial::Do_PollWork()
{
	bool bFirstTime=true;
	while (!m_stoprequestedpoller)
	{
		sleep_seconds(1);
		time_t atime = mytime(NULL);
		struct tm ltime;
		localtime_r(&atime, &ltime);


		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...");
}