Sfoglia il codice sorgente

dle stuffing remove

shjung 8 mesi fa
parent
commit
e709ada1f6

+ 3 - 0
RUN/Cfg/StuffingVMS.inf

@@ -0,0 +1,3 @@
+;Dle Stuffing not use
+10014
+10015

+ 2 - 2
RUN/Cfg/VMSCommServer.ini

@@ -43,14 +43,14 @@ TRAFFIC_MAX    =3
 TRAFFIC_CENTER =1
 
 1=원활
-2=서행
+2=지체
 3=정체
 
 [TEXT]
 TRAFFIC_CENTER =1
 
 1=소통원활
-2=서 행
+2=지 체
 3=정 체
 
 [LOG]

+ 33 - 0
SRC/FrmMainF.cpp

@@ -406,6 +406,8 @@ bool __fastcall TVmsCommMain::InitApplication()
         SAFE_DELETE(FDb);
     }
 
+    LoadStuffingVms();
+
     ClientSessionManager->Init(CDSCtlrManager->FLists.Size()*2);
     FrmControllerInfo->UpdateCtlrList();
 
@@ -481,6 +483,37 @@ bool __fastcall TVmsCommMain::InitApplication()
     return true;
 }
 //---------------------------------------------------------------------------
+void __fastcall TVmsCommMain::LoadStuffingVms()
+{
+    TStringList *slFile = NULL;
+
+    String sCfgFile = g_sCfgDir + "StuffingVMS.inf";
+    try
+    {
+        slFile = new TStringList;
+
+        slFile->Clear();
+        slFile->LoadFromFile(sCfgFile);
+
+        for (int ii = 0; ii < slFile->Count; ii++)
+        {
+            AnsiString CTLR_NMBR = slFile->Strings[ii].Trim();
+            if (CTLR_NMBR == "") continue;
+            if (CTLR_NMBR == "\r\n") continue;
+
+            TCDSCtlr* pObj = CDSCtlrManager->FLists.Find(CTLR_NMBR);
+            if (pObj)
+            {
+                pObj->IsDle = false;
+            }
+        }
+    }
+    catch(Exception &e)
+    {
+    }
+    delete slFile;
+}
+//---------------------------------------------------------------------------
 
 void __fastcall TVmsCommMain::tmrAppStateTimer(TObject *Sender)
 {

+ 1 - 0
SRC/FrmMainF.h

@@ -118,6 +118,7 @@ private:	// User declarations
     void __fastcall OnAppException(TObject *Sender, Exception *exception);
 
 	bool __fastcall InitApplication();
+    void __fastcall LoadStuffingVms();
 	void __fastcall CommClose();
 
     void __fastcall AbnormalTerminate(char* AMsg);

+ 1 - 0
SRC/LIB/CDSCtlrF.h

@@ -348,6 +348,7 @@ public:
     AnsiString  ParamResTime;
 
     int         PROTOCOL_VER;       // 구미시 텍스트, 도형식 프로토콜 구분을 위해 추가
+    bool        IsDle;
 
     AnsiString          DownloadFormId;
     VMS_DOWNLOAD_DATA   FormDownload;

+ 1 - 1
SRC/LIB/ClientSessionF.h

@@ -109,7 +109,7 @@ public:
     bool OnDisconnected();               /* PacketHandllingF.cpp */
 
 	bool SendPacketDleStuffing(char *AData, int ADataLen);
-	bool SendPacketDLE(char *AData, int ADataLen);
+	bool SendPacketDLE(char *AData, int ADataLen, bool AIsDle);
 	bool SendPacket(char *AData, int ADataLen);
 	bool SendRequest(char *AData, int ADataLen);
 	bool SendFlush();

+ 1 - 0
SRC/VMSCommLib/CDS/CDSCtlrF.cpp

@@ -86,6 +86,7 @@ TCDSCtlr::TCDSCtlr()
     Server.Init();
     Client.Init();
     dwConnectCnt = 0;
+    IsDle = true;
     //LOGIN_IPADDR = "";
 }
 //---------------------------------------------------------------------------

+ 1 - 0
SRC/VMSCommLib/CDS/CDSCtlrF.h

@@ -348,6 +348,7 @@ public:
     AnsiString  ParamResTime;
 
     int         PROTOCOL_VER;       // 구미시 텍스트, 도형식 프로토콜 구분을 위해 추가
