Example #1
0
void CRelaxReminderDlg::ProcessCountDownTimer()
{
    switch (m_tm.GetStatus())
    {
    case STATUS_INIT:
        m_iCountDown = 0; break;
    case STATUS_WORK:
        m_iCountDown = m_tm.GetWD() - m_tm.GetLS(); break;
    case STATUS_SHORT_RELAX:
        m_iCountDown = m_tm.GetSRD() - m_tm.GetLS(); break;
    case STATUS_LONG_RELAX:
        m_iCountDown = m_tm.GetLRD() - m_tm.GetLS(); break;
    case STATUS_PAUSE:
        m_iCountDown = m_tm.GetWD() - m_tm.GetLS(); break;
    case STATUS_RESET:
        m_iCountDown = 0; break;
    case STATUS_AUTO_PAUSE:
        m_iCountDown = m_tm.GetWD() - m_tm.GetLS(); break;
    case STATUS_AUTO_RESET:
        m_iCountDown = 0; break;
    default:
        break;
    }

    MakeTimeString();
}
Example #2
0
void CMeterUploader::UploadMeteringData()
{
	DIR			*dir_fdesc;
	dirent		*dp;
	time_t		now;
	char		szTime[30];
	char		szFileName[128];
	char		szStart[25], szEnd[25];
	TIMESTAMP	tmStart, tmEnd;
	int			i, nFileCount = 0, nSuccess=0;

    if(!m_bUserRequest && !m_bImmediatelyRequest)
    {
	    m_bImmediatelyRequest = FALSE;
        if(!CheckUploadTime()) return;
    }
	m_bImmediatelyRequest = FALSE;

	time(&now);
	MakeTimeString(szTime, &now, TRUE);	

	// 최소값을 비교하여 보정한다.
	m_nUploadTryTime = MAX(m_nUploadTryTime, 1);

	XDEBUG("==================================================\r\n");
	XDEBUG(" Start metering upload (TIME=%s for %d min).\r\n", szTime, m_nUploadTryTime);
	XDEBUG("==================================================\r\n");

	UPLOAD_LOG("Start upload\r\n");

    if(m_bUserRequest) {
	    GetUploadRange(&tmStart, &tmEnd);
	    sprintf(szStart, "%04d%02d%02d%02d", 
			tmStart.year, tmStart.mon, tmStart.day, tmStart.hour);
	    sprintf(szEnd, "%04d%02d%02d%02d", 
			tmEnd.year, tmEnd.mon, tmEnd.day, tmEnd.hour);
    }

	if (m_bGprsPerfTestMode == FALSE)
	{
		dir_fdesc = opendir("/app/data");
		if (dir_fdesc != NULL)
		{
			for(; (dp=readdir(dir_fdesc));)
			{
#if     defined(_DIRENT_HAVE_D_TYPE)
				if (dp->d_type == DT_DIR)
					continue;
#endif
	
				if (dp->d_name[0] == '.')
					continue;

                if(m_bUserRequest) {
                    if (strncmp(dp->d_name, szStart, DATE_TIME_LEN) < 0) continue;
                    if (strncmp(dp->d_name, szEnd, DATE_TIME_LEN) > 0) continue;
                }else if(strlen(dp->d_name) > DATE_TIME_LEN) continue;

				sprintf(szFileName, "/app/data/%s", dp->d_name);
				m_pList[nFileCount] = strdup(szFileName);
				nFileCount++;
				if (nFileCount >= MAX_UPLOAD_FILE_COUNT)
					break;
			}
			closedir(dir_fdesc);

			if (nFileCount > 0)
			{
				// 목록을 Sort하고 업로드한다.
				SortFileList(m_pList, nFileCount);
				nSuccess = UploadFileList(m_pList, nFileCount);
			
				for(i=0; i<nFileCount; i++)
					free(m_pList[i]);	
			}
		}
	}
	else
	{
		printf("UPLOAD: GPRS Backhaul latency test . . .\r\n");
		UploadFile("/app/sw/test.dat");
	}

	UPLOAD_LOG("Total %d of %d file.\r\n", nSuccess, nFileCount);
	UPLOAD_LOG("End upload\r\n");

	time(&now);
	MakeTimeString(szTime, &now, TRUE);	
	if (!m_bUserRequest)
		time(&m_nLastUpload);

	XDEBUG("==================================================\r\n");
	XDEBUG(" Terminate metering upload (TIME=%s).\r\n", szTime);
	XDEBUG("==================================================\r\n");
	XDEBUG("\r\n");
}