Common.c 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. /*
  2. * Common.c
  3. *
  4. * Created on: 2021年8月7日
  5. * Author: Wendell
  6. */
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <string.h>
  10. #include <stdarg.h>
  11. #include <time.h>
  12. #include <sys/timeb.h>
  13. int StoreSysLogMsg(const char *fmt, ...)
  14. {
  15. char Buf[4096+256];
  16. char buffer[4096];
  17. va_list args;
  18. struct timeb SeqEndTime;
  19. struct tm *tm;
  20. va_start(args, fmt);
  21. int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
  22. va_end(args);
  23. memset(Buf,0,sizeof(Buf));
  24. ftime(&SeqEndTime);
  25. SeqEndTime.time = time(NULL);
  26. tm=localtime(&SeqEndTime.time);
  27. sprintf(Buf,"echo \'%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\' >> /Storage/SystemLog/[%04d.%02d]SystemLog",
  28. tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
  29. buffer,
  30. tm->tm_year+1900,tm->tm_mon+1);
  31. system(Buf);
  32. return rc;
  33. }
  34. int StorePsuLogMsg(const char *fmt, ...)
  35. {
  36. char Buf[4096+256];
  37. char buffer[4096];
  38. va_list args;
  39. struct timeb SeqEndTime;
  40. struct tm *tm;
  41. va_start(args, fmt);
  42. int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
  43. va_end(args);
  44. memset(Buf,0,sizeof(Buf));
  45. ftime(&SeqEndTime);
  46. SeqEndTime.time = time(NULL);
  47. tm=localtime(&SeqEndTime.time);
  48. sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/SystemLog/[%04d.%02d]PsuLog",
  49. tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
  50. buffer,
  51. tm->tm_year+1900,tm->tm_mon+1);
  52. system(Buf);
  53. return rc;
  54. }
  55. int StoreEventLogMsg(const char *fmt, ...)
  56. {
  57. char Buf[4096+256];
  58. char buffer[4096];
  59. va_list args;
  60. struct timeb SeqEndTime;
  61. struct tm *tm;
  62. va_start(args, fmt);
  63. int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
  64. va_end(args);
  65. memset(Buf,0,sizeof(Buf));
  66. ftime(&SeqEndTime);
  67. SeqEndTime.time = time(NULL);
  68. tm=localtime(&SeqEndTime.time);
  69. sprintf(Buf,"echo \"%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\" >> /Storage/EventLog/[%04d.%02d]EventLog",
  70. tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
  71. buffer,
  72. tm->tm_year+1900,tm->tm_mon+1);
  73. system(Buf);
  74. return rc;
  75. }
  76. int StoreAuthLogMsg(const char *fmt, ...)
  77. {
  78. char Buf[4096+256];
  79. char buffer[4096];
  80. va_list args;
  81. struct timeb SeqEndTime;
  82. struct tm *tm;
  83. va_start(args, fmt);
  84. int rc = vsnprintf(buffer, sizeof(buffer), fmt, args);
  85. va_end(args);
  86. memset(Buf,0,sizeof(Buf));
  87. ftime(&SeqEndTime);
  88. SeqEndTime.time = time(NULL);
  89. tm=localtime(&SeqEndTime.time);
  90. sprintf(Buf,"echo \'%04d-%02d-%02d %02d:%02d:%02d:%03d - %s\' >> /Storage/SystemLog/[%04d.%02d]AuthLog",
  91. tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,SeqEndTime.millitm,
  92. buffer,
  93. tm->tm_year+1900,tm->tm_mon+1);
  94. system(Buf);
  95. return rc;
  96. }
  97. void GetClockTime(struct timespec *_now_time)
  98. {
  99. clock_gettime(CLOCK_MONOTONIC, _now_time);
  100. }
  101. // return value unit: 1us
  102. unsigned long GetTimeoutValue(struct timespec _start_time)
  103. {
  104. struct timespec ts_end;
  105. unsigned long ret = 0;
  106. clock_gettime(CLOCK_MONOTONIC, &ts_end);
  107. ret = ((unsigned long)(ts_end.tv_sec - _start_time.tv_sec) * 1000000) + ((unsigned long)((ts_end.tv_nsec / 1000) - (_start_time.tv_nsec/ 1000)));
  108. /*
  109. printf("\r\n TimeInterval: %ld.%09ld - %ld.%09ld = %ld.%06ld ns",
  110. ts_end.tv_sec, ts_end.tv_nsec, _start_time.tv_sec, _start_time.tv_nsec,
  111. (ret / 1000000), (ret % 1000000));
  112. */
  113. #if 0
  114. struct timespec ts_interval;
  115. ts_interval.tv_sec = ts_end.tv_sec - _start_time.tv_sec;
  116. ts_interval.tv_nsec = ts_end.tv_nsec - _start_time.tv_nsec;
  117. if(ts_interval.tv_nsec < 0)
  118. {
  119. ts_interval.tv_nsec += 1000000000;
  120. ts_interval.tv_sec--;
  121. }
  122. #endif
  123. return ret;
  124. }
  125. // return value unit: 1s
  126. unsigned long GetSecTimeoutValue(struct timespec _start_time)
  127. {
  128. struct timespec ts_end;
  129. unsigned long ret = 0;
  130. clock_gettime(CLOCK_MONOTONIC, &ts_end);
  131. ret = ((unsigned long)(ts_end.tv_sec - _start_time.tv_sec) * 1000) + ((unsigned long)((ts_end.tv_nsec / 1000000) - (_start_time.tv_nsec / 1000000)));
  132. /*
  133. printf("\r\n TimeInterval: %ld.%09ld - %ld.%09ld = %ld.%03ld ms",
  134. ts_end.tv_sec, ts_end.tv_nsec, _start_time.tv_sec, _start_time.tv_nsec,
  135. (ret / 1000), (ret % 1000));
  136. */
  137. ret /= 1000;
  138. return ret;
  139. }
  140. int StatusCodeCompose(char *oriCode, char *newCode)
  141. {
  142. if(strlen(oriCode) > 0)
  143. {
  144. strcat(oriCode, ",");
  145. }
  146. strcat(oriCode, newCode);
  147. return strlen(oriCode);
  148. }
  149. void getNowDatetime(unsigned char *data)
  150. {
  151. time_t t = time(NULL);
  152. struct tm tm = *localtime(&t);
  153. sprintf((char*)data, "%04d-%02d-%02dT%02d:%02d:%02dZ", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
  154. }