X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/8c6fa3fbaccc22127280bf77a48fab5a3ee0716e..46b0747592074017ff0ea4b33d4a7194235886e5:/projects/stargazer/stg_timer.cpp diff --git a/projects/stargazer/stg_timer.cpp b/projects/stargazer/stg_timer.cpp deleted file mode 100644 index 572b069a..00000000 --- a/projects/stargazer/stg_timer.cpp +++ /dev/null @@ -1,146 +0,0 @@ -#include "stg_timer.h" - -#include "stg/common.h" - -#include -#include -#include - -#include - -void * StgTimer(void *); - -static int nonstop; -static pthread_t thrStgTimer; -static bool isTimerRunning = false; -volatile time_t stgTime; - -#ifdef STG_TIMER_DEBUG -const int TIME_SPEED = 1; -/* - 1 - 1x speed - 2 - 2x speed - 5 - 5x speed - 10 - 10x speed - */ - -const int START_TIME = 2; -/* - 0 - as is - 1 - start before new day (3 min before) 29.11.2005 23:57:00 - 2 - start before new month (3 min before) 30.11.2005 23:57:00 - */ -#endif - -//----------------------------------------------------------------------------- -void * StgTimer(void *) -{ -#ifdef STG_TIMER_DEBUG -struct tm lt; -memset(<, 0, sizeof(lt)); - -lt.tm_year = 2016 - 1900; // 2005 -lt.tm_mon = 7 - 1; // Nov -lt.tm_hour = 23; // 23 h -lt.tm_min = 57; // 50 min -lt.tm_sec = 0; // 00 sec -lt.tm_isdst = -1; - -switch (START_TIME) - { - case 0: - stgTime = time(NULL); - break; - - case 1: - lt.tm_mday = 29; - stgTime = mktime(<); - break; - - case 2: - lt.tm_mday = 31; - stgTime = mktime(<); - break; - } -#else -stgTime = time(NULL); -#endif - -sigset_t signalSet; -sigfillset(&signalSet); -pthread_sigmask(SIG_BLOCK, &signalSet, NULL); - -nonstop = 1; -isTimerRunning = true; -while (nonstop) - { - #ifdef STG_TIMER_DEBUG - struct timespec ts; - if (TIME_SPEED == 1) - { - ts.tv_sec = 1; - ts.tv_nsec = 0; - } - else - { - ts.tv_sec = 0; - ts.tv_nsec = 1000000000 / TIME_SPEED; - } - nanosleep(&ts, NULL); - stgTime++; - #else - struct timespec ts = {0, 500000000}; - nanosleep(&ts, NULL); - stgTime = time(NULL); - #endif - } -isTimerRunning = false; - -return NULL; -} -//----------------------------------------------------------------------------- -int RunStgTimer() -{ -static int a = 0; -isTimerRunning = false; - -if (a == 0) - if (pthread_create(&thrStgTimer, NULL, &StgTimer, NULL)) - { - isTimerRunning = false; - return -1; - } - -a = 1; -return 0; -} -//----------------------------------------------------------------------------- -void StopStgTimer() -{ -nonstop = 0; -pthread_join(thrStgTimer, NULL); // Cleanup thread resources -printfd(__FILE__, "STG_TIMER stopped\n"); -} -//----------------------------------------------------------------------------- -bool IsStgTimerRunning() -{ -return isTimerRunning; -} -//----------------------------------------------------------------------------- -int stgUsleep(unsigned long t) -{ -#ifdef STG_TIMER_DEBUG -struct timespec ts = {static_cast((t / TIME_SPEED) / 1000000), static_cast(((t / TIME_SPEED) % 1000000) * 1000)}; -return nanosleep(&ts, NULL); -#else -struct timespec ts = {static_cast(t / 1000000), static_cast((t % 1000000) * 1000)}; -return nanosleep(&ts, NULL); -#endif -} -//----------------------------------------------------------------------------- -void WaitTimer() -{ - for (int i = 0; i < 5 && !isTimerRunning; i++) - stgUsleep(200000); -} -//-----------------------------------------------------------------------------