VMSCommLibF.cpp 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "VMSCommLibF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. SYSTEM_INFORMATION *g_SysInfo;
  8. bool LOAD_DB = true;
  9. APP_CONFIG g_AppCfg;
  10. LOG_INFO g_LogCfg;
  11. TITSLog *ITSLog = NULL;
  12. TItsNetQ g_logQ;
  13. TItsNetQ g_dbmQ;
  14. TItsNetQ g_dbmReadQ;
  15. TItsNetQ g_jobQ;
  16. TItsQBuff<IPC_LOG_MESSAGE, MAX_LOGQ_BUFF> g_logBuff;
  17. TItsQBuff<IPC_DBM_MESSAGE, MAX_DBMQ_BUFF> g_dbmBuff;
  18. TItsQBuff<IPC_DBM_MESSAGE, MAX_DBMQ_BUFF> g_dbmReadBuff;
  19. TItsQBuff<IPC_JOB_MESSAGE, MAX_JOBQ_BUFF> g_jobBuff;
  20. String g_sAppDir = ""; // Application Directory
  21. String g_sAppName = ""; // Program name
  22. String g_sCfgDir = ""; // Program Config Directory
  23. String g_sLogDir = ""; // Program Log Directory
  24. String g_sTempDir = ""; // Program Temp Directory
  25. String g_sImgDir = ""; // Program Image Directory
  26. String g_sFtpHomeDir = ""; // FTP Home Directory
  27. String g_sFtpFormDir = ""; // FTP Form Directory
  28. String g_sFtpVideoDir = ""; // FTP Video Directory
  29. String g_sFtpStaticDir = ""; // FTP Á¤ÀûÀ̹ÌÁö Directory
  30. String g_sFtpImageDir = ""; // FTP À̹ÌÁö Directory
  31. GRADE_TEXT FIGURE;
  32. GRADE_TEXT TEXT;
  33. PARKING_TEXT PARKING;
  34. int APP_LogWrite(void* ALogObj, int ALogKind, int ATarget, int AFrom, char *AFmt, ...)
  35. {
  36. va_list ap;
  37. int cnt = 0;
  38. String sLogKind = " [XXX] ";
  39. bool bLog = false;
  40. switch(ALogKind)
  41. {
  42. case eLOG_INFO : bLog = g_LogCfg.Info; sLogKind = " [INF] "; break;
  43. case eLOG_DATA : bLog = g_LogCfg.Data; sLogKind = " [DAT] "; break;
  44. case eLOG_ERROR : bLog = g_LogCfg.Error; sLogKind = " [ERR] "; break;
  45. case eLOG_WARNING: bLog = g_LogCfg.Warning; sLogKind = " [WAN] "; break;
  46. case eLOG_DEBUG : bLog = g_LogCfg.Debug; sLogKind = " [DBG] "; break;
  47. case eLOG_DETAIL : bLog = g_LogCfg.Detail; sLogKind = " [DET] "; break;
  48. }
  49. if (!bLog) return -1;
  50. try
  51. {
  52. IPC_LOG_MESSAGE *pLog = g_logBuff.GetBuff();
  53. if (pLog)
  54. {
  55. memset(pLog->Msg, 0x00, sizeof(pLog->Msg));
  56. va_start(ap, AFmt);
  57. cnt = vsprintf(pLog->Msg, AFmt, ap);
  58. va_end(ap);
  59. pLog->Target = AFrom;
  60. pLog->From = ATarget;
  61. pLog->Kind = ALogKind;
  62. pLog->Flag = 0;
  63. pLog->Write = true;
  64. pLog->Tm = Now();
  65. pLog->Type = 0;
  66. pLog->Obj = ALogObj;
  67. pLog->Ctlr = NULL;
  68. pLog->Len = strlen(pLog->Msg);
  69. g_logQ.PushTimeout((DWORD)pLog, 2000);
  70. #if 0
  71. SingleLogThread->AddSysLogd(Now().FormatString("hh:nn:ss") + sLogKind + String(pLog->Msg));
  72. #endif
  73. }
  74. }
  75. catch(Exception &e)
  76. {
  77. }
  78. return cnt;
  79. }
  80. //---------------------------------------------------------------------------
  81. int APP_PostDbThreadWriteMessage(e_dbm_command ACommand, int ASize, void *AData)
  82. {
  83. IPC_DBM_MESSAGE *pDbm = g_dbmBuff.GetBuff();
  84. if (pDbm)
  85. {
  86. pDbm->Command = ACommand;
  87. pDbm->Size = ASize;
  88. if (ASize > 0)
  89. {
  90. memcpy(pDbm->U.Data, AData, ASize);
  91. }
  92. else
  93. {
  94. pDbm->U.Data[0] = 0x00;
  95. }
  96. g_dbmQ.PushTimeout((DWORD)pDbm, 2000);
  97. }
  98. return 0;
  99. }
  100. //---------------------------------------------------------------------------
  101. int APP_PostDbThreadReadMessage(e_dbm_command ACommand, int ASize, void *AData)
  102. {
  103. IPC_DBM_MESSAGE *pDbm = g_dbmReadBuff.GetBuff();
  104. if (pDbm)
  105. {
  106. pDbm->Command = ACommand;
  107. pDbm->Size = ASize;
  108. if (ASize > 0)
  109. {
  110. memcpy(pDbm->U.Data, AData, ASize);
  111. }
  112. else
  113. {
  114. pDbm->U.Data[0] = 0x00;
  115. }
  116. g_dbmReadQ.PushTimeout((DWORD)pDbm, 2000);
  117. }
  118. return 0;
  119. }
  120. //---------------------------------------------------------------------------
  121. AnsiString __fastcall APP_GetDbJobName(int nCommand)
  122. {
  123. switch(nCommand)
  124. {
  125. case dbm_save_unit_stts: return "dbm_save_unit_stts";
  126. case dbm_save_ctlr_stts: return "dbm_save_ctlr_stts";
  127. case dbm_parma_res: return "dbm_parma_res";
  128. case dbm_save_ctlr_stts_all: return "dbm_save_ctlr_stts_all";
  129. case dbm_load_onoff_time: return "dbm_load_onoff_time";
  130. case dbm_load_download_job: return "dbm_load_download_job";
  131. case dbm_save_form_download: return "dbm_save_form_download";
  132. case dbm_dnld_form_init: return "dbm_dnld_form_init";
  133. case dbm_dnld_form_cycle: return "dbm_dnld_form_cycle";
  134. case dbm_dnld_form_mode: return "dbm_dnld_form_mode";
  135. case dbm_provide_result: return "dbm_provide_result";
  136. case dbm_master_symbol_image: return "dbm_master_symbol_image";
  137. case dbm_master_symbol_traffic: return "dbm_master_symbol_traffic";
  138. case dbm_master_form: return "dbm_master_form";
  139. case dbm_master_vms_ifsc: return "dbm_master_vms_ifsc";
  140. case dbm_check_db_alive: return "dbm_check_db_alive";
  141. case dbm_initialize: return "dbm_initialize";
  142. case dbm_job_start: return "dbm_job_start";
  143. case dbm_status: return "dbm_status";
  144. case dbm_save_unit_stts_hs: return "dbm_save_unit_stts_hs";
  145. case dbm_save_ctlr_stts_hs: return "dbm_save_ctlr_stts_hs";
  146. default:
  147. break;
  148. }
  149. return "unknown: " + AnsiString(nCommand);
  150. }
  151. //---------------------------------------------------------------------------