@ Ver 12.3.0 by LSJ

- 2025.02.27
 - Ver 12.2.1 Modify
 - Framework : SmartX Framework V3.2.4(update: 2021.01.20)
 - SerialDll 사용
   Serial callback 수정(string)
   serialRcvPacketStrMsgCallback
   serialRcvErrPacketStrMsgCallback
master^2 V12.3.0
sj84 2025-03-04 15:02:11 +09:00
parent b603f079d2
commit fb65aad5b2
5 changed files with 87 additions and 69 deletions

View File

@ -142,7 +142,7 @@ namespace INT69DC_7C.Forms
} }
private void DefaultSetting() private void DefaultSetting()
{ {
this.labelDisplayVer.Text = "12.2.1"; this.labelDisplayVer.Text = "12.3.0";
if(this.ParentForm.SystemConfig.EquipmentMode == 7) if(this.ParentForm.SystemConfig.EquipmentMode == 7)
this.labelTitleMainboardName.Text = "INT68M-2A"; this.labelTitleMainboardName.Text = "INT68M-2A";
else else

View File

@ -515,14 +515,16 @@ namespace INT69DC_7C.Forms
// DllSerial 사용여부 설정 // DllSerial 사용여부 설정
this.FlagDllSerial = false; this.FlagDllSerial = true;
if (this.FlagDllSerial == true) if (this.FlagDllSerial == true)
{ {
// SerialDll Initialize // SerialDll Initialize
this.ComPortMainToLCD = "COM2:"; this.ComPortMainToLCD = "COM2:";
SerialMgrComm.IntializeSerialManager(); SerialMgrComm.IntializeSerialManager();
SerialMgrComm.SerialPortMessageReceive += this.SerialPort_MessageReceive; //SerialMgrComm.SerialPortMessageReceive += this.SerialPort_MessageReceive;
SerialMgrComm.SerialPortErrMessageReceive += this.SerialPort_ErrMessageReceive; //SerialMgrComm.SerialPortErrMessageReceive += this.SerialPort_ErrMessageReceive;
SerialMgrComm.SerialPortStrMessageReceive += this.SerialPort_StrMessageReceive;
SerialMgrComm.SerialPortErrStrMessageReceive += this.SerialPort_ErrStrMessageReceive;
SerialMgrComm.SerialPortGetVersionDataEvent += this.Serialport_GetVersionDataEvent; SerialMgrComm.SerialPortGetVersionDataEvent += this.Serialport_GetVersionDataEvent;
} }
} }
@ -590,6 +592,13 @@ namespace INT69DC_7C.Forms
this.Serialport_ReceiveDataEvent(data.ToString()); this.Serialport_ReceiveDataEvent(data.ToString());
}); });
} }
private void SerialPort_StrMessageReceive(object data)
{
this.UI_Invoke(delegate
{
this.Serialport_ReceiveDataEvent(data.ToString());
});
}
private void SerialPort_ErrMessageReceive(object data) private void SerialPort_ErrMessageReceive(object data)
{ {
this.UI_Invoke(delegate this.UI_Invoke(delegate
@ -598,6 +607,14 @@ namespace INT69DC_7C.Forms
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Dll(Err MSG)", DateTime.Now, data)); this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Dll(Err MSG)", DateTime.Now, data));
}); });
} }
private void SerialPort_ErrStrMessageReceive(object data)
{
this.UI_Invoke(delegate
{
if (this.IsCommunicationLogOpen == true)
this.smartFileCommunicationLog.WriteString(string.Format("Receive ({0:yyyy-MM-dd HH:mm:ss}): {1} : Dll(Err MSG)", DateTime.Now, data));
});
}
private void TrasferSystemParameter(SystemConfigurationItem item) private void TrasferSystemParameter(SystemConfigurationItem item)
{ {

View File

@ -27,9 +27,15 @@ namespace INT69DC_7C.SerialManger
public delegate void fnSerialMgrRcvPacketCB(StringBuilder commPort, IntPtr pData, int length); public delegate void fnSerialMgrRcvPacketCB(StringBuilder commPort, IntPtr pData, int length);
public static fnSerialMgrRcvPacketCB fnSerialMgrRcvPacketCallback; public static fnSerialMgrRcvPacketCB fnSerialMgrRcvPacketCallback;
public delegate void fnSerialMgrRcvPacketStrCB(StringBuilder commPort, StringBuilder pMessage, int length);
public static fnSerialMgrRcvPacketStrCB fnSerialMgrRcvPacketStrCallback;
public delegate void fnSerialMgrRcvErrPacketCB(StringBuilder commPort, IntPtr pData, int length); public delegate void fnSerialMgrRcvErrPacketCB(StringBuilder commPort, IntPtr pData, int length);
public static fnSerialMgrRcvErrPacketCB fnSerialMgrRcvErrPacketCallback; public static fnSerialMgrRcvErrPacketCB fnSerialMgrRcvErrPacketCallback;
public delegate void fnSerialMgrRcvErrPacketStrCB(StringBuilder commPort, StringBuilder pMessage, int length);
public static fnSerialMgrRcvErrPacketStrCB fnSerialMgrRcvErrPacketStrCallback;
[DllImport(PathDll, CallingConvention = CallingConvention.Winapi)] [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
public static extern void DLL_SerialMgr_Register_DebugCB(fnSerialMgrDebugCB func); public static extern void DLL_SerialMgr_Register_DebugCB(fnSerialMgrDebugCB func);
@ -42,9 +48,15 @@ namespace INT69DC_7C.SerialManger
[DllImport(PathDll, CallingConvention = CallingConvention.Winapi)] [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
public static extern void DLL_SerialMgr_Register_RcvPacketCB(fnSerialMgrRcvPacketCB func); public static extern void DLL_SerialMgr_Register_RcvPacketCB(fnSerialMgrRcvPacketCB func);
[DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
public static extern void DLL_SerialMgr_Register_RcvPacketStrCB(fnSerialMgrRcvPacketStrCB func);
[DllImport(PathDll, CallingConvention = CallingConvention.Winapi)] [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
public static extern void DLL_SerialMgr_Register_RcvErrPacketCB(fnSerialMgrRcvErrPacketCB func); public static extern void DLL_SerialMgr_Register_RcvErrPacketCB(fnSerialMgrRcvErrPacketCB func);
[DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
public static extern void DLL_SerialMgr_Register_RcvErrPacketStrCB(fnSerialMgrRcvErrPacketStrCB func);
[DllImport(PathDll, CallingConvention = CallingConvention.Winapi)] [DllImport(PathDll, CallingConvention = CallingConvention.Winapi)]
public static extern void DLL_SerialMgr_HelloWorld(); public static extern void DLL_SerialMgr_HelloWorld();

View File

@ -14,7 +14,9 @@ namespace INT69DC_7C.SerialManger
{ {
public delegate void ObjectEventHandler(object data); public delegate void ObjectEventHandler(object data);
public static event ObjectEventHandler SerialPortMessageReceive; public static event ObjectEventHandler SerialPortMessageReceive;
public static event ObjectEventHandler SerialPortStrMessageReceive;
public static event ObjectEventHandler SerialPortErrMessageReceive; public static event ObjectEventHandler SerialPortErrMessageReceive;
public static event ObjectEventHandler SerialPortErrStrMessageReceive;
public static event ObjectEventHandler SerialPortGetVersionDataEvent; public static event ObjectEventHandler SerialPortGetVersionDataEvent;
public static void IntializeSerialManager() public static void IntializeSerialManager()
@ -31,11 +33,17 @@ namespace INT69DC_7C.SerialManger
fnSerialVersionCallback = serialVersionCallback; fnSerialVersionCallback = serialVersionCallback;
DLL_SerialMgr_Register_VersionCB(fnSerialVersionCallback); DLL_SerialMgr_Register_VersionCB(fnSerialVersionCallback);
fnSerialMgrRcvPacketCallback = serialRcvPacketMsgCallback; //fnSerialMgrRcvPacketCallback = serialRcvPacketMsgCallback;
DLL_SerialMgr_Register_RcvPacketCB(fnSerialMgrRcvPacketCallback); //DLL_SerialMgr_Register_RcvPacketCB(fnSerialMgrRcvPacketCallback);
fnSerialMgrRcvErrPacketCallback = serialRcvErrPacketMsgCallback; fnSerialMgrRcvPacketStrCallback = serialRcvPacketStrMsgCallback;
DLL_SerialMgr_Register_RcvErrPacketCB(fnSerialMgrRcvErrPacketCallback); DLL_SerialMgr_Register_RcvPacketStrCB(fnSerialMgrRcvPacketStrCallback);
//fnSerialMgrRcvErrPacketCallback = serialRcvErrPacketMsgCallback;
//DLL_SerialMgr_Register_RcvErrPacketCB(fnSerialMgrRcvErrPacketCallback);
fnSerialMgrRcvErrPacketStrCallback = serialRcvErrPacketStrMsgCallback;
DLL_SerialMgr_Register_RcvErrPacketStrCB(fnSerialMgrRcvErrPacketStrCallback);
// test // test
//DLL_SerialMgr_HelloWorld(); //DLL_SerialMgr_HelloWorld();
@ -90,7 +98,6 @@ namespace INT69DC_7C.SerialManger
} }
} }
// https://stackoverflow.com/questions/22938756/how-to-marshal-c-array-to-c-sharp-via-intptr
public static void serialRcvPacketMsgCallback(StringBuilder commPort, IntPtr pData, int length) public static void serialRcvPacketMsgCallback(StringBuilder commPort, IntPtr pData, int length)
{ {
try try
@ -108,39 +115,29 @@ namespace INT69DC_7C.SerialManger
if (SerialPortMessageReceive != null) if (SerialPortMessageReceive != null)
SerialPortMessageReceive(sdata); SerialPortMessageReceive(sdata);
#if TEST_CB
String commPortStr = commPort.ToString();
serialPortMessageByte(commPortStr, data, length);
#endif
//Console.Write("comm port : " + commPort + ", length = " + length.ToString() + "\n");
#if TEST_DEBUG
// https://stackoverflow.com/questions/1342922/console-writeline-as-hexadecimal
int index = 0;
foreach (byte temp in data)
{
Console.Write(temp.ToString("X2") + " ");
index++;
if (index % 16 == 0) Console.Write("\n");
}
Console.Write("\n");
#endif
//data = null;
//GC.Collect();
//GC.WaitForPendingFinalizers();
} }
catch (Exception e) catch (Exception e)
{ {
throw (e); throw (e);
} }
} }
public static void serialRcvPacketStrMsgCallback(StringBuilder commPort, StringBuilder pMessage, int length)
{
try
{
if (commPort.Length == 0)
return;
if (length == 0)
return;
if (SerialPortStrMessageReceive != null)
SerialPortStrMessageReceive(pMessage);
}
catch
{
}
}
public static void serialRcvErrPacketMsgCallback(StringBuilder commPort, IntPtr pData, int length) public static void serialRcvErrPacketMsgCallback(StringBuilder commPort, IntPtr pData, int length)
{ {
@ -159,41 +156,29 @@ namespace INT69DC_7C.SerialManger
if (SerialPortErrMessageReceive != null) if (SerialPortErrMessageReceive != null)
SerialPortErrMessageReceive(sdata); SerialPortErrMessageReceive(sdata);
//String commPortStr = commPort.ToString();
//serialPortMessageByte(commPortStr, data, length);
//Console.Write("Err : comm port : " + commPort + ", length = " + length.ToString() + "\n");
#if (TEST_DEBUG1)
// https://stackoverflow.com/questions/1342922/console-writeline-as-hexadecimal
int index = 0;
foreach (byte temp in data)
{
Console.Write(temp.ToString("X2") + " ");
index++;
if (index == 5) break;
if (index % 16 == 0) Console.Write("\n");
}
Console.Write("\n");
#endif
// https://dhshin94.tistory.com/135
//data = null;
//GC.Collect();
//GC.WaitForPendingFinalizers();
} }
catch (Exception e) catch (Exception e)
{ {
throw (e); throw (e);
} }
} }
public static void serialRcvErrPacketStrMsgCallback(StringBuilder commPort, StringBuilder pMessage, int length)
{
try
{
if (commPort.Length == 0)
return;
if (length == 0)
return;
if (SerialPortErrStrMessageReceive != null)
SerialPortErrStrMessageReceive(pMessage);
}
catch
{
}
}
#endregion // DLL_CALLBACK #endregion // DLL_CALLBACK
#region DLL_COMMAND #region DLL_COMMAND
@ -204,7 +189,6 @@ namespace INT69DC_7C.SerialManger
DLL_SerialMgr_PortOpen(pCommPort, BaudRate, stopBit, parity, dataBit); DLL_SerialMgr_PortOpen(pCommPort, BaudRate, stopBit, parity, dataBit);
} }
public static void serialPortClose(String commPort) public static void serialPortClose(String commPort)
{ {
IntPtr pCommPort = Marshal.StringToBSTR(commPort.ToString()); IntPtr pCommPort = Marshal.StringToBSTR(commPort.ToString());
@ -212,7 +196,6 @@ namespace INT69DC_7C.SerialManger
DLL_SerialMgr_PortClose(pCommPort); DLL_SerialMgr_PortClose(pCommPort);
} }
public static void serialPortMessageByte(String commport, byte[] data, int length) public static void serialPortMessageByte(String commport, byte[] data, int length)
{ {
IntPtr pCommPort = Marshal.StringToBSTR(commport.ToString()); IntPtr pCommPort = Marshal.StringToBSTR(commport.ToString());
@ -229,9 +212,6 @@ namespace INT69DC_7C.SerialManger
// if (SerialPortMessageReceive != null) // if (SerialPortMessageReceive != null)
// SerialPortMessageReceive(sdata); // SerialPortMessageReceive(sdata);
} }
//https://stackoverflow.com/questions/13418795/convert-byte-array-to-structure-in-the-compact-framework
public static void serialPortMessage(String commPort, String Message) public static void serialPortMessage(String commPort, String Message)
{ {
IntPtr pCommPort = Marshal.StringToBSTR(commPort.ToString()); IntPtr pCommPort = Marshal.StringToBSTR(commPort.ToString());

View File

@ -23,6 +23,15 @@
멀티형 8,10,12열 컨베어/스틱 계량기 멀티형 8,10,12열 컨베어/스틱 계량기
*/ */
@ Ver 12.3.0 by LSJ
- 2025.02.27
- Ver 12.2.1 Modify
- Framework : SmartX Framework V3.2.4(update: 2021.01.20)
- SerialDll 사용
Serial callback 수정(string)
serialRcvPacketStrMsgCallback
serialRcvErrPacketStrMsgCallback
@ Ver 12.2.1 by LSJ @ Ver 12.2.1 by LSJ
- 2025.01.02 - 2025.01.02
- Ver 12.2.0 Modify - Ver 12.2.0 Modify