+    bool        IsDle;
 
     AnsiString          DownloadFormId;
     VMS_DOWNLOAD_DATA   FormDownload;

+ 1 - 1
SRC/VMSCommLib/COMMON/ClientSessionF.h

@@ -109,7 +109,7 @@ public:
     bool OnDisconnected();               /* PacketHandllingF.cpp */
 
 	bool SendPacketDleStuffing(char *AData, int ADataLen);
-	bool SendPacketDLE(char *AData, int ADataLen);
+	bool SendPacketDLE(char *AData, int ADataLen, bool AIsDle);
 	bool SendPacket(char *AData, int ADataLen);
 	bool SendRequest(char *AData, int ADataLen);
 	bool SendFlush();

+ 10 - 10
SRC/VMSCommLib/COMMON/PacketHandllingF.cpp

@@ -267,7 +267,7 @@ bool TClientSession::SendPacketDleStuffing(char *AData, int ADataLen)
 }
 //---------------------------------------------------------------------------
 
-bool TClientSession::SendPacketDLE(char *AData, int ADataLen)
+bool TClientSession::SendPacketDLE(char *AData, int ADataLen, bool AIsDle)
 {
     int nSendLen;
     int nLen;
@@ -288,7 +288,7 @@ bool TClientSession::SendPacketDLE(char *AData, int ADataLen)
     {
         *msgPrt++ = AData[ii];
 
-        if (pData[ii] == VMS_DLE)
+        if (AIsDle && pData[ii] == VMS_DLE)
         {
             *msgPrt++ = VMS_DLE;
         }
@@ -2599,7 +2599,7 @@ int TClientSession::download_default_form_0x9A()
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+2] = HIBYTE(crc);
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+3] = LOBYTE(crc);
 
-    SendPacketDLE((char*)msgPtr, nPktSize+6);
+    SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
     return 1;
 }
 //---------------------------------------------------------------------------
@@ -2690,7 +2690,7 @@ int TClientSession::download_form_0x9A()
 
     AObj->FormDownload.DownloadCnt++;
 
-    SendPacketDLE((char*)msgPtr, nPktSize+6);
+    SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
 
     return 1;
 }
@@ -2816,7 +2816,7 @@ int TClientSession::download_file_0x82()
                 msgPtr[sizeof(VMS_HEAD)+pHead->Length+2] = HIBYTE(crc);
                 msgPtr[sizeof(VMS_HEAD)+pHead->Length+3] = LOBYTE(crc);
 
-                SendPacketDLE((char*)msgPtr, nPktSize+6);
+                SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
                 break;
             }
             catch(Exception &e)
@@ -2890,7 +2890,7 @@ int TClientSession::download_schedule_form_0x96()
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+2] = HIBYTE(crc);
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+3] = LOBYTE(crc);
 
-    SendPacketDLE((char*)msgPtr, nPktSize+6);
+    SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
 
     return 1;
 }
@@ -2929,7 +2929,7 @@ int TClientSession::download_blank_0x9E()
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+2] = HIBYTE(crc);
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+3] = LOBYTE(crc);
 
-    SendPacketDLE((char*)msgPtr, nPktSize+6);
+    SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
 
     return 1;
 }
@@ -3186,7 +3186,7 @@ int TClientSession::download_lib_form_0x0A()
                 msgPtr[sizeof(VMS_HEAD)+pHead->Length+2] = HIBYTE(crc);
                 msgPtr[sizeof(VMS_HEAD)+pHead->Length+3] = LOBYTE(crc);
 
-                SendPacketDLE((char*)msgPtr, nPktSize+6);
+                SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
                 break;
             }
             catch(Exception &e)
@@ -3253,7 +3253,7 @@ int TClientSession::download_schedule_form_0x0E()
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+2] = HIBYTE(crc);
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+3] = LOBYTE(crc);
 
-    SendPacketDLE((char*)msgPtr, nPktSize+6);
+    SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
 
     return 1;
 }
@@ -3292,7 +3292,7 @@ int TClientSession::download_blank_0x16()
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+2] = HIBYTE(crc);
     msgPtr[sizeof(VMS_HEAD)+pHead->Length+3] = LOBYTE(crc);
 
-    SendPacketDLE((char*)msgPtr, nPktSize+6);
+    SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
 
     return 1;
 }