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