From d0ded5cd9bf5070a120bad58b5be21fe2ac6a4ff Mon Sep 17 00:00:00 2001
From: C3032 <C3032@BC3032>
Date: 星期六, 20 十二月 2025 16:41:09 +0800
Subject: [PATCH] test

---
 IDViewer_2D/IDViewerDefines.cs | 2259 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 2,259 insertions(+), 0 deletions(-)

diff --git a/IDViewer_2D/IDViewerDefines.cs b/IDViewer_2D/IDViewerDefines.cs
new file mode 100644
index 0000000..7931fc7
--- /dev/null
+++ b/IDViewer_2D/IDViewerDefines.cs
@@ -0,0 +1,2259 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Runtime.InteropServices;
+using static SmartScanner.IDViewerDefines;
+using System.Dynamic;
+using System.Net;
+
+namespace SmartScanner
+{
+    class IDViewerDefines
+    {
+        // 浣跨敤鏋氫妇琛ㄧず鍥炶皟娑堟伅ID
+        public enum CallbackMessageID
+        {
+            DeviceConnectionEstablished = 1,
+            DeviceConnectionClosed = 2
+        }
+
+        public enum ErrorCodes
+        {
+            ID_OK = 0,                                                              //鎴愬姛
+            ID_ERROR_ALREADY_INIT = 146000010,                                      //宸茬粡鍒濆鍖�
+            ID_ERROR_NOT_INIT = 146000011,                                          //鏈垵濮嬪寲
+            ID_ERRORREATE_DEVICE_INFO_NOT_EXSIST = 146000012,                       //褰撳墠鍒涘缓璁惧涓嶅瓨鍦�
+            ID_ERROR_SET_IP_DEVICE_ALREADYREATED = 146000013,                       //褰撳墠璁剧疆IP璁惧宸茬粡鍒涘缓
+            ID_ERROR_DEVICE_HAVE_OPENED = 146000014,                                //璁惧宸茬粡鎵撳紑
+            ID_ERROR_OPEN_DEVICEONNECT_PARAMS_ERROR = 146000015,                    //鎵撳紑璁惧杩炴帴鍙傛暟閿欒
+            ID_ERROR_OPEN_DEVICEONNECT_ISREATE = 146000016,                         //鎵撳紑璁惧杩炴帴宸茬粡鍒涘缓
+            ID_ERROR_OPEN_DEVICEONNECT_SOCKET_FAILED = 146000017,                   //鎵撳紑璁惧杩炴帴寤虹珛澶辫触
+            ID_ERROR_OPEN_DEVICEONNECT_FAILED = 146000018,                          //鎵撳紑璁惧杩炴帴澶辫触
+            ID_ERROR_DEVICE_NOT_OPEN = 146000019,                                   //璁惧鏈墦寮�
+            ID_ERROR_DEVICE_IS_RUNNING = 146000020,                                 //璁惧宸茬粡鍦ㄨ繍琛屾ā寮�
+            ID_ERROR_DEVICE_IS_DEBUGGING = 146000021,                               //璁惧宸茬粡鍦ㄨ皟璇曟ā寮�
+            ID_ERROR_DEVICE_QUERY_HARDWARE_INFO_FAILED = 146000022,                 //鑾峰彇璁惧纭欢淇℃伅澶辫触
+            ID_ERROR_OPEN_DEVICEREATE_DATA_RECEIVED_FAILED = 146000023,             //鎵撳紑璁惧鎺ユ敹鏁版嵁鏈嶅姟鍒涘缓澶辫触
+            ID_ERROR_OPEN_DEVICE_SOLUTION_MANAGERONNECTION_FAILED = 146000024,      //鎵撳紑璁惧鏃惰繛鎺ユ柟妗堢鐞嗗伐鍏峰け璐�
+            ID_ERROR_SOLUTION_MANAGER_TIMEOUT = 146000025,                          //鏂规绠$悊绫昏秴鏃�
+            ID_ERROR_SOLUTION_MANAGERAN_NOT_DELETEURRENT_SOLUTION = 146000026,      //涓嶈兘鍒犻櫎褰撳墠鏂规
+            ID_ERROR_SOLUTION_MANAGERURRENT_SOLUTION_NOT_EXISTED = 146000027,       //褰撳墠鏂规涓嶅瓨鍦�
+            ID_ERROR_SET_IP_ADDRESS_INVALID = 146000028,                            //璁剧疆IP鍦板潃涓嶅悎娉�
+            ID_ERROR_SET_IP_MASK_INVALID = 146000029,                               //璁剧疆瀛愮綉鎺╃爜鍦板潃涓嶅悎娉�
+            ID_ERROR_SET_IP_GATEWAY_INVALID = 146000030,                            //璁剧疆缃戝叧鍦板潃涓嶅悎娉�
+            ID_ERROR_SET_IP_ADDRESS_GATEWAY_NOT_IN_SAME_SUBNET = 146000031,         //璁剧疆鐨処P鍦板潃鍜岀綉鍏充笉鍦ㄥ悓涓�缃戞
+            ID_ERROR_SET_IP_ADDRESS_ALREADY_EXISTED = 146000032,                    //璁剧疆鐨処P宸茬粡瀛樺湪
+            ID_ERROR_SOLUTION_MANAGER_SOLUTION_NAME_INVALID = 46000033,             //鏂规鍚嶇О闈炴硶,涓嶈兘鍖呭惈<>:\"/\\|?*
+            ID_ERROR_SET_PARAMS_CAN_NOT_WHEN_RUNNING = 146000034,				    //杩愯涓笉鑳借缃鍙傛暟
+            ID_ERROR_SET_PARAMS_ROI_NOT_EXISTED = 146000035,				        //鍒犻櫎鐨凴OI涓嶅瓨鍦�
+            ID_ERROR_DEBUG_RESPONSE_TYPE_ERROR = 146000036,				            //璋冭瘯鍙嶉淇℃伅绫诲瀷涓嶅尮閰�
+            ID_ERROR_DEVICE_TYPE_NO_SUCH_FUNCTION = 146000037,				        //褰撳墠璁惧绫诲瀷娌℃湁璇ュ姛鑳�
+            ID_ERROR_DEBUG_GET_FOCUS_FAILED = 146000038,				            //鑾峰彇鐒﹁窛澶辫触
+            ID_ERROR_DEBUG_AUTO_FOCUS_FAILED = 146000039,				            //鑷姩瀵圭劍澶辫触
+            ID_ERROR_SOLUTION_LOAD_CONTENT_ERROR = 146000040,				        //鏂规鍐呭瑙f瀽澶辫触
+            ID_ERROR_SOLUTION_PARAMS_INDEX_ERROR = 146000041,				        //鍙傛暟缁勯敊璇�
+            ID_ERROR_SOLUTION_ILLUMINAN_INDEX_ERROR = 146000042,				    //鍏夋簮閫氶亾閿欒
+            ID_ERROR_SOLUTION_ILLUMINAN_BRIGHTNESS_VALUE_ERROR = 146000043,			//鍏夋簮閫氶亾浜害閿欒
+            ID_ERROR_SOLUTION_DOWNLOAD_ERROR = 146000044,				            //褰撳墠鏂规涓嬭浇澶辫触
+            ID_ERROR_IMAGE_CAPTURE_TIMEOUT = 146000045,                             //鎶撳浘瓒呮椂
+            ID_ERROR_ROI_ADD_LIMIT_REACHED = 146000046,                             //ROI娣诲姞涓婇檺宸茶揪鍒�
+            ID_ERROR_SET_PARAMS_CODETYPE_NOT_EXISTED = 146000047,				    //鍒犻櫎鐨勭爜鍒朵笉瀛樺湪
+            ID_ERROR_DEVICE_NOT_IN_FREE_ACQUISITION_MODE = 146000048,				//鐩告満鏈浜庤嚜鐢遍噰闆嗘ā寮�
+            ID_ERROR_SET_PARAMS_OCR_NOT_EXISTED = 146000049,				        //鍒犻櫎鐨凮CR涓嶅瓨鍦�
+            ID_ERROR_CONFIG_LOAD_CONTENT_ERROR = 146000050,				            //閰嶇疆鍐呭瑙f瀽澶辫触
+            ID_ERROR_CONFIG_ITEM_NOT_EXISTED = 146000051,				            //閰嶇疆椤逛笉瀛樺湪
+            ID_ERROR_CONFIG_ITEM_SET_FAILED = 146000052,                            //閰嶇疆椤硅缃け璐�
+            ID_ERROR_CONFIG_ITEM_GET_FAILED = 146000053,                            //閰嶇疆椤硅幏鍙栧け璐�
+            ID_ERROR_DO_ADD_LIMIT_RECHED = 146000054,                               //DO娣诲姞涓婇檺宸茶揪鍒�
+            ID_ERROR_TRIGGER_SOURCE_NO_EXISTED = 146000055,                         //瑙﹀彂婧愪笉瀛樺湪
+            ID_ERROR_PARAM_NO_FOUND = 146000056,                                    //鍙傛暟涓嶅瓨鍦�
+            ID_ERROR_PARAM_POSITION_INVALID = 146000057,                            //鍙傛暟鍧愭爣寮傚父
+            ID_ERROR_SET_PARAMS_CAN_NOT_WHEN_DEBUGING = 146000058,				    //璋冭瘯涓笉鑳借缃鍙傛暟
+            ID_ERROR_DI_ADD_LIMIT_RECHED = 146000059,                               //DI娣诲姞涓婇檺宸茶揪鍒�
+
+        }
+
+        public enum IDImageType
+        {
+            ID_IMAGE_8U = 0,			// 8浣嶆棤绗﹀彿绫诲瀷
+            ID_IMAGE_8S,				// 8浣嶆湁绗﹀彿绫诲瀷
+            ID_IMAGE_16U,				// 16浣嶆棤绗﹀彿绫诲瀷
+            ID_IMAGE_16S,				// 16浣嶆湁绗﹀彿绫诲瀷
+            ID_IMAGE_32S,				// 32浣嶆湁绗﹀彿绫诲瀷
+            ID_IMAGE_32F,				// 32浣嶆诞鐐圭被鍨�
+            ID_IMAGE_64F  			// 64浣嶆诞鐐圭被鍨�
+        }
+
+        /*
+        *瑙﹀彂妯″紡
+        */
+        public enum IDTriggerModel
+        {
+            ID_TRIGGER_HOLD_MODEL_SINGLE_FRAME = 0,                           //鍗曞抚瑙﹀彂
+            ID_TRIGGER_HOLD_MODEL_MULTI_FRAME = 1,                                //澶氬抚瑙﹀彂
+            ID_TRIGGER_HOLD_MODEL_HOLD = 2,                                       //瑙﹀彂淇濇寔
+            ID_TRIGGER_HOLD_MODEL_READ_SUCCESS = 3                                //璇诲彇鎴愬姛杈撳嚭
+        }
+
+        /*
+        *淇″彿鎸佺画鏉′欢
+        */
+        public enum IDTriggerSignalHoldCondition
+        {
+            ID_TRIGGER_HOLDONDITION_TIMES = 0,                          //鏃堕棿
+            ID_TRIGGER_HOLDONDITION_FRAMES,                             //閲囬泦甯ф暟
+        }
+
+        /*
+        *瑙﹀彂婧�
+        */
+        public enum IDTriggerSource
+        {
+            //ID_TRIGGER_SOURCE_TCP_SERVER = 2,                                 //tcp鏈嶅姟鍣ㄨЕ鍙�
+            //ID_TRIGGER_SOURCE_TCPLIENT = 3,                                   //tcp瀹㈡埛绔Е鍙�
+            //ID_TRIGGER_SOURCE_UDP = 4,                                        //UDP瑙﹀彂
+            //ID_TRIGGER_SOURCE_SERIAL_PORT = 5,                                //涓插彛瑙﹀彂
+            //ID_TRIGGER_SOURCE_HARDWARE = 13                                   //纭欢瑙﹀彂
+
+            ID_TRIGGER_SOURCE_SOFT = 0,                                     //杞Е鍙�
+            ID_TRIGGER_SOURCE_AUTO,                                         //鑷姩瑙﹀彂
+            ID_TRIGGER_SOURCE_TCP_SERVER,                                   //tcp鏈嶅姟鍣ㄨЕ鍙�
+            ID_TRIGGER_SOURCE_TCP_CLIENT,                                   //tcp瀹㈡埛绔Е鍙�
+            ID_TRIGGER_SOURCE_UDP,                                          //UDP瑙﹀彂
+            ID_TRIGGER_SOURCE_SERIAL_PORT,                                  //涓插彛瑙﹀彂
+            ID_TRIGGER_SOURCE_MODBUS,                                       //modbus瑙﹀彂
+            ID_TRIGGER_SOURCE_EIP,                                          //EIP瑙﹀彂
+            ID_TRIGGER_SOURCE_PROFINET,                                     //profinet瑙﹀彂
+            ID_TRIGGER_SOURCE_FINS,                                         //Fins鍗忚瑙﹀彂
+            ID_TRIGGER_SOURCE_MC,                                           //MC瑙﹀彂
+            ID_TRIGGER_SOURCE_ETHERCAT,                                     //Ethercat
+            ID_TRIGGER_SOURCE_NETWORKING,                                   //缁勭綉瑙﹀彂
+            ID_TRIGGER_SOURCE_HARDWARE,                                     //纭欢瑙﹀彂
+            ID_TRIGGER_SOURCE_SENSING										//鎰熷簲妯″紡
+        }
+
+        /*
+        *瑙﹀彂鍙傛暟
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDTriggerParams
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool triggerStatus;                                             //瑙﹀彂鐘舵��
+            public uint triggerDelay;                                      //瑙﹀彂寤惰繜ms
+            public IDTriggerModel triggerModel;                                  //瑙﹀彂妯″紡
+            public IDTriggerSignalHoldCondition conditionMode;                       //==淇″彿淇濇寔鏉′欢妯″紡 娉細鍙湁瑙﹀彂妯″紡閫夋嫨鈥滃甯р�濄�佲�滆鍙栨垚鍔熻緭鍑衡�濇椂鏈夋晥
+            public uint triggerFrames;                                     //==瑙﹀彂閲囬泦甯ф暟 娉細鍙湁鍦ㄤ俊鍙蜂繚鎸佹潯浠舵ā寮忛�夋嫨鈥滈噰闆嗗抚鏁扳�濇椂鏈夋晥
+            public uint triggerDuration;                                   //瑙﹀彂鎸佺画鏃堕棿 娉細鍙湁鍦ㄤ俊鍙蜂繚鎸佹潯浠朵负鏃垛�滄椂闂粹�濇湁鏁�
+            public uint triggerCodeNum;                                    //璇诲彇鏉$爜鏁� 娉細鍙湁瑙﹀彂妯″紡閫夋嫨鈥滆鍙栨垚鍔熻緭鍑衡�濇椂鏈夋晥
+            public IDTriggerSource triggerSource;                                    //瑙﹀彂婧�
+            public uint triggerInterval;                                   //杞Е鍙戦棿闅攎s
+            [MarshalAs(UnmanagedType.I1)]
+            public bool statisticByCodeNum;                                        //鐮佹暟鐩粺璁′娇鑳�(鍙湁瑙﹀彂妯″紡閫夋嫨鈥滆鍙栨垚鍔熻緭鍑衡�濇椂鏈夋晥)
+        }
+
+        public class IDTriggerParamsCreate
+        {
+            public IDTriggerParams createIDTriggerParams()
+            {
+                IDTriggerParams idtriParams = new IDTriggerParams();
+                idtriParams.triggerStatus = false;
+                idtriParams.triggerDelay = 0;
+                idtriParams.triggerModel = IDTriggerModel.ID_TRIGGER_HOLD_MODEL_SINGLE_FRAME;
+                idtriParams.conditionMode = IDTriggerSignalHoldCondition.ID_TRIGGER_HOLDONDITION_TIMES;
+                idtriParams.triggerFrames = 1;
+                idtriParams.triggerDuration = 2000;
+                idtriParams.triggerCodeNum = 1;
+                idtriParams.triggerSource = IDTriggerSource.ID_TRIGGER_SOURCE_TCP_SERVER;
+                idtriParams.triggerInterval = 500;
+                idtriParams.statisticByCodeNum = false;
+                return idtriParams;
+            }
+        }
+        /*
+        *纭欢瑙﹀彂鏋佹��
+        */
+        public enum IDTriggerPolarity
+        {
+            ID_HARDWARE_TRRIGER_LOW_LEVEL = 0,                                //浣庣數骞�
+            ID_HARDWARE_TRRIGER_HIGH_LEVEL = 1,                               //楂樼數骞�
+            ID_HARDWARE_TRRIGER_RISING_EDEG = 2,                              //涓婂崌娌�
+            ID_HARDWARE_TRRIGER_FALLING_EDEG = 3                              //涓嬮檷娌�
+        }
+        /*
+        *纭欢瑙﹀彂鍙傛暟
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDHardwareTrigger
+        {
+            public uint debounceTime;                                                 //娑堟姈鏃堕棿us
+            public IDTriggerPolarity triggerPolarity;                                //瑙﹀彂鏋佹��
+            [MarshalAs(UnmanagedType.I1)]
+            public bool restrictCodeNum;                                              //鍚敤鏈�澶цВ鐮佹暟
+            public uint triggerCodeNum;                                                 //鐮佹暟鐩�
+            public uint triggerTimeout;                                              //瑙﹀彂瓒呮椂ms
+            [MarshalAs(UnmanagedType.I1)]
+            public bool elecLevelStatisticByCodeNum;                               //楂樹綆鐢靛钩鐮佹暟鐩粺璁′娇鑳�(楂樹綆鐢靛钩鍚敤鏈�澶цВ鐮佹暟寮�鍚墠鐢熸晥)
+        }
+
+
+        public class IDHardwareTriggerCreate
+        {
+            public IDHardwareTrigger createIDHardwareTrigger()
+            {
+                IDHardwareTrigger IDhardwareTrigger = new IDHardwareTrigger();
+                IDhardwareTrigger.debounceTime = 100;
+                IDhardwareTrigger.triggerPolarity = IDTriggerPolarity.ID_HARDWARE_TRRIGER_RISING_EDEG;          //榛樿楂樼數骞充笂鍗囨部瑙﹀彂
+                IDhardwareTrigger.restrictCodeNum = false;
+                IDhardwareTrigger.triggerCodeNum = 1;
+                IDhardwareTrigger.triggerTimeout = 0;
+                IDhardwareTrigger.elecLevelStatisticByCodeNum = false;
+                return IDhardwareTrigger;
+            }
+        }
+        /*
+        *TCP鏈嶅姟鍣ㄨЕ鍙�
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDTcpServerTrigger
+        {
+            public uint port;                                              //鏈嶅姟鍣ㄧ鍙�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string startCommand;                                          //寮�濮嬫寚浠�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string endCommand;                                                //缁撴潫鎸囦护
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableHEX;                                                 //鍚敤16杩涘埗
+
+        }
+
+
+        public class IDTcpServerTriggerCreate
+        {
+            public IDTcpServerTrigger createIDTcpServerTrigger()
+            {
+                IDTcpServerTrigger temTcpServer = new IDTcpServerTrigger();
+                temTcpServer.port = 1024;
+                temTcpServer.startCommand = "start";
+                temTcpServer.endCommand = "stop";
+                temTcpServer.enableHEX = false;
+                return temTcpServer;
+            }
+        }
+
+        /*
+        *TCP瀹㈡埛绔Е鍙�
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDTcpClientTrigger
+        {
+            public uint port;                                              //鏈嶅姟鍣ㄧ鍙�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string ipAddress;                                             //鏈嶅姟鍣↖P鍦板潃
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string startCommand;                                          //寮�濮嬫寚浠�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string endCommand;                                                //缁撴潫鎸囦护
+            [MarshalAs(UnmanagedType.I1)]
+            public bool heartBeatEnable;                                           //蹇冭烦浣胯兘
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string heartBeatCmd;                                          //蹇冭烦鎸囦护
+            public uint heartBeatPeriod;                                   //蹇冭烦鍛ㄦ湡(ms)鏈�灏忓��50ms
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableHEX;                                                 //鍚敤16杩涘埗
+        }
+
+
+        public class IDTcpClientTriggerCreate
+        {
+            public IDTcpClientTrigger createIDTcpClientTrigger()
+            {
+                IDTcpClientTrigger temIDTcpClient = new IDTcpClientTrigger();
+                temIDTcpClient.port = 1024;
+                temIDTcpClient.ipAddress = "127.0.0.1";
+                temIDTcpClient.startCommand = "start";
+                temIDTcpClient.endCommand = "stop";
+                temIDTcpClient.heartBeatEnable = false;
+                temIDTcpClient.heartBeatCmd = "heartBeat";
+                temIDTcpClient.heartBeatPeriod = 500;
+                temIDTcpClient.enableHEX = false;
+                return temIDTcpClient;
+            }
+        }
+
+        /*
+        *涓插彛瑙﹀彂閰嶇疆,瀵瑰簲涓插彛鍙傛暟閰嶇疆浣跨敤涓插彛閫氳涓暟鎹�
+        */
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDSerialPortTrigger
+        {
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string startCommand;                                          //寮�濮嬫寚浠�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string endCommand;                                                //缁撴潫鎸囦护
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableHEX;                                                 //鍚敤16杩涘埗
+        }
+
+        public class IDSerialPortTriggerCreate
+        {
+            public IDSerialPortTrigger createIDSerialPortTrigger()
+            {
+                IDSerialPortTrigger temIDSerialPort = new IDSerialPortTrigger();
+
+                temIDSerialPort.startCommand = "start";
+                temIDSerialPort.endCommand = "stop";
+                temIDSerialPort.enableHEX = false;
+                return temIDSerialPort;
+            }
+        }
+
+        /*
+        *UDP瑙﹀彂
+        */
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDUDPTrigger
+        {
+            public uint port;                                                       //绔彛
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string startCommand;                                          //寮�濮嬫寚浠�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string endCommand;                                            //缁撴潫鎸囦护
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableHEX;                                                 //鍚敤16杩涘埗
+
+        }
+        public class IDUDPTriggerCreate
+        {
+            public IDUDPTrigger createIDUDPTrigger()
+            {
+                IDUDPTrigger temIDUDP = new IDUDPTrigger();
+                temIDUDP.port = 1025;
+                temIDUDP.startCommand = "start";
+                temIDUDP.endCommand = "stop";
+                temIDUDP.enableHEX = false;
+                return temIDUDP;
+            }
+        }
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDFilterInfo
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool preventDuplicatEnable;                     //棰勯槻閲嶅璇诲彇
+            [MarshalAs(UnmanagedType.I1)]
+            public bool removeDuplicateEnable;                     //鍘婚櫎閲嶅浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool historyTimesEnable;                        //鍘嗗彶杩囨护浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool readThresholdEnable;                       //璇诲彇闃堝�间娇鑳�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool frameDuplicateEnable;                      //閫愬抚鍘婚噸浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool angleEnable;                               //瑙掑害杩囨护寮�鍏�
+
+            public uint preventDuplicate;                  //棰勯槻閲嶅璇诲彇鏃堕棿
+            public uint historyTimes;                      //鍘嗗彶杩囨护甯ф暟
+            public uint readCountThreshold;                //璇诲彇娆℃暟闃堟鏁�
+            public uint angleInit;
+            public uint angleOffset;
+
+        }
+
+
+        public class IDFilterInfoCreate
+        {
+            public IDFilterInfo createIDFilterInfo()
+            {
+                IDFilterInfo temIDFilterInfo = new IDFilterInfo
+                {
+                    preventDuplicatEnable = false,
+                    historyTimesEnable = false,
+                    readThresholdEnable = false,
+                    angleEnable = false,
+                    removeDuplicateEnable = true,
+                    frameDuplicateEnable = true,
+                    preventDuplicate = 20,
+                    historyTimes = 1,
+                    readCountThreshold = 1,
+                    angleInit = 0,
+                    angleOffset = 0,
+                };
+
+                return temIDFilterInfo;
+            }
+        }
+
+        public enum IDFilterMode
+        {
+            ID_FILTER_MODE_REGULAR_C = 0,                                 //鏅�氳繃婊�
+            ID_FILTER_MODE_REGEX_C                                        //姝e垯琛ㄨ揪寮�
+        }
+
+        //姣忎釜ROI鐨刢odex鐨勮鍒�
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDFilterRules
+        {
+
+            public int minlength;                   //鏈�灏忔潯鐮侀暱搴�
+            public int maxlength;                   //鏈�澶ф潯鐮侀暱搴�
+            public long minvalue;                   //鏈�灏忓��
+            public long maxvalue;                   //鏈�澶у��
+
+            [MarshalAs(UnmanagedType.I1)]
+            public bool caseSensitive;              //鍖归厤澶у皬鍐�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool onlyDigital;                //绾暟瀛�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool onlyAlpha;                  //绾瓧姣�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string startstring;              //浠ユ寚瀹氬瓧绗︿覆寮�濮�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string endstring;                //浠ユ寚瀹氬瓧绗︿覆缁撴潫
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string constring;                //鍖呭惈鎸囧畾瀛楃涓�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string NotConstring;             //涓嶅寘鍚寚瀹氬瓧绗︿覆
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string wildcardstring;
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string rule_str; //瑙勫垯鍚嶇О
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
+            public string regexPattern;
+
+            public IDFilterMode filterMode;
+        }
+
+        public class IDFilterRulesCreate
+        {
+            public IDFilterRules createIDFilterRules()
+            {
+                IDFilterRules temIDFilterRules = new IDFilterRules();
+                temIDFilterRules.minlength = 0;
+                temIDFilterRules.maxlength = 0;
+                temIDFilterRules.minvalue = 0;
+                temIDFilterRules.maxvalue = 0;
+                temIDFilterRules.startstring = "";
+                temIDFilterRules.endstring = "";
+                temIDFilterRules.constring = "";
+                temIDFilterRules.NotConstring = "";
+                temIDFilterRules.wildcardstring = "";
+                temIDFilterRules.caseSensitive = true;
+                temIDFilterRules.onlyDigital = false;
+                temIDFilterRules.onlyAlpha = false;
+
+                return temIDFilterRules;
+            }
+        }
+
+        public enum IDSortOrder
+        {
+            ID_SORT_ORDER_ROI_ASC_C = 0,         // ROI 鍗囧簭
+            ID_SORT_ORDER_ROI_DESC_C,            // ROI 闄嶅簭
+            ID_SORT_ORDER_CENTERX_ASC_C,         // 涓績鍧愭爣 X 鍗囧簭
+            ID_SORT_ORDER_CENTERX_DESC_C,        // 涓績鍧愭爣 X 闄嶅簭
+            ID_SORT_ORDER_CENTERY_ASC_C,         // 涓績鍧愭爣 Y 鍗囧簭
+            ID_SORT_ORDER_CENTERY_DESC_C,        // 涓績鍧愭爣 Y 闄嶅簭
+            ID_SORT_ORDER_CODEVALUE_ASC_C,       // 鐮佺粨鏋滄暟鍊煎崌搴�
+            ID_SORT_ORDER_CODEVALUE_DESC_C       // 鐮佺粨鏋滄暟鍊奸檷搴�
+        }
+        /*
+        *杈撳嚭鏁版嵁鏍煎紡閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDDataConfig
+        {
+            public IDSortOrder positionRules;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool noreadStatus;                                              //鏃犺琛ラ綈浣胯兘
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] noreadString;                                         //鏃犺琛ラ綈
+            [MarshalAs(UnmanagedType.I1)]
+            public bool conditionEnable;                                           //杈撳嚭鏉′欢浣胯兘
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] conditionInfo;                                            //杈撳嚭鏉′欢
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] formatInfo;                                               //鏍煎紡鍖栦俊鎭�
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] headInfo;                                             //澶撮儴鎻掑叆
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] tailInfo;                                             //灏鹃儴鎻掑叆
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enterEnable;                                               //鍥炶溅浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool lineFeedEnable;                                            //鎹㈣浣胯兘
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] falseInfo;                                                //鏉′欢false鏃惰緭鍑�
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] busyInfo;                                             //BUSY鏃惰緭鍑�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool emptySendEnabel;                                           //鍙戦�佺┖缁撴灉浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableHEX;                                                 //鍚敤16杩涘埗
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableInstantOutput;                                       //鍚敤绔嬪嵆杈撳嚭
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableOneByOne;                                            //鍚敤OneByOne
+            public uint oneByOnePeriod;                                    //OneByOne鍛ㄦ湡(ms),鑼冨洿锛�20---10000
+
+        }
+
+
+        public class IDDataConfigCreate
+        {
+            public IDDataConfig createIDDataConfig()
+            {
+                IDDataConfig temIDDataConfig = new IDDataConfig();
+                temIDDataConfig.noreadStatus = false;
+                string noreadString = "NG";
+                temIDDataConfig.noreadString = noreadString.ToCharArray();
+                temIDDataConfig.conditionEnable = false;
+                string formatInfo = "<Code*String>";
+                temIDDataConfig.formatInfo = formatInfo.ToCharArray();
+                string headInfo = "";
+                temIDDataConfig.headInfo = headInfo.ToCharArray();
+                string tailInfo = "";
+                temIDDataConfig.tailInfo = tailInfo.ToCharArray();
+                temIDDataConfig.enterEnable = false;
+                temIDDataConfig.lineFeedEnable = false;
+                string falseInfo = "";
+                temIDDataConfig.falseInfo = falseInfo.ToCharArray();
+                string busyInfo = "";
+                temIDDataConfig.busyInfo = busyInfo.ToCharArray();
+                temIDDataConfig.emptySendEnabel = false;
+                temIDDataConfig.enableHEX = false;
+                temIDDataConfig.enableInstantOutput = false;
+                temIDDataConfig.enableOneByOne = false;
+                temIDDataConfig.oneByOnePeriod = 100;
+                return temIDDataConfig;
+            }
+        }
+        /*
+        *tcp鏈嶅姟鍣ㄩ�氳閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDTcpServerCommunication
+        {
+            public uint port;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;
+        }
+
+
+        public class IDTcpServerCommunicationCreate
+        {
+            public IDTcpServerCommunication createIDTcpServerCommunication()
+            {
+                IDTcpServerCommunication temIDTcpServerCommunication = new IDTcpServerCommunication();
+
+                temIDTcpServerCommunication.status = false;
+                temIDTcpServerCommunication.port = 1024;
+                return temIDTcpServerCommunication;
+            }
+        }
+
+        /*
+        *TCP瀹㈡埛绔�氳
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDTcpClientCommunication
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;
+            public uint port;
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string ipAdress;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool heartBeatEnable;                                           //蹇冭烦浣胯兘
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string heartBeatCmd;                                          //蹇冭烦鎸囦护
+            public uint heartBeatPeriod;                                   //蹇冭烦鍛ㄦ湡(ms)鏈�灏忓��50ms
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableHEX;                                                 //鍚敤16杩涘埗
+
+        }
+
+
+        public class IDTcpClientCommunicationCreate
+        {
+            public IDTcpClientCommunication createIDTcpClientCommunication()
+            {
+                IDTcpClientCommunication temIDTcpClientCommunication = new IDTcpClientCommunication();
+                temIDTcpClientCommunication.status = false;
+                temIDTcpClientCommunication.port = 1024;
+                temIDTcpClientCommunication.ipAdress = "127.0.0.1";
+
+                temIDTcpClientCommunication.heartBeatEnable = false;
+                temIDTcpClientCommunication.heartBeatCmd = "heartBeat";
+
+                temIDTcpClientCommunication.heartBeatPeriod = 500;
+                temIDTcpClientCommunication.enableHEX = false;
+                return temIDTcpClientCommunication;
+            }
+        }
+
+        /*
+        *涓插彛娉㈢壒鐜�
+        */
+        public enum IDBaud
+        {
+            ID_BAUDBR_110 = 0,
+            ID_BAUDBR_300 = 1,
+            ID_BAUDBR_600 = 2,
+            ID_BAUDBR_1200 = 3,
+            ID_BAUDBR_2400 = 4,
+            ID_BAUDBR_4800 = 5,
+            ID_BAUDBR_9600 = 6,
+            ID_BAUDBR_14400,
+            ID_BAUDBR_19200 = 8,
+            ID_BAUDBR_38400 = 9,
+            ID_BAUDBR_56000,
+            ID_BAUDBR_57600 = 11,
+            ID_BAUDBR_115200 = 12,
+            ID_BAUDBR_128000,
+            ID_BAUDBR_256000
+        }
+
+
+        /*
+        *涓插彛鏍¢獙浣�
+        */
+        public enum IDParity
+        {
+            ID_PARITY_NONE = 0,                                               //鏃�
+            ID_PARITY_ODD,                                                    //濂囨牎楠�
+            ID_PARITY_EVEN                                                    //鍋舵牎楠�
+        }
+
+
+        /*
+        *涓插彛鏁版嵁浣�
+        */
+        public enum IDDatabits
+        {
+            ID_DATABITS_5BIT = 0,
+            ID_DATABITS_6BIT = 1,
+            ID_DATABITS_7BIT = 2,
+            ID_DATABITS_8BIT = 3
+        }
+
+
+        /*
+        *涓插彛鍋滄浣�
+        */
+        public enum IDStopbits
+        {
+            ID_STOPBITS_ONE = 0,
+            ID_STOPBITS_TWO = 1
+        }
+
+        /*
+        *涓插彛閫氳閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDSerialPortCommunication
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;
+            public IDBaud baudRate;                          //娉㈢壒鐜�
+            public IDParity parity;                          //鏍¢獙浣�
+            public IDDatabits databits;                      //鏁版嵁浣�
+            public IDStopbits stopbits;                      //鍋滄浣�
+
+        }
+
+        public class IDSerialPortCommunicationCreate
+        {
+            public IDSerialPortCommunication createIDSerialPortCommunication()
+            {
+                IDSerialPortCommunication temIDSerialPortCommunication = new IDSerialPortCommunication();
+                temIDSerialPortCommunication.status = false;
+                temIDSerialPortCommunication.baudRate = IDBaud.ID_BAUDBR_9600;
+                temIDSerialPortCommunication.parity = IDParity.ID_PARITY_NONE;
+                temIDSerialPortCommunication.databits = IDDatabits.ID_DATABITS_8BIT;
+                temIDSerialPortCommunication.stopbits = IDStopbits.ID_STOPBITS_ONE;
+
+                return temIDSerialPortCommunication;
+            }
+        }
+
+        /*
+        *閿洏杈撳嚭
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDKeyboardConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;
+        }
+
+
+
+        /*
+        *EIP閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDEipConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool resultSwap;//缁撴灉浜ゆ崲
+            public uint inputSize;//杈撳叆缁勪欢澶у皬
+            public uint outputSize;//杈撳嚭缁勪欢澶у皬
+            public uint resultTimeout;//缁撴灉瓒呮椂
+
+        }
+
+        public class IDEipConfigCreate
+        {
+            public IDEipConfig createIDEipConfig()
+            {
+                IDEipConfig temIDEipConfig = new IDEipConfig();
+                temIDEipConfig.enable = false;
+                temIDEipConfig.resultSwap = false;
+                temIDEipConfig.inputSize = 200;
+                temIDEipConfig.outputSize = 200;
+                temIDEipConfig.resultTimeout = 1000;
+
+                return temIDEipConfig;
+            }
+        }
+
+        /*
+        *modbus瑙掕壊
+        */
+        public enum IDModbusRole
+        {
+            ID_MODBUS_ROLE_MASTER = 0,
+            ID_MODBUS_ROLE_SLAVE = 1
+        }
+
+
+        /*
+        *modbus杩炴帴绫诲瀷
+        */
+        public enum IDModbusConnectionType
+        {
+            ID_MODBUSONNECTION_TCP = 0,
+            ID_MODBUSONNECTIONOM_RTU
+        }
+
+
+        /*
+        *modbus鍔熻兘妯″潡
+        */
+        public enum IDModbusFunction
+        {
+            ID_MODBUS_FUNCTIONOILS = 2,                                     //绾垮湀
+            ID_MODBUS_FUNCTION_HOLDING_REGISTERS = 4                          //淇濇寔瀵勫瓨鍣�	
+        }
+
+
+        /*
+        *modbus閫氳閰嶇疆,瀵瑰簲涓插彛鍙傛暟閰嶇疆浣跨敤涓插彛閫氳涓暟鎹�
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDModbusConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;                                //浣胯兘
+            public IDModbusRole role;                            //瑙掕壊,涓荤珯/浠庣珯
+            public IDModbusConnectionType connectionType;        //杩炴帴绫诲瀷
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string tcpServerIp;                           //鍋氫富绔欐槸杩炴帴浠庣珯IP
+            public uint tcpPort;                       //tcp绔彛
+            public uint timeout;                       //瓒呮椂鏃堕棿
+            public uint retriesNum;                    //閲嶈瘯娆℃暟
+            public uint serverAddress;                 //鏈嶅姟鍣ㄥ湴鍧�
+            public IDModbusFunction function;                    //鏁版嵁鍔熻兘妯″潡
+            public uint startAddress;                  //寮�濮嬪湴鍧�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool resultSwap;                            //鏁版嵁浜ゆ崲
+            public uint resultTimeout;                 //缁撴灉瓒呮椂
+
+        }
+
+
+        public class IDModbusConfigCreate
+        {
+            public IDModbusConfig createIDModbusConfig()
+            {
+                IDModbusConfig temIDModbusConfig = new IDModbusConfig();
+                temIDModbusConfig.status = false;
+                temIDModbusConfig.role = IDModbusRole.ID_MODBUS_ROLE_MASTER;
+                temIDModbusConfig.connectionType = IDModbusConnectionType.ID_MODBUSONNECTION_TCP;
+                temIDModbusConfig.tcpServerIp = "127.0.0.1";
+                temIDModbusConfig.tcpPort = 512;
+                temIDModbusConfig.timeout = 3000;
+                temIDModbusConfig.retriesNum = 300;
+                temIDModbusConfig.serverAddress = 0;
+                temIDModbusConfig.function = IDModbusFunction.ID_MODBUS_FUNCTION_HOLDING_REGISTERS;
+                temIDModbusConfig.startAddress = 0;
+                temIDModbusConfig.resultSwap = false;
+                temIDModbusConfig.resultTimeout = 1000;
+
+                return temIDModbusConfig;
+            }
+        }
+
+
+        /*
+        *profinet閫氳閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDProfinetConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable;                                //浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool serialModule;                          //涓插彛妯″潡
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string ipAddress;                           //閰嶇疆鍚�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool resultSwap;                            //鏁版嵁浜ゆ崲
+            public uint resultSize;                            //缁撴灉澶у皬(瀛楄妭Bytes)
+            public uint resultTimeout;                         //缁撴灉瓒呮椂鏃堕棿(ms)
+
+        }
+
+        public class IDProfinetConfigCreate
+        {
+            public IDProfinetConfig createIDProfinetConfig()
+            {
+                IDProfinetConfig temIDProfinetConfig = new IDProfinetConfig();
+
+                temIDProfinetConfig.enable = false;
+                temIDProfinetConfig.serialModule = false;
+                temIDProfinetConfig.ipAddress = "127.0.0.1";
+                temIDProfinetConfig.resultSwap = false;
+                temIDProfinetConfig.resultSize = 200;
+                temIDProfinetConfig.resultTimeout = 1000;
+                return temIDProfinetConfig;
+            }
+        }
+
+        /*
+        *鍥惧儚鏍煎紡
+        */
+        public enum IDImageFormat
+        {
+            ID_IMAGE_FORMAT_JPG = 0,
+            ID_IMAGE_FORMAT_PNG,
+            ID_IMAGE_FORMAT_BMP,
+            ID_IMAGE_FORMAT_RANDERING_JPG,                                    //娓叉煋鍥綣PG
+            ID_IMAGE_FORMAT_RANDERING_PNG,                                    //娓叉煋鍥綪NG
+            ID_IMAGE_FORMAT_RANDERING_BMP                                 //娓叉煋鍥綠MP
+        }
+
+
+        public enum IDFtpSendModel
+        {
+            ID_FTP_SEND_MODEL_NOT = 0,                                        //涓嶄繚瀛�
+            ID_FTP_SEND_MODEL_NG,                                         //NG淇濆瓨
+            ID_FTP_SEND_MODEL_ALL,                                            //鍏ㄤ繚瀛�
+            ID_FTP_SEND_MODELONDITION                                       //鎸囧畾鏉′欢
+        }
+
+        public enum IDFtpSaveStrategy
+        {
+            ID_FTP_SAVE_STRATEGY_ALL_C = 0,          // 鍏ㄩ儴甯�
+            ID_FTP_SAVE_STRATEGY_LATEST_C,           // 鏈�鏂板抚
+            ID_FTP_SAVE_STRATEGY_SPECIFIC_INDEX_C,   // 鎸囧畾甯�
+            ID_FTP_SAVE_STRATEGY_SPECIFIC_RANGE_C,   // 鎸囧畾鑼冨洿
+        }
+
+        public struct IDFTPSavePolicy
+        {
+            public IDFtpSaveStrategy saveStrategy;   // 淇濆瓨绛栫暐
+            public int frameIndex;                   // 鎸囧畾甯у彿锛堜粎褰撶瓥鐣ヤ负淇濆瓨鎸囧畾甯ф椂浣跨敤锛�
+            public int rangeStartFrame;              // 璧峰甯у彿锛堜粎褰撶瓥鐣ヤ负淇濆瓨鎸囧畾鑼冨洿甯ф椂浣跨敤锛�
+            public int rangeEndFrame;                // 缁撴潫甯у彿锛堜粎褰撶瓥鐣ヤ负淇濆瓨鎸囧畾鑼冨洿甯ф椂浣跨敤锛�
+
+        }
+
+
+        /*
+        *FTP閰嶇疆淇℃伅
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDFtpConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;                                //浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isLocal;                               //鏈湴淇濆瓨
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string iPAddress;                         //鏈嶅姟鍣↖P
+            public uint port;                          //鏈嶅姟鍣ㄧ鍙�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string username;                         //鐢ㄦ埛鍚�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string password;                         //瀵嗙爜
+            public IDImageFormat imageformat;                    //鍥惧儚鏍煎紡
+            public uint compressionRate;               //鍘嬬缉鐜�
+            public uint maxImageCount;                 //鏈�澶т繚瀛樺紶鏁�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string filePath;                         //鍥惧儚璺緞
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string defaultFileName;                      //榛樿鏂囦欢鍚�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string localSavePath;                        //鏈湴淇濆瓨璺緞
+            [MarshalAs(UnmanagedType.I1)]
+            public bool containsBarcodeDateEnable;             //鍖呭惈鏃堕棿鎴�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool containsNumberEnable;                  //鍖呭惈搴忓彿
+            [MarshalAs(UnmanagedType.I1)]
+            public bool containsFrameNumberEnable;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isDecodingResultNaming;                //鍖呭惈缁撴灉
+            [MarshalAs(UnmanagedType.I1)]
+            public bool containsBarcodeIDEnable;               //ID鍛藉悕
+            [MarshalAs(UnmanagedType.I1)]
+            public bool containsTriggerSequenceEnable;
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string sendCondition;                        //鍙戦�佹潯浠�
+            public IDFTPSavePolicy savePolicy;
+
+            [MarshalAs(UnmanagedType.I1)]
+            public bool resultRenderingEnable;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool boundingBoxRenderingEnable;
+        }
+
+        public class IDFtpConfigCreate
+        {
+            public IDFtpConfig createIDFtpConfig()
+            {
+                IDFtpConfig temIDFtpConfig = new IDFtpConfig();
+
+                temIDFtpConfig.status = false;
+                temIDFtpConfig.isLocal = true;
+
+                temIDFtpConfig.iPAddress = "127.0.0.1";
+
+
+                temIDFtpConfig.port = 2121;
+                temIDFtpConfig.username = "ftp";
+
+
+                temIDFtpConfig.password = "123456";
+
+
+
+                temIDFtpConfig.imageformat = IDImageFormat.ID_IMAGE_FORMAT_BMP;
+                temIDFtpConfig.compressionRate = 6;
+                temIDFtpConfig.maxImageCount = 50;
+
+                temIDFtpConfig.filePath = "";
+
+
+                temIDFtpConfig.localSavePath = "/root/solution/NG_Image";
+
+
+                temIDFtpConfig.defaultFileName = "image";
+
+                temIDFtpConfig.containsBarcodeDateEnable = true;
+                temIDFtpConfig.containsNumberEnable = false;
+                temIDFtpConfig.isDecodingResultNaming = false;
+                temIDFtpConfig.containsBarcodeIDEnable = false;
+                temIDFtpConfig.sendCondition = "NG send";
+
+
+                //temIDFtpConfig.sendModel = IDFtpSendModel.ID_FTP_SEND_MODEL_NG;
+
+                return temIDFtpConfig;
+            }
+        }
+        /*
+        *鐩戞帶HTTP閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDWebpageConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;                                //浣胯兘
+            public int port;                                   //绔彛
+            public int imageQuality;                           //鍥惧儚璐ㄩ噺
+            [MarshalAs(UnmanagedType.I1)]
+            public bool resultDispaly;                         //缁撴灉灞曠ず
+            [MarshalAs(UnmanagedType.I1)]
+            public bool imageDisplay;                          //鍥惧儚灞曠ず
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
+            public string displayInfo;                         //鏄剧ず淇℃伅
+
+        }
+
+        public class IDWebpageConfigCreate
+        {
+            public IDWebpageConfig createIDWebpageConfig()
+            {
+                IDWebpageConfig temIDWebpageConfig = new IDWebpageConfig();
+                temIDWebpageConfig.status = false;
+                temIDWebpageConfig.port = 8080;
+                temIDWebpageConfig.imageQuality = 60;
+                temIDWebpageConfig.resultDispaly = true;
+                temIDWebpageConfig.imageDisplay = true;
+                temIDWebpageConfig.displayInfo = "";
+
+                return temIDWebpageConfig;
+            }
+
+        }
+        /*
+        * FINS閫氳閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDFinsConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;                                //浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isTcp;                                 //TCP/UDP
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string serverIp;                          //鏈嶅姟鍣↖P
+            public uint port;                          //鏈嶅姟鍣ㄧ鍙�
+            public uint startAddress;                  //寮�濮嬪湴鍧�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool resultSwap;                            //鏁版嵁浜ゆ崲
+            public uint resultSize;                    //缁撴灉澶у皬(瀛楄妭Bytes)
+            public uint resultTimeout;                 //缁撴灉瓒呮椂(ms)
+
+        }
+
+        public class IDFinsConfigCreate
+        {
+            public IDFinsConfig createIDFinsConfig()
+            {
+                IDFinsConfig temIDFinsConfig = new IDFinsConfig();
+
+                temIDFinsConfig.status = false;
+                temIDFinsConfig.isTcp = true;
+                temIDFinsConfig.serverIp = "0.0.0.0";
+                temIDFinsConfig.port = 9600;
+                temIDFinsConfig.startAddress = 0;
+                temIDFinsConfig.resultSwap = false;
+                temIDFinsConfig.resultSize = 200;
+                temIDFinsConfig.resultTimeout = 1000;
+                return temIDFinsConfig;
+            }
+        }
+        /*
+        *HTTP鍙戦�佹柟寮�
+        */
+        public enum IDHttpMethod
+        {
+            ID_HTTP_METHOD_POST = 0,
+            ID_HTTP_METHOD_GET
+        }
+
+
+        /*
+        * Http閫氳閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDHttpConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool status;
+            public IDHttpMethod method;
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
+            public string httpURL;
+
+        }
+
+        public class IDHttpConfigCreate
+        {
+            public IDHttpConfig createIDHttpConfig()
+            {
+                IDHttpConfig temIDHttpConfig = new IDHttpConfig();
+
+                temIDHttpConfig.status = false;
+                temIDHttpConfig.method = IDHttpMethod.ID_HTTP_METHOD_POST;
+                temIDHttpConfig.httpURL = "";
+                return temIDHttpConfig;
+            }
+        }
+
+        /*
+        *缁勭綉鏁版嵁閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDNetworkingConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool networkingEnable;                              //缁勭綉鍚敤
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isMaster;                                      //鏄惁鏄富鏈�
+            public uint communitionPort;                       //杩炴帴绔彛
+            public uint masterTimeout;                         //涓绘満瓒呮椂
+            public uint masterMaxConnectNumber;                //涓绘満鏈�澶ц杩炴帴鏁�
+            public uint slaveID;                               //浠庢満ID
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isTriggerSlave;                                //鏄惁瑙﹀彂浠庢満
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string masterIP;                                  //涓绘満IP
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isReceiveTrigger;                              //鏄惁鎺ュ彈涓绘満瑙﹀彂
+
+            public uint triggerDelayTime;                      //瑙﹀彂寤舵椂
+
+            [MarshalAs(UnmanagedType.I1)]
+            public bool ConnectionStatus;                              //杩炴帴鐘舵��
+            [MarshalAs(UnmanagedType.I1)]
+            public bool deviceRoiPlaceholder;                          //璁惧ROI琛ラ綈鍗犱綅
+
+        }
+
+        public class IDNetworkingConfigCreate
+        {
+            public IDNetworkingConfig createIDNetworkingConfig()
+            {
+                IDNetworkingConfig temIDNetworkingConfig = new IDNetworkingConfig();
+
+                temIDNetworkingConfig.networkingEnable = false;
+                temIDNetworkingConfig.isMaster = true;
+                temIDNetworkingConfig.communitionPort = 5128;
+                temIDNetworkingConfig.masterTimeout = 1500;
+                temIDNetworkingConfig.masterMaxConnectNumber = 8;
+                temIDNetworkingConfig.slaveID = 1;
+                temIDNetworkingConfig.isTriggerSlave = false;
+                temIDNetworkingConfig.masterIP = "127.0.0.1";
+                temIDNetworkingConfig.isReceiveTrigger = false;
+                temIDNetworkingConfig.triggerDelayTime = 1;
+                temIDNetworkingConfig.ConnectionStatus = false;
+                temIDNetworkingConfig.deviceRoiPlaceholder = false;
+                return temIDNetworkingConfig;
+            }
+        }
+
+        //鏉$爜绫诲瀷鏋氫妇
+        public enum IDCodeType
+        {
+            IDODETYPE_UNKNOWN = 0x0,
+            IDODETYPEODE39 = 0x1,
+            IDODETYPEODE128 = 0x2,
+            IDODETYPE_EAN8 = 0x4,
+            IDODETYPE_EAN13 = 0x8,
+            IDODETYPE_UPC_A = 0x10,
+            IDODETYPE_UPC_E = 0x20,
+            IDODETYPEODE93 = 0x40,
+            IDODETYPE_ITF = 0x80,
+            IDODETYPE_GS1_128 = 0x100,
+            IDODETYPE_GS1_DATABAR_EXPANDED = 0x200,
+            IDODETYPE_GS1_DATABAR = 0x400,
+            IDODETYPE_GS1_DATABAR_STACKED = 0x600,
+            IDODETYPE_GS1_DATABAR_EXPANDED_STACKED = 0x800,
+            IDODETYPE_GS1_DATABAR_LINITED = 0x1000,
+            IDODETYPE_PHARMACODE = 0x2000,
+            IDODETYPE_MSI = 0x4000,
+            IDODETYPE_PLESSEY = 0x8000,
+            IDODETYPEODEBAR = 0x10000,
+            IDODETYPE_INT2OF5 = 0x20000,
+            IDODETYPE_STD2OF5 = 0x40000,
+            IDODETYPE_MTX2OF5 = 0x80000,
+            IDODETYPE_DATAMATRIX = 0x04000000,
+            IDODETYPE_QRCODE = 0x08000000,
+            IDODETYPE_PDF417 = 0x010000000,
+            IDODETYPE_MICROQR = 0x020000000,
+            IDODETYPE_AZTEC = 0x040000000,
+            ID_CODETYPE_VERICODEC = 0x070000000
+        }
+
+        /*
+        *MC閫氫俊PLC鍨嬪彿
+        */
+        public enum IDMcBrandModel
+        {
+            ID_MC_BRAND_L_C = 0,
+            ID_MC_BRAND_Q_C = 1,
+            ID_MC_BRAND_R_C = 2,
+            ID_MC_BRAND_A_C = 4,
+            ID_MC_BRAND_FX3U_C = 5,
+            ID_MC_BRAND_FX5U_C = 6
+        }
+
+
+        /*
+        *MC閫氫俊鏁版嵁鏍煎紡
+        */
+        public enum IDMcDataFormat
+        {
+            ID_MC_DATA_BIN_C = 0,
+            ID_MC_DATA_ASCII_C
+        }
+
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDDeviceInfo
+        {
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string networkIP;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string networkMask;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string networkGateway;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string networkAdapterFriendName;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string networkMac;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 20)]
+            public string cameraIP;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraNetMask;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraGateWay;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraMac;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraSN;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraModel;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraManufucturer;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraSoftwareVersion;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraFirmwareVersion;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraAlias;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string cameraType;
+
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
+            public string deviceFullType;                       //璁惧瀹屾暣鍨嬪彿
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 1024)]
+            public string cameraChipType;                       //鐩告満鑺墖绫诲瀷
+            public uint cameraImageWidth;                       //鐩告満鍥惧儚瀹藉害
+            public uint cameraImageHeight;                      //鐩告満鍥惧儚楂樺害
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isRTDevice;                             //鏄惁涓哄疄鏃惰澶�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool globalExposure;                         //鍏ㄥ眬鏇濆厜
+            [MarshalAs(UnmanagedType.I1)]
+            public bool autoFocus;                              //鑷姩瀵圭劍
+            public uint lightChannelNum;                        //鍏夋簮閫氶亾鏁�
+            public uint diNum;                                  //DI寮曡剼鏁�
+            public uint doNum;                                  //DO寮曡剼鏁�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool blueToothInterface;                     //钃濈墮璁惧
+            [MarshalAs(UnmanagedType.I1)]
+            public bool serialPortInterface;                    //涓插彛鎺ュ彛
+            [MarshalAs(UnmanagedType.I1)]
+            public bool usbInterface;                           //USB鎺ュ彛
+            [MarshalAs(UnmanagedType.I1)]
+            public bool wirelessInterface;                      //WIFI鎺ュ彛
+            [MarshalAs(UnmanagedType.I1)]
+            public bool ethernetInterface;                      //浠ュお缃戞帴鍙�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool busyState;					            //蹇欑鐘舵��
+        }
+
+        //纭欢淇℃伅閫氱敤鑺傜偣缁撴瀯浣�
+        public struct IDNodeParam
+        {
+            public float maxValue;
+            public float minValue;
+            public float value;
+            public int type;
+        }
+
+        public IDNodeParam createIDNodeParam()
+        {
+            IDNodeParam param;
+            param.maxValue = 0;
+            param.minValue = 0;
+            param.value = 0;
+            param.type = 0;
+            return param;
+        }
+
+
+        //纭欢淇℃伅缁撴瀯浣�
+        public struct IDDeviceHarewareParams
+        {
+            public int imageWidth;
+            public int imageHight;
+            public IDNodeParam exposureStep;
+            public IDNodeParam exposure;
+            public IDNodeParam gamma;
+            public IDNodeParam gain;
+            public IDNodeParam illuminanatInerval;
+
+            public IDNodeParam focusingLocation;
+            public IDNodeParam DICount;
+            public IDNodeParam DOCount;
+            public IDNodeParam isOpenSightingDevice;
+        }
+
+
+        public IDDeviceHarewareParams createID_DEVICE_HARDWARE_PARAMS()
+        {
+            IDDeviceHarewareParams HarewareParams;
+            HarewareParams.imageWidth = 0;
+            HarewareParams.imageHight = 0;
+            HarewareParams.exposureStep = createIDNodeParam();
+            HarewareParams.exposure = createIDNodeParam();
+            HarewareParams.gamma = createIDNodeParam();
+            HarewareParams.gain = createIDNodeParam();
+            HarewareParams.illuminanatInerval = createIDNodeParam();
+
+            HarewareParams.focusingLocation = createIDNodeParam();
+            HarewareParams.DICount = createIDNodeParam();
+            HarewareParams.DOCount = createIDNodeParam();
+            HarewareParams.isOpenSightingDevice = createIDNodeParam();
+
+            return HarewareParams;
+
+        }
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        //鐐圭被鍨嬬粨鏋勪綋
+        public struct IDPoint
+        {
+            public double x;
+            public double y;
+        }
+
+
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDROIInfo
+        {
+
+            public IDPoint topLeftPoint;
+            public IDPoint bottomRightPoint;
+            public IDCodeType codeType;
+            public uint roiIndex;
+            public uint codeNum;
+            public uint timeout;
+        }
+
+        public class IDDeviceROI
+        {
+            // 鍒涘缓IDROIInfo鐨勬柟娉�
+            public IDROIInfo CreateIDROIInfo()
+            {
+                IDROIInfo temROIInfo = new IDROIInfo
+                {
+                    codeNum = 1,
+                    timeout = 500,
+
+                };
+
+                return temROIInfo;
+            }
+        }
+
+
+
+        //璐ㄩ噺璇勪及杈撳嚭缁撴灉
+        //ISO IEC 15416-2016   涓�缁寸爜
+        public struct IDQuality15416
+        {
+            public float overallQuality;    //鎬昏川閲�
+            public float decode;            //鍙В鐮佹��
+            public float edgeDetermination; //杈圭紭纭畾
+            public float symbolContrast;    //瀛楃瀵规瘮搴�
+            public float minReflectance;    //鏈�灏忓弽灏勭巼
+            public float minEdgeContrast;   //鏈�灏忚竟缂樺姣斿害
+            public float modulation;        //璋冨埗
+            public float quietZone;         //闈欐鍖�
+            public float decodability;      //瑙g爜瀹归敊搴�
+            public float defects;           //缂洪櫡
+        }
+
+
+        //ISO_IEC15415-2011 QR
+        public struct IDQualityQR15415
+        {
+            public float overallQuality;        //鎬昏川閲�
+            public float decode;                //鍙В鐮佹��
+            public float symbolContrast;        //瀛楃瀵规瘮搴�
+            public float fixedPatternDamage;    //鍥哄畾妯″潡鎹熷潖
+            public float modulation;            //璋冨埗
+            public float reflectanceMargin;     //鍙嶅皠瑁曞害
+            public float unusedErrCorrection;   //鏈娇鐢ㄧ籂閿欑爜
+            public float axialNonuniformity;    //杞村悜涓嶅潎鍖�鎬�
+            public float gridNonuniformity;     //缃戞牸涓嶅潎鍖�鎬�
+            public float formatInformation;     //鏍煎紡淇℃伅
+            public float versionInformation;    //鐗堟湰淇℃伅
+            public float contrastUniformity;
+            public float printGrowth;
+            public float aperture;
+        }
+
+        //DM 15415鐮佽川閲�
+        public struct IDQualityDM15415
+        {
+            public float overallQuality;        //鎬昏川閲�
+            public float decode;                //鍙В鐮佹��
+            public float symbolContrast;        //瀛楃瀵规瘮搴�
+            public float fixedPatternDamage;    //鍥哄畾妯″潡鎹熷潖
+            public float modulation;            //璋冨埗
+            public float reflectanceMargin;     //鍙嶅皠瑁曞害
+            public float unusedErrCorrection;   //鏈娇鐢ㄧ籂閿欑爜
+            public float axialNonuniformity;    //杞村悜涓嶅潎鍖�鎬�
+            public float gridNonuniformity;     //缃戞牸涓嶅潎鍖�鎬�
+            public float contrastUniformity;
+            public float printGrowth;
+            public float aperture;
+        }
+
+
+        //ISO IEC TR 29158-2011(AIM-DPM-1-2006)
+        public struct IDQualityDM29518
+        {
+            public float overallQuality;        //鎬昏川閲�
+            public float decode;                //鍙В鐮佹��
+            public float cellContrast;          //鍗曞厓瀵规瘮搴�
+            public float cellModulation;        //鍗曞厓璋冨埗
+            public float reflectanceMargin;     //鍙嶅皠瑁曞害
+            public float fixedPatternDamage;    //鍥哄畾妯″潡鎹熷潖
+            public float axialNonuniformity;    //杞村悜涓嶅潎鍖�鎬�
+            public float gridNonuniformity;     //缃戞牸涓嶅潎鍖�鎬�
+            public float unusedErrCorrection;   //鏈娇鐢ㄧ籂閿欑爜
+            public float contrastUniformity;
+            public float meanLight;
+            public float printGrowth;
+            public float aperture;
+        }
+
+        //QR 29158缁撴瀯浣�
+        public struct IDQualityQR29518
+        {
+            public float overallQuality;        //鎬昏川閲�
+            public float decode;                //鍙В鐮佹��
+            public float cellContrast;          //鍗曞厓瀵规瘮搴�
+            public float cellModulation;        //鍗曞厓璋冨埗
+            public float reflectanceMargin;     //鍙嶅皠瑁曞害
+            public float fixedPatternDamage;    //鍥哄畾妯″潡鎹熷潖
+            public float axialNonuniformity;    //杞村悜涓嶅潎鍖�鎬�
+            public float gridNonuniformity;     //缃戞牸涓嶅潎鍖�鎬�
+            public float unusedErrCorrection;   //鏈娇鐢ㄧ籂閿欑爜
+            public float formatInformation;     //鏍煎紡淇℃伅
+            public float versionInformation;    //鐗堟湰淇℃伅
+            public float contrastUniformity;
+            public float meanLight;
+            public float printGrowth;
+            public float aperture;
+        }
+
+        //PDF417 15415褰撳墠绠楁硶鏆備笉鏀寔
+        public struct IDQualityPDF417_15415
+        {
+            public float overallQuality;
+            public float decode;
+            public float symbolContrast;
+            public float fixPattern;
+            public float modulation;
+            public float unusedErrCorrection;
+            public float axialNonuniformity;
+            public float gridNonuniformity;
+            public float startStopPattern;
+            public float codewordYield;
+            public float defects;
+            public float aperture;
+        }
+
+
+
+
+        [StructLayout(LayoutKind.Sequential, Pack = 1, Size = 36)]
+        public struct IDDecodeInfo
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool decodeStatus;                           //瑙g爜缁撴灉鐘舵�丱K/NG   
+            public float runtime;                               //瑙g爜鑰楁椂            
+            public uint hardParamIndex;
+            public uint successCount;                           //瑙g爜鎴愬姛鏁�
+            public uint failedCount;                            //瑙g爜澶辫触鏁�
+            public uint decodeCount;                            //鎬昏В鐮佹暟
+            public double decodeRate;                           //瑙g爜鐜�
+            public uint IDDecodeROIInfoLength;                  //ROI鐨勪釜鏁�
+        }
+
+
+        //褰撳墠ROI瑙g爜缁撴灉
+        public struct IDDecodeROIInfo
+        {
+
+            public int roiIndex;                                        //绗嚑涓猂OI
+            public int decodeReusltLength;                              //鐩墠鍙細鏈変竴涓爜鍒讹紝缁撴灉涓�1锛屽悗缁繚鐣欏彲鎵╁睍鎬�
+        }
+
+
+        //褰撳墠瑙g爜绫诲瀷,鍙湁涓�涓爜鍒舵湁鏁版嵁
+        public struct IDDecodeResult
+        {
+            public int conbination;
+            public int dmResultsLength;
+            public int qrResultsLength;
+            public int pdf417ResultsLength;
+            public int barcodeResultsLength;
+        }
+
+        //DM瑙g爜缁撴灉
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDDMCodeResult
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool state;                   // 褰撳墠缁撴灉瑙g爜鐘舵��
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] subType;               // 瀛愮被鍨�
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] codeString;            // 瑙g爜缁撴灉
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] polarity;              // 鏋佹��
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] shape;                 // 鏍峰紡
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] mirror;                // 闀滃儚
+            public int contrast;                 // 瀵规瘮搴�
+            public float moduleSize;
+            public float orientation;
+
+        }
+
+
+
+        //QR瑙g爜缁撴灉
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDQRCodeResult
+        {
+
+            [MarshalAs(UnmanagedType.I1)]
+            public bool state;                                      //褰撳墠缁撴灉瑙g爜鐘舵��
+                                                                    //IDCodeType codeType;							//鏉$爜绫诲瀷
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] codeString;                                //瑙g爜缁撴灉
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] subType;
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] polarity;
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] errorLevel;
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] mirror;									//闀滃儚
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] version;                                  //鐗堟湰淇℃伅
+            public int contrast;
+            public float moduleSize;
+            public float orientation;								//瑙掑害
+        }
+
+        //PDF417瑙g爜缁撴灉
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDPDF417CodeResult
+        {
+
+            [MarshalAs(UnmanagedType.I1)]
+            public bool state;										//褰撳墠缁撴灉瑙g爜鐘舵��
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] codeString;								//瑙g爜缁撴灉	
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] subType;									//瀛愮被鍨�
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] polarity;								//鏋佹��
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] mirror;                                   //闀滃儚
+            public int symbolRows;
+            public int symbolCols;
+            public int errorLevel;
+            public int contrast;
+            public float moduleHeight;
+            public float pixelPerModule;                            //moduleWidth
+            public float moduleRatio;
+            public float orientation;                               //瑙掑害
+
+            //IDQualityPDF417_15415 quality15415;
+        }
+
+
+        //barcode瑙g爜缁撴灉
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDBarCodeResult
+        {
+
+            [MarshalAs(UnmanagedType.I1)]
+            public bool state;										//褰撳墠缁撴灉瑙g爜鐘舵��
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+            public char[] codeString;                               //瑙g爜缁撴灉
+            public float orientation;                               //瑙掑害
+            public float pixelPerModule;
+
+        }
+
+        public unsafe struct StringList
+        {
+            public char* items;
+            public int size;
+            public int capacity;
+        }
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDQRCodeParam
+        {
+            public int modeType;                //妯″紡
+            public int polarity;                //鏋佹��
+            public int version;                 //鐗堟湰
+            public int sampleRate;              //闄嶉噰鏍�
+            public int edgeThreshod;            //闃堝��
+            public int mirror;                  //闀滃儚
+            public int codeNum;                 //鐮佹暟
+            public int timeOut;                 //绠楁硶瓒呮椂
+            [MarshalAs(UnmanagedType.I1)]
+            public bool outCandidate;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool outModuleArray;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable15415;            //15415鐮佽瘎绾�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable29158;            //29158鐮佽瘎绾�
+        }
+
+        public class IDQRCodeParamCreate
+        {
+            public IDQRCodeParam create()
+            {
+                IDQRCodeParam idQRCodeParam;
+
+                idQRCodeParam.modeType = 0; //妯″紡, 0,1,2
+                idQRCodeParam.polarity = 0; //鏋佹�� 0,1,2
+                idQRCodeParam.version = 0; //鐗堟湰 0~40
+                idQRCodeParam.sampleRate = 0;//闄嶉噰鏍峰�嶇巼 0~6	
+                idQRCodeParam.edgeThreshod = 30; //杈圭紭闃堝�� 1~255	
+                idQRCodeParam.mirror = 0; //闀滃儚, 0,1,2
+                idQRCodeParam.codeNum = 0; //鏉$爜涓暟 澶т簬绛変簬1
+                idQRCodeParam.timeOut = 500; //瓒呮椂 澶т簬绛変簬0
+                idQRCodeParam.outCandidate = false;//杈撳嚭鍊欓�夊尯
+                idQRCodeParam.outModuleArray = false; //杈撳嚭妯″潡淇℃伅
+                idQRCodeParam.enable15415 = false;
+                idQRCodeParam.enable29158 = false;
+
+                return idQRCodeParam;
+            }
+        }
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDBarCodeParam
+        {
+            public uint Type;
+            public int polarity;
+            public int sampleRate;
+            public int minContrast;
+            public int decodeDirection;
+            public int codeNum;
+            public int timeOut;
+            public int code39Check;
+            public int ITFCheck;
+            public int CodaBarCheck;
+            public int sendStartEnd;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable15416;
+            public int decodeThreshod;
+        }
+
+        public class IDBarCodeParamCreate
+        {
+            public IDBarCodeParam create()
+            {
+                IDBarCodeParam tmpIDBarCodeParam;
+                tmpIDBarCodeParam.Type = 0;//鏉$爜绫诲瀷  鎸変綅鍙栧��
+                tmpIDBarCodeParam.polarity = 0;//鏋佹��        0锛�1锛�2
+                tmpIDBarCodeParam.sampleRate = 0;//闄嶉噰鏍� 0~2
+                tmpIDBarCodeParam.minContrast = 2; //鍙栧�艰寖鍥�0鍒�3,0锛氳〃绀烘瀬浣庡姣斿害锛�1锛氫綆瀵规瘮搴︼紝2锛氫腑绛夊姣斿害锛�3锛氶珮瀵规瘮搴�
+                tmpIDBarCodeParam.decodeDirection = 0;//瑙g爜鏂瑰悜 Pharmacode涓撶敤锛屽彇鍊硷細0锛氫粠宸﹀埌鍙筹紝1锛氫粠鍙冲埌宸︼紝2:浠庝笂鍒颁笅, 3:浠庝笅鍒颁笂
+                tmpIDBarCodeParam.codeNum = 1; //鏉$爜涓暟 澶т簬绛変簬1
+                tmpIDBarCodeParam.timeOut = 500; //瓒呮椂 澶т簬绛変簬0
+                tmpIDBarCodeParam.code39Check = 0;
+                tmpIDBarCodeParam.ITFCheck = 0;
+                tmpIDBarCodeParam.CodaBarCheck = 0;//0:涓嶆牎楠岋紝1锛氭牎楠屼笉鍙戦�侊紝2锛氭牎楠屽彂閫�
+                tmpIDBarCodeParam.sendStartEnd = 0;//鏄惁鍙戦�佽捣濮嬬粓姝㈢锛孋odaBar涓撶敤
+                tmpIDBarCodeParam.enable15416 = false;
+                tmpIDBarCodeParam.decodeThreshod = 0;
+
+                return tmpIDBarCodeParam;
+            }
+        }
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDDMCodeParam
+        {
+
+            public int polarity;            //鏋佹��
+            public int style;               //寮�濮嬩綅缃�
+            public int sampleRate;          //闄嶉噰鏍�
+            public int minContrast;         //鏍峰紡
+            public int mirror;              //闀滃儚
+            public int codeNum;             //鐮佹暟鐩�
+            public int timeOut;             //绠楁硶瓒呮椂
+            [MarshalAs(UnmanagedType.I1)]
+            public bool outCandidate;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool outModuleArray;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable15415;        //15415绠楁硶璇勭骇
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable29158;        //29158绠楁硶璇勭骇
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enableAS9132;       //AS9132绠楁硶璇勭骇
+
+
+        }
+        public class IDDMCodeParamCreate
+        {
+            public IDDMCodeParam create()
+            {
+                IDDMCodeParam tmpIDDMCodeParam;
+
+                tmpIDDMCodeParam.polarity = 0;//鏋佹��	0锛�1锛�2
+                tmpIDDMCodeParam.style = -1; //鏍峰紡 -3锛�-2锛�-1锛�0....29
+                tmpIDDMCodeParam.sampleRate = 0; //闄嶉噰鏍� 0~5
+                tmpIDDMCodeParam.minContrast = 30; //鏈�灏忓姣斿害	1~255
+                tmpIDDMCodeParam.mirror = 0; //闀滃儚, 0,1,2
+                tmpIDDMCodeParam.codeNum = 0; //鏉$爜涓暟 澶т簬绛変簬1
+                tmpIDDMCodeParam.timeOut = 500; //瓒呮椂
+                tmpIDDMCodeParam.outCandidate = false;//杈撳嚭鍊欓�夊尯
+                tmpIDDMCodeParam.outModuleArray = false; //杈撳嚭妯″潡淇℃伅
+                tmpIDDMCodeParam.enable15415 = false;
+                tmpIDDMCodeParam.enable29158 = false;
+                tmpIDDMCodeParam.enableAS9132 = false;
+                return tmpIDDMCodeParam;
+            }
+
+        }
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDPDF417CodeParam
+        {
+            public int polarity;                //鏋佹��
+            public int pdfRows;                 //
+            public int pdfCols;                 //
+            public int mirror;                  //闀滃儚
+            public int codeNum;                 //鐮佹暟鐩�
+            public int timeOut;                 //绠楁硶瓒呮椂
+            [MarshalAs(UnmanagedType.I1)]
+            public bool outCandidate;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable15415;            //15415绠楁硶璇勭骇
+        }
+
+        public class IDPDF417CodeParamCreate
+        {
+            public IDPDF417CodeParam create()
+            {
+                IDPDF417CodeParam tmpIDPDF417CodeParam_C;
+                tmpIDPDF417CodeParam_C.polarity = 0;//鏋佹��	0锛�1锛�2
+                tmpIDPDF417CodeParam_C.pdfRows = 0; //琛屾暟锛�0銆乕3, 90], 鍏朵腑0琛ㄧず鑷姩
+                tmpIDPDF417CodeParam_C.pdfCols = 0; //鍒楁暟锛歔0, 30], 鍏朵腑0琛ㄧず鑷姩
+                tmpIDPDF417CodeParam_C.mirror = 0; //闀滃儚, 0,1,2,鏆備笉鏀寔
+                tmpIDPDF417CodeParam_C.codeNum = 0; //鏉$爜涓暟 澶т簬绛変簬1
+                tmpIDPDF417CodeParam_C.timeOut = 500; //瓒呮椂
+                tmpIDPDF417CodeParam_C.outCandidate = false;//杈撳嚭鍊欓�夊尯,鏆備笉鏀寔
+                tmpIDPDF417CodeParam_C.enable15415 = false;//鏆備笉鏀寔
+                return tmpIDPDF417CodeParam_C;
+            }
+        }
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDMicroQRParam
+        {
+            public int polarity;     // 鏋佹��
+            public int version;      // 鐗堟湰
+            public int mirror;       // 闀滃儚
+            public int codeNum;      // 鏉$爜涓暟锛屽繀椤诲ぇ浜庣瓑浜�1
+            public int timeOut;      // 瓒呮椂鏃堕棿锛屽繀椤诲ぇ浜庣瓑浜�0
+            public int outCandidate; // 杈撳嚭鍊欓�夐」
+            public int outModuleArray; // 杈撳嚭妯″潡鏁扮粍
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable15415;  // 鏄惁鍚敤15415鏍囧噯
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable29158;  // 鏄惁鍚敤29158鏍囧噯
+
+
+        }
+
+        public class IDMicroQRParamCreate
+        {
+            public IDMicroQRParam create()
+            {
+                IDMicroQRParam tmpIDMicroQRParam_C;
+                tmpIDMicroQRParam_C.polarity = 0;                // 鍒濆鍖栦负榛樿鏋佹��
+                tmpIDMicroQRParam_C.version = 0;                 // 鍒濆鍖栦负榛樿鐗堟湰
+                tmpIDMicroQRParam_C.mirror = 0;                  // 鍒濆鍖栦负榛樿鏃犻暅鍍�
+                tmpIDMicroQRParam_C.codeNum = 1;                 // 鏉$爜涓暟锛岄粯璁よ嚦灏戜负1
+                tmpIDMicroQRParam_C.timeOut = 500;               // 瓒呮椂锛岄粯璁�500ms
+                tmpIDMicroQRParam_C.outCandidate = 0;            // 榛樿鏃犲�欓�夐」
+                tmpIDMicroQRParam_C.outModuleArray = 0;          // 榛樿鏃犳ā鍧楁暟缁�
+                tmpIDMicroQRParam_C.enable15415 = false;             // 榛樿涓嶅惎鐢�15415鏍囧噯
+                tmpIDMicroQRParam_C.enable29158 = false;             // 榛樿涓嶅惎鐢�29158鏍囧噯
+
+                return tmpIDMicroQRParam_C;
+            }
+        }
+
+        // 鏉$爜绫诲埆
+        public enum IDCodeCategory
+        {
+            ID_CATEGORY_UNKNOWN_C = 0x0,             // 鏈煡绫诲瀷
+            ID_CATEGORY_LINEAR_BARCODE_C = 0x1,      // 涓�缁存潯鐮� (Linear Barcode)
+            ID_CATEGORY_QR_CODE_C = 0x2,             // QR 浜岀淮鐮� (QR Code)
+            ID_CATEGORY_MICROQR_CODE_C = 0x3,        // MicroQR 浜岀淮鐮� (MicroQR)
+            ID_CATEGORY_DATAMATRIX_CODE_C = 0x4,     // Data Matrix 浜岀淮鐮� (Data Matrix Code)
+            ID_CATEGORY_STACKED_BARCODE_C = 0x8      // 鍫嗗彔鏉$爜 (Stacked Barcode)
+        }
+
+        public enum IDGeneralParamsType
+        {
+            GP_UNDEFINED_C = 0,
+            GP_NUM_C,
+            GP_STRING_C,
+            GP_BOOL_C,
+            GP_POINT_C,
+            GP_NUM_ARRAY_C,
+            GP_STRING_ARRAY_C,
+            GP_BOOL_ARRAY_C,
+            GP_POINT_ARRAY_C,
+            GP_UCHAR_C,
+            GP_FLOAT_C,
+            GP_USHORT_C,
+            GP_UINT_C,
+            GP_ULONG_C,
+            GP_SHORT_C,
+            GP_INT_C,
+            GP_FLAGS_C,
+            GP_LONG_C
+        }
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDImageROI
+        {
+
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1024)]
+            public char[] name;
+            public IDPoint topLeftPoint;
+            public IDPoint bottomRightPoint;
+            public IDCodeType codeType;
+            public uint mode;
+            public uint id;
+            public uint roiIndex;
+            public uint codeNum;
+            public uint timeout;
+
+        }
+
+        public class IDImageROICreate
+        {
+            public IDImageROI create()
+            {
+                IDImageROI temIDImageROI_C = new IDImageROI();
+                temIDImageROI_C.codeNum = 1;
+                temIDImageROI_C.timeout = 500;
+                return temIDImageROI_C;
+            }
+
+        }
+
+        //鍥惧儚鍙傛暟
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDSolutionImage
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool autoExposureEnabled;                   // 鑷姩鏇濆厜浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool autoGainEnabled;                       // 鑷姩澧炵泭浣胯兘
+            public int IDSolutionImageParamsLength;
+        }
+
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDSolutionImageParams
+        {
+
+            public int paramIndex;
+            public double exposure;
+            public int gain;
+            public double gamma;
+            public int focusLocation;
+            public int rowCount;                                   //琛屾暟
+            public int rowFrequence;                               //琛岄(hz)
+            public int illuminantsCount;   //鍏夋簮閫氶亾鍙傛暟
+        }
+
+        //鍏夋簮閫氶亾鍙傛暟
+
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDSolutionImageIlluminant
+        {
+            public int channel;
+            [MarshalAs(UnmanagedType.I1)]
+            public bool enable;
+            public int brightness;
+        }
+
+
+        public enum IDDiInputSource
+        {
+            INPUT_SOURCE_TRIGGER_C = 0,          // 瑙﹀彂妯″紡
+            INPUT_SOURCE_PRESET_COMPARE_C = 1,   // 瀵规瘮棰勮杈撳叆妯″紡
+            INPUT_SOURCE_DISABLE = 2	         // 绂佺敤
+        }
+        /*
+        * IO杈撳叆鍙傛暟
+
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDDIParams
+        {
+
+            public IDDiInputSource inputSource;       // 瑙﹀彂绫诲瀷锛屽彇鍊硷細0锛氳Е鍙戯紝1锛氬姣旈璁捐緭鍏�
+            public uint pin;                    // DI瀵瑰簲鐨勫紩鑴氬彿
+        }
+
+
+        public class IDDIParamsCreate
+        {
+            public IDDIParams createSTRUCT_ID_DI_PARAMS()
+            {
+                IDDIParams tmpIDDIParams_C;
+                tmpIDDIParams_C.inputSource = IDDiInputSource.INPUT_SOURCE_TRIGGER_C;
+                tmpIDDIParams_C.pin = 0;
+                return tmpIDDIParams_C;
+            }
+        }
+
+        /*
+        *IO浜嬩欢婧�
+        */
+        public enum IDDoEventSource
+        {
+            EVENT_SOURCE_OFF_C = 0,                // 鏃�
+            EVENT_SOURCE_ACQUISITION_START_C,      // 閲囧浘寮�濮�
+            EVENT_SOURCE_ACQUISITION_STOP_C,       // 閲囧浘缁撴潫
+            EVENT_SOURCE_EXPOSURE_START_C,         // 鏇濆厜寮�濮�
+            EVENT_SOURCE_NOCODE_READ_C,            // 瑙g爜 NG 鏃�
+            EVENT_SOURCE_READ_SUCCESS_C,           // 瑙g爜 OK 鏃�
+            EVENT_SOURCE_CONDITION_SELECTED_C,     // 鏉′欢閫夋嫨
+            EVENT_SOURCE_DATA_COMPARE_SUCCESS_C,   // 鏁版嵁瀵规瘮鎴愬姛
+            EVENT_SOURCE_DATA_COMPARE_FAIL_C       // 鏁版嵁瀵规瘮澶辫触
+        }
+
+        /*
+        * IO杈撳嚭鍙傛暟
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDDOParams
+        {
+            public uint status;            // DO鐘舵�侊紙鍚敤鎴栫鐢級
+            public uint pin;               // DO瀵瑰簲鐨勫紩鑴氬彿
+            public uint doModel;           // 杈撳嚭鐢靛钩
+            public uint durationTime;      // 鎸佺画鏃堕棿锛坢s锛�
+            public IDDoEventSource doSource;       // 浜嬩欢婧愶紙鏉ヨ嚜鍏朵粬妯″潡锛�
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string condition;
+
+        }
+
+        public class IDDOParamsCreate
+        {
+            public IDDOParams create()
+            {
+                IDDOParams tmpIDDOParams_C;
+                tmpIDDOParams_C.status = 0;
+                tmpIDDOParams_C.pin = 0;
+                tmpIDDOParams_C.doModel = 0;
+                tmpIDDOParams_C.durationTime = 0;
+                tmpIDDOParams_C.doSource = IDDoEventSource.EVENT_SOURCE_OFF_C;
+                tmpIDDOParams_C.condition = "";
+                return tmpIDDOParams_C;
+            }
+        }
+        /*
+        * mcConfig 閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDMcConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isEnabled;                        // 浣胯兘
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isUdpCommunication;               // UDP 閫氫俊
+            public int brandModel;                        // 鍝佺墝鍨嬪彿
+            public int dataFormat;                        // 鏁版嵁鏍煎紡
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string ipAddress;                 // IP 鍦板潃
+            public int port;                              // 绔彛
+            public int startAddress;                      // 寮�濮嬪湴鍧�
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isResultSwapped;                  // 缁撴灉浜ゆ崲
+            public uint resultSizeBytes;          // 缁撴灉澶у皬锛堝瓧鑺傦級
+            public uint resultTimeoutMs;          // 缁撴灉瓒呮椂锛堟绉掞級
+
+        }
+
+        public class IDMcConfigCreate
+        {
+            public IDMcConfig create()
+            {
+                IDMcConfig tmpIDMcConfig_C;
+                tmpIDMcConfig_C.isEnabled = false;
+                tmpIDMcConfig_C.isUdpCommunication = false;
+                tmpIDMcConfig_C.brandModel = 0;
+                tmpIDMcConfig_C.dataFormat = 0;
+                tmpIDMcConfig_C.ipAddress = "";
+                tmpIDMcConfig_C.port = 0;
+                tmpIDMcConfig_C.startAddress = 0;
+                tmpIDMcConfig_C.isResultSwapped = false;
+                tmpIDMcConfig_C.resultSizeBytes = 0;
+                tmpIDMcConfig_C.resultTimeoutMs = 0;
+                return tmpIDMcConfig_C;
+            }
+        }
+
+        /*
+        * udpConfig 閰嶇疆
+        */
+        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
+        public struct IDUdpConfig
+        {
+            [MarshalAs(UnmanagedType.I1)]
+            public bool isEnabled;                        // 浣胯兘
+            public int port;                              // 绔彛
+            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
+            public string ipAddress;                 // IP 鍦板潃
+
+
+        }
+
+        public class IDUdpConfigCreate
+        {
+            public IDUdpConfig create()
+            {
+                IDUdpConfig tmpIDUdpConfig_C;
+                tmpIDUdpConfig_C.isEnabled = false;
+                tmpIDUdpConfig_C.port = 0;
+                tmpIDUdpConfig_C.ipAddress = "";
+                return tmpIDUdpConfig_C;
+            }
+        }
+
+        public enum IDGeneralParamsName
+        {
+            ID_PARAM_FILTER_PREVENT_DUPLICATE = 0,                      //閲嶅杩囨护
+            ID_PARAM_FILTER_PREVENT_DUPLICATE_ENABLE,                   //閲嶅杩囨护浣胯兘
+            ID_PARAM_FILTER_HISTORY_TIMES,                              //鍘嗗彶杩囨护
+            ID_PARAM_FILTER_HISTORY_TIMES_ENABLE,                       //鍘嗗彶杩囨护浣胯兘
+            ID_PARAM_FILTER_READ_THRESHOLD,                             //闃堝�艰繃婊�
+            ID_PARAM_FILTER_READ_THRESHOLD_ENABLE,                      //闃堝�艰繃婊や娇鑳�
+            ID_PARAM_FILTER_REMOVE_DUPLICATE_ENABLE,                    //鍘婚櫎閲嶅浣胯兘
+            ID_PARAM_FILTER_FRAME_DUPLICATE_ENABLE,                     //閫愬抚杩囨护浣胯兘
+            ID_PARAM_FILTER_ANGLE_INIT,                                 //瑙掑害鍒濆鍊�
+            ID_PARAM_FILTER_ANGLE_OFFSET,                               //瑙掑害鍋忕Щ鍊�
+            ID_PARAM_FILTER_ANGLE_ENABLE,                               //瑙掑害浣胯兘
+            ID_PARAM_COMPARE_CONTROL_ENABLE,                            //姣斿浣胯兘
+            ID_PARAM_COMPARE_RULE,                                      //姣斿瑙勫垯
+            ID_PARAM_COMPARE_PRESET_DATA,                               //棰勮鏁版嵁
+            ID_PARAM_COMPARE_START_POSITION,                            //璧峰浣嶇疆
+            ID_PARAM_COMPARE_DIGITS,                                    //姣斿鏁�
+            ID_PARAM_DATACONFIG_NOREAD,                                 //鏃犺琛ラ綈閰嶇疆
+            ID_PARAM_DATACONFIG_NOREAD_ENABLE,                          //鏃犺琛ラ綈浣胯兘
+            ID_PARAM_DATACONFIG_CONDITION,                              //杈撳嚭鏉′欢
+            ID_PARAM_DATACONFIG_CONDITION_ENABLE,                       //杈撳嚭鏉′欢浣胯兘
+            ID_PARAM_DATACONFIG_FORMAT_INFO,                            //鏁版嵁澶勭悊鏍煎紡鍖栧唴瀹�
+            ID_PARAM_DATACONFIG_HEAD_INFO,                              //璧峰鎻掑叆
+            ID_PARAM_DATACONFIG_TAIL_INFO,                              //缁撳熬鎻掑叆
+            ID_PARAM_DATACONFIG_ENTER_ENABLE,                           //缁撴潫鍥炶溅绗︿娇鑳�
+            ID_PARAM_DATACONFIG_LINEFEED_ENABLE,                        //缁撴潫鎹㈣绗︿娇鑳�
+            ID_PARAM_DATACONFIG_FALSE_INFO,                             //杈撳嚭鏉′欢涓嶆弧瓒虫椂杈撳嚭
+            ID_PARAM_DATACONFIG_HEX_ENABLE,                             //杈撳嚭16杩涘埗浣胯兘
+            ID_PARAM_DATACONFIG_EMPTY_SEND_ENABLE,                      //鍙戦�佺┖缁撴灉浣胯兘
+            ID_PARAM_DATACONFIG_INSTANT_OUTPUT_ENABLE,                  //绔嬪嵆杈撳嚭浣胯兘
+            ID_PARAM_DATACONFIG_POSITION_RULES,                         //鎺掑簭瑙勫垯
+            ID_PARAM_DATACONFIG_ONE_BY_ONE_ENABLE,                      //OneByOne浣胯兘
+            ID_PARAM_DATACONFIG_ONE_BY_ONE_PERIOD,                      //OneByOne鍛ㄦ湡
+            ID_PARAM_QUALITY_BARCODE_15416,                             //鏉″舰鐮佽川閲� (15416 鏍囧噯)
+            ID_PARAM_QUALITY_QR_CODE_15415,                             //浜岀淮鐮佽川閲� (15415 鏍囧噯)
+            ID_PARAM_QUALITY_QR_CODE_29158,                             //浜岀淮鐮佽川閲� (29158 鏍囧噯)
+            ID_PARAM_QUALITY_DATAMATRIX_15415,                          //鏁版嵁鐭╅樀璐ㄩ噺 (15415 鏍囧噯)
+            ID_PARAM_QUALITY_DATAMATRIX_29158,                          //鏁版嵁鐭╅樀璐ㄩ噺 (29158 鏍囧噯)
+            ID_PARAM_QUALITY_DATAMATRIX_9132,                           //鏁版嵁鐭╅樀璐ㄩ噺 (9132 鏍囧噯)
+            ID_PARAM_QUALITY_DATAMATRIX_T100701,                        //鏁版嵁鐭╅樀璐ㄩ噺 (T100701 鏍囧噯)
+            ID_PARAM_QUALITY_PDF417_15415,                              //PDF417 鏉$爜璐ㄩ噺 (15415 鏍囧噯)
+            ID_PARAM_QUALITY_MODE,                                      //鏉$爜鍒诲嵃楠岃瘉妯″紡锛屽彇鍊硷細0锛氭爣鍑嗘ā寮忥紝1锛歄PT妯″紡
+            ID_PARAM_TRIGGER_STATUS,                                    //瑙﹀彂鐘舵��
+            ID_PARAM_TRIGGER_DELAY,                                     //瑙﹀彂寤舵椂
+            ID_PARAM_TRIGGER_MODLE,                                     //瑙﹀彂妯″紡
+            ID_PARAM_TRIGGER_DURATION,                                  //瑙﹀彂鎸佺画鏃堕棿
+            ID_PARAM_TRIGGER_CODE_NUM,                                  //瑙﹀彂瑙g爜鏁�
+            ID_PARAM_TRIGGER_SOURCE,                                    //瑙﹀彂婧�
+            ID_PARAM_TRIGGER_STATISTIC_BY_NUM_ENABLE,                   //鐮佹暟鐩粺璁′娇鑳�
+            ID_PARAM_TRIGGER_CONDITION_MODE,                            //鎸夋椂闂�/甯цЕ鍙�
+            ID_PARAM_TRIGGER_TRIGGER_INTERVAL,                          //鑷姩瑙﹀彂闂撮殧
+            ID_PARAM_TRIGGER_CACHE_ENABLE,                              //瑙﹀彂缂撳瓨浣胯兘
+            ID_PARAM_TRIGGER_ENABLE_CODE_NUM_RESTRICT,                  //鐮佹暟鐩檺鍒跺紑鍚�
+            ID_PARAM_TRIGGER_FRAMES,                                    //甯ф暟
+            ID_PARAM_HARDWARE_TRIGGER_DEBOUNCETIME,                     //娑堟姈鏃堕棿
+            ID_PARAM_HARDWARE_TRIGGER_POLARITY,                         //瑙﹀彂鏋佹��
+            ID_PARAM_HARDWARE_TRIGGER_CODE_NUM_ENABLE,                  //鍚敤鏈�澶х爜鏁扮洰浣胯兘
+            ID_PARAM_HARDWARE_TRIGGER_CODE_NUM,                         //瑙g爜鏁�
+            ID_PARAM_HARDWARE_TRIGGER_TIMEOUT,                          //瓒呮椂鏃堕棿
+            ID_PARAM_HARDWARE_TRIGGER_STATISTIC_BY_NUM_ENABLE,          //纭欢瑙﹀彂鐮佹暟鐩娇鑳�
+            ID_PARAM_TCPSEVER_TRIGGER_PORT,                             //tcp鏈嶅姟鍣ㄧ鍙�
+            ID_PARAM_TCPSEVER_TRIGGER_START_CMD,                        //tcp鏈嶅姟鍣ㄥ紑濮嬭Е鍙戞寚浠�
+            ID_PARAM_TCPSEVER_TRIGGER_STOP_CMD,                         //tcp鏈嶅姟鍣ㄥ仠姝㈣Е鍙戞寚浠�
+            ID_PARAM_TCPSEVER_TRIGGER_IS_FUZZY_MATCH_ENABLE_CMD,        //tcp鏈嶅姟鍣ㄥ惎鐢ㄦā绯婂尮閰�
+            ID_PARAM_TCPSEVER_TRIGGER_HEX_ENABLE,                       //tcp鏈嶅姟鍣�16杩涘埗浣胯兘
+            ID_PARAM_TCPCLIENT_TRIGGER_PORT,                            //tcp瀹㈡埛绔鍙�
+            ID_PARAM_TCPCLIENT_TRIGGER_IP,                              //tcp瀹㈡埛绔疘P
+            ID_PARAM_TCPCLIENT_TRIGGER_START_CMD,                       //tcp瀹㈡埛绔紑濮嬭Е鍙戞寚浠�
+            ID_PARAM_TCPCLIENT_TRIGGER_STOP_CMD,                        //tcp瀹㈡埛绔仠姝㈣Е鍙戞寚浠�
+            ID_PARAM_TCPCLIENT_TRIGGER_HEARTBEAT_ENABLE,                //tcp瀹㈡埛绔績璺充娇鑳�
+            ID_PARAM_TCPCLIENT_TRIGGER_HEARTBEAT_CMD,                   //tcp瀹㈡埛绔績璺虫寚浠�
+            ID_PARAM_TCPCLIENT_TRIGGER_HEARTBEAT_PERIOD,                //tcp瀹㈡埛绔績璺冲懆鏈�
+            ID_PARAM_TCPCLIENT_TRIGGER_IS_FUZZY_MATCH_ENABLE_CMD,       //tcp瀹㈡埛绔惎鐢ㄦā绯婂尮閰�
+            ID_PARAM_TCPCLIENT_TRIGGER_HEX_ENABLE,                      //tcp瀹㈡埛绔�16杩涘埗浣胯兘
+            ID_PARAM_UDP_TRIGGER_PORT,                                  //udp瑙﹀彂绔彛
+            ID_PARAM_UDP_TRIGGER_START_CMD,                             //udp瑙﹀彂寮�濮嬫寚浠�
+            ID_PARAM_UDP_TRIGGER_STOP_CMD,                              //udp瑙﹀彂鍋滄鎸囦护
+            ID_PARAM_UDP_TRIGGER_IS_FUZZY_MATCH_ENABLE_CMD,             //udp瑙﹀彂鍚敤妯$硦鍖归厤
+            ID_PARAM_UDP_TRIGGER_HEX_ENABLE,                            //udp16杩涘埗浣胯兘
+            ID_PARAM_SERIAL_TRIGGER_START_CMD,                          //涓插彛寮�濮嬭Е鍙戞寚浠�
+            ID_PARAM_SERIAL_TRIGGER_STOP_CMD,                           //涓插彛鍋滄瑙﹀彂鎸囦护
+            ID_PARAM_SERIAL_TRIGGER_IS_FUZZY_MATCH_ENABLE_CMD,          //涓插彛鍚敤妯$硦鍖归厤
+            ID_PARAM_SERIAL_TRIGGER_HEX_ENABLE,                         //涓插彛16杩涘埗浣胯兘
+            ID_PARAM_ENCODER_CTRL_PARAMS_ENABLE,                        //缂栫爜鎺у埗鍣ㄧ姸鎬侊紙鍚敤鎴栫鐢級
+            ID_PARAM_ENCODER_CTRL_PARAMS_DIRECTION,                     //鎺у埗鏂瑰悜
+            ID_PARAM_BUZZER_STATUS,                                     //铚傞福鍣ㄧ姸鎬侊紙鍚敤鎴栫鐢級
+            ID_PARAM_BUZZER_CONDITION,                                  //鎸佺画鏃堕棿锛堟绉掞級
+            ID_PARAM_BUZZER_DURATION_TIME,                              //鏉′欢锛堟寚瀹氳Е鍙戞潯浠讹級
+            ID_PARAM_SENSING_SENSITIVITY,                               //鎰熷簲鐏垫晱搴�
+            ID_PARAM_SENSING_WAITTIME,                                  //鎰熷簲绛夊緟鏃堕棿
+            ID_PARAM_OUTPUT_TCPSEVER_PORT,                              //TCP鏈嶅姟鍣ㄨ緭鍑虹鍙�
+            ID_PARAM_OUTPUT_TCPSEVER_ENABLE,                            //TCP鏈嶅姟鍣ㄨ緭鍑轰娇鑳�
+            ID_PARAM_OUTPUT_TCPCLIENT_ENABLE,                           //TCP瀹㈡埛绔緭鍑轰娇鑳�
+            ID_PARAM_OUTPUT_TCPCLIENT_PORT,                             //TCP瀹㈡埛绔緭鍑虹鍙�
+            ID_PARAM_OUTPUT_TCPCLIENT_IP,                               //TCP瀹㈡埛绔緭鍑哄湴鍧�
+            ID_PARAM_OUTPUT_TCPCLIENT_HEARTBEAT_ENABLE,                 //TCP瀹㈡埛绔績璺充娇鑳�
+            ID_PARAM_OUTPUT_TCPCLIENT_HEARTBEAT_CMD,                    //TCP瀹㈡埛绔績璺虫寚浠�
+            ID_PARAM_OUTPUT_TCPCLIENT_HEARTBEAT_PERIOD,                 //TCP瀹㈡埛绔績璺冲懆鏈�
+            ID_PARAM_OUTPUT_TCPCLIENT_HEX_ENABLE,                       //TCP瀹㈡埛绔�16杩涘埗浣胯兘
+            ID_PARAM_OUTPUT_SERIALPORT_ENABLE,                          //涓插彛杈撳嚭浣胯兘
+            ID_PARAM_OUTPUT_SERIALPORT_BAUDRATE,                        //涓插彛娉㈢壒鐜�
+            ID_PARAM_OUTPUT_SERIALPORT_PARITY,                          //涓插彛鏍¢獙浣�
+            ID_PARAM_OUTPUT_SERIALPORT_DATABIT,                         //涓插彛鏁版嵁浣�
+            ID_PARAM_OUTPUT_SERIALPORT_STOPBITS,                        //涓插彛鍋滄浣�
+            ID_PARAM_OUTPUT_SERIALPORT_FLOWCTRL,                        //涓插彛娴佹帶鍒�
+            ID_PARAM_OUTPUT_KEYBOARD_ENABLE,                            //閿洏杈撳嚭浣胯兘
+            ID_PARAM_OUTPUT_EIP_ENABLE,                                 //EIP浣胯兘
+            ID_PARAM_OUTPUT_EIP_RESULT_SWAP_ENABLE,                     //EIP缁撴灉浜ゆ崲浣胯兘
+            ID_PARAM_OUTPUT_EIP_INPUT_SIZE,                             //EIP杈撳叆缁勪欢澶у皬
+            ID_PARAM_OUTPUT_EIP_OUTPUT_SIZE,                            //EIP杈撳嚭缁勪欢澶у皬
+            ID_PARAM_OUTPUT_EIP_RESULT_TIMEOUT,                         //EIP缁撴灉瓒呮椂
+            ID_PARAM_OUTPUT_MODBUS_ENABLE,                              //MODBUS浣胯兘
+            ID_PARAM_OUTPUT_MODBUS_ROLE,                                //MODBUS瑙掕壊涓荤珯/浠庣珯
+            ID_PARAM_OUTPUT_MODBUS_CONNECTIONTYPE,                      //MODBUS杩炴帴绫诲瀷TCP/Serial
+            ID_PARAM_OUTPUT_MODBUS_TCPSEVER_IP,                         //MODBUS tcp鏈嶅姟鍣↖P
+            ID_PARAM_OUTPUT_MODBUS_TCPSEVER_PORT,                       //MODBUS tcp绔彛
+            ID_PARAM_OUTPUT_MODBUS_TIMEOUT,                             //MODBUS 瓒呮椂鏃堕棿
+            ID_PARAM_OUTPUT_MODBUS_FUNCATION,                           //MODBUS function                                        
+            ID_PARAM_OUTPUT_MODBUS_SERVER_ADDRESS,                      //MODBUS 鏈嶅姟鍣ㄥ湴鍧�
+            ID_PARAM_OUTPUT_MODBUS_STARTADDRESS,                        //MODBUS 瀵勫瓨鍣ㄨ捣濮嬪湴鍧�
+            ID_PARAM_OUTPUT_MODBUS_RESULT_SWAP_ENABLE,                  //MODBUS 缁撴灉浜ゆ崲浣胯兘
+            ID_PARAM_OUTPUT_MODBUS_RETRIES_NUM,                         //MODBUS 閲嶈瘯娆℃暟
+            ID_PARAM_OUTPUT_MODBUS_RESULT_TIMEOUT,                      //MODBUS 缁撴灉瓒呮椂
+            ID_PARAM_OUTPUT_FTP_ENABLE,                                 //FTP浣胯兘
+            ID_PARAM_OUTPUT_FTP_LOCAL_ENABLE,                           //FTP 鏈湴瀛樺浘浣胯兘
+            ID_PARAM_OUTPUT_FTP_IP,                                     //FTP IP鍦板潃
+            ID_PARAM_OUTPUT_FTP_PORT,                                   //FTP 绔彛
+            ID_PARAM_OUTPUT_FTP_USERNAME,                               //FTP璐﹀彿
+            ID_PARAM_OUTPUT_FTP_PWD,                                    //FTP瀵嗙爜
+            ID_PARAM_OUTPUT_FTP_IMAGE_FORMAT,                           //FTP瀛樺浘鏍煎紡
+            ID_PARAM_OUTPUT_FTP_COMPRESSRATE,                           //FTP瀛樺浘鍘嬬缉鐜�
+            ID_PARAM_OUTPUT_FTP_FILEPATH,                               //FTP瀛樺浘璺緞
+            ID_PARAM_OUTPUT_FTP_DEFAULT_FILENAME,                       //FTP榛樿鏂囦欢鍚�
+            ID_PARAM_OUTPUT_FTP_LOCAL_PATH,                             //FTP鏈湴淇濆瓨璺緞
+            ID_PARAM_OUTPUT_FTP_LOCAL_MAX_COUNT,                        //FTP鏈湴淇濆瓨鏈�澶ф暟閲�
+            ID_PARAM_OUTPUT_FTP_CONTAINS_DATE,                          //FTP鍛藉悕鍖呭惈鏃堕棿缂�
+            ID_PARAM_OUTPUT_FTP_CONTAINS_INDEX,                         //FTP鍛藉悕鍖呭惈搴忓彿
+            ID_PARAM_OUTPUT_FTP_CONTAINS_RESULT,                        //FTP鍛藉悕鍖呭惈缁撴灉
+            ID_PARAM_OUTPUT_FTP_CONTAINS_FRAME_NUMBER,                  //FTP鍛藉悕鍖呭惈甯у彿
+            ID_PARAM_OUTPUT_FTP_CONTAINS_BARCODE_ID_ENABLE,             //FTP鐢熸垚璇荤爜鍣↖D鏂囦欢澶�
+            ID_PARAM_OUTPUT_FTP_CONTAINS_TRIGGER_SEQUENCE_ENABLE,       //FTP鐢熸垚瑙﹀彂鍙锋枃浠跺す
+            ID_PARAM_OUTPUT_FTP_RESULT_RENDERING,                       //FTP缁撴灉娓叉煋浣胯兘
+            ID_PARAM_OUTPUT_FTP_BOUNDINGBOX_RENDERING,                  //FTP瀹氫綅妗嗘覆鏌撲娇鑳�
+            ID_PARAM_OUTPUT_FTP_SAVE_SRATEGY,                           //FTP瀛樺浘绛栫暐
+            ID_PARAM_OUTPUT_FTP_SAVE_POLICY_FRAME_INDEX,                //FTP鎸夋寚瀹氬抚鍙峰瓨鍥�
+            ID_PARAM_OUTPUT_FTP_FTP_SAVE_POLICY_RANGE_START_FRAME,      //FTP鎸夎寖鍥村瓨鍥捐捣濮嬪抚鍙�
+            ID_PARAM_OUTPUT_FTP_FTP_SAVE_POLICY_RANGE_END_FRAME,        //FTP鎸夎寖鍥村瓨鍥剧粨鏉熷抚鍙�
+            ID_PARAM_OUTPUT_FTP_CONDITION,                              //FTP淇濆瓨鏉′欢
+            ID_PARAM_OUTPUT_WEB_ENABLE,                                 //WEB椤甸潰浣胯兘
+            ID_PARAM_OUTPUT_WEB_PORT,                                   //WEB椤甸潰绔彛
+            ID_PARAM_OUTPUT_WEB_IMAGE_QUALITY,                          //WEB鍥惧儚璐ㄩ噺
+            ID_PARAM_OUTPUT_WEB_RESULT_ENABLE,                          //WEB鏄剧ず缁撴灉浣胯兘
+            ID_PARAM_OUTPUT_WEB_IMAGE_ENABLE,                           //WEB鏄剧ず鍥惧儚浣胯兘
+            ID_PARAM_OUTPUT_WEB_DISPLAY_INFO_FORMAT,                    //WEB鏄剧ず鏁版嵁鏍煎紡鍖�
+            ID_PARAM_OUTPUT_NETWORKING_ENABLE,                          //缁勭綉浣胯兘
+            ID_PARAM_OUTPUT_NETWORKING_MASTER_ENABLE,                   //鏄惁鏄痬aster
+            ID_PARAM_OUTPUT_NETWORKING_PORT,                            //缁勭綉閫氫俊绔彛
+            ID_PARAM_OUTPUT_NETWORKING_MASTER_IP,                       //缁勭綉涓绘満IP
+            ID_PARAM_OUTPUT_NETWORKING_MASTER_TIMEOUT,                  //缁勭綉涓绘満瓒呮椂鏃堕棿
+            ID_PARAM_OUTPUT_NETWORKING_SLAVE_ID,                        //缁勭綉浠庢満ID
+            ID_PARAM_OUTPUT_NETWORKING_MASTER_MAX_CONNECT_NUM,          //缁勭綉涓绘満鏈�澶ц繛鎺ヤ粠鏈烘暟
+            ID_PARAM_OUTPUT_NETWORKING_TRIGGER_SLAVE_ENABLE,            //缁勭綉涓绘満瑙﹀彂浠庢満浣胯兘
+            ID_PARAM_OUTPUT_NETWORKING_SLAVE_RECEIVE_TRIGGER_ENABLE,    //缁勭綉浠庢満鎺ユ敹涓绘満瑙﹀彂浣胯兘
+            ID_PARAM_OUTPUT_NETWORKING_SLAVE_TRIGGER_DELAY,             //缁勭綉浠庢満瑙﹀彂寤惰繜
+            ID_PARAM_OUTPUT_NETWORKING_SLAVE_TRIGGER_CONNECTION_STATUS, //缁勭綉杩炴帴鐘舵��
+            ID_PARAM_OUTPUT_NETWORKING_DEVICE_ROI_ENABLE,               //缁勭綉璁惧ROI琛ラ綈浣胯兘
+            ID_PARAM_OUTPUT_PROFINET_ENABLE,                            //PROFINET浣胯兘
+            ID_PARAM_OUTPUT_PROFINET_RESULT_MODEL_SIZE,                 //PROFINET缁撴灉妯″潡澶у皬
+            ID_PARAM_OUTPUT_PROFINET_NAME,                              //PROFINET閰嶇疆鍚�
+            ID_PARAM_OUTPUT_PROFINET_RESULT_SWAP_ENABLE,                //PROFINET缁撴灉瀛楄妭浜ゆ崲浣胯兘
+            ID_PARAM_OUTPUT_PROFINET_RESULT_SIZE,                       //PROFINET缁撴灉澶у皬
+            ID_PARAM_OUTPUT_PROFINET_RESULT_TIMEOUT,                    //PROFINET缁撴灉瓒呮椂
+            ID_PARAM_OUTPUT_FINS_ENABLE,                                //FINS浣胯兘
+            ID_PARAM_OUTPUT_FINS_IS_TCP,                                //FINS鏄惁鍚敤TCP
+            ID_PARAM_OUTPUT_FINS_IP,                                    //FINS涓婁綅鏈篒P
+            ID_PARAM_OUTPUT_FINS_PROT,                                  //FINS涓婁綅鏈虹鍙�
+            ID_PARAM_OUTPUT_FINS_STARTADDRESS,                          //FINS鏁版嵁璧峰鍦板潃
+            ID_PARAM_OUTPUT_FINS_RESULT_SWAP_ENABLE,                    //FINS缁撴灉浜ゆ崲浣胯兘
+            ID_PARAM_OUTPUT_FINS_RESULT_SIZE,                           //FINS缁撴灉鏁版嵁澶у皬
+            ID_PARAM_OUTPUT_FINS_RESULT_TIMEOUT,                        //FINS缁撴灉瓒呮椂鏃堕棿
+            ID_PARAM_OUTPUT_HTTP_ENABLE,                                //HTTP浣胯兘
+            ID_PARAM_OUTPUT_HTTP_URL,                                   //HTTP鍙戦�佸湴鍧�
+            ID_PARAM_OUTPUT_MC_CONFIG_ENABLE,                           //MC浣胯兘
+            ID_PARAM_OUTPUT_MC_CONFIG_UDP_COMMUNICATION,                //MC UDP閫氳浣胯兘
+            ID_PARAM_OUTPUT_MC_CONFIG_BRAND_MODEL,                      //MC鍝佺墝鍨嬪彿
+            ID_PARAM_OUTPUT_MC_CONFIG_DATA_FORMAT,                      //MC鏁版嵁鏍煎紡
+            ID_PARAM_OUTPUT_MC_CONFIG_IP_ADDRESS,                       //MC IP鍦板潃
+            ID_PARAM_OUTPUT_MC_CONFIG_PORT,                             //MC绔彛
+            ID_PARAM_OUTPUT_MC_CONFIG_START_ADDRESS,                    //MC璧峰鍦板潃
+            ID_PARAM_OUTPUT_MC_CONFIG_RESULT_SWAP,                      //MC缁撴灉浜ゆ崲
+            ID_PARAM_OUTPUT_MC_CONFIG_RESULT_SIZE,                      //MC缁撴灉澶у皬
+            ID_PARAM_OUTPUT_MC_CONFIG_RESULT_TIMEOUT,                   //MC缁撴灉瓒呮椂
+            ID_PARAM_OUTPUT_UDP_CONFIG_ENABLE,                          //UDP浣胯兘
+            ID_PARAM_OUTPUT_UDP_CONFIG_PORT,                            //UDP绔彛
+            ID_PARAM_OUTPUT_UDP_CONFIG_IP_ADDRESS						//UDP IP鍦板潃
+        }
+
+    }
+}

--
Gitblit v1.9.3