FrmMainF.h 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. /****************************************************************************
  2. * @source : FrmMainF.h
  3. * @description : Application Main Form header
  4. ****************************************************************************
  5. * DATE AUTHOR DESCRIPTION
  6. * --------------------------------------------------------------------------
  7. * 2012/03/09 CYM [100] First Cut
  8. * 2013/05/06 CYM [101] CheckResource() 추가.
  9. *
  10. ****************************************************************************/
  11. //---------------------------------------------------------------------------
  12. #ifndef FrmMainFH
  13. #define FrmMainFH
  14. //---------------------------------------------------------------------------
  15. #include <Classes.hpp>
  16. #include <Controls.hpp>
  17. #include <StdCtrls.hpp>
  18. #include <Forms.hpp>
  19. #include <ComCtrls.hpp>
  20. #include <ExtCtrls.hpp>
  21. #include <Graphics.hpp>
  22. #include <Grids.hpp>
  23. #include <ImgList.hpp>
  24. #include <ToolWin.hpp>
  25. #include <psapi.h>
  26. #include <tlhelp32.h>
  27. #include "AppGlobalF.h"
  28. #include "FrmMainCommF.h"
  29. #include "IdAntiFreeze.hpp"
  30. #include "IdAntiFreezeBase.hpp"
  31. #include "IdBaseComponent.hpp"
  32. #include "IdComponent.hpp"
  33. #include "IdUDPBase.hpp"
  34. #include "IdUDPServer.hpp"
  35. //---------------------------------------------------------------------------
  36. typedef enum eEN_SEND_MSG
  37. {
  38. SEND_MSG_NONE = 0x00, /* 없음 */
  39. SEND_MSG_PROCESS = 0x01, /* 프로세스 */
  40. SEND_MSG_EQUIP = 0x02 /* 시설물 */
  41. } EN_SEND_MSG;
  42. //---------------------------------------------------------------------------
  43. class TFrmMain : public TForm
  44. {
  45. __published: // IDE-managed Components
  46. TImageList *ilMenu;
  47. TTimer *tmrAppState;
  48. TImageList *ImageListScope;
  49. TImageList *ImglstTvMvps;
  50. TToolBar *tobMenu;
  51. TToolButton *tbConnect;
  52. TToolButton *tbSeparator1;
  53. TToolButton *tbDisconnect;
  54. TToolButton *tbSeparator2;
  55. TToolButton *tbOptions;
  56. TToolButton *tbSeparator3;
  57. TPanel *plBottom;
  58. TPanel *plStateAction;
  59. TPanel *plStateComm;
  60. TPanel *plStateDb;
  61. TPanel *plTime;
  62. TPanel *Panel1;
  63. TPanel *pnlLog;
  64. TPanel *pnlVms;
  65. TSplitter *Splitter1;
  66. TPanel *Panel16;
  67. TPanel *plThread;
  68. TPanel *plMemory;
  69. TPanel *plGdi;
  70. TPanel *plHandle;
  71. TPanel *Panel2;
  72. TImageList *ImageList1;
  73. TIdUDPServer *IdUDPCenterServer;
  74. /*
  75. * 프로그램에 공통적으로 사용되는 폼이벤트
  76. */
  77. void __fastcall FormCreate(TObject *Sender);
  78. void __fastcall FormShow(TObject *Sender);
  79. void __fastcall FormCloseQuery(TObject *Sender, bool &CanClose);
  80. void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
  81. void __fastcall tmrAppStateTimer(TObject *Sender);
  82. /*
  83. * 메뉴 핸들러
  84. */
  85. void __fastcall tbConnectClick(TObject *Sender);
  86. void __fastcall tbDisconnectClick(TObject *Sender);
  87. void __fastcall tbOptionsClick(TObject *Sender);
  88. void __fastcall Panel16DblClick(TObject *Sender);
  89. void __fastcall plStateDbDblClick(TObject *Sender);
  90. void __fastcall plStateActionDblClick(TObject *Sender);
  91. void __fastcall IdUDPCenterServerUDPRead(TIdUDPListenerThread *AThread, TBytes AData,
  92. TIdSocketHandle *ABinding);
  93. private: // User declarations
  94. int m_bAction; /* 동작 상태 */
  95. int m_bComm; /* 통신 상태 */
  96. int m_bDB; /* DB 상태 */
  97. BYTE FSendMsg; /* send message */
  98. bool FServerRun; //서버 기동/정지
  99. DWORD FTickState; //주기체크 틱
  100. char m_szOnOffTimer[15]; /* ON/OFF Timer */
  101. char m_szTraffTimer[15]; /* Traffic Timer */
  102. TDateTime m_trfSendTimer; /* provide send time */
  103. int FCheckSafeAlarm;
  104. int FCurHour;
  105. int FCurMin;
  106. int FCurSec;
  107. bool FOneMinCycle;
  108. DWORD m_CommThreadID; /* 통신 데이터 처리 스레드 ID */
  109. unsigned int m_CommHandle; /* 통신 데이터 처리 스레드 핸들 */
  110. bool __fastcall InitApplication(void);
  111. void __fastcall CommClose();
  112. bool __fastcall StartJobThread();
  113. void __fastcall AutoClose();
  114. void __fastcall TerminateApplication(void);
  115. void __fastcall UpdateProcessStatePanel();
  116. void __fastcall CheckCommState();
  117. int __fastcall SendProcessState(void);
  118. void __fastcall SendInitial(void);
  119. void __fastcall SendTerminal(void);
  120. int __fastcall SendDbThreadMessage(UINT Msg, int wParam, int lParam);
  121. int __fastcall SendDbThreadDataMessage(UINT Msg, void *pData, int iLen);
  122. int __fastcall SendVmsThreadMessage(BYTE *AVmsId, IPCUDPMESSAGESTRUCT *ARcvData, BYTE AOpCode, char *AData);
  123. void __fastcall ClientResponse(int Flag, REQ_INFO_STRUCT *pReq, int error, void *pData);
  124. bool __fastcall CheckBasisTime(char *p, int Cycle, int Basis);
  125. void __fastcall ProvideEvent(int Type, BYTE *pVmsId, BYTE Mode);
  126. void __fastcall CheckProvideSave();
  127. /* 101 Begin */
  128. bool __fastcall CheckResource(size_t MaxMemory, DWORD MaxHandle, DWORD MaxThread, DWORD MaxGdi);
  129. /* 101 End */
  130. IPC_LOG_MESSAGE FLogMsg;
  131. int LogWrite(int ALogKind, char *AFmt, ...);
  132. public: // User declarations
  133. __fastcall TFrmMain(TComponent* Owner);
  134. size_t FMemSize;
  135. void __fastcall LoadOldVmsInfo();
  136. void __fastcall LoadFtpVmsInfo();
  137. void __fastcall LoadFontVmsInfo();
  138. void __fastcall LoadStatusAutoVmsInfo();
  139. void __fastcall LoadBitmapVmsInfo();
  140. TVmsCtlr* __fastcall FindVms(AnsiString AVmsId);
  141. int __fastcall ChangePosition(TVmsFormObj *AVmsObj);
  142. int __fastcall MakeVmsDownloadForm();
  143. int __fastcall MakeVmsDatabaseForm(TVmsCtlr *AObj);
  144. bool __fastcall OpenCenterComm();
  145. void __fastcall OnWMUserMessage(TMessage &Msg);
  146. void __fastcall OnUdpDataRecvMessage(TMessage &Msg);
  147. void __fastcall OnVmsThreadMessage(TMessage &Msg);
  148. BEGIN_MESSAGE_MAP
  149. MESSAGE_HANDLER(WM_USER, TMessage, OnWMUserMessage)
  150. MESSAGE_HANDLER(WM_VCOMMDATA_RECV, TMessage, OnUdpDataRecvMessage)
  151. MESSAGE_HANDLER(WM_VMS_THREAD, TMessage, OnVmsThreadMessage)
  152. END_MESSAGE_MAP(TForm)
  153. };
  154. //---------------------------------------------------------------------------
  155. extern PACKAGE TFrmMain *FrmMain;
  156. //---------------------------------------------------------------------------
  157. #endif