123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- //---------------------------------------------------------------------------
- #ifndef CDSVmsObjectFH
- #define CDSVmsObjectFH
- //---------------------------------------------------------------------------
- #include <Classes.hpp>
- #include "LibSTLF.hpp"
- #include "ITSLogF.h"
- #include "VmsProtocolF.h"
- #include "CommonHdr.h"
- #include "CDSVmsFormF.h"
- #include "CDSVmsAxisF.h"
- //---------------------------------------------------------------------------
- #define CHANGEDATE (Now().FormatString("yyyymmddhhnnss"))
- //통신프로세스 정보
- typedef struct tagCommProcessInfo
- {
- ULONG ID;
- BYTE UseFlag : 1; /* 사용여부, 0:미사용 1:사용 */
- BYTE Status : 2; /* 프로세스 상태, 0:비정상 1:정상 2:정지 */
- BYTE dummy : 5; /* 임시 */
- bool ActiveIndicator; /* 스레드 실행 상태 */
- TDateTime wTimer; /* timer for connect wait time check */
- void *pThread; /* 스레드 포인터 */
- BYTE *pData; /* 데이터 포인터 */
- int CmdTimeOut;
- int WatchDogTime;
- int PollingTime;
- } COMM_PROCESS_INFO;
- //---------------------------------------------------------------------------
- class TVmsObj
- {
- public:
- TVmsObj(AnsiString AVMSID);
- virtual ~TVmsObj();
- public:
- BYTE UseFlag : 1; //사용여부, 0:미사용 1:사용
- BYTE Status : 2; //프로세스 상태, 0:비정상 1:정상 2:정지
- BYTE dummy : 5; //임시
- bool USE;
- bool MEMDEL;
- AnsiString VMSID; // N VARCHAR2(10) N VMS ID
- AnsiString VMSTYPE; // N CHAR(1) Y '0' VMS종류-VMS01
- AnsiString NAME; // N VARCHAR2(50) Y 명칭
- AnsiString IPADDRESS; // N VARCHAR2(15) Y IP Address
- BYTE LOCALNO; // N NUMBER(5) Y Local번호
- AnsiString WLTELNO; // N VARCHAR2(15) Y 무선통신연결번호
- AnsiString WLIP; // N VARCHAR2(15) Y 무선통신 IP Address(터미널서버)
- int WLPORT; // N NUMBER(5) Y 무선통신 Port(터미널서버)
- VMS_CURRENT_STATE State; /* VMS 상태 정보 수집 */
- VMS_ON_OFF OnOff; /* VMS ON/OFF 정보 */
- VMS_DOWNLOAD Download; /* VMS 다운로드 정보 */
- VMS_MODE Mode; /* VMS 제어모드 */
- VMS_AXIS_TRAFFIC Axis; /* VMS 축 교통정보 */
- VMS_INCIDENT Inc; /* VMS 돌발정보 표출 */
- VMS_DISPLAY_SET DspSet; /* VMS 표출설정 */
- VMS_CELL_LINK CellLink; /* VMS 이미지 배경 셀 링크 정보 */
- VMS_SEMIAUTO SemiAuto; /* VMS 반자동 메시지 정보 */
- IntMap<TVmsForm> FormLists; /* VMS 폼 리스트 */
- COMM_PROCESS_INFO Server; // 서버모듈 실행시 서버프로세스 정보
- COMM_PROCESS_INFO Client; // 클라이언트모듈 실행시 클라이언트 정보(For ASN.1)
- AnsiString ChangeDate; //상태변경시각(생성,접속,종료 등...
- TThreadList *pPackQueue; //운영단말의 처리를 수행할 패킷버퍼리스트
- int RowIdx;
- TStringList *FLogList; //로그를 화면에 출력할 TStringList
- TITSLog *FLogFile;
- void ClearFormList();
- TVmsForm *FindVmsForm(int AScenarioSeq, AnsiString AFormId);
- };
- //---------------------------------------------------------------------------
- class TVmsManager
- {
- public:
- TVmsManager();
- virtual ~TVmsManager();
- private:
- bool FLock;
- int GetVmsCount();
- public:
- ListMap<TVmsObj> FLists;
- void Lock();
- void UnLock();
- TVmsObj *FindVms(AnsiString AIPADDRESS);
- __property int Count = {read = GetVmsCount};
- };
- //---------------------------------------------------------------------------
- extern TVmsManager *VmsManager;
- //---------------------------------------------------------------------------
- #endif
|