From be8a251672810019d5874b846f4d47df06fde62d Mon Sep 17 00:00:00 2001
From: whycxzp <glperry@163.com>
Date: 星期六, 22 三月 2025 15:36:10 +0800
Subject: [PATCH] 海康摄像头温度点位接口

---
 src/main/resources/lib/hik/HCNetSDKCom/StreamTransClient.dll |    0 
 src/main/resources/lib/hik/examples.jar                      |    0 
 src/main/resources/lib/hik/HCNetSDK.dll                      |    0 
 src/main/resources/lib/hik/HCNetSDKCom/HCGeneralCfgMgr.dll   |    0 
 src/main/java/com/whyc/hik/AlarmDevParamCfg.java             |   55 
 src/main/resources/lib/hik/hlog.dll                          |    0 
 src/main/resources/lib/hik/HCNetSDKCom/AudioRender.dll       |    0 
 src/main/resources/lib/hik/HCNetSDKCom/HCAlarm.dll           |    0 
 src/main/java/com/whyc/hik/TestDemo.java                     |  455 ++
 src/main/resources/lib/hik/HCNetSDKCom/HCIndustry.dll        |    0 
 src/main/resources/lib/hik/HCNetSDKCom/OpenAL32.dll          |    0 
 src/main/resources/lib/hik/HCNetSDKCom/libiconv2.dll         |    0 
 src/main/java/com/whyc/hik/Commom/CommonUtil.java            |   67 
 src/main/java/com/whyc/service/HikTempService.java           |  452 ++
 src/main/resources/lib/hik/HCNetSDKCom/AnalyzeData.dll       |    0 
 src/main/resources/lib/hik/HCNetSDKCom/HCPreview.dll         |    0 
 src/main/resources/lib/hik/jna.jar                           |    0 
 src/main/resources/lib/hik/HCCore.dll                        |    0 
 src/main/resources/lib/hik/HCNetSDKCom/HCVoiceTalk.dll       |    0 
 src/main/resources/lib/hik/HCNetSDKCom/HCGeneralCfgMgr.lib   |    0 
 src/main/resources/lib/hik/HCNetSDKCom/HCAlarm.lib           |    0 
 src/main/resources/lib/hik/libssl-1_1-x64.dll                |    0 
 src/main/resources/lib/hik/libcrypto-1_1-x64.dll             |    0 
 src/main/java/com/whyc/hik/NetSDKDemo/HCNetSDK.java          | 10935 +++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/resources/lib/hik/HCNetSDKCom/HCPlayBack.dll        |    0 
 src/main/resources/lib/hik/hpr.dll                           |    0 
 src/main/java/com/whyc/hik/ChannelParamCfg.java              |  522 ++
 src/main/java/com/whyc/hik/Commom/osSelect.java              |   12 
 src/main/resources/lib/hik/HCNetSDKCom/HCDisplay.dll         |    0 
 src/main/resources/lib/hik/HCNetSDKCom/SystemTransform.dll   |    0 
 src/main/resources/lib/hik/HCNetSDKCom/HCCoreDevCfg.dll      |    0 
 src/main/java/com/whyc/hik/SdkSysCfg.java                    |  257 +
 src/main/resources/lib/hik/HCNetSDKCom/AudioIntercom.dll     |    0 
 src/main/resources/lib/hik/HCNetSDKCom/HCPreview.lib         |    0 
 src/main/resources/lib/hik/zlib1.dll                         |    0 
 src/main/java/com/whyc/controller/HikTempController.java     |   26 
 src/main/java/com/whyc/hik/DevManager.java                   |  315 +
 37 files changed, 13,096 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/controller/HikTempController.java b/src/main/java/com/whyc/controller/HikTempController.java
new file mode 100644
index 0000000..2ff7047
--- /dev/null
+++ b/src/main/java/com/whyc/controller/HikTempController.java
@@ -0,0 +1,26 @@
+package com.whyc.controller;
+
+import com.whyc.dto.Response;
+import com.whyc.service.HikTempService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.io.IOException;
+
+@RequestMapping("hikTemp")
+@RestController
+@Api("娴峰悍鎽勫儚澶存俯搴︾偣浣�")
+public class HikTempController {
+
+    @Autowired
+    private HikTempService service;
+
+    @GetMapping("getTempPoint")
+    public Response getTempPoint(String ip) throws IOException, InterruptedException {
+        return service.getTempPoint(ip);
+    }
+
+}
diff --git a/src/main/java/com/whyc/hik/AlarmDevParamCfg.java b/src/main/java/com/whyc/hik/AlarmDevParamCfg.java
new file mode 100644
index 0000000..3d9910a
--- /dev/null
+++ b/src/main/java/com/whyc/hik/AlarmDevParamCfg.java
@@ -0,0 +1,55 @@
+package com.whyc.hik;
+
+import com.sun.jna.Pointer;
+import com.sun.jna.ptr.IntByReference;
+import com.whyc.hik.NetSDKDemo.HCNetSDK;
+
+import static com.whyc.hik.TestDemo.hCNetSDK;
+
+/**
+ * 鎶ヨ涓绘満璁惧鐩稿叧鍙傛暟鑾峰彇涓庨厤缃�
+ * @Author: jiangxin14
+ * @Date: 2024-08-26  10:02
+ */
+public class AlarmDevParamCfg {
+
+
+    /**
+     * 鑾峰彇鎶ヨ涓绘満RS485鍙傛暟
+     *
+     * @param lUserID
+     */
+    public static void getRs485Cfg(int lUserID) {
+        HCNetSDK.NET_DVR_ALARM_RS485CFG rs485CFG = new HCNetSDK.NET_DVR_ALARM_RS485CFG();
+        rs485CFG.dwSize = rs485CFG.size();
+        Pointer pointer = rs485CFG.getPointer();
+        IntByReference pInt1 = new IntByReference(0);
+        rs485CFG.write();
+        boolean bGetRs485 = hCNetSDK.NET_DVR_GetDVRConfig(lUserID, HCNetSDK.NET_DVR_GET_ALARM_RS485CFG, 3, pointer, rs485CFG.dwSize, pInt1);
+        if (!bGetRs485) {
+            System.out.println("鑾峰彇鎶ヨ涓绘満RS485鍙傛暟澶辫触锛侀敊璇彿锛�" + hCNetSDK.NET_DVR_GetLastError());
+            return;
+        }
+        rs485CFG.read();
+        return;
+
+    }
+
+    public static void getRs485SlotInfo(int iUserID) {
+        HCNetSDK.NET_DVR_ALARMHOST_RS485_SLOT_CFG strRs485SlotCFG = new HCNetSDK.NET_DVR_ALARMHOST_RS485_SLOT_CFG();
+        strRs485SlotCFG.dwSize = strRs485SlotCFG.size();
+        Pointer pRs485SlotCFG = strRs485SlotCFG.getPointer();
+        IntByReference pInt1 = new IntByReference(0);
+        strRs485SlotCFG.write();
+        String Schannel = "0000000100000001";  //楂�2瀛楄妭琛ㄧず485閫氶亾鍙凤紝浣�2瀛楄妭琛ㄧず妲戒綅鍙凤紝閮戒粠1寮�濮�
+        int channel = Integer.parseInt(Schannel, 2);
+        boolean bRs485Slot = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_ALARMHOST_RS485_SLOT_CFG, channel, pRs485SlotCFG, strRs485SlotCFG.dwSize, pInt1);
+        if (!bRs485Slot) {
+            System.out.println("鑾峰彇鎶ヨ涓绘満RS485妲戒綅鍙傛暟澶辫触锛侀敊璇彿锛�" + hCNetSDK.NET_DVR_GetLastError());
+            return;
+        }
+        strRs485SlotCFG.read();
+        return;
+
+    }
+}
diff --git a/src/main/java/com/whyc/hik/ChannelParamCfg.java b/src/main/java/com/whyc/hik/ChannelParamCfg.java
new file mode 100644
index 0000000..f762801
--- /dev/null
+++ b/src/main/java/com/whyc/hik/ChannelParamCfg.java
@@ -0,0 +1,522 @@
+package com.whyc.hik;
+
+import com.sun.jna.NativeLong;
+import com.sun.jna.Pointer;
+import com.sun.jna.ptr.IntByReference;
+import com.whyc.hik.NetSDKDemo.HCNetSDK;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+import static com.whyc.hik.TestDemo.hCNetSDK;
+
+/**
+ * 閫氶亾鍙傛暟閰嶇疆
+ * @Author: jiangxin14
+ * @Date: 2024-08-26  09:46
+ */
+public class ChannelParamCfg {
+
+
+    /**
+     * 鑾峰彇涓庤缃澶囧浘鍍忓弬鏁�
+     * @param iUserID
+     */
+    //鑾峰彇璁惧鐨勫浘鍍忓弬鏁�-绉诲姩渚︽祴楂樹寒鏄剧ず
+    public static void GetandSetPicCfg(int iUserID) {
+        HCNetSDK.NET_DVR_PICCFG_V40 strPicCfg = new HCNetSDK.NET_DVR_PICCFG_V40();
+        strPicCfg.dwSize = strPicCfg.size();
+        Pointer pStrPicCfg = strPicCfg.getPointer();
+        NativeLong lChannel = new NativeLong(1);
+        IntByReference pInt = new IntByReference(0);
+        boolean b_GetPicCfg = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_PICCFG_V40, lChannel.intValue(),
+                pStrPicCfg, strPicCfg.size(), pInt);
+        if (b_GetPicCfg == false) {
+            System.out.println("鑾峰彇鍥惧儚鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        strPicCfg.read();
+        System.out.println("閫氶亾鍙凤細" + lChannel );
+        System.out.println("棰勮鐨勫浘鍍忔槸鍚︽樉绀篛SD锛�" + strPicCfg.dwShowOsd);
+        System.out.println("绉诲姩渚︽祴楂樹寒鏄剧ず鏄惁寮�鍚�:"+strPicCfg.struMotion.byEnableDisplay);
+        strPicCfg.read();
+
+        //鐩存帴鎶婅幏鍙栧埌鐨勫弬鏁拌缃洖鍘伙紝濡傛灉鏈夐渶瑕佸彲浠ヨ嚜琛屼慨鏀瑰叾涓渶瑕佷慨鏀圭殑瀛楁
+        boolean b_SetPicCfg = hCNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_PICCFG_V40,lChannel.intValue(),
+                pStrPicCfg, strPicCfg.size());
+        if (b_SetPicCfg == false) {
+            System.out.println("璁剧疆鍥惧儚鍙傛暟绉诲姩渚︽祴楂樹寒鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        else {
+            System.out.println("璁剧疆绉诲姩渚︽祴楂樹寒鍙傛暟鎴愬姛");
+
+        }
+    }
+
+    /**
+     * 鐞冩満PTZ鍙傛暟鑾峰彇璁剧疆
+     * @param iUserID
+     */
+
+    public static void SetPTZcfg(int iUserID) {
+        HCNetSDK.NET_DVR_PTZPOS struPtTZPos = new HCNetSDK.NET_DVR_PTZPOS();
+        IntByReference pUsers = new IntByReference(1);
+        boolean b_GetPTZ = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_PTZPOS, 1, struPtTZPos.getPointer(), struPtTZPos.size(), pUsers);
+        if (b_GetPTZ == false) {
+            System.out.println("鑾峰彇PTZ鍧愭爣淇℃伅澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            struPtTZPos.read();
+            int wPanPos = Integer.parseInt(Integer.toHexString(struPtTZPos.wPanPos).trim());
+            float WPanPos = wPanPos * 0.1f;
+            int wTiltPos = Integer.parseInt(Integer.toHexString(struPtTZPos.wTiltPos).trim());
+            float WTiltPos = wTiltPos * 0.1f;
+            int wZoomPos = Integer.parseInt(Integer.toHexString(struPtTZPos.wZoomPos).trim());
+            float WZoomPos = wZoomPos * 0.1f;
+            System.out.println("P鍙傛暟锛�" + WPanPos + "\n");
+            System.out.println("T鍙傛暟锛�" + wTiltPos + "\n");
+            System.out.println("Z鍙傛暟锛�" + wZoomPos + "\n");
+        }
+//        struPtTZPos.wAction = 2;
+        //鏈粨鏋勪綋涓殑wAction鍙傛暟鏄缃椂鐨勬搷浣滅被鍨嬶紝鍥犳鑾峰彇鏃惰鍙傛暟鏃犳晥銆傚疄闄呮樉绀虹殑PTZ鍊兼槸鑾峰彇鍒扮殑鍗佸叚杩涘埗鍊肩殑鍗佸垎涔嬩竴锛�
+        // 濡傝幏鍙栫殑姘村钩鍙傛暟P鐨勫�兼槸0x1750锛屽疄闄呮樉绀虹殑P鍊间负175搴︼紱鑾峰彇鍒扮殑鍨傜洿鍙傛暟T鐨勫�兼槸0x0789锛屽疄闄呮樉绀虹殑T鍊间负78.9搴︼紝濡傛灉T鏈礋鍊硷紝鑾峰彇鐨勫�煎噺鍘�360
+        // 鑾峰彇鍒扮殑鍙樺�嶅弬鏁癦鐨勫�兼槸0x1100锛屽疄闄呮樉绀虹殑Z鍊间负110鍊嶃��
+//        String pHex="13669";
+//        int pInter=Integer.parseInt(pHex);
+//        short pInter = 13669;
+//        System.out.println(pInter);
+//        struPtTZPos.wPanPos = (short) pInter;
+//        struPtTZPos.write();
+//        boolean b_SetPTZ = hCNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_PTZPOS, 1, struPtTZPos.getPointer(), struPtTZPos.size());
+//        if (b_GetPTZ == false) {
+//            System.out.println("璁剧疆PTZ鍧愭爣淇℃伅澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+//        } else {
+//
+//            System.out.println("璁剧疆PTZ鎴愬姛");
+//        }
+
+    }
+
+    /**
+     * 璁剧疆浜戝彴閿佸畾淇℃伅
+     * @param iUserID
+     */
+    public static void SetPTZLOCKCFG(int iUserID) {
+        HCNetSDK.NET_DVR_PTZ_LOCKCFG struPtzLockCfg =new HCNetSDK.NET_DVR_PTZ_LOCKCFG();
+        struPtzLockCfg.dwSize =struPtzLockCfg.size();
+        Pointer pStrPtzLockCfg = struPtzLockCfg.getPointer();
+        NativeLong lChannel = new NativeLong(1);
+        IntByReference pInt = new IntByReference(0);
+        boolean b_GetPtzLockCfg = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_PTZLOCKCFG, lChannel.intValue(),
+                pStrPtzLockCfg, struPtzLockCfg.size(), pInt);
+        if (b_GetPtzLockCfg == false) {
+            System.out.println("鑾峰彇浜戝彴閿佸畾淇℃伅澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struPtzLockCfg.read();
+        System.out.println("閫氶亾鍙凤細" + lChannel );
+        System.out.println("浜戝彴閿佸畾鎺у埗鐘舵�佷负锛�" + struPtzLockCfg.byWorkMode);
+
+        struPtzLockCfg.read();
+        struPtzLockCfg.byWorkMode= 1;    //0- 瑙i攣锛�1- 閿佸畾
+        struPtzLockCfg.write();
+        boolean b_SetPtzLockCfg = hCNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_PTZLOCKCFG,lChannel.intValue(),
+                pStrPtzLockCfg, struPtzLockCfg.size());
+        if (b_SetPtzLockCfg== false) {
+            System.out.println("璁剧疆浜戝彴閿佸畾淇℃伅澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        else {
+            System.out.println("璁剧疆浜戝彴閿佸畾淇℃伅鎴愬姛");
+            System.out.println("浜戝彴閿佸畾鎺у埗鐘舵�佸綋鍓嶄负锛�" + struPtzLockCfg.byWorkMode);
+        }
+    }
+
+//        public static void PTZControlOther(int iUserID){
+//          boolean b_ptzcontrol=hCNetSDK.NET_DVR_PTZControl_Other(iUserID,1,HCNetSDK.TILT_UP,0);
+//
+//          if( b_ptzcontrol==false){
+//              System.out.println("浜戝彴鍚戜笂杞姩澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+//          }else{
+//              System.out.println("璁剧疆鍚戜笂杞姩鎴愬姛");
+//            }
+
+    //      }
+
+    /**
+     * 鑾峰彇(璁剧疆)鍓嶇鍙傛暟(鎵╁睍)
+     * @param iUserID
+     */
+    public static void GetCameraPara(int iUserID) {
+        HCNetSDK.NET_DVR_CAMERAPARAMCFG_EX struCameraParam = new HCNetSDK.NET_DVR_CAMERAPARAMCFG_EX();
+        Pointer pstruCameraParam = struCameraParam.getPointer();
+        IntByReference ibrBytesReturned = new IntByReference(0);
+        boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_CCDPARAMCFG_EX, 1, pstruCameraParam, struCameraParam.size(), ibrBytesReturned);
+        if (!b_GetCameraParam) {
+            System.out.println("鑾峰彇鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struCameraParam.read();
+        System.out.println("鏄惁寮�鍚棆杞細" + struCameraParam.struCorridorMode.byEnableCorridorMode);
+
+        //鐩存帴鎶婅幏鍙栧埌鐨勫弬鏁拌缃洖鍘伙紝濡傛灉鏈夐渶瑕佸彲浠ヨ嚜琛屼慨鏀瑰叾涓渶瑕佷慨鏀圭殑瀛楁
+        boolean b_SetCameraParam = hCNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_CCDPARAMCFG_EX, 1, pstruCameraParam, struCameraParam.size());
+        if (!b_SetCameraParam) {
+            System.out.println("璁剧疆鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struCameraParam.read();
+        System.out.println("璁剧疆鎴愬姛");
+    }
+
+
+
+    //鑾峰彇鍜岃缃綉缁滃弬鏁�
+    public  static  void  GetNetCfg(int iUserID) {
+        HCNetSDK.NET_DVR_NETCFG_V50 struNetCfg = new HCNetSDK.NET_DVR_NETCFG_V50();
+        Pointer pstruNetCfg = struNetCfg.getPointer();
+        IntByReference ibrBytesReturned = new IntByReference(0);
+        boolean b_GetNetCfg = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_NETCFG_V50, 1, pstruNetCfg, struNetCfg.size(), ibrBytesReturned);
+        if (!b_GetNetCfg) {
+            System.out.println("鑾峰彇缃戠粶鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struNetCfg.read();
+        System.out.println("鏄惁鍚敤DHCP锛�" + struNetCfg.byUseDhcp);
+
+        //鐩存帴鎶婅幏鍙栧埌鐨勫弬鏁拌缃洖鍘伙紝濡傛灉鏈夐渶瑕佸彲浠ヨ嚜琛屼慨鏀瑰叾涓渶瑕佷慨鏀圭殑瀛楁
+        boolean b_SetNetCfg = hCNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_NETCFG_V50, 1, pstruNetCfg, struNetCfg.size());
+        if (!b_SetNetCfg) {
+            System.out.println("璁剧疆缃戠粶鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struNetCfg.read();
+        System.out.println("璁剧疆鎴愬姛");
+    }
+
+
+
+    //鑾峰彇鍜岃缃綍鍍忚鍒�
+    public static void GetRecordCfg(int iUserID){
+        HCNetSDK.NET_DVR_RECORD_V40 struRecordCfg = new HCNetSDK.NET_DVR_RECORD_V40();
+        Pointer pstruRecordCfg = struRecordCfg.getPointer();
+
+        //System.out.println("鎸囬拡涓猴細"+pstruRecordCfg);
+        IntByReference ibrBytesReturned = new IntByReference(1);
+        boolean b_GetRecordCfg = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_RECORDCFG_V40, 1, pstruRecordCfg, struRecordCfg.size(), ibrBytesReturned);
+        if (!b_GetRecordCfg) {
+            System.out.println("鑾峰彇褰曞儚璁″垝澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struRecordCfg.read();
+        System.out.println("鐮佹祦绫诲瀷锛�" + struRecordCfg.byStreamType);
+
+        //鐩存帴鎶婅幏鍙栧埌鐨勫弬鏁拌缃洖鍘伙紝濡傛灉鏈夐渶瑕佸彲浠ヨ嚜琛屼慨鏀瑰叾涓渶瑕佷慨鏀圭殑瀛楁
+        boolean b_SetRecordCfg = hCNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_RECORDCFG_V40, 1, pstruRecordCfg, struRecordCfg.size());
+        if (!b_SetRecordCfg) {
+            System.out.println("璁剧疆褰曞儚璁″垝澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struRecordCfg.read();
+        System.out.println("璁剧疆鎴愬姛");
+
+    }
+
+
+
+    /**
+     * 鑾峰彇蹇悆鑱氱劍妯″紡淇℃伅銆�
+     * @param iUserID
+     */
+    public static void GetFocusMode(int iUserID) {
+        HCNetSDK.NET_DVR_FOCUSMODE_CFG struFocusMode = new HCNetSDK.NET_DVR_FOCUSMODE_CFG();
+        struFocusMode.read();
+        struFocusMode.dwSize = struFocusMode.size();
+        struFocusMode.write();
+        Pointer pFocusMode = struFocusMode.getPointer();
+        IntByReference ibrBytesReturned = new IntByReference(0);
+        boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_FOCUSMODECFG, 1, pFocusMode, struFocusMode.size(), ibrBytesReturned);
+        if (!b_GetCameraParam) {
+            System.out.println("鑾峰彇蹇悆鑱氱劍妯″紡澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struFocusMode.read();
+        System.out.println("鑱氱劍妯″紡锛�" + struFocusMode.byFocusMode);
+        struFocusMode.byFocusMode = 1;
+        struFocusMode.byFocusDefinitionDisplay = 1;
+        struFocusMode.byFocusSpeedLevel = 3;
+        struFocusMode.write();
+        boolean b_SetCameraParam = hCNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_FOCUSMODECFG, 1, pFocusMode, struFocusMode.size());
+        if (!b_SetCameraParam) {
+            System.out.println("璁剧疆蹇悆鑱氱劍妯″紡澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        struFocusMode.read();
+        System.out.println("璁剧疆鎴愬姛");
+    }
+
+    /**
+     * 鑾峰彇IP閫氶亾
+     * @param iUserID
+     * @throws UnsupportedEncodingException
+     */
+    public static void GetIPChannelInfo(int iUserID) throws UnsupportedEncodingException {
+        IntByReference ibrBytesReturned = new IntByReference(0);//鑾峰彇IP鎺ュ叆閰嶇疆鍙傛暟
+        HCNetSDK.NET_DVR_IPPARACFG_V40 m_strIpparaCfg = new HCNetSDK.NET_DVR_IPPARACFG_V40();
+        m_strIpparaCfg.write();
+        //lpIpParaConfig 鎺ユ敹鏁版嵁鐨勭紦鍐叉寚閽�
+        Pointer lpIpParaConfig = m_strIpparaCfg.getPointer();
+        boolean bRet = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_IPPARACFG_V40, 0, lpIpParaConfig, m_strIpparaCfg.size(), ibrBytesReturned);
+        m_strIpparaCfg.read();
+        System.out.println("璧峰鏁板瓧閫氶亾鍙凤細" + m_strIpparaCfg.dwStartDChan);
+
+        for (int iChannum = 0; iChannum < m_strIpparaCfg.dwDChanNum; iChannum++) {
+            int channum = iChannum + m_strIpparaCfg.dwStartDChan;
+            HCNetSDK.NET_DVR_PICCFG_V40 strPicCfg = new HCNetSDK.NET_DVR_PICCFG_V40();
+            strPicCfg.dwSize = strPicCfg.size();
+            strPicCfg.write();
+            Pointer pStrPicCfg = strPicCfg.getPointer();
+            NativeLong lChannel = new NativeLong(channum);
+            IntByReference pInt = new IntByReference(0);
+            boolean b_GetPicCfg = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_PICCFG_V40, lChannel.intValue(),
+                    pStrPicCfg, strPicCfg.size(), pInt);
+//            if (b_GetPicCfg == false) {
+//                System.out.println("鑾峰彇鍥惧儚鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+//            }
+            strPicCfg.read();
+            m_strIpparaCfg.struStreamMode[iChannum].read();
+            if (m_strIpparaCfg.struStreamMode[iChannum].byGetStreamType == 0) {
+                m_strIpparaCfg.struStreamMode[iChannum].uGetStream.setType(HCNetSDK.NET_DVR_IPCHANINFO.class);
+                m_strIpparaCfg.struStreamMode[iChannum].uGetStream.struChanInfo.read();
+
+                System.out.println("--------------绗�"+ (iChannum+1) + "涓�氶亾------------------");
+                int channel = m_strIpparaCfg.struStreamMode[iChannum].uGetStream.struChanInfo.byIPID   + m_strIpparaCfg.struStreamMode[iChannum].uGetStream.struChanInfo.byIPIDHigh * 256;
+                System.out.println("channel:" +  channel);
+                if(channel > 0){
+                    System.out.println("ip锛� " + new String(m_strIpparaCfg.struIPDevInfo[channel-1].struIP.sIpV4).trim());
+                }
+                System.out.println("name锛� " + new String(strPicCfg.sChanName,"GBK").trim());
+                if (m_strIpparaCfg.struStreamMode[iChannum].uGetStream.struChanInfo.byEnable == 1) {
+                    System.out.println("IP閫氶亾" + channum + "鍦ㄧ嚎");
+
+                } else {
+
+                    System.out.println("IP閫氶亾" + channum + "涓嶅湪绾�");
+
+                }
+            }
+        }
+    }
+
+    /**
+     * 鑾峰彇楂樼簿搴TZ缁濆浣嶇疆閰嶇疆,涓�鑸儹鎴愬儚璁惧鏀寔
+     * @param iUserID
+     */
+    //
+    public static void GetPTZAbsoluteEx(int iUserID) {
+        HCNetSDK.NET_DVR_STD_CONFIG struSTDcfg = new HCNetSDK.NET_DVR_STD_CONFIG();
+        HCNetSDK.NET_DVR_PTZABSOLUTEEX_CFG struPTZ = new HCNetSDK.NET_DVR_PTZABSOLUTEEX_CFG();
+        struSTDcfg.read();
+        IntByReference channel = new IntByReference(1);
+        struSTDcfg.lpCondBuffer = channel.getPointer();
+        struSTDcfg.dwCondSize = 4;
+        struSTDcfg.lpOutBuffer = struPTZ.getPointer();
+        struSTDcfg.dwOutSize = struPTZ.size();
+        struSTDcfg.lpInBuffer = Pointer.NULL;
+        struSTDcfg.dwInSize = 0;
+        struSTDcfg.write();
+        boolean bGetPTZ = hCNetSDK.NET_DVR_GetSTDConfig(iUserID, HCNetSDK.NET_DVR_GET_PTZABSOLUTEEX, struSTDcfg);
+        if (bGetPTZ == false) {
+            System.out.println("鑾峰彇PTZ鍙傛暟閿欒,閿欒鐮侊細" + hCNetSDK.NET_DVR_GetLastError());
+            return;
+        }
+        struPTZ.read();
+        System.out.println("鐒﹁窛鑼冨洿锛�" + struPTZ.dwFocalLen);
+        System.out.println("鑱氱劍鍙傛暟锛�" + struPTZ.struPTZCtrl.dwFocus);
+        return;
+    }
+
+    /**
+     * 璁剧疆鐞冩満棰勭疆鐐�
+     * @param iUserID
+     */
+    public static void GetCruisePoint(int iUserID) {
+        HCNetSDK.NET_DVR_CRUISEPOINT_COND struCruisepointCond = new HCNetSDK.NET_DVR_CRUISEPOINT_COND();
+        struCruisepointCond.read();
+        struCruisepointCond.dwSize = struCruisepointCond.size();
+        struCruisepointCond.dwChan = 1;
+        struCruisepointCond.wRouteNo = 1;
+        struCruisepointCond.write();
+
+        HCNetSDK.NET_DVR_CRUISEPOINT_V50 struCruisepointV40 = new HCNetSDK.NET_DVR_CRUISEPOINT_V50();
+        struCruisepointV40.read();
+        struCruisepointV40.dwSize = struCruisepointV40.size();
+        struCruisepointV40.write();
+
+        // 閿欒淇℃伅鍒楄〃
+        IntByReference pInt = new IntByReference(0);
+        Pointer lpStatusList = pInt.getPointer();
+
+        boolean flag = hCNetSDK.NET_DVR_GetDeviceConfig(iUserID, 6714, 1,
+                struCruisepointCond.getPointer(), struCruisepointCond.size(), lpStatusList, struCruisepointV40.getPointer(), struCruisepointV40.size());
+        if (flag == false) {
+            int iErr = hCNetSDK.NET_DVR_GetLastError();
+            System.out.println("NET_DVR_STDXMLConfig澶辫触锛岄敊璇彿锛�" + iErr);
+            return;
+        }
+        struCruisepointV40.read();
+    }
+
+    /**
+     * 璁惧鎶撳浘淇濆瓨鍒扮紦鍐插尯
+     * @param iUserID
+     */
+    public static void GetPictoPointer(int iUserID) {
+        HCNetSDK.NET_DVR_JPEGPARA jpegpara = new HCNetSDK.NET_DVR_JPEGPARA();
+        jpegpara.read();
+        jpegpara.wPicSize = 255;
+        jpegpara.wPicQuality = 0;
+        jpegpara.write();
+        HCNetSDK.BYTE_ARRAY byte_array = new HCNetSDK.BYTE_ARRAY(10 * 1024 * 1024);
+        IntByReference ret = new IntByReference(0);
+        boolean b = hCNetSDK.NET_DVR_CaptureJPEGPicture_NEW(iUserID, 1, jpegpara, byte_array.getPointer(), byte_array.size(), ret);
+        if (b == false) {
+            System.out.println("鎶撳浘澶辫触锛�" + hCNetSDK.NET_DVR_GetLastError());
+            return;
+        }
+        byte_array.read();
+        System.out.println("ret:"+ret.getValue());
+        String filePath = ".\\pic\\test.jpg"; // 鎸囧畾淇濆瓨鏂囦欢鐨勮矾寰勫拰鍚嶇О
+        try {
+            WriteBytesToFile(byte_array.byValue,ret.getValue(), filePath);
+            System.out.println("鍥剧墖宸叉垚鍔熶繚瀛樹负锛�" + filePath);
+        } catch (IOException e) {
+            System.err.println("鍐欏叆鏂囦欢鏃跺彂鐢熼敊璇細" + e.getMessage());
+            e.printStackTrace();
+        }
+        System.out.println("鎶撳浘鎴愬姛");
+        return;
+    }
+
+
+    /**
+     * 灏嗗瓧鑺傛暟缁勫啓鍏ュ埌鎸囧畾鐨勬枃浠惰矾寰勩��
+     *
+     * @param bytes 瀛楄妭鏁扮粍
+     * @param filePath 鏂囦欢淇濆瓨璺緞
+     * @throws IOException 濡傛灉鏂囦欢鍐欏叆杩囩▼涓彂鐢熼敊璇�
+     */
+    private static void WriteBytesToFile(byte[] bytes,int len, String filePath) throws IOException {
+        File file = new File(filePath);
+        FileOutputStream fos = new FileOutputStream(file);
+
+        fos.write(bytes,0,len);
+        fos.close(); // 鍏抽棴杈撳嚭娴�
+    }
+
+    /**
+     * 杩欓噷搴旇鏇挎崲涓轰綘瀹為檯鑾峰彇瀛楄妭鏁扮粍鐨勬柟娉曘��
+     * 绀轰緥涓渷鐣ュ叿浣撳疄鐜帮紝鐩存帴杩斿洖null銆�
+     *
+     * @return 鍥剧墖鐨勫瓧鑺傛暟缁�
+     */
+    private static byte[] getYourImageBytes() {
+        // 杩欓噷搴旇鏄粠鏁版嵁搴撱�佺綉缁滄垨鍏朵粬鏉ユ簮鑾峰彇瀛楄妭鏁扮粍鐨勯�昏緫
+        // 杩斿洖绀轰緥锛歯ull锛屽疄闄呬娇鐢ㄦ椂闇�瑕佹浛鎹负鏈夋晥鏁版嵁
+        return null;
+    }
+
+    /**
+     * 褰曞儚璧锋鏃堕棿鏌ヨ
+     * @param iUserID
+     */
+    public static void SearchRecordTime(int iUserID) {
+        HCNetSDK.NET_DVR_RECORD_TIME_SPAN_INQUIRY struRecInq = new HCNetSDK.NET_DVR_RECORD_TIME_SPAN_INQUIRY();
+        struRecInq.read();
+        struRecInq.dwSize = struRecInq.size();
+        struRecInq.byType = 0;
+        struRecInq.write();
+        HCNetSDK.NET_DVR_RECORD_TIME_SPAN struRecSpan = new HCNetSDK.NET_DVR_RECORD_TIME_SPAN();
+        //閫氶亾鍙疯鏄庯細涓�鑸琁PC/IPD閫氶亾鍙蜂负1锛�32璺互鍙婁互涓嬭矾鏁扮殑NVR鐨処P閫氶亾閫氶亾鍙蜂粠33寮�濮嬶紝64璺強浠ヤ笂璺暟鐨凬VR鐨処P閫氶亾閫氶亾鍙蜂粠1寮�濮嬨��
+        if (hCNetSDK.NET_DVR_InquiryRecordTimeSpan(iUserID, 35, struRecInq, struRecSpan) == false) {
+            System.out.println("褰曞儚璧锋鏃堕棿鏌ヨ澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            System.out.println("褰曞儚璧锋鏃堕棿鏌ヨ鎴愬姛");
+            struRecSpan.read();
+            System.out.println("寮�鍚椂闂达細" + "骞达細" + struRecSpan.strBeginTime.dwYear + "\n");
+            System.out.println("寮�鍚椂闂达細" + "鏈堬細" + struRecSpan.strBeginTime.dwMonth + "\n");
+            System.out.println("寮�鍚椂闂达細" + "鏃ワ細" + struRecSpan.strBeginTime.dwDay + "\n");
+            System.out.println("寮�鍚椂闂达細" + "鏃讹細" + struRecSpan.strBeginTime.dwHour + "\n");
+            System.out.println("鍋滄鏃堕棿锛�" + "骞达細" + struRecSpan.strEndTime.dwYear + "\n");
+            System.out.println("鍋滄鏃堕棿锛�" + "鏈堬細" + struRecSpan.strEndTime.dwMonth + "\n");
+            System.out.println("鍋滄鏃堕棿锛�" + "鏃ワ細" + struRecSpan.strEndTime.dwDay + "\n");
+            System.out.println("鍋滄鏃堕棿锛�" + "鏃讹細" + struRecSpan.strEndTime.dwHour + "\n");
+        }
+    }
+
+    /**
+     * 鏈堝巻褰曞儚鏌ヨ
+     * @param iUserID
+     */
+    public static void GetRecMonth(int iUserID) {
+        HCNetSDK.NET_DVR_MRD_SEARCH_PARAM struMrdSeaParam = new HCNetSDK.NET_DVR_MRD_SEARCH_PARAM();
+        struMrdSeaParam.read();
+        struMrdSeaParam.dwSize = struMrdSeaParam.size();
+        struMrdSeaParam.wYear = 2021;
+        struMrdSeaParam.byMonth = 1;
+        //閫氶亾鍙疯鏄庯細涓�鑸琁PC/IPD閫氶亾鍙蜂负1锛�32璺互鍙婁互涓嬭矾鏁扮殑NVR鐨処P閫氶亾閫氶亾鍙蜂粠33寮�濮嬶紝64璺強浠ヤ笂璺暟鐨凬VR鐨処P閫氶亾閫氶亾鍙蜂粠1寮�濮嬨��
+        struMrdSeaParam.struStreamInfo.dwChannel = 33;
+        struMrdSeaParam.write();
+        HCNetSDK.NET_DVR_MRD_SEARCH_RESULT struMrdSeaResu = new HCNetSDK.NET_DVR_MRD_SEARCH_RESULT();
+        struMrdSeaResu.read();
+        struMrdSeaResu.dwSize = struMrdSeaResu.size();
+        struMrdSeaResu.write();
+        IntByReference list = new IntByReference(0);
+        boolean b_GetResult = hCNetSDK.NET_DVR_GetDeviceConfig(iUserID, HCNetSDK.NET_DVR_GET_MONTHLY_RECORD_DISTRIBUTION, 0, struMrdSeaParam.getPointer(),
+                struMrdSeaParam.size(), list.getPointer(), struMrdSeaResu.getPointer(), struMrdSeaResu.size());
+        if (b_GetResult == false) {
+            System.out.println("鏈堝巻褰曞儚鏌ヨ澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            struMrdSeaResu.read();
+            for (int i = 0; i <= 32; i++) {
+                int day = i + 1;
+                System.out.println("" + day + "鍙锋槸鍚﹀綍鍍忔枃浠�" + struMrdSeaResu.byRecordDistribution[i]);
+            }
+        }
+    }
+
+    /**
+     * 璁惧鎶撳浘
+     * @param iUserID
+     */
+    public static void CaptureJPEGPicture(int iUserID) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+//        String curTime0 = sdf.format(new Date());
+        Boolean result = false;
+        int count = 0;
+        while (!result) {
+            try {
+                Thread.sleep(1 * 1000); //璁剧疆鏆傚仠鐨勬椂闂� 5 绉�
+                String curTime0 = sdf.format(new Date());
+                count++;
+                String filename = ".\\pic\\" + curTime0 + count + ".jpg" + "\0";
+                byte[] fileByte = filename.getBytes("UTF-8");
+
+                HCNetSDK.NET_DVR_JPEGPARA strJpegParm = new HCNetSDK.NET_DVR_JPEGPARA();
+                strJpegParm.read();
+                strJpegParm.wPicSize = 2;
+                strJpegParm.wPicQuality = 0;
+                strJpegParm.write();
+                boolean b_Cap = hCNetSDK.NET_DVR_CaptureJPEGPicture(iUserID, 1, strJpegParm, fileByte);
+                if (b_Cap == false) {
+                    System.out.println("鎶撳浘澶辫触,閿欒鐮佷负:" + hCNetSDK.NET_DVR_GetLastError());
+                    return;
+                }
+                System.out.println(sdf.format(new Date()) + "--寰幆鎵ц绗�" + count + "娆�");
+                if (count == 3) {
+                    result = true;
+                    break;
+                }
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            } catch (UnsupportedEncodingException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+
+}
+
diff --git a/src/main/java/com/whyc/hik/Commom/CommonUtil.java b/src/main/java/com/whyc/hik/Commom/CommonUtil.java
new file mode 100644
index 0000000..c90ef6c
--- /dev/null
+++ b/src/main/java/com/whyc/hik/Commom/CommonUtil.java
@@ -0,0 +1,67 @@
+package com.whyc.hik.Commom;
+
+
+
+import java.io.*;
+
+public class CommonUtil {
+
+    //SDK鏃堕棿瑙f瀽
+    public static String parseTime(int time) {
+        int year = (time >> 26) + 2000;
+        int month = (time >> 22) & 15;
+        int day = (time >> 17) & 31;
+        int hour = (time >> 12) & 31;
+        int min = (time >> 6) & 63;
+        int second = (time >> 0) & 63;
+        String sTime = year + "-" + month + "-" + day + "-" + hour + ":" + min + ":" + second;
+//        System.out.println(sTime);
+        return sTime;
+
+
+    }
+
+    //鍒嗚鲸鐜囪В鏋�
+    public static String parseResolution(int dwResolution) {
+        int interlace = (((dwResolution) >> 28) & 0x1);
+        int width = ((((dwResolution) >> 19) & 0x1ff) << 3);  //瀹�
+        int hight = ((((dwResolution) >> 8) & 0x7ff) << 1); //楂�
+        int fps = ((dwResolution) & 0xff);  //甯х巼
+        String result = width + "*" + hight + "_" + fps;
+        return result;
+
+
+    }
+
+    /**
+     * 璇诲彇鏈湴鏂囦欢鍒版暟缁勪腑
+     *
+     * @param filename 鏈湴鏂囦欢
+     * @return 杩斿洖璇诲彇鍒扮殑鏁版嵁鍒� byte鏁扮粍
+     * @throws IOException
+     */
+    public static byte[] toByteArray(String filename) throws IOException {
+        File file = new File(filename);
+        if (!file.exists()) {
+            throw new FileNotFoundException(filename);
+        }
+        ByteArrayOutputStream bos = new ByteArrayOutputStream((int) file.length());
+        BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
+        try {
+            byte[] buffer = new byte[1024];
+            int len;
+            while (-1 != (len = in.read(buffer, 0, buffer.length))) {
+                bos.write(buffer, 0, len);
+            }
+            return bos.toByteArray();
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw e;
+        } finally {
+            bos.close();
+            in.close();
+        }
+    }
+
+
+}
diff --git a/src/main/java/com/whyc/hik/Commom/osSelect.java b/src/main/java/com/whyc/hik/Commom/osSelect.java
new file mode 100644
index 0000000..50b868f
--- /dev/null
+++ b/src/main/java/com/whyc/hik/Commom/osSelect.java
@@ -0,0 +1,12 @@
+package com.whyc.hik.Commom;
+
+public class osSelect {
+
+    public static boolean isLinux() {
+        return System.getProperty("os.name").toLowerCase().contains("linux");
+    }
+
+    public static boolean isWindows() {
+        return System.getProperty("os.name").toLowerCase().contains("windows");
+    }
+}
diff --git a/src/main/java/com/whyc/hik/DevManager.java b/src/main/java/com/whyc/hik/DevManager.java
new file mode 100644
index 0000000..acc0fc0
--- /dev/null
+++ b/src/main/java/com/whyc/hik/DevManager.java
@@ -0,0 +1,315 @@
+package com.whyc.hik;
+
+import com.sun.jna.Memory;
+import com.sun.jna.Pointer;
+import com.sun.jna.ptr.IntByReference;
+import com.whyc.hik.NetSDKDemo.HCNetSDK;
+
+import static com.whyc.hik.TestDemo.hCNetSDK;
+
+/**
+ * 璁惧缁存姢绠$悊
+ * @Author: jiangxin14
+ * @Date: 2024-08-12  16:56
+ */
+public class DevManager {
+
+    public static fRemoteConfigCallBack fDevStatusCallBack = null;
+
+
+
+
+    /**
+     * 鎵嬪姩鑾峰彇璁惧鍦ㄧ嚎鐘舵��
+     * @param iUserID
+     */
+    public static void getDeviceStatus(int iUserID) {
+        boolean devStatus = TestDemo.hCNetSDK.NET_DVR_RemoteControl(iUserID, HCNetSDK.NET_DVR_CHECK_USER_STATUS, null, 0);
+        if (devStatus == false) {
+            System.out.println("璁惧涓嶅湪绾�");
+
+        } else {
+            System.out.println("璁惧鍦ㄧ嚎");
+        }
+    }
+
+    /**
+     * 鑾峰彇璁惧宸ヤ綔鐘舵�侊紝CPU锛岀‖鐩樼姸鎬�,閫氶亾鐘舵�侊紝涓�鑸�傜敤浜庣‖鐩樺綍鍍忔満璁惧
+     * @param iUserID
+     */
+    public static void getWorkS(int iUserID) {
+
+        HCNetSDK.NET_DVR_GETWORKSTATE_COND strWorkStatusCond = new HCNetSDK.NET_DVR_GETWORKSTATE_COND();
+        strWorkStatusCond.read();
+        strWorkStatusCond.dwSize = strWorkStatusCond.size(); //璁剧疆缁撴瀯浣撳ぇ灏�
+        strWorkStatusCond.byFindChanByCond = 0; //0- 鏌ユ壘鍏ㄩ儴閫氶亾锛�1- 鏍规嵁dwFindChanNo鏁扮粍涓悇鍏冪礌鎵�鎸囧畾鐨勬湁鏁堥�氶亾鍙疯繘琛屾煡鎵�
+        strWorkStatusCond.byFindHardByCond = 0; //0- 鏌ユ壘鍏ㄩ儴纾佺洏锛�1- 鏍规嵁dwFindHardStatus鏁扮粍涓悇鍏冪礌鎵�鎸囧畾鐨勬湁鏁堢‖鐩樺彿杩涜鏌ユ壘
+        strWorkStatusCond.write();
+        Pointer lpInBuffer = strWorkStatusCond.getPointer();
+        Pointer pUser = null;
+        if (fDevStatusCallBack == null)
+        {
+            fDevStatusCallBack =new fRemoteConfigCallBack();
+        }
+        int devStatus = TestDemo.hCNetSDK.NET_DVR_StartRemoteConfig(iUserID,HCNetSDK.NET_DVR_GET_WORK_STATUS_V50,lpInBuffer,strWorkStatusCond.size(),
+                fDevStatusCallBack,pUser);
+
+        if (devStatus <= -1) {
+            System.err.println("鑾峰彇璁惧鐘舵�丯ET_DVR_StartRemoteConfig寤虹珛澶辫触,閿欒鐮侊細" + TestDemo.hCNetSDK.NET_DVR_GetLastError());
+            return;
+        }
+
+        System.out.println("鑾峰彇璁惧宸ヤ綔鐘舵�佹垚鍔�");
+
+        // 娣诲姞寤舵椂锛岃繖閲屽亣璁惧欢鏃� 5 绉掞紝鍙牴鎹疄闄呮儏鍐佃皟鏁�
+        try {
+            Thread.sleep(5000);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
+        //璋冪敤 NET_DVR_StopRemoteConfig 鍋滄杩滅▼閰嶇疆
+        boolean stopResult = hCNetSDK.NET_DVR_StopRemoteConfig(devStatus);
+        if (stopResult) {
+            System.out.println("鎴愬姛鍋滄杩滅▼閰嶇疆");
+        } else {
+            System.err.println("鍋滄杩滅▼閰嶇疆澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+    }
+
+    /**
+     * 鑾峰彇璁惧鐘舵�佸洖璋冨嚱鏁�
+     */
+    static class fRemoteConfigCallBack  implements   HCNetSDK.FRemoteConfigCallBack
+    {
+        public void invoke(int dwType, Pointer lpBuffer, int dwBufLen, Pointer pUserData){
+
+            switch (dwType)
+            {
+                case HCNetSDK.NET_SDK_CALLBACK_TYPE_STATUS:
+                {
+                    HCNetSDK.BYTE_ARRAY struCallbackStatus = new HCNetSDK.BYTE_ARRAY(dwBufLen);
+                    struCallbackStatus.write();
+                    Pointer pStatus = struCallbackStatus.getPointer();
+                    pStatus.write(0, lpBuffer.getByteArray(0, struCallbackStatus.size()), 0, dwBufLen);
+                    struCallbackStatus.read();
+//                    System.out.println(new String(struCallbackStatus.byValue));
+                    break;
+                }
+                case HCNetSDK.NET_SDK_CALLBACK_TYPE_PROGRESS:
+                {
+                    HCNetSDK.BYTE_ARRAY struPrscess = new HCNetSDK.BYTE_ARRAY(dwBufLen);
+                    struPrscess.write();
+                    Pointer pStatus = struPrscess.getPointer();
+                    pStatus.write(0, lpBuffer.getByteArray(0, struPrscess.size()), 0, dwBufLen);
+                    struPrscess.read();
+                    System.out.println("杩涘害鍊硷細"+ new String(struPrscess.byValue));
+                    break;
+                }
+                case HCNetSDK.NET_SDK_CALLBACK_TYPE_DATA:{
+                    HCNetSDK.NET_DVR_WORKSTATE_V40 strWorKStatus = new HCNetSDK.NET_DVR_WORKSTATE_V40();
+                    strWorKStatus.read();
+                    strWorKStatus.dwSize = strWorKStatus.size();
+                    strWorKStatus.write();
+                    Pointer lpOutBuffer = strWorKStatus.getPointer();
+                    lpOutBuffer.write(0, lpBuffer.getByteArray(0, strWorKStatus.size()), 0, dwBufLen);
+                    strWorKStatus.read();
+                    System.out.println("璁惧鐘舵�侊細"+strWorKStatus.dwDeviceStatic);//0锛嶆甯革紱1锛岰PU鍗犵敤鐜囧お楂橈紝瓒呰繃85%锛�2锛嶇‖浠堕敊璇紝渚嬪涓插彛寮傚父
+                    System.out.println("绗竴涓‖鐩樼姸鎬侊細纭洏瀹归噺锛�"+strWorKStatus.struHardDiskStatic[0].dwVolume+" 纭洏鍓╀綑瀹归噺锛�"+strWorKStatus.struHardDiskStatic[0].dwFreeSpace+
+                            " 纭洏鐘舵�侊細"+strWorKStatus.struHardDiskStatic[0].dwHardDiskStatic);
+                    System.out.println("绗竴璺�氶亾鐘舵�侊細鏄惁褰曞儚锛�"+strWorKStatus.struChanStatic[0].byRecordStatic+" 淇″彿杩炴帴鐘舵�侊細"+strWorKStatus.struChanStatic[0].bySignalStatic+
+                            " 杩炴帴璇ラ�氶亾鐨勫鎴风涓暟锛�"+strWorKStatus.struChanStatic[0].dwLinkNum);
+                    break;
+
+                }
+                default:{
+                    break;
+                }
+
+
+            }
+
+        }
+
+    }
+
+
+    //鑾峰彇璁惧鐨勫熀鏈弬鏁�
+    public static void  getDeviceInfo(int iUserID) {
+        HCNetSDK.NET_DVR_DEVICECFG_V40 m_strDeviceCfg = new HCNetSDK.NET_DVR_DEVICECFG_V40();
+        m_strDeviceCfg.dwSize = m_strDeviceCfg.size();
+        m_strDeviceCfg.write();
+        Pointer pStrDeviceCfg = m_strDeviceCfg.getPointer();
+        IntByReference pInt = new IntByReference(0);
+        boolean b_GetCfg = TestDemo.hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_DEVICECFG_V40,
+                0Xffffffff, pStrDeviceCfg, m_strDeviceCfg.dwSize, pInt);
+        if (b_GetCfg == false) {
+            System.out.println("鑾峰彇鍙傛暟澶辫触  閿欒鐮侊細" + TestDemo.hCNetSDK.NET_DVR_GetLastError());
+        }
+        System.out.println("鑾峰彇鍙傛暟鎴愬姛");
+        m_strDeviceCfg.read();
+        System.out.println("璁惧鍚嶇О:" + new String(m_strDeviceCfg.sDVRName).trim() + "璁惧搴忓垪鍙凤細" + new String(m_strDeviceCfg.sSerialNumber));
+        System.out.println("妯℃嫙閫氶亾涓暟" + m_strDeviceCfg.byChanNum);
+        parseVersion(m_strDeviceCfg.dwSoftwareVersion);
+        parseBuildTime(m_strDeviceCfg.dwSoftwareBuildDate);
+        parseDSPBuildDate(m_strDeviceCfg.dwDSPSoftwareBuildDate);
+
+    }
+
+
+    public  static void parseBuildTime(int buildTime)
+    {
+        int year =( (buildTime & 0XFF << 16) >> 16)+2000;
+        int month = (buildTime & 0XFF << 8) >> 8 ;
+        int data = buildTime & 0xFF;
+        System.out.println("Build:"+year+"."+month+"."+data);
+
+
+
+    }
+
+    public  static void parseDSPBuildDate(int DSPBuildDate )
+    {
+        int year =( (DSPBuildDate & 0XFF << 16) >> 16)+2000;
+        int month = (DSPBuildDate & 0XFF << 8) >> 8 ;
+        int data = DSPBuildDate & 0xFF;
+        System.out.println("DSPBuildDate:"+year+"."+month+"."+data);
+    }
+    //璁惧鐗堟湰瑙f瀽
+    public static void parseVersion(int version) {
+        int firstVersion = (version & 0XFF << 24) >> 24;
+        int secondVersion = (version & 0XFF << 16) >> 16 ;
+        int lowVersion = version & 0XFF;
+
+        System.out.println("firstVersion:"+ firstVersion);
+        System.out.println("secondVersion:"+ secondVersion);
+        System.out.println("lowVersion:"+ lowVersion);
+    }
+
+
+    //鑾峰彇璁惧杞‖浠惰兘鍔�
+    public  static  void  GetSofthardware_Ability(int iUserID){
+        Pointer pInBuf = null;
+        int dwInLength = 0;
+        int dwOutLength = 1024*10;
+        Memory pOutBuf = new Memory(dwOutLength);
+        boolean result = hCNetSDK.NET_DVR_GetDeviceAbility(iUserID, hCNetSDK.DEVICE_SOFTHARDWARE_ABILITY, pInBuf, dwInLength, pOutBuf, dwOutLength);
+        if (result) {
+            // 浠庤緭鍑虹紦鍐插尯鑾峰彇 XML 鏁版嵁
+            String xmlData = pOutBuf.getString(0);
+            System.out.println("璁惧杞‖浠惰兘鍔涗俊鎭紙XML 鏍煎紡锛夛細");
+            System.out.println(xmlData);
+        }else {
+            System.out.println("鑾峰彇璁惧杞‖浠惰兘鍔涘け璐ワ紒閿欒鐮侊細"+hCNetSDK.NET_DVR_GetLastError());
+        }
+    }
+
+    //璁惧JPEG鎶撳浘鑳藉姏
+    public  static  void  GetJPEG_Cap_Ability(int iUserID){
+        // 鏋勫缓杈撳叆鐨� XML 鏁版嵁
+        String inputXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
+                "<!--req, 鑾峰彇JPEG鎶撳浘鑳藉姏鏃秔InBuf鍙傛暟鎻忚堪-->\n" +
+                "<JpegCaptureAbility version=\"2.0\">\n" +
+                "        <channelNO>1</channelNO><!--req,閫氶亾鍙�-->\n" +
+                "</JpegCaptureAbility>";
+        // 杈撳叆缂撳啿鍖�
+        byte[] inputBytes = inputXml.getBytes();
+        int dwInLength = inputBytes.length;
+        Memory pInBuf = new Memory(dwInLength);
+        pInBuf.write(0, inputBytes, 0, dwInLength);
+        int dwOutLength = 1024*10;// 杈撳嚭缂撳啿鍖�
+        Memory pOutBuf = new Memory(dwOutLength);
+        boolean result = hCNetSDK.NET_DVR_GetDeviceAbility(iUserID, hCNetSDK.DEVICE_JPEG_CAP_ABILITY, pInBuf, dwInLength, pOutBuf, dwOutLength);
+        if (result) {
+            // 浠庤緭鍑虹紦鍐插尯鑾峰彇 XML 鏁版嵁
+            String xmlData = pOutBuf.getString(0);
+            System.out.println("璁惧JPEG鎶撳浘鑳藉姏锛圶ML 鏍煎紡锛夛細");
+            System.out.println(xmlData);
+        }else {
+            System.out.println("璁惧JPEG鎶撳浘鑳藉姏锛侀敊璇爜锛�"+hCNetSDK.NET_DVR_GetLastError());
+        }
+    }
+
+    //鏃ュ織鏌ユ壘
+    public  static  void  FindLog(int iUserID){
+        // 鍒濆鍖栨煡鎵炬潯浠�
+        HCNetSDK.NET_DVR_FIND_LOG_COND findCond = new HCNetSDK.NET_DVR_FIND_LOG_COND();
+        findCond.dwSelectMode = 2;//鎸�2-鏃堕棿鏌ユ壘
+        findCond.dwMainType = 0; //鏃ュ織涓荤被鍨�,鍏ㄩ儴
+        findCond.dwSubType = 0; //鏃ュ織娆$被鍨�,鍏ㄩ儴
+        // 鍒濆鍖栧紑濮嬫椂闂�
+        HCNetSDK.NET_DVR_TIME_V50 startTime = new HCNetSDK.NET_DVR_TIME_V50();
+        startTime.wYear = 2023;
+        startTime.byMonth = 2;
+        startTime.byDay = 1;
+        startTime.byHour = 0;
+        startTime.byMinute = 0;
+        startTime.bySecond = 0;
+        startTime.byISO8601 = 0;
+        startTime.wMillisecond = 0;
+        startTime.cTimeDifferenceH = 0;
+        startTime.cTimeDifferenceM = 0;
+        // 鍒濆鍖栫粨鏉熸椂闂�
+        HCNetSDK.NET_DVR_TIME_V50 endTime = new HCNetSDK.NET_DVR_TIME_V50();
+        endTime.wYear = 2023;
+        endTime.byMonth = 2;
+        endTime.byDay = 7;
+        endTime.byHour = 11;
+        endTime.byMinute = 22;
+        endTime.bySecond = 0;
+        endTime.byISO8601 = 0;
+        endTime.wMillisecond = 0;
+        endTime.cTimeDifferenceH = 0;
+        endTime.cTimeDifferenceM = 0;
+        // 灏嗗紑濮嬫椂闂村拰缁撴潫鏃堕棿璧嬪�肩粰鏌ユ壘鏉′欢缁撴瀯浣�
+        findCond.struStartTime = startTime;
+        findCond.struEndTime = endTime;
+        // 寮�濮嬫煡鎵炬棩蹇�
+        int lLogHandle = hCNetSDK.NET_DVR_FindDVRLog_V50(iUserID, findCond);
+        if (lLogHandle < 0) {
+            System.out.println("鏃ュ織鏌ユ壘澶辫触,閿欒鐮侊細"+hCNetSDK.NET_DVR_GetLastError());
+            return;
+        }
+        // 鐢ㄤ簬瀛樺偍鏄惁鎵惧埌鏃ュ織鐨勬爣蹇�
+        boolean foundLog = false;
+        // 鏃ュ織淇℃伅缁撴瀯浣撳疄渚�
+        HCNetSDK.NET_DVR_LOG_V50 logData = new HCNetSDK.NET_DVR_LOG_V50();
+        // 寰幆鑾峰彇鏃ュ織
+        int result = hCNetSDK.NET_DVR_FindNextLog_V50(lLogHandle, logData);
+        HCNetSDK.NET_DVR_TIME_V50 logTime = logData.struLogTime;
+        HCNetSDK.NET_DVR_IPADDR remoteHostAddr = logData.struRemoteHostAddr;
+        while (result>0) {
+            foundLog = true;
+            if(result==1000){
+                System.out.println("鑾峰彇鏃ュ織淇℃伅鎴愬姛:");
+                System.out.println("鏃ュ織鏃堕棿: " + logTime.wYear + "-" + logTime.byMonth + "-" + logTime.byDay + " " +
+                        logTime.byHour + ":" + logTime.byMinute + ":" + logTime.bySecond+ ", 涓荤被鍨�: " + logData.dwMajorType + ", 娆$被鍨�: " + logData.dwMinorType
+                        + ", 杩滅▼涓绘満鍦板潃: " + remoteHostAddr.getIpV4String());
+                result = hCNetSDK.NET_DVR_FindNextLog_V50(lLogHandle, logData);
+            } else if (result==HCNetSDK.NET_DVR_FILE_NOFIND) {
+                System.out.println("鏈煡鎵惧埌鏃ュ織");
+                break;
+            } else if (result==HCNetSDK.NET_DVR_ISFINDING) {
+                System.out.println("姝e湪鏌ユ壘璇风瓑寰�");
+                result = hCNetSDK.NET_DVR_FindNextLog_V50(lLogHandle, logData);
+            } else if (result==HCNetSDK.NET_DVR_NOMOREFILE) {
+                System.out.println("娌℃湁鏇村鐨勬棩蹇楋紝鏌ユ壘缁撴潫");
+                break;
+            } else if (result==HCNetSDK.NET_DVR_FILE_EXCEPTION) {
+                System.out.println("鏌ユ壘鏃ュ織鏃跺紓甯�");
+                break;
+            }
+        }
+        // 鏍规嵁鏄惁鎵惧埌鏃ュ織杈撳嚭鐩稿簲淇℃伅
+        if (!foundLog){
+            System.out.println("鏌ユ壘澶辫触");
+        }
+        // 閲婃斁鏌ユ壘鏃ュ織鐨勮祫婧�
+        boolean closeResult = hCNetSDK.NET_DVR_FindLogClose_V30(lLogHandle);
+        if (closeResult) {
+            System.out.println("鏃ュ織鏌ユ壘璧勬簮閲婃斁鎴愬姛");
+        } else {
+            System.out.println("鏃ュ織鏌ユ壘璧勬簮閲婃斁澶辫触,閿欒鐮�: "+hCNetSDK.NET_DVR_GetLastError());
+        }
+    }
+
+}
diff --git a/src/main/java/com/whyc/hik/NetSDKDemo/HCNetSDK.java b/src/main/java/com/whyc/hik/NetSDKDemo/HCNetSDK.java
new file mode 100644
index 0000000..414118c
--- /dev/null
+++ b/src/main/java/com/whyc/hik/NetSDKDemo/HCNetSDK.java
@@ -0,0 +1,10935 @@
+package com.whyc.hik.NetSDKDemo;
+
+import com.sun.jna.*;
+import com.sun.jna.examples.win32.W32API;
+import com.sun.jna.examples.win32.W32API.HWND;
+import com.sun.jna.ptr.ByteByReference;
+import com.sun.jna.ptr.IntByReference;
+import com.sun.jna.ptr.ShortByReference;
+
+import java.util.Arrays;
+import java.util.List;
+
+//SDK鎺ュ彛璇存槑,HCNetSDK.dll
+public interface HCNetSDK extends Library {
+
+    /*** 瀹忓畾涔� ***/
+    //甯搁噺
+
+    public static final int MAX_NAMELEN = 16;    //DVR鏈湴鐧婚檰鍚�
+    public static final int MAX_RIGHT = 32;    //璁惧鏀寔鐨勬潈闄愶紙1-12琛ㄧず鏈湴鏉冮檺锛�13-32琛ㄧず杩滅▼鏉冮檺锛�
+    public static final int NAME_LEN = 32;    //鐢ㄦ埛鍚嶉暱搴�
+    public static final int PASSWD_LEN = 16;    //瀵嗙爜闀垮害
+    public static final int SERIALNO_LEN = 48;   //搴忓垪鍙烽暱搴�
+    public static final int MACADDR_LEN = 6;      //mac鍦板潃闀垮害
+    public static final int MAX_ETHERNET = 2;   //璁惧鍙厤浠ュお缃戠粶
+    public static final int PATHNAME_LEN = 128;   //璺緞闀垮害
+    public static final int MAX_TIMESEGMENT_V30 = 8;    //9000璁惧鏈�澶ф椂闂存鏁�
+    public static final int MAX_TIMESEGMENT = 4;   //8000璁惧鏈�澶ф椂闂存鏁�
+    public static final int MAX_SHELTERNUM = 4;   //8000璁惧鏈�澶ч伄鎸″尯鍩熸暟
+    public static final int MAX_DAYS = 7;      //姣忓懆澶╂暟
+    public static final int PHONENUMBER_LEN = 32;   //pppoe鎷ㄥ彿鍙风爜鏈�澶ч暱搴�
+    public static final int MAX_DISKNUM_V30 = 33;        //9000璁惧鏈�澶х‖鐩樻暟/* 鏈�澶�33涓‖鐩�(鍖呮嫭16涓唴缃甋ATA纭洏銆�1涓猠SATA纭洏鍜�16涓狽FS鐩�) */
+    public static final int MAX_DISKNUM = 16;     //8000璁惧鏈�澶х‖鐩樻暟
+    public static final int MAX_DISKNUM_V10 = 8;   //1.2鐗堟湰涔嬪墠鐗堟湰
+    public static final int MAX_WINDOW_V30 = 32; //9000璁惧鏈湴鏄剧ず鏈�澶ф挱鏀剧獥鍙f暟
+    public static final int MAX_WINDOW = 16;    //8000璁惧鏈�澶х‖鐩樻暟
+    public static final int MAX_VGA_V30 = 4;     //9000璁惧鏈�澶у彲鎺GA鏁�
+    public static final int MAX_VGA = 1;    //8000璁惧鏈�澶у彲鎺GA鏁�
+    public static final int MAX_USERNUM_V30 = 32;  //9000璁惧鏈�澶х敤鎴锋暟
+    public static final int MAX_USERNUM = 16;  //8000璁惧鏈�澶х敤鎴锋暟
+    public static final int MAX_EXCEPTIONNUM_V30 = 32;  //9000璁惧鏈�澶у紓甯稿鐞嗘暟
+    public static final int MAX_EXCEPTIONNUM = 16;   //8000璁惧鏈�澶у紓甯稿鐞嗘暟
+    public static final int MAX_LINK = 6;    //8000璁惧鍗曢�氶亾鏈�澶ц棰戞祦杩炴帴鏁�
+    public static final int MAX_DECPOOLNUM = 4;   //鍗曡矾瑙g爜鍣ㄦ瘡涓В鐮侀�氶亾鏈�澶у彲寰幆瑙g爜鏁�
+    public static final int MAX_DECNUM = 4;    //鍗曡矾瑙g爜鍣ㄧ殑鏈�澶цВ鐮侀�氶亾鏁帮紙瀹為檯鍙湁涓�涓紝鍏朵粬涓変釜淇濈暀锛�
+    public static final int MAX_TRANSPARENTNUM = 2;   //鍗曡矾瑙g爜鍣ㄥ彲閰嶇疆鏈�澶ч�忔槑閫氶亾鏁�
+    public static final int MAX_CYCLE_CHAN = 16;   //鍗曡矾瑙g爜鍣ㄦ渶澶ц疆寰�氶亾鏁�
+    public static final int MAX_DIRNAME_LENGTH = 80;   //鏈�澶х洰褰曢暱搴�
+    public static final int MAX_STRINGNUM_V30 = 8;        //9000璁惧鏈�澶SD瀛楃琛屾暟鏁�
+    public static final int MAX_STRINGNUM = 4;   //8000璁惧鏈�澶SD瀛楃琛屾暟鏁�
+    public static final int MAX_STRINGNUM_EX = 8;   //8000瀹氬埗鎵╁睍
+    public static final int MAX_AUXOUT_V30 = 16;   //9000璁惧鏈�澶ц緟鍔╄緭鍑烘暟
+    public static final int MAX_AUXOUT = 4;      //8000璁惧鏈�澶ц緟鍔╄緭鍑烘暟
+    public static final int MAX_HD_GROUP = 16;   //9000璁惧鏈�澶х‖鐩樼粍鏁�
+    public static final int MAX_NFS_DISK = 8;    //8000璁惧鏈�澶FS纭洏鏁�
+    public static final int IW_ESSID_MAX_SIZE = 32;    //WIFI鐨凷SID鍙烽暱搴�
+    public static final int IW_ENCODING_TOKEN_MAX = 32;   //WIFI瀵嗛攣鏈�澶у瓧鑺傛暟
+    public static final int MAX_SERIAL_NUM = 64;    //鏈�澶氭敮鎸佺殑閫忔槑閫氶亾璺暟
+    public static final int MAX_DDNS_NUMS = 10;   //9000璁惧鏈�澶у彲閰峝dns鏁�
+    public static final int MAX_DOMAIN_NAME = 64;    /* 鏈�澶у煙鍚嶉暱搴� */
+
+    public static final int MAX_EMAIL_ADDR_LEN = 48;  //鏈�澶mail鍦板潃闀垮害
+    public static final int MAX_EMAIL_PWD_LEN = 32;     //鏈�澶mail瀵嗙爜闀垮害
+    public static final int MAXPROGRESS = 100;  //鍥炴斁鏃剁殑鏈�澶х櫨鍒嗙巼
+    public static final int MAX_SERIALNUM = 2;    //8000璁惧鏀寔鐨勪覆鍙f暟 1-232锛� 2-485
+    public static final int CARDNUM_LEN = 20;    //鍗″彿闀垮害
+    public static final int MAX_VIDEOOUT_V30 = 4;      //9000璁惧鐨勮棰戣緭鍑烘暟
+    public static final int MAX_VIDEOOUT = 2;      //8000璁惧鐨勮棰戣緭鍑烘暟
+    public static final int MAX_PRESET_V30 = 256;    /* 9000璁惧鏀寔鐨勪簯鍙伴缃偣鏁� */
+    public static final int MAX_TRACK_V30 = 256;    /* 9000璁惧鏀寔鐨勪簯鍙版暟 */
+    public static final int MAX_CRUISE_V30 = 256;    /* 9000璁惧鏀寔鐨勪簯鍙板贰鑸暟 */
+    public static final int MAX_PRESET = 128;    /* 8000璁惧鏀寔鐨勪簯鍙伴缃偣鏁� */
+    public static final int MAX_TRACK = 128;    /* 8000璁惧鏀寔鐨勪簯鍙版暟 */
+    public static final int MAX_CRUISE = 128;    /* 8000璁惧鏀寔鐨勪簯鍙板贰鑸暟 */
+    public static final int CRUISE_MAX_PRESET_NUMS = 32;    /* 涓�鏉″贰鑸渶澶氱殑宸¤埅鐐� */
+    public static final int MAX_SERIAL_PORT = 8;    //9000璁惧鏀寔232涓插彛鏁�
+    public static final int MAX_PREVIEW_MODE = 8;    /* 璁惧鏀寔鏈�澶ч瑙堟ā寮忔暟鐩� 1鐢婚潰,4鐢婚潰,9鐢婚潰,16鐢婚潰.... */
+    public static final int MAX_MATRIXOUT = 16;  /* 鏈�澶фā鎷熺煩闃佃緭鍑轰釜鏁� */
+    public static final int LOG_INFO_LEN = 11840; /* 鏃ュ織闄勫姞淇℃伅 */
+    public static final int DESC_LEN = 16;    /* 浜戝彴鎻忚堪瀛楃涓查暱搴� */
+    public static final int PTZ_PROTOCOL_NUM = 200;   /* 9000鏈�澶ф敮鎸佺殑浜戝彴鍗忚鏁� */
+    public static final int MAX_AUDIO = 1;    //8000璇煶瀵硅閫氶亾鏁�
+    public static final int MAX_AUDIO_V30 = 2;   //9000璇煶瀵硅閫氶亾鏁�
+    public static final int MAX_CHANNUM = 16;   //8000璁惧鏈�澶ч�氶亾鏁�
+    public static final int MAX_ALARMIN = 16;  //8000璁惧鏈�澶ф姤璀﹁緭鍏ユ暟
+    public static final int MAX_ALARMOUT = 4;    //8000璁惧鏈�澶ф姤璀﹁緭鍑烘暟
+    //9000 IPC鎺ュ叆
+    public static final int MAX_ANALOG_CHANNUM = 32;    //鏈�澶�32涓ā鎷熼�氶亾
+    public static final int MAX_ANALOG_ALARMOUT = 32;    //鏈�澶�32璺ā鎷熸姤璀﹁緭鍑�
+    public static final int MAX_ANALOG_ALARMIN = 32;    //鏈�澶�32璺ā鎷熸姤璀﹁緭鍏�
+    public static final int MAX_IP_ALARMIN_V40 = 4096;    //鍏佽鍔犲叆鐨勬渶澶氭姤璀﹁緭鍏ユ暟
+    public static final int MAX_IP_ALARMOUT_V40 = 4096;    //鍏佽鍔犲叆鐨勬渶澶氭姤璀﹁緭鍑烘暟
+    public static final int MAX_ALARMOUT_V40 = (MAX_IP_ALARMOUT_V40 + MAX_ANALOG_ALARMOUT); //4128
+    public static final int MAX_ALARMIN_V40 = (MAX_IP_ALARMIN_V40 + MAX_ANALOG_ALARMOUT); //4128
+    public static final int MAX_CHANNUM_V40 = 512;
+    public static final int MAX_IP_DEVICE = 32;    //鍏佽鎺ュ叆鐨勬渶澶P璁惧鏁�
+    public static final int MAX_IP_CHANNEL = 32;   //鍏佽鍔犲叆鐨勬渶澶欼P閫氶亾鏁�
+    public static final int MAX_IP_ALARMIN = 128;   //鍏佽鍔犲叆鐨勬渶澶氭姤璀﹁緭鍏ユ暟
+    public static final int MAX_IP_ALARMOUT = 64; //鍏佽鍔犲叆鐨勬渶澶氭姤璀﹁緭鍑烘暟
+
+    /* 鏈�澶ф敮鎸佺殑閫氶亾鏁� 鏈�澶фā鎷熷姞涓婃渶澶P鏀寔 */
+    public static final int MAX_CHANNUM_V30 = (MAX_ANALOG_CHANNUM + MAX_IP_CHANNEL);//64
+    public static final int MAX_ALARMOUT_V30 = (MAX_ANALOG_ALARMOUT + MAX_IP_ALARMOUT);//96
+    public static final int MAX_ALARMIN_V30 = (MAX_ANALOG_ALARMIN + MAX_IP_ALARMIN);//160
+    public static final int MAX_IP_DEVICE_V40 = 64;
+    public static final int STREAM_ID_LEN = 32;
+
+    public static final int MAX_LICENSE_LEN = 16;
+    public static final int MAX_LICENSE_LEN_EX = 32; //杞︾墝鍙锋渶澶ч暱搴�
+    public static final int MAX_CARDNO_LEN = 48;     //鍗″彿鏈�澶ч暱搴�
+    public static final int VCA_MAX_POLYGON_POINT_NUM = 10;
+
+    public static final int MAX_ID_NUM_LEN = 32;  //鏈�澶ц韩浠借瘉鍙烽暱搴�
+    public static final int MAX_ID_NAME_LEN = 128;   //鏈�澶у鍚嶉暱搴�
+    public static final int MAX_ID_ADDR_LEN = 280;   //鏈�澶т綇鍧�闀垮害
+    public static final int MAX_ID_ISSUING_AUTHORITY_LEN = 128; //鏈�澶х鍙戞満鍏抽暱搴�
+    public static final int MAX_CARD_READER_NUM_512 = 512;  //鏈�澶ц鍗″櫒鏁�
+    public static final int ERROR_MSG_LEN = 32;   //涓嬪彂閿欒淇℃伅
+    public static final int MAX_FACE_NUM = 2;    //鏈�澶т汉鑴告暟
+    public static final int MAX_FINGER_PRINT_LEN = 768;  //鏈�澶ф寚绾归暱搴�
+
+    public static final int DEV_TYPE_NAME_LEN = 24;      //璁惧绫诲瀷鍚嶇О闀垮害
+    public static final int MAX_FACE_PIC_NUM = 30;      /*浜鸿劯瀛愬浘涓暟*/
+    public static final int CARDNUM_LEN_V30 = 40;
+
+    public static final int MAX_NOTICE_NUMBER_LEN = 32;   //鍏憡缂栧彿鏈�澶ч暱搴�
+    public static final int MAX_NOTICE_THEME_LEN = 64;   //鍏憡涓婚鏈�澶ч暱搴�
+    public static final int MAX_NOTICE_DETAIL_LEN = 1024; //鍏憡璇︽儏鏈�澶ч暱搴�
+    public static final int MAX_NOTICE_PIC_NUM = 6;    //鍏憡淇℃伅鏈�澶у浘鐗囨暟閲�
+    public static final int MAX_DEV_NUMBER_LEN = 32;   //璁惧缂栧彿鏈�澶ч暱搴�
+    public static final int LOCK_NAME_LEN = 32;  //閿佸悕绉�
+
+    public static final int NET_SDK_EMPLOYEE_NO_LEN = 32;  //宸ュ彿闀垮害
+    public static final int NET_SDK_UUID_LEN = 36;  //UUID闀垮害
+
+    public static final int MAX_INQUEST_CDRW_NUM = 4;     //鏈�澶у埢褰曟満鏁扮洰
+    public static final int INQUEST_MESSAGE_LEN = 44;    //瀹¤閲嶇偣鏍囪淇℃伅闀垮害
+    public static final int INQUEST_MAX_ROOM_NUM = 2;     //鏈�澶у璁涓暟
+    public static final int MAX_RESUME_SEGMENT = 2;     //鏀寔鍚屾椂鎭㈠鐨勭墖娈垫暟鐩�
+
+    public static final int SUPPORT_PD_NUM = 16;
+    public static final int SUPPORT_ARRAY_NUM = 8;
+    public static final int SUPPORT_VD_NUM = 128;
+    public static final int SUPPORT_PD_NUM_ = 16;
+    public static final int SUPPORT_PD_NUM_PARTTWO = 8;
+
+    public static final int CARDNUM_LEN_OUT = 32; //澶栭儴缁撴瀯浣撳崱鍙烽暱搴�
+    public static final int GUID_LEN = 16;        //GUID闀垮害
+
+    public static final int MAX_ROIDETECT_NUM = 8;    //鏀寔鐨凴OI鍖哄煙鏁�
+    public static final int MAX_LANERECT_NUM = 5;    //鏈�澶ц溅鐗岃瘑鍒尯鍩熸暟
+    public static final int MAX_FORTIFY_NUM = 10;   //鏈�澶у竷闃蹭釜鏁�
+    public static final int MAX_INTERVAL_NUM = 4;    //鏈�澶ф椂闂撮棿闅斾釜鏁�
+    public static final int MAX_CHJC_NUM = 3;    //鏈�澶ц溅杈嗙渷浠界畝绉板瓧绗︿釜鏁�
+    public static final int MAX_VL_NUM = 5;    //鏈�澶ц櫄鎷熺嚎鍦堜釜鏁�
+    public static final int MAX_DRIVECHAN_NUM = 16;  //鏈�澶ц溅閬撴暟
+    public static final int MAX_COIL_NUM = 3;    //鏈�澶х嚎鍦堜釜鏁�
+    public static final int MAX_SIGNALLIGHT_NUM = 6;   //鏈�澶т俊鍙风伅涓暟
+    public static final int MAX_IOSPEED_GROUP_NUM = 4; //IO娴嬮�熺粍涓暟
+    public static final int MAX_IOOUT_NUM = 4;  //鏈�澶O杈撳嚭鍙d釜鏁�
+    public static final int MAX_IOIN_NUM = 8;  //鏈�澶O杈撳叆鍙d釜鏁�
+    public static final int MAX_RELAY_NUM = 12; //缁х數鍣ㄦ帶鍒惰澶囨渶澶ф暟 2013-11-04
+    public static final int MAX_VEHICLE_TYPE_NUM = 8;  //杞﹁締淇℃伅绠℃帶鏈�澶ф暟2013-11-04
+    public static final int MAX_IOIN_NUMEX = 10; //鏈�澶O杈撳叆鍙d釜鏁�(鎵╁睍)
+    public static final int MAX_ITC_LANE_NUM = 6;  //鏈�澶ц溅閬撲釜鏁�
+    public static final int MAX_LANEAREA_NUM = 2;  //鍗曡溅閬撴渶澶у尯鍩熶釜鏁�
+    public static final int ITC_MAX_POLYGON_POINT_NUM = 20;    //妫�娴嬪尯鍩熸渶澶氭敮鎸�20涓偣鐨勫杈瑰舰
+    public static final int MAX_ITC_SERIALCHECK_NUM = 8; //涓插彛鏍¢獙绫诲瀷涓暟
+    public static final int MAX_LIGHT_NUM = 6; //鏈�澶т氦閫氱伅鏁�
+    public static final int MAX_VIDEO_INTERVAL_NUM = 2;  //鏈�澶ф姄鎷嶉棿闅旀暟
+    public static final int MAX_VIDEO_DETECT_LIGHT_NUM = 12;  //瑙嗛妫�娴嬬殑鏈�澶ф娴嬪尯鍩�
+    public static final int MAX_CALIB_RECOG_NUM = 2;  //鏍囧畾鍖哄煙涓暟
+    public static final int MAX_RS485_NUM = 12; //485鍙f渶澶ф敮鎸佹暟
+    public static final int MAX_MOBILE_POLYGON_NUM = 3; //绉诲姩甯冮槻鏀寔鏈�澶х墝璇嗗尯鍩熶釜鏁�
+    public static final int MAX_MOBILE_DETECTLINE_NUM = 3; //绉诲姩甯冮槻鏀寔鏈�澶ц繚瑙勬娴嬬嚎涓暟
+    public static final int MAX_IOOUT_K_NUM = 8;  //K绯诲垪鏈�澶O杈撳嚭鍙d釜鏁�
+
+    public static final int NET_SDK_MAX_FDID_LEN = 256; //浜鸿劯搴揑D鏈�澶ч暱搴�
+    public static final int NET_SDK_MAX_PICID_LEN = 256; //浜鸿劯ID鏈�澶ч暱搴�
+    public static final int NET_SDK_MAX_INDENTITY_KEY_LEN = 64; //浜や簰鎿嶄綔鍙d护闀垮害
+
+    public static final int SEARCH_EVENT_INFO_LEN = 300;    //浜嬩欢淇℃伅闀垮害
+    public static final int SEARCH_EVENT_INFO_LEN_V40 = 800;
+    public static final int MAX_POS_KEYWORDS_NUM = 3; //鏀寔鍏抽敭瀛楁煡鎵炬潯鏁�
+    public static final int MAX_POS_KEYWORD_LEN = 128; //姣忔潯鍏抽敭瀛楅暱搴�
+    public static final int INQUEST_CASE_LEN = 64;    //瀹¤淇℃伅闀垮害
+
+    public static final int SEARCH_CASE_NO_LEN = 56;
+    public static final int SEARCH_CASE_NAME_LEN = 100;
+    public static final int SEARCH_LITIGANT_LEN = 32;
+    public static final int SEARCH_CHIEF_JUDGE_LEN = 32;
+    public static final int CASE_NO_RET_LEN = 52;
+    public static final int CASE_NAME_RET_LEN = 64;
+    public static final int LITIGANT_RET_LEN = 24;
+    public static final int CHIEF_JUDGE_RET_LEN = 24;
+    public static final int NET_SDK_CASETYPE_LEN = 32;
+    public static final int NET_SDK_MAX_TAPE_INDEX_LEN = 32;  //纾佸甫缂栧彿鏈�澶ч暱搴�
+    public static final int NET_SDK_MAX_FILE_LEN = 256;  //鏂囦欢鍚嶆渶澶ч暱搴�
+    /******************************************************************/
+
+
+    /**
+     *NET_SDK_INIT_CFG_TYPE 鏋氫妇
+     */
+    public static final int NET_SDK_INIT_CFG_TYPE_CHECK_MODULE_COM = 0; //澧炲姞瀵瑰繀椤诲簱鐨勬鏌�
+    public static final int NET_SDK_INIT_CFG_ABILITY = 1;//sdk鏀寔鐨勪笟鍔$殑鑳藉姏闆�
+    public static final int NET_SDK_INIT_CFG_SDK_PATH = 2; //璁剧疆HCNetSDK搴撴墍鍦ㄧ洰褰�
+    public static final int NET_SDK_INIT_CFG_LIBEAY_PATH = 3; //璁剧疆OpenSSL鐨刲ibeay32.dll/libcrypto.so/libcrypto.dylib鎵�鍦ㄨ矾寰�
+    public static final int NET_SDK_INIT_CFG_SSLEAY_PATH = 4;  //璁剧疆OpenSSL鐨剆sleay32.dll/libssl.so/libssl.dylib鎵�鍦ㄨ矾寰�
+
+
+
+    // 闀胯繛鎺ュ洖璋冪被鍨�
+    /**
+     * NET_SDK_CALLBACK_TYPE
+     */
+    public static final int NET_SDK_CALLBACK_TYPE_STATUS = 0;        // 鍥炶皟鐘舵�佸��
+    public static final int NET_SDK_CALLBACK_TYPE_PROGRESS = 1;            // 鍥炶皟杩涘害鍊�
+    public static final int NET_SDK_CALLBACK_TYPE_DATA = 2;               // 鍥炶皟鏁版嵁鍐呭
+
+    /**
+     * 鍥炶皟绫诲瀷涓篘ET_SDK_CALLBACK_TYPE_STATUS鏃剁殑鐘舵�佸��
+     */
+
+    public static final int NET_SDK_CALLBACK_STATUS_SUCCESS = 1000;        // 鎴愬姛
+    public static final int NET_SDK_CALLBACK_STATUS_PROCESSING = 1001;            // 澶勭悊涓�
+    public static final int NET_SDK_CALLBACK_STATUS_FAILED = 1002;                // 澶辫触
+    public static final int NET_SDK_CALLBACK_STATUS_EXCEPTION = 1003;            // 寮傚父
+    public static final int NET_SDK_CALLBACK_STATUS_LANGUAGE_MISMATCH = 1004;    //锛圛PC閰嶇疆鏂囦欢瀵煎叆锛夎瑷�涓嶅尮閰�
+    public static final int NET_SDK_CALLBACK_STATUS_DEV_TYPE_MISMATCH = 1005;    //锛圛PC閰嶇疆鏂囦欢瀵煎叆锛夎澶囩被鍨嬩笉鍖归厤
+    public static final int NET_DVR_CALLBACK_STATUS_SEND_WAIT=1006;           // 鍙戦�佺瓑寰�
+
+
+    /*******************
+     * 鍏ㄥ眬閿欒鐮� begin
+     **********************/
+    public static final int NET_DVR_NOERROR = 0;    //娌℃湁閿欒
+    public static final int NET_DVR_PASSWORD_ERROR = 1;    //鐢ㄦ埛鍚嶅瘑鐮侀敊璇�
+    public static final int NET_DVR_NOENOUGHPRI = 2;//鏉冮檺涓嶈冻
+    public static final int NET_DVR_NOINIT = 3;//娌℃湁鍒濆鍖�
+    public static final int NET_DVR_CHANNEL_ERROR = 4;    //閫氶亾鍙烽敊璇�
+    public static final int NET_DVR_OVER_MAXLINK = 5;    //杩炴帴鍒癉VR鐨勫鎴风涓暟瓒呰繃鏈�澶�
+    public static final int NET_DVR_VERSIONNOMATCH = 6;    //鐗堟湰涓嶅尮閰�
+    public static final int NET_DVR_NETWORK_FAIL_CONNECT = 7;//杩炴帴鏈嶅姟鍣ㄥけ璐�
+    public static final int NET_DVR_NETWORK_SEND_ERROR = 8;    //鍚戞湇鍔″櫒鍙戦�佸け璐�
+    public static final int NET_DVR_NETWORK_RECV_ERROR = 9;    //浠庢湇鍔″櫒鎺ユ敹鏁版嵁澶辫触
+    public static final int NET_DVR_NETWORK_RECV_TIMEOUT = 10;    //浠庢湇鍔″櫒鎺ユ敹鏁版嵁瓒呮椂
+    public static final int NET_DVR_NETWORK_ERRORDATA = 11;    //浼犻�佺殑鏁版嵁鏈夎
+    public static final int NET_DVR_ORDER_ERROR = 12;    //璋冪敤娆″簭閿欒
+    public static final int NET_DVR_OPERNOPERMIT = 13;    //鏃犳鏉冮檺
+    public static final int NET_DVR_COMMANDTIMEOUT = 14;    //DVR鍛戒护鎵ц瓒呮椂
+    public static final int NET_DVR_ERRORSERIALPORT = 15;    //涓插彛鍙烽敊璇�
+    public static final int NET_DVR_ERRORALARMPORT = 16;    //鎶ヨ绔彛閿欒
+    public static final int NET_DVR_PARAMETER_ERROR = 17;//鍙傛暟閿欒
+    public static final int NET_DVR_CHAN_EXCEPTION = 18;    //鏈嶅姟鍣ㄩ�氶亾澶勪簬閿欒鐘舵��
+    public static final int NET_DVR_NODISK = 19;    //娌℃湁纭洏
+    public static final int NET_DVR_ERRORDISKNUM = 20;    //纭洏鍙烽敊璇�
+    public static final int NET_DVR_DISK_FULL = 21;    //鏈嶅姟鍣ㄧ‖鐩樻弧
+    public static final int NET_DVR_DISK_ERROR = 22;//鏈嶅姟鍣ㄧ‖鐩樺嚭閿�
+    public static final int NET_DVR_NOSUPPORT = 23;//鏈嶅姟鍣ㄤ笉鏀寔
+    public static final int NET_DVR_BUSY = 24;//鏈嶅姟鍣ㄥ繖
+    public static final int NET_DVR_MODIFY_FAIL = 25;//鏈嶅姟鍣ㄤ慨鏀逛笉鎴愬姛
+    public static final int NET_DVR_PASSWORD_FORMAT_ERROR = 26;//瀵嗙爜杈撳叆鏍煎紡涓嶆纭�
+    public static final int NET_DVR_DISK_FORMATING = 27;    //纭洏姝e湪鏍煎紡鍖栵紝涓嶈兘鍚姩鎿嶄綔
+    public static final int NET_DVR_DVRNORESOURCE = 28;    //DVR璧勬簮涓嶈冻
+    public static final int NET_DVR_DVROPRATEFAILED = 29; //DVR鎿嶄綔澶辫触
+    public static final int NET_DVR_OPENHOSTSOUND_FAIL = 30; //鎵撳紑PC澹伴煶澶辫触
+    public static final int NET_DVR_DVRVOICEOPENED = 31; //鏈嶅姟鍣ㄨ闊冲璁茶鍗犵敤
+    public static final int NET_DVR_TIMEINPUTERROR = 32; //鏃堕棿杈撳叆涓嶆纭�
+    public static final int NET_DVR_NOSPECFILE = 33;  //鍥炴斁鏃舵湇鍔″櫒娌℃湁鎸囧畾鐨勬枃浠�
+    public static final int NET_DVR_CREATEFILE_ERROR = 34;    //鍒涘缓鏂囦欢鍑洪敊
+    public static final int NET_DVR_FILEOPENFAIL = 35; //鎵撳紑鏂囦欢鍑洪敊
+    public static final int NET_DVR_OPERNOTFINISH = 36; //涓婃鐨勬搷浣滆繕娌℃湁瀹屾垚
+    public static final int NET_DVR_GETPLAYTIMEFAIL = 37; //鑾峰彇褰撳墠鎾斁鐨勬椂闂村嚭閿�
+    public static final int NET_DVR_PLAYFAIL = 38; //鎾斁鍑洪敊
+    public static final int NET_DVR_FILEFORMAT_ERROR = 39;//鏂囦欢鏍煎紡涓嶆纭�
+    public static final int NET_DVR_DIR_ERROR = 40;    //璺緞閿欒
+    public static final int NET_DVR_ALLOC_RESOURCE_ERROR = 41;//璧勬簮鍒嗛厤閿欒
+    public static final int NET_DVR_AUDIO_MODE_ERROR = 42;    //澹板崱妯″紡閿欒
+    public static final int NET_DVR_NOENOUGH_BUF = 43;    //缂撳啿鍖哄お灏�
+    public static final int NET_DVR_CREATESOCKET_ERROR = 44;    //鍒涘缓SOCKET鍑洪敊
+    public static final int NET_DVR_SETSOCKET_ERROR = 45;    //璁剧疆SOCKET鍑洪敊
+    public static final int NET_DVR_MAX_NUM = 46;    //涓暟杈惧埌鏈�澶�
+    public static final int NET_DVR_USERNOTEXIST = 47;    //鐢ㄦ埛涓嶅瓨鍦�
+    public static final int NET_DVR_WRITEFLASHERROR = 48;//鍐橣LASH鍑洪敊
+    public static final int NET_DVR_UPGRADEFAIL = 49;//DVR鍗囩骇澶辫触
+    public static final int NET_DVR_CARDHAVEINIT = 50; //瑙g爜鍗″凡缁忓垵濮嬪寲杩�
+    public static final int NET_DVR_PLAYERFAILED = 51;    //璋冪敤鎾斁搴撲腑鏌愪釜鍑芥暟澶辫触
+    public static final int NET_DVR_MAX_USERNUM = 52; //璁惧绔敤鎴锋暟杈惧埌鏈�澶�
+    public static final int NET_DVR_GETLOCALIPANDMACFAIL = 53;//鑾峰緱瀹㈡埛绔殑IP鍦板潃鎴栫墿鐞嗗湴鍧�澶辫触
+    public static final int NET_DVR_NOENCODEING = 54;    //璇ラ�氶亾娌℃湁缂栫爜
+    public static final int NET_DVR_IPMISMATCH = 55;    //IP鍦板潃涓嶅尮閰�
+    public static final int NET_DVR_MACMISMATCH = 56;//MAC鍦板潃涓嶅尮閰�
+    public static final int NET_DVR_UPGRADELANGMISMATCH = 57;//鍗囩骇鏂囦欢璇█涓嶅尮閰�
+    public static final int NET_DVR_MAX_PLAYERPORT = 58;//鎾斁鍣ㄨ矾鏁拌揪鍒版渶澶�
+    public static final int NET_DVR_NOSPACEBACKUP = 59;//澶囦唤璁惧涓病鏈夎冻澶熺┖闂磋繘琛屽浠�
+    public static final int NET_DVR_NODEVICEBACKUP = 60;    //娌℃湁鎵惧埌鎸囧畾鐨勫浠借澶�
+    public static final int NET_DVR_PICTURE_BITS_ERROR = 61;    //鍥惧儚绱犱綅鏁颁笉绗︼紝闄�24鑹�
+    public static final int NET_DVR_PICTURE_DIMENSION_ERROR = 62;//鍥剧墖楂�*瀹借秴闄愶紝 闄�128*256
+    public static final int NET_DVR_PICTURE_SIZ_ERROR = 63;    //鍥剧墖澶у皬瓒呴檺锛岄檺100K
+    public static final int NET_DVR_LOADPLAYERSDKFAILED = 64;    //杞藉叆褰撳墠鐩綍涓婸layer Sdk鍑洪敊
+    public static final int NET_DVR_LOADPLAYERSDKPROC_ERROR = 65;    //鎵句笉鍒癙layer Sdk涓煇涓嚱鏁板叆鍙�
+    public static final int NET_DVR_LOADDSSDKFAILED = 66;    //杞藉叆褰撳墠鐩綍涓婦Ssdk鍑洪敊
+    public static final int NET_DVR_LOADDSSDKPROC_ERROR = 67;    //鎵句笉鍒癉sSdk涓煇涓嚱鏁板叆鍙�
+    public static final int NET_DVR_DSSDK_ERROR = 68;    //璋冪敤纭В鐮佸簱DsSdk涓煇涓嚱鏁板け璐�
+    public static final int NET_DVR_VOICEMONOPOLIZE = 69;    //澹板崱琚嫭鍗�
+    public static final int NET_DVR_JOINMULTICASTFAILED = 70;    //鍔犲叆澶氭挱缁勫け璐�
+    public static final int NET_DVR_CREATEDIR_ERROR = 71;    //寤虹珛鏃ュ織鏂囦欢鐩綍澶辫触
+    public static final int NET_DVR_BINDSOCKET_ERROR = 72;    //缁戝畾濂楁帴瀛楀け璐�
+    public static final int NET_DVR_SOCKETCLOSE_ERROR = 73;    //socket杩炴帴涓柇锛屾閿欒閫氬父鏄敱浜庤繛鎺ヤ腑鏂垨鐩殑鍦颁笉鍙揪
+    public static final int NET_DVR_USERID_ISUSING = 74;    //娉ㄩ攢鏃剁敤鎴稩D姝e湪杩涜鏌愭搷浣�
+    public static final int NET_DVR_SOCKETLISTEN_ERROR = 75;    //鐩戝惉澶辫触
+    public static final int NET_DVR_PROGRAM_EXCEPTION = 76;    //绋嬪簭寮傚父
+    public static final int NET_DVR_WRITEFILE_FAILED = 77;    //鍐欐枃浠跺け璐�
+    public static final int NET_DVR_FORMAT_READONLY = 78;//绂佹鏍煎紡鍖栧彧璇荤‖鐩�
+    public static final int NET_DVR_WITHSAMEUSERNAME = 79;//鐢ㄦ埛閰嶇疆缁撴瀯涓瓨鍦ㄧ浉鍚岀殑鐢ㄦ埛鍚�
+    public static final int NET_DVR_DEVICETYPE_ERROR = 80; /*瀵煎叆鍙傛暟鏃惰澶囧瀷鍙蜂笉鍖归厤*/
+    public static final int NET_DVR_LANGUAGE_ERROR = 81; /*瀵煎叆鍙傛暟鏃惰瑷�涓嶅尮閰�*/
+    public static final int NET_DVR_PARAVERSION_ERROR = 82; /*瀵煎叆鍙傛暟鏃惰蒋浠剁増鏈笉鍖归厤*/
+    public static final int NET_DVR_IPCHAN_NOTALIVE = 83; /*棰勮鏃跺鎺P閫氶亾涓嶅湪绾�*/
+    public static final int NET_DVR_RTSP_SDK_ERROR = 84;    /*鍔犺浇楂樻竻IPC閫氳搴揝treamTransClient.dll澶辫触*/
+    public static final int NET_DVR_CONVERT_SDK_ERROR = 85;    /*鍔犺浇杞爜搴撳け璐�*/
+    public static final int NET_DVR_IPC_COUNT_OVERFLOW = 86; /*瓒呭嚭鏈�澶х殑ip鎺ュ叆閫氶亾鏁�*/
+    public static final int NET_PLAYM4_NOERROR = 500;    //no error
+    public static final int NET_PLAYM4_PARA_OVER = 501;//input parameter is invalid;
+    public static final int NET_PLAYM4_ORDER_ERROR = 502;//The order of the function to be called is error.
+    public static final int NET_PLAYM4_TIMER_ERROR = 503;//Create multimedia clock failed;
+    public static final int NET_PLAYM4_DEC_VIDEO_ERROR = 504;//Decode video data failed.
+    public static final int NET_PLAYM4_DEC_AUDIO_ERROR = 505;//Decode audio data failed.
+    public static final int NET_PLAYM4_ALLOC_MEMORY_ERROR = 506;    //Allocate memory failed.
+    public static final int NET_PLAYM4_OPEN_FILE_ERROR = 507;    //Open the file failed.
+    public static final int NET_PLAYM4_CREATE_OBJ_ERROR = 508;//Create thread or event failed
+    public static final int NET_PLAYM4_CREATE_DDRAW_ERROR = 509;//Create DirectDraw object failed.
+    public static final int NET_PLAYM4_CREATE_OFFSCREEN_ERROR = 510;//failed when creating off-screen surface.
+    public static final int NET_PLAYM4_BUF_OVER = 511;    //buffer is overflow
+    public static final int NET_PLAYM4_CREATE_SOUND_ERROR = 512;    //failed when creating audio device.
+    public static final int NET_PLAYM4_SET_VOLUME_ERROR = 513;//Set volume failed
+    public static final int NET_PLAYM4_SUPPORT_FILE_ONLY = 514;//The function only support play file.
+    public static final int NET_PLAYM4_SUPPORT_STREAM_ONLY = 515;//The function only support play stream.
+    public static final int NET_PLAYM4_SYS_NOT_SUPPORT = 516;//System not support.
+    public static final int NET_PLAYM4_FILEHEADER_UNKNOWN = 517;    //No file header.
+    public static final int NET_PLAYM4_VERSION_INCORRECT = 518;    //The version of decoder and encoder is not adapted.
+    public static final int NET_PALYM4_INIT_DECODER_ERROR = 519;    //Initialize decoder failed.
+    public static final int NET_PLAYM4_CHECK_FILE_ERROR = 520;    //The file data is unknown.
+    public static final int NET_PLAYM4_INIT_TIMER_ERROR = 521;    //Initialize multimedia clock failed.
+    public static final int NET_PLAYM4_BLT_ERROR = 522;//Blt failed.
+    public static final int NET_PLAYM4_UPDATE_ERROR = 523;//Update failed.
+    public static final int NET_PLAYM4_OPEN_FILE_ERROR_MULTI = 524; //openfile error, streamtype is multi
+    public static final int NET_PLAYM4_OPEN_FILE_ERROR_VIDEO = 525; //openfile error, streamtype is video
+    public static final int NET_PLAYM4_JPEG_COMPRESS_ERROR = 526; //JPEG compress error
+    public static final int NET_PLAYM4_EXTRACT_NOT_SUPPORT = 527;    //Don't support the version of this file.
+    public static final int NET_PLAYM4_EXTRACT_DATA_ERROR = 528;    //extract video data failed.
+    /*******************鍏ㄥ眬閿欒鐮� end**********************/
+    /*************************************************
+     * NET_DVR_IsSupport()杩斿洖鍊�
+     * 1锛�9浣嶅垎鍒〃绀轰互涓嬩俊鎭紙浣嶄笌鏄疶RUE)琛ㄧず鏀寔锛�
+     **************************************************/
+    public static final int NET_DVR_SUPPORT_DDRAW = 0x01;//鏀寔DIRECTDRAW锛屽鏋滀笉鏀寔锛屽垯鎾斁鍣ㄤ笉鑳藉伐浣滐紱
+    public static final int NET_DVR_SUPPORT_BLT = 0x02;//鏄惧崱鏀寔BLT鎿嶄綔锛屽鏋滀笉鏀寔锛屽垯鎾斁鍣ㄤ笉鑳藉伐浣滐紱
+    public static final int NET_DVR_SUPPORT_BLTFOURCC = 0x04;//鏄惧崱BLT鏀寔棰滆壊杞崲锛屽鏋滀笉鏀寔锛屾挱鏀惧櫒浼氱敤杞欢鏂规硶浣淩GB杞崲锛�
+    public static final int NET_DVR_SUPPORT_BLTSHRINKX = 0x08;//鏄惧崱BLT鏀寔X杞寸缉灏忥紱濡傛灉涓嶆敮鎸侊紝绯荤粺浼氱敤杞欢鏂规硶杞崲锛�
+    public static final int NET_DVR_SUPPORT_BLTSHRINKY = 0x10;//鏄惧崱BLT鏀寔Y杞寸缉灏忥紱濡傛灉涓嶆敮鎸侊紝绯荤粺浼氱敤杞欢鏂规硶杞崲锛�
+    public static final int NET_DVR_SUPPORT_BLTSTRETCHX = 0x20;//鏄惧崱BLT鏀寔X杞存斁澶э紱濡傛灉涓嶆敮鎸侊紝绯荤粺浼氱敤杞欢鏂规硶杞崲锛�
+    public static final int NET_DVR_SUPPORT_BLTSTRETCHY = 0x40;//鏄惧崱BLT鏀寔Y杞存斁澶э紱濡傛灉涓嶆敮鎸侊紝绯荤粺浼氱敤杞欢鏂规硶杞崲锛�
+    public static final int NET_DVR_SUPPORT_SSE = 0x80;//CPU鏀寔SSE鎸囦护锛� Pentium3浠ヤ笂鏀寔SSE鎸囦护锛�
+    public static final int NET_DVR_SUPPORT_MMX = 0x100;//CPU鏀寔MMX鎸囦护闆嗭紝 Pentium3浠ヤ笂鏀寔SSE鎸囦护锛�
+    /**********************
+     * 浜戝彴鎺у埗鍛戒护 begin
+     *************************/
+    public static final int LIGHT_PWRON = 2;    /* 鎺ラ�氱伅鍏夌數婧� */
+    public static final int WIPER_PWRON = 3;    /* 鎺ラ�氶洦鍒峰紑鍏� */
+    public static final int FAN_PWRON = 4;    /* 鎺ラ�氶鎵囧紑鍏� */
+    public static final int HEATER_PWRON = 5;    /* 鎺ラ�氬姞鐑櫒寮�鍏� */
+    public static final int AUX_PWRON1 = 6;    /* 鎺ラ�氳緟鍔╄澶囧紑鍏� */
+    public static final int AUX_PWRON2 = 7;    /* 鎺ラ�氳緟鍔╄澶囧紑鍏� */
+    public static final int SET_PRESET = 8;    /* 璁剧疆棰勭疆鐐� */
+    public static final int CLE_PRESET = 9;    /* 娓呴櫎棰勭疆鐐� */
+    public static final int ZOOM_IN = 11;    /* 鐒﹁窛浠ラ�熷害SS鍙樺ぇ(鍊嶇巼鍙樺ぇ) */
+    public static final int ZOOM_OUT = 12;    /* 鐒﹁窛浠ラ�熷害SS鍙樺皬(鍊嶇巼鍙樺皬) */
+    public static final int FOCUS_NEAR = 13; /* 鐒︾偣浠ラ�熷害SS鍓嶈皟 */
+    public static final int FOCUS_FAR = 14; /* 鐒︾偣浠ラ�熷害SS鍚庤皟 */
+    public static final int IRIS_OPEN = 15; /* 鍏夊湀浠ラ�熷害SS鎵╁ぇ */
+    public static final int IRIS_CLOSE = 16; /* 鍏夊湀浠ラ�熷害SS缂╁皬 */
+    public static final int TILT_UP = 21;    /* 浜戝彴浠S鐨勯�熷害涓婁话 */
+    public static final int TILT_DOWN = 22;    /* 浜戝彴浠S鐨勯�熷害涓嬩刊 */
+    public static final int PAN_LEFT = 23;    /* 浜戝彴浠S鐨勯�熷害宸﹁浆 */
+    public static final int PAN_RIGHT = 24;    /* 浜戝彴浠S鐨勯�熷害鍙宠浆 */
+    public static final int UP_LEFT = 25;    /* 浜戝彴浠S鐨勯�熷害涓婁话鍜屽乏杞� */
+    public static final int UP_RIGHT = 26;    /* 浜戝彴浠S鐨勯�熷害涓婁话鍜屽彸杞� */
+    public static final int DOWN_LEFT = 27;    /* 浜戝彴浠S鐨勯�熷害涓嬩刊鍜屽乏杞� */
+    public static final int DOWN_RIGHT = 28;    /* 浜戝彴浠S鐨勯�熷害涓嬩刊鍜屽彸杞� */
+    public static final int PAN_AUTO = 29;    /* 浜戝彴浠S鐨勯�熷害宸﹀彸鑷姩鎵弿 */
+    public static final int FILL_PRE_SEQ = 30;    /* 灏嗛缃偣鍔犲叆宸¤埅搴忓垪 */
+    public static final int SET_SEQ_DWELL = 31;    /* 璁剧疆宸¤埅鐐瑰仠椤挎椂闂� */
+    public static final int SET_SEQ_SPEED = 32;    /* 璁剧疆宸¤埅閫熷害 */
+    public static final int CLE_PRE_SEQ = 33;/* 灏嗛缃偣浠庡贰鑸簭鍒椾腑鍒犻櫎 */
+    public static final int STA_MEM_CRUISE = 34;/* 寮�濮嬭褰� */
+    public static final int STO_MEM_CRUISE = 35;/* 鍋滄璁板綍 */
+    public static final int RUN_CRUISE = 36;    /* 寮�濮� */
+    public static final int RUN_SEQ = 37;    /* 寮�濮嬪贰鑸� */
+    public static final int STOP_SEQ = 38;    /* 鍋滄宸¤埅 */
+    public static final int GOTO_PRESET = 39;    /* 蹇悆杞埌棰勭疆鐐� */
+
+    /**********************浜戝彴鎺у埗鍛戒护 end*************************/
+    /*************************************************
+     * 鍥炴斁鏃舵挱鏀炬帶鍒跺懡浠ゅ畯瀹氫箟
+     * NET_DVR_PlayBackControl
+     * NET_DVR_PlayControlLocDisplay
+     * NET_DVR_DecPlayBackCtrl鐨勫畯瀹氫箟
+     * 鍏蜂綋鏀寔鏌ョ湅鍑芥暟璇存槑鍜屼唬鐮�
+     **************************************************/
+    public static final int NET_DVR_PLAYSTART = 1;//寮�濮嬫挱鏀�
+    public static final int NET_DVR_PLAYSTOP = 2;//鍋滄鎾斁
+    public static final int NET_DVR_PLAYPAUSE = 3;//鏆傚仠鎾斁
+    public static final int NET_DVR_PLAYRESTART = 4;//鎭㈠鎾斁
+    public static final int NET_DVR_PLAYFAST = 5;//蹇斁
+    public static final int NET_DVR_PLAYSLOW = 6;//鎱㈡斁
+    public static final int NET_DVR_PLAYNORMAL = 7;//姝e父閫熷害
+    public static final int NET_DVR_PLAYFRAME = 8;//鍗曞抚鏀�
+    public static final int NET_DVR_PLAYSTARTAUDIO = 9;//鎵撳紑澹伴煶
+    public static final int NET_DVR_PLAYSTOPAUDIO = 10;//鍏抽棴澹伴煶
+    public static final int NET_DVR_PLAYAUDIOVOLUME = 11;//璋冭妭闊抽噺
+    public static final int NET_DVR_PLAYSETPOS = 12;//鏀瑰彉鏂囦欢鍥炴斁鐨勮繘搴�
+    public static final int NET_DVR_PLAYGETPOS = 13;//鑾峰彇鏂囦欢鍥炴斁鐨勮繘搴�
+    public static final int NET_DVR_PLAYGETTIME = 14;//鑾峰彇褰撳墠宸茬粡鎾斁鐨勬椂闂�(鎸夋枃浠跺洖鏀剧殑鏃跺�欐湁鏁�)
+    public static final int NET_DVR_PLAYGETFRAME = 15;//鑾峰彇褰撳墠宸茬粡鎾斁鐨勫抚鏁�(鎸夋枃浠跺洖鏀剧殑鏃跺�欐湁鏁�)
+    public static final int NET_DVR_GETTOTALFRAMES = 16;//鑾峰彇褰撳墠鎾斁鏂囦欢鎬荤殑甯ф暟(鎸夋枃浠跺洖鏀剧殑鏃跺�欐湁鏁�)
+    public static final int NET_DVR_GETTOTALTIME = 17;//鑾峰彇褰撳墠鎾斁鏂囦欢鎬荤殑鏃堕棿(鎸夋枃浠跺洖鏀剧殑鏃跺�欐湁鏁�)
+    public static final int NET_DVR_THROWBFRAME = 20;//涓甯�
+    public static final int NET_DVR_SETSPEED = 24;//璁剧疆鐮佹祦閫熷害
+    public static final int NET_DVR_KEEPALIVE = 25;//淇濇寔涓庤澶囩殑蹇冭烦(濡傛灉鍥炶皟闃诲锛屽缓璁�2绉掑彂閫佷竴娆�)
+    public static final int NET_DVR_SET_TRANS_TYPE = 32; //璁剧疆杞爜鏍煎紡
+
+    //杩滅▼鎸夐敭瀹氫箟濡備笅锛�
+    /* key value send to CONFIG program */
+    public static final int KEY_CODE_1 = 1;
+    public static final int KEY_CODE_2 = 2;
+    public static final int KEY_CODE_3 = 3;
+    public static final int KEY_CODE_4 = 4;
+    public static final int KEY_CODE_5 = 5;
+    public static final int KEY_CODE_6 = 6;
+    public static final int KEY_CODE_7 = 7;
+    public static final int KEY_CODE_8 = 8;
+    public static final int KEY_CODE_9 = 9;
+    public static final int KEY_CODE_0 = 10;
+    public static final int KEY_CODE_POWER = 11;
+    public static final int KEY_CODE_MENU = 12;
+    public static final int KEY_CODE_ENTER = 13;
+    public static final int KEY_CODE_CANCEL = 14;
+    public static final int KEY_CODE_UP = 15;
+    public static final int KEY_CODE_DOWN = 16;
+    public static final int KEY_CODE_LEFT = 17;
+    public static final int KEY_CODE_RIGHT = 18;
+    public static final int KEY_CODE_EDIT = 19;
+    public static final int KEY_CODE_ADD = 20;
+    public static final int KEY_CODE_MINUS = 21;
+    public static final int KEY_CODE_PLAY = 22;
+    public static final int KEY_CODE_REC = 23;
+    public static final int KEY_CODE_PAN = 24;
+    public static final int KEY_CODE_M = 25;
+    public static final int KEY_CODE_A = 26;
+    public static final int KEY_CODE_F1 = 27;
+    public static final int KEY_CODE_F2 = 28;
+
+    /* for PTZ control */
+    public static final int KEY_PTZ_UP_START = KEY_CODE_UP;
+    public static final int KEY_PTZ_UP_STO = 32;
+    public static final int KEY_PTZ_DOWN_START = KEY_CODE_DOWN;
+    public static final int KEY_PTZ_DOWN_STOP = 33;
+    public static final int KEY_PTZ_LEFT_START = KEY_CODE_LEFT;
+    public static final int KEY_PTZ_LEFT_STOP = 34;
+    public static final int KEY_PTZ_RIGHT_START = KEY_CODE_RIGHT;
+    public static final int KEY_PTZ_RIGHT_STOP = 35;
+    public static final int KEY_PTZ_AP1_START = KEY_CODE_EDIT;/* 鍏夊湀+ */
+    public static final int KEY_PTZ_AP1_STOP = 36;
+    public static final int KEY_PTZ_AP2_START = KEY_CODE_PAN;/* 鍏夊湀- */
+    public static final int KEY_PTZ_AP2_STOP = 37;
+    public static final int KEY_PTZ_FOCUS1_START = KEY_CODE_A;/* 鑱氱劍+ */
+    public static final int KEY_PTZ_FOCUS1_STOP = 38;
+    public static final int KEY_PTZ_FOCUS2_START = KEY_CODE_M;/* 鑱氱劍- */
+    public static final int KEY_PTZ_FOCUS2_STOP = 39;
+    public static final int KEY_PTZ_B1_START = 40;/* 鍙樺��+ */
+    public static final int KEY_PTZ_B1_STOP = 41;
+    public static final int KEY_PTZ_B2_START = 42;/* 鍙樺��- */
+    public static final int KEY_PTZ_B2_STOP = 43;
+    //9000鏂板
+    public static final int KEY_CODE_11 = 44;
+    public static final int KEY_CODE_12 = 45;
+    public static final int KEY_CODE_13 = 46;
+    public static final int KEY_CODE_14 = 47;
+    public static final int KEY_CODE_15 = 48;
+    public static final int KEY_CODE_16 = 49;
+    /*************************
+     * 鍙傛暟閰嶇疆鍛戒护 begin
+     *******************************/
+//鐢ㄤ簬NET_DVR_SetDVRConfig鍜孨ET_DVR_GetDVRConfig,娉ㄦ剰鍏跺搴旂殑閰嶇疆缁撴瀯
+    public static final int NET_DVR_GET_DEVICECFG = 100;    //鑾峰彇璁惧鍙傛暟
+    public static final int NET_DVR_SET_DEVICECFG = 101;    //璁剧疆璁惧鍙傛暟
+    public static final int NET_DVR_GET_DEVICECFG_V40 = 1100; //鑾峰彇鎵╁睍璁惧鍙傛暟
+    public static final int NET_DVR_SET_DEVICECFG_V40 = 1101; //璁剧疆鎵╁睍璁惧鍙傛暟
+    public static final int NET_DVR_GET_NETCFG = 102;    //鑾峰彇缃戠粶鍙傛暟
+    public static final int NET_DVR_SET_NETCFG = 103;    //璁剧疆缃戠粶鍙傛暟
+    public static final int NET_DVR_GET_PICCFG = 104;    //鑾峰彇鍥捐薄鍙傛暟
+    public static final int NET_DVR_SET_PICCFG = 105;    //璁剧疆鍥捐薄鍙傛暟
+    public static final int NET_DVR_GET_COMPRESSCFG = 106;    //鑾峰彇鍘嬬缉鍙傛暟
+    public static final int NET_DVR_SET_COMPRESSCFG = 107;    //璁剧疆鍘嬬缉鍙傛暟
+    public static final int NET_DVR_GET_RECORDCFG = 108;    //鑾峰彇褰曞儚鏃堕棿鍙傛暟
+    public static final int NET_DVR_SET_RECORDCFG = 109;    //璁剧疆褰曞儚鏃堕棿鍙傛暟
+    public static final int NET_DVR_GET_DECODERCFG = 110;    //鑾峰彇瑙g爜鍣ㄥ弬鏁�
+    public static final int NET_DVR_SET_DECODERCFG = 111;    //璁剧疆瑙g爜鍣ㄥ弬鏁�
+    public static final int NET_DVR_GET_RS232CFG = 112;    //鑾峰彇232涓插彛鍙傛暟
+    public static final int NET_DVR_SET_RS232CFG = 113;    //璁剧疆232涓插彛鍙傛暟
+    public static final int NET_DVR_GET_ALARMINCFG = 114;    //鑾峰彇鎶ヨ杈撳叆鍙傛暟
+    public static final int NET_DVR_SET_ALARMINCFG = 115;    //璁剧疆鎶ヨ杈撳叆鍙傛暟
+    public static final int NET_DVR_GET_ALARMOUTCFG = 116;    //鑾峰彇鎶ヨ杈撳嚭鍙傛暟
+    public static final int NET_DVR_SET_ALARMOUTCFG = 117;    //璁剧疆鎶ヨ杈撳嚭鍙傛暟
+    public static final int NET_DVR_GET_TIMECFG = 118;    //鑾峰彇DVR鏃堕棿
+    public static final int NET_DVR_SET_TIMECFG = 119;        //璁剧疆DVR鏃堕棿
+    public static final int NET_DVR_GET_PREVIEWCFG = 120;    //鑾峰彇棰勮鍙傛暟
+    public static final int NET_DVR_SET_PREVIEWCFG = 121;    //璁剧疆棰勮鍙傛暟
+    public static final int NET_DVR_GET_VIDEOOUTCFG = 122;    //鑾峰彇瑙嗛杈撳嚭鍙傛暟
+    public static final int NET_DVR_SET_VIDEOOUTCFG = 123;    //璁剧疆瑙嗛杈撳嚭鍙傛暟
+    public static final int NET_DVR_GET_USERCFG = 124;    //鑾峰彇鐢ㄦ埛鍙傛暟
+    public static final int NET_DVR_SET_USERCFG = 125;    //璁剧疆鐢ㄦ埛鍙傛暟
+    public static final int NET_DVR_GET_EXCEPTIONCFG = 126;    //鑾峰彇寮傚父鍙傛暟
+    public static final int NET_DVR_SET_EXCEPTIONCFG = 127;    //璁剧疆寮傚父鍙傛暟
+    public static final int NET_DVR_GET_ZONEANDDST = 128;    //鑾峰彇鏃跺尯鍜屽鏃跺埗鍙傛暟
+    public static final int NET_DVR_SET_ZONEANDDST = 129;    //璁剧疆鏃跺尯鍜屽鏃跺埗鍙傛暟
+    public static final int NET_DVR_GET_SHOWSTRING = 130;    //鑾峰彇鍙犲姞瀛楃鍙傛暟
+    public static final int NET_DVR_SET_SHOWSTRING = 131;    //璁剧疆鍙犲姞瀛楃鍙傛暟
+    public static final int NET_DVR_GET_EVENTCOMPCFG = 132;    //鑾峰彇浜嬩欢瑙﹀彂褰曞儚鍙傛暟
+    public static final int NET_DVR_SET_EVENTCOMPCFG = 133;    //璁剧疆浜嬩欢瑙﹀彂褰曞儚鍙傛暟
+    public static final int NET_DVR_GET_AUXOUTCFG = 140;    //鑾峰彇鎶ヨ瑙﹀彂杈呭姪杈撳嚭璁剧疆(HS璁惧杈呭姪杈撳嚭2006-02-28)
+    public static final int NET_DVR_SET_AUXOUTCFG = 141;    //璁剧疆鎶ヨ瑙﹀彂杈呭姪杈撳嚭璁剧疆(HS璁惧杈呭姪杈撳嚭2006-02-28)
+    public static final int NET_DVR_GET_PREVIEWCFG_AUX = 142;    //鑾峰彇-s绯诲垪鍙岃緭鍑洪瑙堝弬鏁�(-s绯诲垪鍙岃緭鍑�2006-04-13)
+    public static final int NET_DVR_SET_PREVIEWCFG_AUX = 143;    //璁剧疆-s绯诲垪鍙岃緭鍑洪瑙堝弬鏁�(-s绯诲垪鍙岃緭鍑�2006-04-13)
+    public static final int NET_DVR_GET_PICCFG_EX = 200;    //鑾峰彇鍥捐薄鍙傛暟(SDK_V14鎵╁睍鍛戒护)
+    public static final int NET_DVR_SET_PICCFG_EX = 201;    //璁剧疆鍥捐薄鍙傛暟(SDK_V14鎵╁睍鍛戒护)
+    public static final int NET_DVR_GET_USERCFG_EX = 202;    //鑾峰彇鐢ㄦ埛鍙傛暟(SDK_V15鎵╁睍鍛戒护)
+    public static final int NET_DVR_SET_USERCFG_EX = 203;    //璁剧疆鐢ㄦ埛鍙傛暟(SDK_V15鎵╁睍鍛戒护)
+    public static final int NET_DVR_GET_COMPRESSCFG_EX = 204;    //鑾峰彇鍘嬬缉鍙傛暟(SDK_V15鎵╁睍鍛戒护2006-05-15)
+    public static final int NET_DVR_SET_COMPRESSCFG_EX = 205;    //璁剧疆鍘嬬缉鍙傛暟(SDK_V15鎵╁睍鍛戒护2006-05-15)
+    public static final int NET_DVR_GET_NETAPPCFG = 222;    //鑾峰彇缃戠粶搴旂敤鍙傛暟 NTP/DDNS/EMAIL
+    public static final int NET_DVR_SET_NETAPPCFG = 223;    //璁剧疆缃戠粶搴旂敤鍙傛暟 NTP/DDNS/EMAIL
+    public static final int NET_DVR_GET_NTPCFG = 224;    //鑾峰彇缃戠粶搴旂敤鍙傛暟 NTP
+    public static final int NET_DVR_SET_NTPCFG = 225;    //璁剧疆缃戠粶搴旂敤鍙傛暟 NTP
+    public static final int NET_DVR_GET_DDNSCFG = 226;    //鑾峰彇缃戠粶搴旂敤鍙傛暟 DDNS
+    public static final int NET_DVR_SET_DDNSCFG = 227;        //璁剧疆缃戠粶搴旂敤鍙傛暟 DDNS
+    //瀵瑰簲NET_DVR_EMAILPARA
+    public static final int NET_DVR_GET_EMAILCFG = 228;    //鑾峰彇缃戠粶搴旂敤鍙傛暟 EMAIL
+    public static final int NET_DVR_SET_EMAILCFG = 229;    //璁剧疆缃戠粶搴旂敤鍙傛暟 EMAIL
+    public static final int NET_DVR_GET_NFSCFG = 230;    /* NFS disk config */
+    public static final int NET_DVR_SET_NFSCFG = 231;    /* NFS disk config */
+    public static final int NET_DVR_GET_SHOWSTRING_EX = 238;    //鑾峰彇鍙犲姞瀛楃鍙傛暟鎵╁睍(鏀寔8鏉″瓧绗�)
+    public static final int NET_DVR_SET_SHOWSTRING_EX = 239;    //璁剧疆鍙犲姞瀛楃鍙傛暟鎵╁睍(鏀寔8鏉″瓧绗�)
+    public static final int NET_DVR_GET_NETCFG_OTHER = 244;    //鑾峰彇缃戠粶鍙傛暟
+    public static final int NET_DVR_SET_NETCFG_OTHER = 245;    //璁剧疆缃戠粶鍙傛暟
+    //瀵瑰簲NET_DVR_EMAILCFG缁撴瀯
+    public static final int NET_DVR_GET_EMAILPARACFG = 250;    //Get EMAIL parameters
+    public static final int NET_DVR_SET_EMAILPARACFG = 251;    //Setup EMAIL parameters
+    public static final int NET_DVR_GET_DDNSCFG_EX = 274;//鑾峰彇鎵╁睍DDNS鍙傛暟
+    public static final int NET_DVR_SET_DDNSCFG_EX = 275;//璁剧疆鎵╁睍DDNS鍙傛暟
+    public static final int NET_DVR_SET_PTZPOS = 292;    //浜戝彴璁剧疆PTZ浣嶇疆
+    public static final int NET_DVR_GET_PTZPOS = 293;        //浜戝彴鑾峰彇PTZ浣嶇疆
+    public static final int NET_DVR_GET_PTZSCOPE = 294;//浜戝彴鑾峰彇PTZ鑼冨洿
+    public static final int NET_DVR_GET_PTZLOCKCFG=3287;//鑾峰彇浜戝彴閿佸畾淇℃伅
+    public static final int  NET_DVR_SET_PTZLOCKCFG=3288;//璁剧疆浜戝彴閿佸畾淇℃伅
+
+    public static final int NET_DVR_COMPLETE_RESTORE_CTRL = 3420;    //璁剧疆瀹屽叏鎭㈠鍑哄巶鍊�
+    /***************************
+     * DS9000鏂板鍛戒护(_V30) begin
+     *****************************/
+//缃戠粶(NET_DVR_NETCFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_NETCFG_V30 = 1000;    //鑾峰彇缃戠粶鍙傛暟
+    public static final int NET_DVR_SET_NETCFG_V30 = 1001;    //璁剧疆缃戠粶鍙傛暟
+    //鍥捐薄(NET_DVR_PICCFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_PICCFG_V30 = 1002;    //鑾峰彇鍥捐薄鍙傛暟
+    public static final int NET_DVR_SET_PICCFG_V30 = 1003;    //璁剧疆鍥捐薄鍙傛暟
+    public static final int NET_DVR_GET_PICCFG_V40 = 6179;   //鑾峰彇鍥捐薄鍙傛暟
+    public static final int NET_DVR_SET_PICCFG_V40 = 6180;   //璁剧疆鍥捐薄鍙傛暟
+    public static final int NET_DVR_GET_AES_KEY = 6113;    //鑾峰彇璁惧AES鍔犲瘑瀵嗛挜
+    //褰曞儚鏃堕棿(NET_DVR_RECORD_V30缁撴瀯)
+    public static final int NET_DVR_GET_RECORDCFG_V30 = 1004;    //鑾峰彇褰曞儚鍙傛暟
+    public static final int NET_DVR_SET_RECORDCFG_V30 = 1005;    //璁剧疆褰曞儚鍙傛暟
+    //鐢ㄦ埛(NET_DVR_USER_V30缁撴瀯)
+    public static final int NET_DVR_GET_USERCFG_V30 = 1006;    //鑾峰彇鐢ㄦ埛鍙傛暟
+    public static final int NET_DVR_SET_USERCFG_V30 = 1007;    //璁剧疆鐢ㄦ埛鍙傛暟
+    //褰曞儚璁″垝鍙傛暟
+    public static final int NET_DVR_GET_RECORDCFG_V40 = 1008;    //鑾峰彇褰曞儚鍙傛暟
+    public static final int NET_DVR_SET_RECORDCFG_V40 = 1009;    //璁剧疆褰曞儚鍙傛暟
+    //9000DDNS鍙傛暟閰嶇疆(NET_DVR_DDNSPARA_V30缁撴瀯)
+    public static final int NET_DVR_GET_DDNSCFG_V30 = 1010;    //鑾峰彇DDNS(9000鎵╁睍)
+    public static final int NET_DVR_SET_DDNSCFG_V30 = 1011;    //璁剧疆DDNS(9000鎵╁睍)
+    //EMAIL鍔熻兘(NET_DVR_EMAILCFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_EMAILCFG_V30 = 1012;//鑾峰彇EMAIL鍙傛暟
+    public static final int NET_DVR_SET_EMAILCFG_V30 = 1013;//璁剧疆EMAIL鍙傛暟
+    //鑾峰彇鍜岃缃綉缁滃弬鏁�
+    public static final int NET_DVR_GET_NETCFG_V50 = 1015;//鑾峰彇缃戠粶鍙傛暟
+    public static final int NET_DVR_SET_NETCFG_V50 = 1016;//璁剧疆缃戠粶鍙傛暟
+    //宸¤埅鍙傛暟 (NET_DVR_CRUISE_PARA缁撴瀯)
+    public static final int NET_DVR_GET_CRUISE = 1020;
+    public static final int NET_DVR_SET_CRUISE = 1021;
+    //鎶ヨ杈撳叆缁撴瀯鍙傛暟 (NET_DVR_ALARMINCFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_ALARMINCFG_V30 = 1024;
+    public static final int NET_DVR_SET_ALARMINCFG_V30 = 1025;
+    //鎶ヨ杈撳嚭缁撴瀯鍙傛暟 (NET_DVR_ALARMOUTCFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_ALARMOUTCFG_V30 = 1026;
+    public static final int NET_DVR_SET_ALARMOUTCFG_V30 = 1027;
+    //瑙嗛杈撳嚭缁撴瀯鍙傛暟 (NET_DVR_VIDEOOUT_V30缁撴瀯)
+    public static final int NET_DVR_GET_VIDEOOUTCFG_V30 = 1028;
+    public static final int NET_DVR_SET_VIDEOOUTCFG_V30 = 1029;
+    //鍙犲姞瀛楃缁撴瀯鍙傛暟 (NET_DVR_SHOWSTRING_V30缁撴瀯)
+    public static final int NET_DVR_GET_SHOWSTRING_V30 = 1030;
+    public static final int NET_DVR_SET_SHOWSTRING_V30 = 1031;
+    //寮傚父缁撴瀯鍙傛暟 (NET_DVR_EXCEPTION_V30缁撴瀯)
+    public static final int NET_DVR_GET_EXCEPTIONCFG_V30 = 1034;
+    public static final int NET_DVR_SET_EXCEPTIONCFG_V30 = 1035;
+    //涓插彛232缁撴瀯鍙傛暟 (NET_DVR_RS232CFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_RS232CFG_V30 = 1036;
+    public static final int NET_DVR_SET_RS232CFG_V30 = 1037;
+    //鍘嬬缉鍙傛暟 (NET_DVR_COMPRESSIONCFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_COMPRESSCFG_V30 = 1040;
+    public static final int NET_DVR_SET_COMPRESSCFG_V30 = 1041;
+    //鑾峰彇485瑙g爜鍣ㄥ弬鏁� (NET_DVR_DECODERCFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_DECODERCFG_V30 = 1042;    //鑾峰彇瑙g爜鍣ㄥ弬鏁�
+    public static final int NET_DVR_SET_DECODERCFG_V30 = 1043;    //璁剧疆瑙g爜鍣ㄥ弬鏁�
+    //鑾峰彇棰勮鍙傛暟 (NET_DVR_PREVIEWCFG_V30缁撴瀯)
+    public static final int NET_DVR_GET_PREVIEWCFG_V30 = 1044;    //鑾峰彇棰勮鍙傛暟
+    public static final int NET_DVR_SET_PREVIEWCFG_V30 = 1045;    //璁剧疆棰勮鍙傛暟
+    //杈呭姪棰勮鍙傛暟 (NET_DVR_PREVIEWCFG_AUX_V30缁撴瀯)
+    public static final int NET_DVR_GET_PREVIEWCFG_AUX_V30 = 1046;    //鑾峰彇杈呭姪棰勮鍙傛暟
+    public static final int NET_DVR_SET_PREVIEWCFG_AUX_V30 = 1047;    //璁剧疆杈呭姪棰勮鍙傛暟
+    //IP鎺ュ叆閰嶇疆鍙傛暟 锛圢ET_DVR_IPPARACFG缁撴瀯锛�
+    public static final int NET_DVR_GET_IPPARACFG = 1048;    //鑾峰彇IP鎺ュ叆閰嶇疆淇℃伅
+    public static final int NET_DVR_SET_IPPARACFG = 1049;    //璁剧疆IP鎺ュ叆閰嶇疆淇℃伅
+    //IP鎺ュ叆閰嶇疆鍙傛暟V40 锛圢ET_DVR_IPPARACFG_V40缁撴瀯锛�
+    public static final int NET_DVR_GET_IPPARACFG_V40 = 1062;    //鑾峰彇IP鎺ュ叆閰嶇疆淇℃伅
+    public static final int NET_DVR_SET_IPPARACFG_V40 = 1063;    //璁剧疆IP鎺ュ叆閰嶇疆淇℃伅
+    //IP鎶ヨ杈撳叆鎺ュ叆閰嶇疆鍙傛暟 锛圢ET_DVR_IPALARMINCFG缁撴瀯锛�
+    public static final int NET_DVR_GET_IPALARMINCFG = 1050;    //鑾峰彇IP鎶ヨ杈撳叆鎺ュ叆閰嶇疆淇℃伅
+    public static final int NET_DVR_SET_IPALARMINCFG = 1051;   //璁剧疆IP鎶ヨ杈撳叆鎺ュ叆閰嶇疆淇℃伅
+    //IP鎶ヨ杈撳嚭鎺ュ叆閰嶇疆鍙傛暟 锛圢ET_DVR_IPALARMOUTCFG缁撴瀯锛�
+    public static final int NET_DVR_GET_IPALARMOUTCFG = 1052;   //鑾峰彇IP鎶ヨ杈撳嚭鎺ュ叆閰嶇疆淇℃伅
+    public static final int NET_DVR_SET_IPALARMOUTCFG = 1053;  //璁剧疆IP鎶ヨ杈撳嚭鎺ュ叆閰嶇疆淇℃伅
+    //纭洏绠$悊鐨勫弬鏁拌幏鍙� (NET_DVR_HDCFG缁撴瀯)
+    public static final int NET_DVR_GET_HDCFG = 1054;    //鑾峰彇纭洏绠$悊閰嶇疆鍙傛暟
+    public static final int NET_DVR_SET_HDCFG = 1055;    //璁剧疆纭洏绠$悊閰嶇疆鍙傛暟
+    //鐩樼粍绠$悊鐨勫弬鏁拌幏鍙� (NET_DVR_HDGROUP_CFG缁撴瀯)
+    public static final int NET_DVR_GET_HDGROUP_CFG = 1056;    //鑾峰彇鐩樼粍绠$悊閰嶇疆鍙傛暟
+    public static final int NET_DVR_SET_HDGROUP_CFG = 1057;    //璁剧疆鐩樼粍绠$悊閰嶇疆鍙傛暟
+    //璁惧缂栫爜绫诲瀷閰嶇疆(NET_DVR_COMPRESSION_AUDIO缁撴瀯)
+    public static final int NET_DVR_GET_COMPRESSCFG_AUD = 1058;     //鑾峰彇璁惧璇煶瀵硅缂栫爜鍙傛暟
+    public static final int NET_DVR_SET_COMPRESSCFG_AUD = 1059;     //璁剧疆璁惧璇煶瀵硅缂栫爜鍙傛暟
+
+    public static final int NET_SDK_FINDMEDICALFILE = 3954;    //鎱у奖绉戞妧鏅烘収鍖荤枟鏌ユ壘褰曞儚鏂囦欢
+    public static final int NET_SDK_FINDMEDICALPICTURE = 3955;    //鎱у奖绉戞妧鏅烘収鍖荤枟鏌ユ壘鍥剧墖鏂囦欢
+
+    public static final int NET_DVR_GET_RAPIDMOVE_DETECTION = 3539;    //鑾峰彇蹇�熻繍鍔ㄤ睛娴嬮厤缃�
+    public static final int NET_DVR_SET_RAPIDMOVE_DETECTION = 3540;    //璁剧疆蹇�熻繍鍔ㄤ睛娴嬮厤缃�
+
+    public static final int NET_DVR_GET_RAPIDMOVE_TRIGGER = 3543;    //鑾峰彇蹇�熻繍鍔ㄨ仈鍔ㄩ厤缃�
+    public static final int NET_DVR_SET_RAPIDMOVE_TRIGGER = 3544;    //璁剧疆蹇�熻繍鍔ㄨ仈鍔ㄩ厤缃�
+    public static final int NET_DVR_GET_RAPIDMOVE_SCHEDULE = 3545;    //鑾峰彇蹇�熻繍鍔ㄧ殑甯冮槻鏃堕棿閰嶇疆
+    public static final int NET_DVR_SET_RAPIDMOVE_SCHEDULE = 3546;    //璁剧疆蹇�熻繍鍔ㄧ殑甯冮槻鏃堕棿閰嶇疆
+
+    public static final int NET_DVR_GET_PRESET_NAME = 3383; //鑾峰彇棰勭疆鐐瑰悕绉�
+    public static final int NET_DVR_SET_PRESET_NAME = 3382; //璁剧疆棰勭疆鐐瑰悕绉�
+    public static final int NET_DVR_GET_RULECFG_V42 = 5049;  //鑾峰彇寮傚父琛屼负妫�娴嬪弬鏁�(鏀寔16鏉¤鍒欐墿灞�)
+    public static final int NET_DVR_SET_RULECFG_V42 = 5050;  //璁剧疆寮傚父琛屼负妫�娴嬪弬鏁�(鏀寔16鏉¤鍒欐墿灞�)
+
+    //杞︾墝璇嗗埆锛圢ET_VCA_PLATE_CFG锛�;
+    public static final int NET_DVR_SET_PLATECFG = 150;//璁剧疆杞︾墝璇嗗埆鍙傛暟
+
+    public static final int NET_DVR_GET_PLATECFG = 151;    //鑾峰彇杞︾墝璇嗗埆鍙傛暟
+    //琛屼负瀵瑰簲锛圢ET_VCA_RULECFG锛�
+    public static final int NET_DVR_SET_RULECFG = 152;    //璁剧疆寮傚父琛屼负妫�娴嬭鍒�
+    public static final int NET_DVR_GET_RULECFG = 153;//鑾峰彇寮傚父琛屼负妫�娴嬭鍒�
+    //鍙屾憚鍍忔満鏍囧畾鍙傛暟锛圢ET_DVR_LF_CFG锛�
+    public static final int NET_DVR_SET_LF_CFG = 160;//璁剧疆鍙屾憚鍍忔満鐨勯厤缃弬鏁�
+    public static final int NET_DVR_GET_LF_CFG = 161;//鑾峰彇鍙屾憚鍍忔満鐨勯厤缃弬鏁�
+    //鏅鸿兘鍒嗘瀽浠彇娴侀厤缃粨鏋�
+    public static final int NET_DVR_SET_IVMS_STREAMCFG = 162;    //璁剧疆鏅鸿兘鍒嗘瀽浠彇娴佸弬鏁�
+    public static final int NET_DVR_GET_IVMS_STREAMCFG = 163;    //鑾峰彇鏅鸿兘鍒嗘瀽浠彇娴佸弬鏁�
+    //鏅鸿兘鎺у埗鍙傛暟缁撴瀯
+    public static final int NET_DVR_SET_VCA_CTRLCFG = 164; //璁剧疆鏅鸿兘鎺у埗鍙傛暟
+    public static final int NET_DVR_GET_VCA_CTRLCFG = 165;     //鑾峰彇鏅鸿兘鎺у埗鍙傛暟
+    //灞忚斀鍖哄煙NET_VCA_MASK_REGION_LIST
+    public static final int NET_DVR_SET_VCA_MASK_REGION = 166;     //璁剧疆灞忚斀鍖哄煙鍙傛暟
+    public static final int NET_DVR_GET_VCA_MASK_REGION = 167;     //鑾峰彇灞忚斀鍖哄煙鍙傛暟
+    //ATM杩涘叆鍖哄煙 NET_VCA_ENTER_REGION
+    public static final int NET_DVR_SET_VCA_ENTER_REGION = 168; //璁剧疆杩涘叆鍖哄煙鍙傛暟
+    public static final int NET_DVR_GET_VCA_ENTER_REGION = 169;     //鑾峰彇杩涘叆鍖哄煙鍙傛暟
+    //鏍囧畾绾块厤缃甆ET_VCA_LINE_SEGMENT_LIST
+    public static final int NET_DVR_SET_VCA_LINE_SEGMENT = 170;     //璁剧疆鏍囧畾绾�
+    public static final int NET_DVR_GET_VCA_LINE_SEGMENT = 171;     //鑾峰彇鏍囧畾绾�
+    // ivms灞忚斀鍖哄煙NET_IVMS_MASK_REGION_LIST
+    public static final int NET_DVR_SET_IVMS_MASK_REGION = 172;     //璁剧疆IVMS灞忚斀鍖哄煙鍙傛暟
+    public static final int NET_DVR_GET_IVMS_MASK_REGION = 173;     //鑾峰彇IVMS灞忚斀鍖哄煙鍙傛暟
+    // ivms杩涘叆妫�娴嬪尯鍩烴ET_IVMS_ENTER_REGION
+    public static final int NET_DVR_SET_IVMS_ENTER_REGION = 174; //璁剧疆IVMS杩涘叆鍖哄煙鍙傛暟
+    public static final int NET_DVR_GET_IVMS_ENTER_REGION = 175; //鑾峰彇IVMS杩涘叆鍖哄煙鍙傛暟
+    public static final int NET_DVR_SET_IVMS_BEHAVIORCFG = 176;//璁剧疆鏅鸿兘鍒嗘瀽浠涓鸿鍒欏弬鏁�
+    public static final int NET_DVR_GET_IVMS_BEHAVIORCFG = 177;    //鑾峰彇鏅鸿兘鍒嗘瀽浠涓鸿鍒欏弬鏁�
+    public static final int NET_DVR_GET_TRAVERSE_PLANE_DETECTION = 3360; //鑾峰彇瓒婄晫渚︽祴閰嶇疆
+    public static final int NET_DVR_SET_TRAVERSE_PLANE_DETECTION = 3361;
+    public static final int NET_DVR_GET_FIELD_DETECTION = 3362; //鑾峰彇鍖哄煙渚︽祴閰嶇疆
+    public static final int NET_DVR_SET_FIELD_DETECTION = 3363; //璁剧疆鍖哄煙渚︽祴閰嶇疆
+
+    public static final int NET_DVR_GET_STREAM_INFO = 6023; //鑾峰彇宸叉坊鍔犳祦ID淇℃伅
+    public static final int NET_DVR_GET_STREAM_RECORD_STATUS = 6021; //鑾峰彇娴佺姸鎬佷俊鎭�
+
+    public static final int NET_DVR_GET_ALL_VEHICLE_CONTROL_LIST = 3124; //鑾峰彇鎵�鏈夎溅杈嗙姝㈠拰鍏佽鍚嶅崟淇℃伅
+    public static final int NET_DVR_VEHICLELIST_CTRL_START = 3133; //璁剧疆杞﹁締绂佹鍜屽厑璁稿悕鍗曚俊鎭�(鎵归噺)
+    public static final int ENUM_SENDDATA = 0x0; //鍙戦�佹暟鎹�
+
+    public static final int NET_DVR_GET_LEDDISPLAY_CFG = 3673;
+    public static final int NET_DVR_SET_LEDDISPLAY_CFG = 3672;
+    public static final int NET_DVR_SET_VOICEBROADCAST_CFG = 3675;
+    public static final int NET_DVR_SET_CHARGE_ACCOUNTINFO = 3662;
+
+    public static final int NET_DVR_GET_TRAFFIC_DATA = 3141;   //闀胯繛鎺ヨ幏鍙栦氦閫氭暟鎹�
+    public static final int NET_DVR_GET_TRAFFIC_FLOW = 3142;   //闀胯繛鎺ヨ幏鍙栦氦閫氭祦閲�
+
+    public static final int NET_DVR_GET_CCDPARAMCFG_EX = 3368;//鑾峰彇鍓嶇鍙傛暟(鎵╁睍)
+    public static final int NET_DVR_SET_CCDPARAMCFG_EX = 3369;//璁剧疆鍓嶇鍙傛暟(鎵╁睍)
+    public static final int NET_DVR_GET_FOCUSMODECFG = 3305;//鑾峰彇蹇悆鑱氱劍妯″紡淇℃伅
+    public static final int NET_DVR_SET_FOCUSMODECFG = 3306;//璁剧疆蹇悆鑱氱劍妯″紡淇℃伅
+
+    public static final int NET_DVR_GET_SUPPLEMENTLIGHT = 3728;  //鑾峰彇鍐呯疆琛ュ厜鐏厤缃崗璁�
+    public static final int NET_DVR_SET_SUPPLEMENTLIGHT = 3729;  //璁剧疆鍐呯疆琛ュ厜鐏厤缃崗璁�
+
+    public static final int NET_DVR_GET_FACECONTRAST_TRIGGER = 3965;//鑾峰彇浜鸿劯姣斿鑱斿姩閰嶇疆
+    public static final int NET_DVR_SET_FACECONTRAST_TRIGGER = 3966;//璁剧疆浜鸿劯姣斿鑱斿姩閰嶇疆
+
+    public static final int NET_DVR_GET_FACECONTRAST_SCHEDULE = 3968;//鑾峰彇浜鸿劯姣斿甯冮槻鏃堕棿閰嶇疆
+    public static final int NET_DVR_SET_FACECONTRAST_SCHEDULE = 3969;//璁剧疆浜鸿劯姣斿甯冮槻鏃堕棿閰嶇疆
+
+    public static final int NET_DVR_INQUEST_GET_CDW_STATUS = 6350;  //鑾峰彇瀹¤鏈哄埢褰曠姸鎬�-闀胯繛鎺�
+
+    public static final int NET_DVR_GET_REALTIME_THERMOMETRY = 3629; //瀹炴椂娓╁害妫�娴�
+    public static final int NET_DVR_GET_MANUALTHERM_INFO = 6706;     //鎵嬪姩娴嬫俯瀹炴椂鑾峰彇
+    public static final int NET_DVR_GET_THERMOMETRY_MODE = 6765;//鑾峰彇娴嬫俯妯″紡鍙傛暟
+    public static final int NET_DVR_SET_THERMOMETRY_MODE = 6766;//璁剧疆娴嬫俯妯″紡鍙傛暟
+    public static final int NET_DVR_GET_PTZABSOLUTEEX = 6696;
+    public static final int NET_DVR_GET_THERMOMETRY_PRESETINFO = 3624;  //鑾峰彇娴嬫俯棰勭疆鐐瑰叧鑱旈厤缃弬鏁�
+    public static final int NET_DVR_SET_THERMOMETRY_PRESETINFO = 3625;  //璁剧疆娴嬫俯棰勭疆鐐瑰叧鑱旈厤缃弬鏁�
+    public static final int NET_DVR_GET_THERMOMETRYRULE_TEMPERATURE_INFO = 23001;//鎵嬪姩鑾峰彇娴嬫俯瑙勫垯娓╁害淇℃伅
+    public static final int NET_DVR_SET_DEVSERVER_CFG = 3258;//璁剧疆妯″潡鏈嶅姟閰嶇疆
+
+    public static final int NET_DVR_GET_PHY_DISK_INFO = 6306;   //鑾峰彇鐗╃悊纾佺洏淇℃伅
+    public static final int NET_DVR_GET_WORK_STATUS = 6189;   //鑾峰彇璁惧宸ヤ綔鐘舵��
+    public static final int NET_DVR_GET_WORK_STATUS_V50 = 6200;   //鑾峰彇璁惧宸ヤ綔鐘舵�乂50
+    public static final int NET_DVR_GET_MONTHLY_RECORD_DISTRIBUTION = 6164; //鑾峰彇鏈堝巻褰曞儚鍒嗗竷
+
+    public static final int NET_DVR_GET_CURTRIGGERMODE = 3130;   //鑾峰彇璁惧褰撳墠瑙﹀彂妯″紡
+    public static final int NET_ITC_GET_TRIGGERCFG = 3003;  //鑾峰彇瑙﹀彂鍙傛暟
+    public static final int NET_ITC_SET_TRIGGERCFG = 3004;  //璁剧疆瑙﹀彂鍙傛暟
+    public static final int NET_ITC_GET_VIDEO_TRIGGERCFG = 3017;  //鑾峰彇瑙嗛鐢佃瑙﹀彂鍙傛暟
+    public static final int NET_ITC_SET_VIDEO_TRIGGERCFG = 3018;  //璁剧疆瑙嗛鐢佃瑙﹀彂鍙傛暟
+
+    public static final int NET_DVR_GET_MULTI_STREAM_COMPRESSIONCFG = 3216;//杩滅▼鑾峰彇澶氱爜娴佸帇缂╁弬鏁�
+    public static final int NET_DVR_SET_MULTI_STREAM_COMPRESSIONCFG = 3217;//杩滅▼璁剧疆澶氱爜娴佸帇缂╁弬鏁�
+
+    public static final int NET_DVR_GET_CMS_CFG = 2070;
+    public static final int NET_DVR_SET_CMS_CFG = 2071;
+
+    public static final int NET_DVR_GET_ALARM_INFO = 4193;  //鑾峰彇鎶ヨ浜嬩欢鏁版嵁
+    /***************************DS9000鏂板鍛戒护(_V30) end *****************************/
+
+    /*************************鍙傛暟閰嶇疆鍛戒护 end*******************************/
+    /*************************************鐗瑰緛璇嗗埆闂ㄧ涓�浣撴満1.0 begin**************************************/
+    public static final int NET_DVR_GET_CARD_CFG = 2116; //鑾峰彇鍗″弬鏁�
+    public static final int NET_DVR_SET_CARD_CFG = 2117; //璁剧疆鍗″弬鏁�
+    public static final int NET_DVR_GET_CARD_CFG_V50 = 2178;    //鑾峰彇鏂板崱鍙傛暟(V50)
+    public static final int NET_DVR_SET_CARD_CFG_V50 = 2179;    //璁剧疆鏂板崱鍙傛暟(V50)
+    public static final int NET_DVR_GET_FACE_PARAM_CFG = 2507;    //鑾峰彇浜鸿劯鍙傛暟
+    public static final int NET_DVR_SET_FACE_PARAM_CFG = 2508;    //璁剧疆浜鸿劯鍙傛暟
+    public static final int NET_DVR_DEL_FACE_PARAM_CFG = 2509;    //鍒犻櫎浜鸿劯鍙傛暟
+    public static final int NET_DVR_CLEAR_ACS_PARAM = 2118; //娓呯┖闂ㄧ涓绘満鍙傛暟
+    public static final int NET_DVR_DEL_FINGERPRINT_CFG = 2152; //鍒犻櫎鎸囩汗鍙傛暟
+    public static final int NET_DVR_GET_FINGERPRINT_CFG_V50 = 2183;    //鑾峰彇鎸囩汗鍙傛暟V50
+    public static final int NET_DVR_SET_FINGERPRINT_CFG_V50 = 2184;   //璁剧疆鎸囩汗鍙傛暟V50
+    public static final int NET_DVR_DEL_FINGERPRINT_CFG_V50 = 2517;    //鍒犻櫎鎸囩汗鍙傛暟V50
+    public static final int NET_DVR_GET_CARD_RIGHT_WEEK_PLAN_V50 = 2304;  //鑾峰彇鍗℃潈闄愬懆璁″垝鍙傛暟V50
+    public static final int NET_DVR_SET_CARD_RIGHT_WEEK_PLAN_V50 = 2305;  //璁剧疆鍗℃潈闄愬懆璁″垝鍙傛暟V50
+    public static final int NET_DVR_GET_CARD_RIGHT_PLAN_TEMPLATE_V50 = 2322; //鑾峰彇鍗℃潈闄愯鍒掓ā鏉垮弬鏁癡50
+    public static final int NET_DVR_SET_CARD_RIGHT_PLAN_TEMPLATE_V50 = 2323;//璁剧疆鍗℃潈闄愯鍒掓ā鏉垮弬鏁癡50
+    public static final int NET_DVR_SET_DOOR_STATUS_PLAN_TEMPLATE = 2107; //璁剧疆闂ㄧ姸鎬佽鍒掓ā鏉垮弬鏁�
+    public static final int NET_DVR_GET_DOOR_CFG = 2108;    //鑾峰彇闂ㄥ弬鏁�
+    public static final int NET_DVR_SET_DOOR_CFG = 2109;    //璁剧疆闂ㄥ弬鏁�
+    public static final int NET_DVR_GET_DOOR_STATUS_PLAN = 2110; //鑾峰彇闂ㄧ姸鎬佽鍒掑弬鏁�
+    public static final int NET_DVR_SET_DOOR_STATUS_PLAN = 2111; //璁剧疆闂ㄧ姸鎬佽鍒掑弬鏁�
+    public static final int NET_DVR_GET_WEEK_PLAN_CFG = 2100; //鑾峰彇闂ㄧ姸鎬佸懆璁″垝鍙傛暟
+    public static final int NET_DVR_SET_WEEK_PLAN_CFG = 2101; //璁剧疆闂ㄧ姸鎬佸懆璁″垝鍙傛暟
+    public static final int NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V50 = 2181;    //鑾峰彇浜嬩欢鍗″彿鑱斿姩閰嶇疆鍙傛暟(V50)
+    public static final int NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V50 = 2182;    //璁剧疆浜嬩欢鍗″彿鑱斿姩閰嶇疆鍙傛暟(V50)
+    public static final int NET_DVR_CAPTURE_FACE_INFO = 2510;    //閲囬泦浜鸿劯淇℃伅
+    public static final int NET_DVR_CAPTURE_FINGERPRINT_INFO = 2504; //閲囬泦鎸囩汗淇℃伅
+    public static final int NET_DVR_GET_ACS_EVENT = 2514;//璁惧浜嬩欢鑾峰彇
+    public static final int NET_DVR_GET_CARD_READER_CFG_V50 = 2505;    //鑾峰彇璇诲崱鍣ㄥ弬鏁�(V50)
+    public static final int NET_DVR_SET_CARD_READER_CFG_V50 = 2506;   //璁剧疆璇诲崱鍣ㄥ弬鏁�(V50)
+    public static final int NET_DVR_GET_REGISTER_INFO = 2511;    //鐧昏淇℃伅鑾峰彇
+    public static final int NET_DVR_GET_SMSRELATIVEPARA_V50 = 2512;   //鑾峰彇鐭俊鐩稿叧鍙傛暟
+    public static final int NET_DVR_SET_SMSRELATIVEPARA_V50 = 2513;    //璁剧疆鐭俊鐩稿叧鍙傛暟
+    public static final int NET_DVR_GET_MULTI_CARD_CFG_V50 = 2515;    //鑾峰彇澶氶噸鍗″弬鏁癡50
+    public static final int NET_DVR_SET_MULTI_CARD_CFG_V50 = 2516;    //璁剧疆澶氶噸鍗″弬鏁癡5
+    public static final int NET_DVR_GET_EVENT_CARD_LINKAGE_CFG_V51 = 2518;    //鑾峰彇浜嬩欢鍗″彿鑱斿姩閰嶇疆鍙傛暟(V51)
+    public static final int NET_DVR_SET_EVENT_CARD_LINKAGE_CFG_V51 = 2519;    //璁剧疆浜嬩欢鍗″彿鑱斿姩閰嶇疆鍙傛暟(V51)
+
+    public static final int NET_DVR_SET_EXAM_INFO = 2530;    //鑰冭瘯淇℃伅涓嬪彂
+    public static final int NET_DVR_SET_EXAMINEE_INFO = 2531;    //鑰冪敓淇℃伅涓嬪彂
+    public static final int NET_DVR_SEARCH_EXAM_COMPARE_RESULT = 2532;    //鑰冭瘯姣斿缁撴灉鏌ヨ
+    public static final int NET_DVR_BULK_CHECK_FACE_PICTURE = 2533;    //鎵归噺鏍¢獙浜鸿劯鍥剧墖
+    public static final int NET_DVR_JSON_CONFIG = 2550;    //JSON閫忎紶鏁版嵁
+    public static final int NET_DVR_FACE_DATA_RECORD = 2551;    //娣诲姞浜鸿劯鏁版嵁鍒颁汉鑴稿簱
+    public static final int NET_DVR_FACE_DATA_SEARCH = 2552;    //鏌ヨ浜鸿劯搴撲腑鐨勪汉鑴告暟鎹�
+    public static final int NET_DVR_FACE_DATA_MODIFY = 2553;    //淇敼浜鸿劯搴撲腑鐨勪汉鑴告暟鎹�
+    public static final int NET_DVR_CAPTURE_DATA_SEARCH = 2554;    //鏌ヨ绂荤嚎閲囬泦鏁版嵁闆嗕腑鏁版嵁
+    public static final int NET_DVR_SET_FORM_DATA = 2555;    //闀胯繛鎺ヨ缃〃鍗曟暟鎹�
+    public static final int NET_DVR_GET_FORM_DATA = 2556;    //闀胯繛鎺ヨ幏鍙栬〃鍗曟暟鎹�
+    public static final int NET_DVR_GET_CARD = 2560;
+    public static final int NET_DVR_SET_CARD = 2561;
+    public static final int NET_DVR_GET_FACE = 2566;
+    public static final int NET_DVR_SET_FACE = 2567;
+    public static final int NET_DVR_DEL_CARD = 2562;
+    public static final int NET_DVR_GET_FINGERPRINT = 2563;
+    public static final int NET_DVR_SET_FINGERPRINT = 2564; //涓嬪彂鎸囩汗
+    public static final int NET_DVR_DEL_FINGERPRINT = 2565;  //鍒犻櫎鎸囩汗
+    public static final int NET_DVR_GET_ACS_WORK_STATUS_V50 = 2180; //鑾峰彇闂ㄧ涓绘満宸ヤ綔鐘舵��
+    public static final int NET_DVR_GET_ACS_CFG = 2159; //鑾峰彇闂ㄧ涓绘満鍙傛暟
+    public static final int NET_DVR_SET_ACS_CFG = 2160; //璁剧疆闂ㄧ涓绘満鍙傛暟
+    public static final int NET_DVR_BULK_UPLOAD_ID_BLOCKLIST = 2521;        //鎵归噺涓婁紶韬唤璇佺姝㈠悕鍗�
+
+    /*************************************鐗瑰緛璇嗗埆闂ㄧ涓�浣撴満1.0 end**************************************/
+    public static final int NET_DVR_SET_SENSOR_CFG = 1180;//璁剧疆妯℃嫙閲忓弬鏁�
+    public static final int NET_DVR_GET_SENSOR_CFG = 1181;//鑾峰彇妯℃嫙閲忓弬鏁�
+    public static final int NET_DVR_SET_ALARMIN_PARAM = 1182;//璁剧疆鎶ヨ杈撳叆鍙傛暟
+    public static final int NET_DVR_GET_ALARMIN_PARAM = 1183;
+    ;//鑾峰彇鎶ヨ杈撳叆鍙傛暟
+    public static final int NET_DVR_SET_ALARMOUT_PARAM = 1184;//璁剧疆鎶ヨ杈撳嚭鍙傛暟
+    public static final int NET_DVR_GET_ALARMOUT_PARAM = 1185;//鑾峰彇鎶ヨ杈撳嚭鍙傛暟
+    public static final int NET_DVR_SET_SIREN_PARAM = 1186;//璁剧疆璀﹀彿鍙傛暟
+    public static final int NET_DVR_GET_SIREN_PARAM = 1187;//鑾峰彇璀﹀彿鍙傛暟
+    public static final int NET_DVR_SET_ALARM_RS485CFG = 1188;//璁剧疆鎶ヨ涓绘満485鍙傛暟
+    public static final int NET_DVR_GET_ALARM_RS485CFG = 1189;//鑾峰彇鎶ヨ涓绘満485鍙傛暟
+    public static final int NET_DVR_GET_ALARMHOST_MAIN_STATUS = 1190;//鑾峰彇鎶ヨ涓绘満涓昏鐘舵��
+    public static final int NET_DVR_GET_ALARMHOST_OTHER_STATUS = 1191;//鑾峰彇鎶ヨ涓绘満鍏朵粬鐘舵��
+    public static final int NET_DVR_SET_ALARMHOST_ENABLECFG = 1192;//鑾峰彇鎶ヨ涓绘満浣胯兘鐘舵��
+    public static final int NET_DVR_GET_ALARMHOST_ENABLECFG = 1193;//璁剧疆鎶ヨ涓绘満浣胯兘鐘舵��
+    public static final int NET_DVR_SET_ALARM_CAMCFG = 1194;//璁剧疆瑙嗛缁煎悎骞冲彴鎶ヨ瑙﹀彂CAM鎿嶄綔閰嶇疆
+    public static final int NET_DVR_GET_ALARM_CAMCFG = 1195;//璁剧疆瑙嗛缁煎悎骞冲彴鎶ヨ瑙﹀彂CAM鎿嶄綔閰嶇疆
+    public static final int NET_DVR_SET_ALARMHOST_RS485_SLOT_CFG = 2055;// 璁剧疆鎶ヨ涓绘満485妲戒綅鍙傛暟
+    public static final int NET_DVR_GET_ALARMHOST_RS485_SLOT_CFG = 2056;// 鑾峰彇鎶ヨ涓绘満485妲戒綅鍙傛暟
+    public static final int NET_DVR_SET_VIDEOWALLDISPLAYMODE = 1730;//璁剧疆鐢佃澧欐嫾鎺ユā寮�
+    public static final int NET_DVR_GET_VIDEOWALLDISPLAYMODE = 1731;//鑾峰彇鐢佃澧欐嫾鎺ユā寮�
+    public static final int NET_DVR_GET_VIDEOWALLDISPLAYNO = 1732;//鑾峰彇璁惧鏄剧ず杈撳嚭鍙�
+    public static final int NET_DVR_SET_VIDEOWALLDISPLAYPOSITION = 1733;//璁剧疆鏄剧ず杈撳嚭浣嶇疆鍙傛暟
+    public static final int NET_DVR_GET_VIDEOWALLDISPLAYPOSITION = 1734;//鑾峰彇鏄剧ず杈撳嚭浣嶇疆鍙傛暟
+    public static final int NET_DVR_GET_VIDEOWALLWINDOWPOSITION = 1735;//鑾峰彇鐢佃澧欑獥鍙e弬鏁�
+    public static final int NET_DVR_SET_VIDEOWALLWINDOWPOSITION = 1736;//璁剧疆鐢佃澧欑獥鍙e弬鏁�
+    public static final int NET_DVR_VIDEOWALLWINDOW_CLOSEALL = 1737;//鐢佃澧欏叧闂墍鏈夌獥鍙�
+    public static final int NET_DVR_SET_VIRTUALLED = 1738;//铏氭嫙LED璁剧疆
+    public static final int NET_DVR_GET_VIRTUALLED = 1739;//铏氭嫙LED鑾峰彇
+    public static final int NET_DVR_GET_IMAGE_CUT_MODE = 1740;//鑾峰彇鍥惧儚鍒囧壊妯″紡
+    public static final int NET_DVR_SET_IMAGE_CUT_MODE = 1741;//璁剧疆鍥惧儚鍒囧壊妯″紡
+    public static final int NET_DVR_GET_USING_SERIALPORT = 1742;//鑾峰彇褰撳墠浣跨敤涓插彛
+    public static final int NET_DVR_SET_USING_SERIALPORT = 1743;//璁剧疆褰撳墠浣跨敤涓插彛
+    public static final int NET_DVR_SCENE_CONTROL = 1744;//鍦烘櫙鎺у埗
+    public static final int NET_DVR_GET_CURRENT_SCENE = 1745;//鑾峰彇褰撳墠鍦烘櫙鍙�
+    public static final int NET_DVR_GET_VW_SCENE_PARAM = 1746;//鑾峰彇鐢佃澧欏満鏅ā寮忓弬鏁�
+    public static final int NET_DVR_SET_VW_SCENE_PARAM = 1747;//璁剧疆鐢佃澧欏満鏅ā寮忓弬鏁�
+    public static final int NET_DVR_DISPLAY_CHANNO_CONTROL = 1748;//鐢佃澧欐樉绀虹紪鍙锋帶鍒�
+    public static final int NET_DVR_GET_WIN_DEC_INFO = 1749;//鑾峰彇绐楀彛瑙g爜淇℃伅锛堟壒閲忥級
+    public static final int NET_DVR_RESET_VIDEOWALLDISPLAYPOSITION = 1750;  //瑙i櫎鐢佃澧欒緭鍑烘帴鍙g粦瀹�
+    public static final int NET_DVR_SET_VW_AUDIO_CFG = 1752;  //璁剧疆闊抽鍒囨崲鍙傛暟
+    public static final int NET_DVR_GET_VW_AUDIO_CFG = 1753;   //鑾峰彇闊抽鍒囨崲鍙傛暟
+    public static final int NET_DVR_GET_GBT28181_DECCHANINFO_CFG = 1754;   //鑾峰彇GBT28181鍗忚鎺ュ叆璁惧鐨勮В鐮侀�氶亾淇℃伅
+    public static final int NET_DVR_SET_GBT28181_DECCHANINFO_CFG = 1755;  //璁剧疆GBT28181鍗忚鎺ュ叆璁惧鐨勮В鐮侀�氶亾淇℃伅
+    public static final int NET_DVR_SET_MAINBOARD_SERIAL = 1756; //璁剧疆涓绘帶鏉夸覆鍙e弬鏁�
+    public static final int NET_DVR_GET_MAINBOARD_SERIAL = 1757;//鑾峰彇涓绘帶鏉夸覆鍙e弬鏁�
+    public static final int NET_DVR_GET_SUBBOARD_INFO = 1758; //鑾峰彇瀛愭澘淇℃伅
+    public static final int NET_DVR_GET_SUBBOARD_EXCEPTION = 1759; //鑾峰彇寮傚父瀛愭澘寮傚父淇℃伅
+    /*****************************鐢佃澧� start****************************/
+    public static final int NET_DVR_MATRIX_WALL_SET = 9001;  //璁剧疆鐢佃澧欎腑灞忓箷鍙傛暟
+    public static final int NET_DVR_MATRIX_WALL_GET = 9002; //鑾峰彇鐢佃澧欎腑灞忓箷鍙傛暟
+    public static final int NET_DVR_WALLWIN_GET = 9003;  //鐢佃澧欎腑鑾峰彇绐楀彛鍙傛暟
+    public static final int NET_DVR_WALLWIN_SET = 9004;  //鐢佃澧欎腑璁剧疆绐楀彛鍙傛暟
+    public static final int NET_DVR_WALLWINPARAM_SET = 9005;
+    ;  //璁剧疆鐢佃澧欑獥鍙g浉鍏冲弬鏁�
+    public static final int NET_DVR_WALLWINPARAM_GET = 9006; //鑾峰彇鐢佃澧欑獥鍙g浉鍏冲弬鏁�
+    public static final int NET_DVR_WALLSCENEPARAM_GET = 9007;  //璁剧疆鍦烘櫙妯″紡鍙傛暟
+    public static final int NET_DVR_WALLSCENEPARAM_SET = 9008;  //鑾峰彇鍦烘櫙妯″紡鍙傛暟
+    public static final int NET_DVR_MATRIX_GETWINSTATUS = 9009;  //鑾峰彇绐楀彛瑙g爜鐘舵��
+    public static final int NET_DVR_GET_WINASSOCIATEDDEVINFO = 9010;  //鐢佃澧欎腑鑾峰彇瀵瑰簲璧勬簮淇℃伅
+    public static final int NET_DVR_WALLOUTPUT_GET = 9011;  //鐢佃澧欎腑鑾峰彇鏄剧ず杈撳嚭鍙傛暟
+    public static final int NET_DVR_WALLOUTPUT_SET = 9012;  //鐢佃澧欎腑璁剧疆鏄剧ず杈撳嚭鍙傛暟
+    public static final int NET_DVR_GET_UNITEDMATRIXSYSTEM = 9013;  //鐢佃澧欎腑鑾峰彇瀵瑰簲璧勬簮
+    public static final int NET_DVR_GET_WALL_CFG = 9014;  //鑾峰彇鐢佃澧欏叏灞�鍙傛暟
+    public static final int NET_DVR_SET_WALL_CFG = 9015;  //璁剧疆鐢佃澧欏叏灞�鍙傛暟
+    public static final int NET_DVR_CLOSE_ALL_WND = 9016;  //鍏抽棴鎵�鏈夌獥鍙�
+    public static final int NET_DVR_SWITCH_WIN_TOP = 9017;  //绐楀彛缃《
+    public static final int NET_DVR_SWITCH_WIN_BOTTOM = 9018;  //绐楀彛缃簳
+
+    public static final int NET_DVR_CLOSE_ALL_WND_V41 = 9019;  //鐢佃澧欏叧闂墍鏈夌獥鍙41锛堟湁澶氫釜鐢佃澧欙級
+    public static final int NET_DVR_GET_WALL_WINDOW_V41 = 9020;  //鑾峰彇鐢佃澧欎腑鐨勭獥鍙41
+    public static final int NET_DVR_SET_WALL_WINDOW_V41 = 9021;  //璁剧疆鐢佃澧欎腑鐨勭獥鍙41
+    public static final int NET_DVR_GET_CURRENT_SCENE_V41 = 9022;  //鑾峰彇褰撳墠鐢佃澧欎腑姝e湪浣跨敤鐨勫満鏅痸41
+    public static final int NET_DVR_GET_WALL_SCENE_PARAM_V41 = 9023;  //鑾峰彇褰撳墠鐢佃澧欎腑姝e湪浣跨敤鐨勫満鏅痸41
+    public static final int NET_DVR_SET_WALL_SCENE_PARAM_V41 = 9024;  //璁剧疆褰撳墠鐢佃澧欎腑姝e湪浣跨敤鐨勫満鏅痸41
+    public static final int NET_DVR_GET_MATRIX_LOGO_CFG = 9025;  //鑾峰彇logo鍙傛暟
+    public static final int NET_DVR_SET_MATRIX_LOGO_CFG = 9026;  //璁剧疆logo鍙傛暟
+    public static final int NET_DVR_GET_WIN_LOGO_CFG = 9027;  //鑾峰彇绐楀彛logo鍙傛暟
+    public static final int NET_DVR_SET_WIN_LOGO_CFG = 9028;  //璁剧疆绐楀彛logo鍙傛暟
+    public static final int NET_DVR_DELETE_LOGO = 9029;  //鍒犻櫎logo
+    public static final int NET_DVR_SET_DISPLAY_EFFECT_CFG = 9030;  //璁剧疆鏄剧ず杈撳嚭鏁堟灉鍙傛暟v41
+    public static final int NET_DVR_GET_DISPLAY_EFFECT_CFG = 9031;  //鑾峰彇鏄剧ず杈撳嚭鏁堟灉鍙傛暟v41
+    public static final int NET_DVR_DEC_PLAY_REMOTE_FILE = 9032;  //瑙g爜鎾斁杩滅▼鏂囦欢
+    public static final int NET_DVR_DEC_PLAY_REMOTE_FILE_V50 = 9314;  //瑙g爜鎾斁杩滅▼鏂囦欢V50
+    public static final int NET_DVR_GET_WIN_ZOOM_STATUS = 9033;  //鑾峰彇绐楀彛鐢靛瓙鏀惧ぇ鐘舵��
+    public static final int NET_DVR_GET_ALL_MATRIX_LOGOCFG = 9034;  //鑾峰彇鎵�鏈塴ogo鍙傛暟
+
+/*****************************鐢佃澧� end******************************/
+
+    /*******************
+     * 鏌ユ壘鏂囦欢鍜屾棩蹇楀嚱鏁拌繑鍥炲��
+     *************************/
+    public static final int NET_DVR_FILE_SUCCESS = 1000;    //鑾峰緱鏂囦欢淇℃伅
+    public static final int NET_DVR_FILE_NOFIND = 1001;    //娌℃湁鏂囦欢
+    public static final int NET_DVR_ISFINDING = 1002;//姝e湪鏌ユ壘鏂囦欢
+    public static final int NET_DVR_NOMOREFILE = 1003;//鏌ユ壘鏂囦欢鏃舵病鏈夋洿澶氱殑鏂囦欢
+    public static final int NET_DVR_FILE_EXCEPTION = 1004;//鏌ユ壘鏂囦欢鏃跺紓甯�
+    /*********************
+     * 鍥炶皟鍑芥暟绫诲瀷 begin
+     ************************/
+    public static final int COMM_ALARM = 0x1100;    //8000鎶ヨ淇℃伅涓诲姩涓婁紶
+    public static final int COMM_TRADEINFO = 0x1500;  //ATMDVR涓诲姩涓婁紶浜ゆ槗淇℃伅
+    public static final int COMM_ALARM_V30 = 0x4000;//9000鎶ヨ淇℃伅涓诲姩涓婁紶
+    public static final int COMM_ALARM_V40 = 0x4007;
+    public static final int COMM_ALARM_RULE = 0x1102;//寮傚父琛屼负妫�娴嬩俊鎭笂浼�
+    public static final int COMM_ALARM_PDC = 0x1103;//瀹㈡祦閲忕粺璁℃姤璀︿笂浼�
+    public static final int COMM_UPLOAD_PLATE_RESULT = 0x2800;//浜ら�氭姄鎷嶇粨鏋滀笂浼�
+    public static final int COMM_ITS_PLATE_RESULT = 0x3050;//浜ら�氭姄鎷嶇殑缁堢鍥剧墖涓婁紶
+    public static final int COMM_IPCCFG = 0x4001;//9000璁惧IPC鎺ュ叆閰嶇疆鏀瑰彉鎶ヨ淇℃伅涓诲姩涓婁紶
+    public static final int COMM_ITS_PARK_VEHICLE = 0x3056;//鍋滆溅鍦烘暟鎹笂浼�
+    public static final int COMM_VEHICLE_CONTROL_ALARM = 0x3059;//杞﹁締鎶ヨ涓婁紶
+    public static final int COMM_ALARM_TFS = 0x1113; //浜ら�氬彇璇佹姤璀︿俊鎭�
+    public static final int COMM_ALARM_TPS_V41 = 0x1114; //浜ら�氫簨浠舵姤璀︿俊鎭墿灞�
+    public static final int COMM_ALARM_AID_V41 = 0x1115; //浜ら�氫簨浠舵姤璀︿俊鎭墿灞�
+    public static final int COMM_UPLOAD_FACESNAP_RESULT = 0x1112;  //鐗瑰緛璇嗗埆缁撴灉涓婁紶
+    public static final int COMM_SNAP_MATCH_ALARM = 0x2902;  //浜鸿劯姣斿缁撴灉涓婁紶
+    public static final int COMM_ALARM_ACS = 0x5002; //闂ㄧ涓绘満鎶ヨ淇℃伅
+    public static final int COMM_ID_INFO_ALARM = 0x5200; //闂ㄧ韬唤璇佸埛鍗′俊鎭�
+    public static final int COMM_VCA_ALARM = 0x4993; //鏅鸿兘妫�娴嬮�氱敤鎶ヨ
+    public static final int COMM_ISAPI_ALARM = 0x6009;//ISAPI鍗忚鎶ヨ淇℃伅
+    public static final int COMM_ALARM_TPS_STATISTICS = 0x3082; //TPS缁熻杩囪溅鏁版嵁涓婁紶
+    public static final int COMM_ALARM_TPS_REAL_TIME = 0x3081; //TPS瀹炴椂杩囪溅鏁版嵁涓婁紶
+    public static final int COMM_ALARMHOST_CID_ALARM = 0x1127;  //鎶ュ憡鎶ヨ涓婁紶
+    public static final int COMM_SENSOR_VALUE_UPLOAD = 0x1120;  //妯℃嫙閲忔暟鎹疄鏃朵笂浼�
+    public static final int COMM_SENSOR_ALARM = 0x1121;  //妯℃嫙閲忔姤璀︿笂浼�
+    public static final int COMM_SWITCH_ALARM = 0x1122;     //寮�鍏抽噺鎶ヨ
+    public static final int COMM_ALARMHOST_EXCEPTION = 0x1123;  //鎶ヨ涓绘満鏁呴殰鎶ヨ
+    public static final int COMM_ALARMHOST_OPERATEEVENT_ALARM = 0x1124;  //鎿嶄綔浜嬩欢鎶ヨ涓婁紶
+    public static final int COMM_ALARMHOST_SAFETYCABINSTATE = 0x1125;    //闃叉姢鑸辩姸鎬�
+    public static final int COMM_ALARMHOST_ALARMOUTSTATUS = 0x1126;     //鎶ヨ杈撳嚭鍙�/璀﹀彿鐘舵��
+    public static final int COMM_ALARMHOST_DATA_UPLOAD = 0x1129;     //鎶ヨ鏁版嵁涓婁紶
+
+    public static final int COMM_UPLOAD_VIDEO_INTERCOM_EVENT = 0x1132;  //鍙瀵硅浜嬩欢璁板綍涓婁紶
+    public static final int COMM_ALARM_VIDEO_INTERCOM = 0x1133;  //鍙瀵硅鎶ヨ涓婁紶
+    public static final int COMM_THERMOMETRY_ALARM = 0x5212;  //娓╁害鎶ヨ涓婁紶
+    public static final int COMM_FIREDETECTION_ALARM = 0x4991;  //鐏偣鎶ヨ涓婁紶
+    public static final int COMM_THERMOMETRY_DIFF_ALARM = 0x5111; //娓╁樊鎶ヨ
+    public static final int COMM_ALARM_SHIPSDETECTION = 0x4521; //鑸瑰彧妫�娴嬫姤璀�
+    public static final int COMM_UPLOAD_AIOP_VIDEO = 0x4021; //璁惧鏀寔AI寮�鏀惧钩鍙版帴鍏ワ紝涓婁紶瑙嗛妫�娴嬫暟鎹�
+    public static final int COMM_UPLOAD_AIOP_PICTURE = 0x4022; //璁惧鏀寔AI寮�鏀惧钩鍙版帴鍏ワ紝涓婁紶鍥剧墖妫�娴嬫暟鎹�
+    public static final int COMM_UPLOAD_AIOP_POLLING_SNAP = 0x4023; //璁惧鏀寔AI寮�鏀惧钩鍙版帴鍏ワ紝涓婁紶杞贰鎶撳浘鍥剧墖妫�娴嬫暟鎹� 瀵瑰簲鐨勭粨鏋勪綋(NET_AIOP_POLLING_PICTURE_HEAD)
+    public static final int COMM_UPLOAD_AIOP_POLLING_VIDEO = 0x4024; //璁惧鏀寔AI寮�鏀惧钩鍙版帴鍏ワ紝涓婁紶杞贰瑙嗛妫�娴嬫暟鎹� 瀵瑰簲鐨勭粨鏋勪綋(NET_AIOP_POLLING_VIDEO_HEAD)
+    public static final int COMM_IPC_AUXALARM_RESULT = 0x2820; //PIR鎶ヨ銆佹棤绾挎姤璀︺�佸懠鏁戞姤璀︿俊鎭�
+    /*************
+     * 鎿嶄綔寮傚父绫诲瀷(娑堟伅鏂瑰紡, 鍥炶皟鏂瑰紡(淇濈暀))
+     ****************/
+    public static final int EXCEPTION_EXCHANGE = 0x8000;//鐢ㄦ埛浜や簰鏃跺紓甯�
+    public static final int EXCEPTION_AUDIOEXCHANGE = 0x8001;//璇煶瀵硅寮傚父
+    public static final int EXCEPTION_ALARM = 0x8002;//鎶ヨ寮傚父
+    public static final int EXCEPTION_PREVIEW = 0x8003;//缃戠粶棰勮寮傚父
+    public static final int EXCEPTION_SERIAL = 0x8004;//閫忔槑閫氶亾寮傚父
+    public static final int EXCEPTION_RECONNECT = 0x8005;    //棰勮鏃堕噸杩�
+    public static final int EXCEPTION_ALARMRECONNECT = 0x8006;//鎶ヨ鏃堕噸杩�
+    public static final int EXCEPTION_SERIALRECONNECT = 0x8007;//閫忔槑閫氶亾閲嶈繛
+    public static final int EXCEPTION_PLAYBACK = 0x8010;//鍥炴斁寮傚父
+    public static final int EXCEPTION_DISKFMT = 0x8011;//纭洏鏍煎紡鍖�
+    /********************
+     * 棰勮鍥炶皟鍑芥暟
+     *********************/
+    public static final int NET_DVR_SYSHEAD = 1;//绯荤粺澶存暟鎹�
+    public static final int NET_DVR_STREAMDATA = 2;//瑙嗛娴佹暟鎹紙鍖呮嫭澶嶅悎娴佸拰闊宠棰戝垎寮�鐨勮棰戞祦鏁版嵁锛�
+    public static final int NET_DVR_AUDIOSTREAMDATA = 3;//闊抽娴佹暟鎹�
+    public static final int NET_DVR_STD_VIDEODATA = 4;//鏍囧噯瑙嗛娴佹暟鎹�
+    public static final int NET_DVR_STD_AUDIODATA = 5;//鏍囧噯闊抽娴佹暟鎹�
+    //鍥炶皟棰勮涓殑鐘舵�佸拰娑堟伅
+    public static final int NET_DVR_REALPLAYEXCEPTION = 111;//棰勮寮傚父
+    public static final int NET_DVR_REALPLAYNETCLOSE = 112;//棰勮鏃惰繛鎺ユ柇寮�
+    public static final int NET_DVR_REALPLAY5SNODATA = 113;//棰勮5s娌℃湁鏀跺埌鏁版嵁
+    public static final int NET_DVR_REALPLAYRECONNECT = 114;//棰勮閲嶈繛
+    /********************
+     * 鍥炴斁鍥炶皟鍑芥暟
+     *********************/
+    public static final int NET_DVR_PLAYBACKOVER = 101;//鍥炴斁鏁版嵁鎾斁瀹屾瘯
+    public static final int NET_DVR_PLAYBACKEXCEPTION = 102;//鍥炴斁寮傚父
+    public static final int NET_DVR_PLAYBACKNETCLOSE = 103;//鍥炴斁鏃跺�欒繛鎺ユ柇寮�
+    public static final int NET_DVR_PLAYBACK5SNODATA = 104;    //鍥炴斁5s娌℃湁鏀跺埌鏁版嵁
+    /*********************
+     * 鍥炶皟鍑芥暟绫诲瀷 end
+     ************************/
+//璁惧鍨嬪彿(DVR绫诲瀷)
+    /* 璁惧绫诲瀷 */
+    public static final int DVR = 1;            /*瀵瑰皻鏈畾涔夌殑dvr绫诲瀷杩斿洖NETRET_DVR*/
+    public static final int ATMDVR = 2;        /*atm dvr*/
+    public static final int DVS = 3;            /*DVS*/
+    public static final int DEC = 4;            /* 6001D */
+    public static final int ENC_DEC = 5;            /* 6001F */
+    public static final int DVR_HC = 6;            /*8000HC*/
+    public static final int DVR_HT = 7;            /*8000HT*/
+    public static final int DVR_HF = 8;            /*8000HF*/
+    public static final int DVR_HS = 9;            /* 8000HS DVR(no audio) */
+    public static final int DVR_HTS = 10;         /* 8016HTS DVR(no audio) */
+    public static final int DVR_HB = 11;         /* HB DVR(SATA HD) */
+    public static final int DVR_HCS = 12;         /* 8000HCS DVR */
+    public static final int DVS_A = 13;         /* 甯TA纭洏鐨凞VS */
+    public static final int DVR_HC_S = 14;         /* 8000HC-S */
+    public static final int DVR_HT_S = 15;         /* 8000HT-S */
+    public static final int DVR_HF_S = 16;         /* 8000HF-S */
+    public static final int DVR_HS_S = 17;         /* 8000HS-S */
+    public static final int ATMDVR_S = 18;         /* ATM-S */
+    public static final int LOWCOST_DVR = 19;            /*7000H绯诲垪*/
+    public static final int DEC_MAT = 20;         /*澶氳矾瑙g爜鍣�*/
+    public static final int DVR_MOBILE = 21;            /* mobile DVR */
+    public static final int DVR_HD_S = 22;        /* 8000HD-S */
+    public static final int DVR_HD_SL = 23;            /* 8000HD-SL */
+    public static final int DVR_HC_SL = 24;            /* 8000HC-SL */
+    public static final int DVR_HS_ST = 25;            /* 8000HS_ST */
+    public static final int DVS_HW = 26;         /* 6000HW */
+    public static final int IPCAM = 30;            /*IP 鎽勫儚鏈�*/
+    public static final int MEGA_IPCAM = 31;            /*X52MF绯诲垪,752MF,852MF*/
+    public static final int IPCAM_X62MF = 32;            /*X62MF绯诲垪鍙帴鍏�9000璁惧,762MF,862MF*/
+    public static final int IPDOME = 40;            /*IP鏍囨竻蹇悆*/
+    public static final int MEGA_IPDOME = 41;     /*IP楂樻竻蹇悆*/
+    public static final int IPMOD = 50;            /*IP 妯″潡*/
+    public static final int DS71XX_H = 71;            /* DS71XXH_S */
+    public static final int DS72XX_H_S = 72;            /* DS72XXH_S */
+    public static final int DS73XX_H_S = 73;            /* DS73XXH_S */
+    public static final int DS81XX_HS_S = 81;            /* DS81XX_HS_S */
+    public static final int DS81XX_HL_S = 82;            /* DS81XX_HL_S */
+    public static final int DS81XX_HC_S = 83;            /* DS81XX_HC_S */
+    public static final int DS81XX_HD_S = 84;            /* DS81XX_HD_S */
+    public static final int DS81XX_HE_S = 85;            /* DS81XX_HE_S */
+    public static final int DS81XX_HF_S = 86;            /* DS81XX_HF_S */
+    public static final int DS81XX_AH_S = 87;            /* DS81XX_AH_S */
+    public static final int DS81XX_AHF_S = 88;            /* DS81XX_AHF_S */
+    public static final int DS90XX_HF_S = 90;       /*DS90XX_HF_S*/
+    public static final int DS91XX_HF_S = 91;             /*DS91XX_HF_S*/
+    public static final int DS91XX_HD_S = 92;            /*91XXHD-S(MD)*/
+
+    /* 鎿嶄綔 */
+//涓荤被鍨�
+    public static final int MAJOR_OPERATION = 0x3;
+    //娆$被鍨�
+    public static final int MINOR_START_DVR = 0x41; /* 寮�鏈� */
+    public static final int MINOR_STOP_DVR = 0x42;/* 鍏虫満 */
+    public static final int MINOR_STOP_ABNORMAL = 0x43;/* 寮傚父鍏虫満 */
+    public static final int MINOR_REBOOT_DVR = 0x44;   /*鏈湴閲嶅惎璁惧*/
+    public static final int MINOR_LOCAL_LOGIN = 0x50; /* 鏈湴鐧婚檰 */
+    public static final int MINOR_LOCAL_LOGOUT = 0x51; /* 鏈湴娉ㄩ攢鐧婚檰 */
+    public static final int MINOR_LOCAL_CFG_PARM = 0x52; /* 鏈湴閰嶇疆鍙傛暟 */
+    public static final int MINOR_LOCAL_PLAYBYFILE = 0x53; /* 鏈湴鎸夋枃浠跺洖鏀炬垨涓嬭浇 */
+    public static final int MINOR_LOCAL_PLAYBYTIME = 0x54; /* 鏈湴鎸夋椂闂村洖鏀炬垨涓嬭浇*/
+    public static final int MINOR_LOCAL_START_REC = 0x55; /* 鏈湴寮�濮嬪綍鍍� */
+    public static final int MINOR_LOCAL_STOP_REC = 0x56; /* 鏈湴鍋滄褰曞儚 */
+    public static final int MINOR_LOCAL_PTZCTRL = 0x57; /* 鏈湴浜戝彴鎺у埗 */
+    public static final int MINOR_LOCAL_PREVIEW = 0x58;/* 鏈湴棰勮 (淇濈暀涓嶄娇鐢�)*/
+    public static final int MINOR_LOCAL_MODIFY_TIME = 0x59;/* 鏈湴淇敼鏃堕棿(淇濈暀涓嶄娇鐢�) */
+    public static final int MINOR_LOCAL_UPGRADE = 0x5a;/* 鏈湴鍗囩骇 */
+    public static final int MINOR_LOCAL_RECFILE_OUTPUT = 0x5b;   /* 鏈湴澶囦唤褰曡薄鏂囦欢 */
+    public static final int MINOR_LOCAL_FORMAT_HDD = 0x5c;  /* 鏈湴鍒濆鍖栫‖鐩� */
+    public static final int MINOR_LOCAL_CFGFILE_OUTPUT = 0x5d;  /* 瀵煎嚭鏈湴閰嶇疆鏂囦欢 */
+    public static final int MINOR_LOCAL_CFGFILE_INPUT = 0x5e;  /* 瀵煎叆鏈湴閰嶇疆鏂囦欢 */
+    public static final int MINOR_LOCAL_COPYFILE = 0x5f;  /* 鏈湴澶囦唤鏂囦欢 */
+    public static final int MINOR_LOCAL_LOCKFILE = 0x60;  /* 鏈湴閿佸畾褰曞儚鏂囦欢 */
+    public static final int MINOR_LOCAL_UNLOCKFILE = 0x61;   /* 鏈湴瑙i攣褰曞儚鏂囦欢 */
+    public static final int MINOR_LOCAL_DVR_ALARM = 0x62;  /* 鏈湴鎵嬪姩娓呴櫎鍜岃Е鍙戞姤璀�*/
+    public static final int MINOR_IPC_ADD = 0x63;  /* 鏈湴娣诲姞IPC */
+    public static final int MINOR_IPC_DEL = 0x64;  /* 鏈湴鍒犻櫎IPC */
+    public static final int MINOR_IPC_SET = 0x65;  /* 鏈湴璁剧疆IPC */
+    public static final int MINOR_LOCAL_START_BACKUP = 0x66;    /* 鏈湴寮�濮嬪浠� */
+    public static final int MINOR_LOCAL_STOP_BACKUP = 0x67;/* 鏈湴鍋滄澶囦唤*/
+    public static final int MINOR_LOCAL_COPYFILE_START_TIME = 0x68;/* 鏈湴澶囦唤寮�濮嬫椂闂�*/
+    public static final int MINOR_LOCAL_COPYFILE_END_TIME = 0x69;    /* 鏈湴澶囦唤缁撴潫鏃堕棿*/
+    public static final int MINOR_REMOTE_LOGIN = 0x70;/* 杩滅▼鐧诲綍 */
+    public static final int MINOR_REMOTE_LOGOUT = 0x71;/* 杩滅▼娉ㄩ攢鐧婚檰 */
+    public static final int MINOR_REMOTE_START_REC = 0x72;/* 杩滅▼寮�濮嬪綍鍍� */
+    public static final int MINOR_REMOTE_STOP_REC = 0x73;/* 杩滅▼鍋滄褰曞儚 */
+    public static final int MINOR_START_TRANS_CHAN = 0x74;/* 寮�濮嬮�忔槑浼犺緭 */
+    public static final int MINOR_STOP_TRANS_CHAN = 0x75; /* 鍋滄閫忔槑浼犺緭 */
+    public static final int MINOR_REMOTE_GET_PARM = 0x76;/* 杩滅▼鑾峰彇鍙傛暟 */
+    public static final int MINOR_REMOTE_CFG_PARM = 0x77;/* 杩滅▼閰嶇疆鍙傛暟 */
+    public static final int MINOR_REMOTE_GET_STATUS = 0x78;/* 杩滅▼鑾峰彇鐘舵�� */
+    public static final int MINOR_REMOTE_ARM = 0x79; /* 杩滅▼甯冮槻 */
+    public static final int MINOR_REMOTE_DISARM = 0x7a;/* 杩滅▼鎾ら槻 */
+    public static final int MINOR_REMOTE_REBOOT = 0x7b; /* 杩滅▼閲嶅惎 */
+    public static final int MINOR_START_VT = 0x7c;/* 寮�濮嬭闊冲璁� */
+    public static final int MINOR_STOP_VT = 0x7d;/* 鍋滄璇煶瀵硅 */
+    public static final int MINOR_REMOTE_UPGRADE = 0x7e; /* 杩滅▼鍗囩骇 */
+    public static final int MINOR_REMOTE_PLAYBYFILE = 0x7f; /* 杩滅▼鎸夋枃浠跺洖鏀� */
+    public static final int MINOR_REMOTE_PLAYBYTIME = 0x80; /* 杩滅▼鎸夋椂闂村洖鏀� */
+    public static final int MINOR_REMOTE_PTZCTRL = 0x81; /* 杩滅▼浜戝彴鎺у埗 */
+    public static final int MINOR_REMOTE_FORMAT_HDD = 0x82;  /* 杩滅▼鏍煎紡鍖栫‖鐩� */
+    public static final int MINOR_REMOTE_STOP = 0x83;  /* 杩滅▼鍏虫満 */
+    public static final int MINOR_REMOTE_LOCKFILE = 0x84;/* 杩滅▼閿佸畾鏂囦欢 */
+    public static final int MINOR_REMOTE_UNLOCKFILE = 0x85;/* 杩滅▼瑙i攣鏂囦欢 */
+    public static final int MINOR_REMOTE_CFGFILE_OUTPUT = 0x86;   /* 杩滅▼瀵煎嚭閰嶇疆鏂囦欢 */
+    public static final int MINOR_REMOTE_CFGFILE_INTPUT = 0x87;   /* 杩滅▼瀵煎叆閰嶇疆鏂囦欢 */
+    public static final int MINOR_REMOTE_RECFILE_OUTPUT = 0x88;   /* 杩滅▼瀵煎嚭褰曡薄鏂囦欢 */
+    public static final int MINOR_REMOTE_DVR_ALARM = 0x89;    /* 杩滅▼鎵嬪姩娓呴櫎鍜岃Е鍙戞姤璀�*/
+    public static final int MINOR_REMOTE_IPC_ADD = 0x8a;  /* 杩滅▼娣诲姞IPC */
+    public static final int MINOR_REMOTE_IPC_DEL = 0x8b;/* 杩滅▼鍒犻櫎IPC */
+    public static final int MINOR_REMOTE_IPC_SET = 0x8c; /* 杩滅▼璁剧疆IPC */
+    public static final int MINOR_REBOOT_VCA_LIB = 0x8d;        /*閲嶅惎鏅鸿兘搴�*/
+
+    /*鏃ュ織闄勫姞淇℃伅*/
+//涓荤被鍨�
+    public static final int MAJOR_INFORMATION = 0x4;   /*闄勫姞淇℃伅*/
+    //娆$被鍨�
+    public static final int MINOR_HDD_INFO = 0xa1;/*纭洏淇℃伅*/
+    public static final int MINOR_SMART_INFO = 0xa2;   /*SMART淇℃伅*/
+    public static final int MINOR_REC_START = 0xa3;   /*寮�濮嬪綍鍍�*/
+    public static final int MINOR_REC_STOP = 0xa4;/*鍋滄褰曞儚*/
+    public static final int MINOR_REC_OVERDUE = 0xa5;/*杩囨湡褰曞儚鍒犻櫎*/
+    public static final int MINOR_LINK_START = 0xa6; // ivms澶氳矾瑙g爜鍣ㄧ瓑杩炴帴鍓嶇璁惧
+    public static final int MINOR_LINK_STOP = 0xa7;// ivms澶氳矾瑙g爜鍣ㄧ瓑鏂紑鍓嶇璁惧銆�
+    //褰撴棩蹇楃殑涓荤被鍨嬩负MAJOR_OPERATION=03锛屾绫诲瀷涓篗INOR_LOCAL_CFG_PARM=0x52鎴栬�匨INOR_REMOTE_GET_PARM=0x76鎴栬�匨INOR_REMOTE_CFG_PARM=0x77鏃讹紝dwParaType:鍙傛暟绫诲瀷鏈夋晥锛屽叾鍚箟濡備笅锛�
+    public static final int PARA_VIDEOOUT = 0x1;
+    public static final int PARA_IMAGE = 0x2;
+    public static final int PARA_ENCODE = 0x4;
+    public static final int PARA_NETWORK = 0x8;
+    public static final int PARA_ALARM = 0x10;
+    public static final int PARA_EXCEPTION = 0x20;
+    public static final int PARA_DECODER = 0x40; /*瑙g爜鍣�*/
+    public static final int PARA_RS232 = 0x80;
+    public static final int PARA_PREVIEW = 0x100;
+    public static final int PARA_SECURITY = 0x200;
+    public static final int PARA_DATETIME = 0x400;
+    public static final int PARA_FRAMETYPE = 0x800;  /*甯ф牸寮�*/
+    public static final int PARA_VCA_RULE = 0x1000;    //琛屼负瑙勫垯
+    //SDK_V222
+//鏅鸿兘璁惧绫诲瀷
+    public static final int DS6001_HF_B = 60;//寮傚父琛屼负妫�娴嬶細DS6001-HF/B
+    public static final int DS6001_HF_P = 61;//杞︾墝璇嗗埆锛欴S6001-HF/P
+    public static final int DS6002_HF_B = 62;//鍙屾満锛欴S6002-HF/B
+    public static final int DS6101_HF_B = 63;//寮傚父琛屼负妫�娴嬶細DS6101-HF/B
+    public static final int IVMS_2000 = 64;//鏅鸿兘鍒嗘瀽浠�
+    public static final int DS9000_IVS = 65;//9000绯诲垪鏅鸿兘DVR
+    public static final int DS8004_AHL_A = 66;//鏅鸿兘ATM, DS8004AHL-S/A
+    public static final int DS6101_HF_P = 67;//杞︾墝璇嗗埆锛欴S6101-HF/P
+    //鑳藉姏鑾峰彇鍛戒护
+    public static final int DEVICE_SOFTHARDWARE_ABILITY = 0x001;//璁惧杞‖浠惰兘鍔�
+    public static final int DEVICE_JPEG_CAP_ABILITY = 0x00f;//璁惧JPEG鎶撳浘鑳藉姏
+    public static final int VCA_DEV_ABILITY = 0x100;//璁惧鏅鸿兘鍒嗘瀽鐨勬�昏兘鍔�
+    public static final int VCA_CHAN_ABILITY = 0x110;//寮傚父琛屼负妫�娴嬭兘鍔�
+    public static final int DEVICE_ABILITY_INFO = 0x011; //璁惧閫氱敤鑳藉姏绫诲瀷锛屽叿浣撹兘鍔涙牴鎹彂閫佺殑鑳藉姏鑺傜偣鏉ュ尯鍒�
+    public static final int NET_DVR_CHECK_USER_STATUS = 20005; //妫�娴嬭澶囨槸鍚﹀湪绾�
+    /**********************璁惧绫诲瀷 end***********************/
+
+    /*************************************************
+     * 鍙傛暟閰嶇疆缁撴瀯銆佸弬鏁�(鍏朵腑_V30涓�9000鏂板)
+     **************************************************/
+
+    /////////////////////////////////////////////////////////////////////////
+    //鏍℃椂缁撴瀯鍙傛暟
+    public static class NET_DVR_TIME extends Structure {//鏍℃椂缁撴瀯鍙傛暟
+        public int dwYear;        //骞�
+        public int dwMonth;        //鏈�
+        public int dwDay;        //鏃�
+        public int dwHour;        //鏃�
+        public int dwMinute;        //鍒�
+        public int dwSecond;        //绉�
+
+        public String toString() {
+            return "NET_DVR_TIME.dwYear: " + dwYear + "\n" + "NET_DVR_TIME.dwMonth: \n" + dwMonth + "\n" + "NET_DVR_TIME.dwDay: \n" + dwDay + "\n" + "NET_DVR_TIME.dwHour: \n" + dwHour + "\n" + "NET_DVR_TIME.dwMinute: \n" + dwMinute + "\n" + "NET_DVR_TIME.dwSecond: \n" + dwSecond;
+        }
+
+        //鐢ㄤ簬鍒楄〃涓樉绀�
+        public String toStringTime() {
+            return String.format("%02d/%02d/%02d%02d:%02d:%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+        }
+
+        //瀛樺偍鏂囦欢鍚嶄娇鐢�
+        public String toStringTitle() {
+            return String.format("Time%02d%02d%02d%02d%02d%02d", dwYear, dwMonth, dwDay, dwHour, dwMinute, dwSecond);
+        }
+    }
+
+    public static class NET_DVR_SCHEDTIME extends Structure {
+        public byte byStartHour;    //寮�濮嬫椂闂�
+        public byte byStartMin;
+        public byte byStopHour;            //缁撴潫鏃堕棿
+        public byte byStopMin;
+
+    }
+
+    public static class NET_DVR_HANDLEEXCEPTION_V30 extends Structure {
+        public int dwHandleType;    /*澶勭悊鏂瑰紡,澶勭悊鏂瑰紡鐨�"鎴�"缁撴灉*//*0x00: 鏃犲搷搴�*//*0x01: 甯冮槻鍣ㄤ笂璀﹀憡*//*0x02: 澹伴煶璀﹀憡*//*0x04: 涓婁紶涓績*/    /*0x08: 瑙﹀彂鎶ヨ杈撳嚭*//*0x20: 瑙﹀彂鎶撳浘*/  //(JPEG瀹氬埗)
+        public byte[] byRelAlarmOut = new byte[MAX_ALARMOUT_V30];  //鎶ヨ瑙﹀彂鐨勮緭鍑洪�氶亾,鎶ヨ瑙﹀彂鐨勮緭鍑�,涓�1琛ㄧず瑙﹀彂璇ヨ緭鍑�
+
+    }
+
+    //鎶ヨ鍜屽紓甯稿鐞嗙粨鏋�(瀛愮粨鏋�)(澶氬浣跨敤)
+    public static class NET_DVR_HANDLEEXCEPTION extends Structure {
+        public int dwHandleType;            /*澶勭悊鏂瑰紡,澶勭悊鏂瑰紡鐨�"鎴�"缁撴灉*//*0x00: 鏃犲搷搴�*//*0x01: 甯冮槻鍣ㄤ笂璀﹀憡*//*0x02: 澹伴煶璀﹀憡*//*0x04: 涓婁紶涓績*/    /*0x08: 瑙﹀彂鎶ヨ杈撳嚭*//*0x20: 瑙﹀彂鎶撳浘*/  //(JPEG瀹氬埗)
+        public byte[] byRelAlarmOut = new byte[MAX_ALARMOUT];  //鎶ヨ瑙﹀彂鐨勮緭鍑洪�氶亾,鎶ヨ瑙﹀彂鐨勮緭鍑�,涓�1琛ㄧず瑙﹀彂璇ヨ緭鍑�
+
+    }
+
+    //DVR璁惧鍙傛暟
+    public static class NET_DVR_DEVICECFG extends Structure {
+        public int dwSize;
+        public byte[] sDVRName = new byte[NAME_LEN];     //DVR鍚嶇О
+        public int dwDVRID;                 //DVR ID,鐢ㄤ簬閬ユ帶鍣� //V1.4(0-99), V1.5(0-255)
+        public int dwRecycleRecord;                 //鏄惁寰幆褰曞儚,0:涓嶆槸; 1:鏄�
+        //浠ヤ笅涓嶅彲鏇存敼
+        public byte[] sSerialNumber = new byte[SERIALNO_LEN];  //搴忓垪鍙�
+        public int dwSoftwareVersion;                   //杞欢鐗堟湰鍙�,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+        public int dwSoftwareBuildDate;                    //杞欢鐢熸垚鏃ユ湡,0xYYYYMMDD
+        public int dwDSPSoftwareVersion;                //DSP杞欢鐗堟湰,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+        public int dwDSPSoftwareBuildDate;                // DSP杞欢鐢熸垚鏃ユ湡,0xYYYYMMDD
+        public int dwPanelVersion;                // 鍓嶉潰鏉跨増鏈�,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+        public int dwHardwareVersion;            // 纭欢鐗堟湰,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+        public byte byAlarmInPortNum;        //DVR鎶ヨ杈撳叆涓暟
+        public byte byAlarmOutPortNum;        //DVR鎶ヨ杈撳嚭涓暟
+        public byte byRS232Num;            //DVR 232涓插彛涓暟
+        public byte byRS485Num;            //DVR 485涓插彛涓暟
+        public byte byNetworkPortNum;        //缃戠粶鍙d釜鏁�
+        public byte byDiskCtrlNum;            //DVR 纭洏鎺у埗鍣ㄤ釜鏁�
+        public byte byDiskNum;                //DVR 纭洏涓暟
+        public byte byDVRType;                //DVR绫诲瀷, 1:DVR 2:ATM DVR 3:DVS ......
+        public byte byChanNum;                //DVR 閫氶亾涓暟
+        public byte byStartChan;            //璧峰閫氶亾鍙�,渚嬪DVS-1,DVR - 1
+        public byte byDecordChans;            //DVR 瑙g爜璺暟
+        public byte byVGANum;                //VGA鍙g殑涓暟
+        public byte byUSBNum;                //USB鍙g殑涓暟
+        public byte byAuxoutNum;            //杈呭彛鐨勪釜鏁�
+        public byte byAudioNum;                    //璇煶鍙g殑涓暟
+        public byte byIPChanNum;            //鏈�澶ф暟瀛楅�氶亾鏁�
+
+
+    }
+
+    //DVR璁惧鍙傛暟
+    public static class NET_DVR_DEVICECFG_V40 extends Structure {
+        public int dwSize;
+        public byte[] sDVRName = new byte[NAME_LEN];     //DVR鍚嶇О
+        public int dwDVRID;                //DVR ID,鐢ㄤ簬閬ユ帶鍣� //V1.4(0-99), V1.5(0-255)
+        public int dwRecycleRecord;        //鏄惁寰幆褰曞儚,0:涓嶆槸; 1:鏄�
+        //浠ヤ笅涓嶅彲鏇存敼
+        public byte[] sSerialNumber = new byte[SERIALNO_LEN];  //搴忓垪鍙�
+        public int dwSoftwareVersion;            //杞欢鐗堟湰鍙�,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+        public int dwSoftwareBuildDate;            //杞欢鐢熸垚鏃ユ湡,0xYYYYMMDD
+        public int dwDSPSoftwareVersion;            //DSP杞欢鐗堟湰,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+        public int dwDSPSoftwareBuildDate;        // DSP杞欢鐢熸垚鏃ユ湡,0xYYYYMMDD
+        public int dwPanelVersion;                // 鍓嶉潰鏉跨増鏈�,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+        public int dwHardwareVersion;    // 纭欢鐗堟湰,楂�16浣嶆槸涓荤増鏈�,浣�16浣嶆槸娆$増鏈�
+        public byte byAlarmInPortNum;        //DVR鎶ヨ杈撳叆涓暟
+        public byte byAlarmOutPortNum;        //DVR鎶ヨ杈撳嚭涓暟
+        public byte byRS232Num;            //DVR 232涓插彛涓暟
+        public byte byRS485Num;            //DVR 485涓插彛涓暟
+        public byte byNetworkPortNum;        //缃戠粶鍙d釜鏁�
+        public byte byDiskCtrlNum;            //DVR 纭洏鎺у埗鍣ㄤ釜鏁�
+        public byte byDiskNum;                //DVR 纭洏涓暟
+        public byte byDVRType;                //DVR绫诲瀷, 1:DVR 2:ATM DVR 3:DVS ......
+        public byte byChanNum;                //DVR 閫氶亾涓暟
+        public byte byStartChan;            //璧峰閫氶亾鍙�,渚嬪DVS-1,DVR - 1
+        public byte byDecordChans;            //DVR 瑙g爜璺暟
+        public byte byVGANum;                //VGA鍙g殑涓暟
+        public byte byUSBNum;                //USB鍙g殑涓暟
+        public byte byAuxoutNum;            //杈呭彛鐨勪釜鏁�
+        public byte byAudioNum;            //璇煶鍙g殑涓暟
+        public byte byIPChanNum;            //鏈�澶ф暟瀛楅�氶亾鏁� 浣�8浣嶏紝楂�8浣嶈byHighIPChanNum
+        public byte byZeroChanNum;            //闆堕�氶亾缂栫爜涓暟
+        public byte bySupport;        //鑳藉姏锛屼綅涓庣粨鏋滀负0琛ㄧず涓嶆敮鎸侊紝1琛ㄧず鏀寔锛�
+        public byte byEsataUseage;        //Esata鐨勯粯璁ょ敤閫旓紝0-榛樿澶囦唤锛�1-榛樿褰曞儚
+        public byte byIPCPlug;            //0-鍏抽棴鍗虫彃鍗崇敤锛�1-鎵撳紑鍗虫彃鍗崇敤
+        public byte byStorageMode;        //0-鐩樼粍妯″紡,1-纾佺洏閰嶉, 2鎶藉抚妯″紡, 3-鑷姩
+        public byte bySupport1;        //鑳藉姏锛屼綅涓庣粨鏋滀负0琛ㄧず涓嶆敮鎸侊紝1琛ㄧず鏀寔
+        public short wDevType;//璁惧鍨嬪彿
+        public byte[] byDevTypeName = new byte[DEV_TYPE_NAME_LEN];//璁惧鍨嬪彿鍚嶇О
+        public byte bySupport2; //鑳藉姏闆嗘墿灞曪紝浣嶄笌缁撴灉涓�0琛ㄧず涓嶆敮鎸侊紝1琛ㄧず鏀寔
+        //bySupport2 & 0x1, 琛ㄧず鏄惁鏀寔鎵╁睍鐨凮SD瀛楃鍙犲姞(缁堢鍜屾姄鎷嶆満鎵╁睍鍖哄垎)
+        public byte byAnalogAlarmInPortNum; //妯℃嫙鎶ヨ杈撳叆涓暟
+        public byte byStartAlarmInNo;    //妯℃嫙鎶ヨ杈撳叆璧峰鍙�
+        public byte byStartAlarmOutNo;  //妯℃嫙鎶ヨ杈撳嚭璧峰鍙�
+        public byte byStartIPAlarmInNo;  //IP鎶ヨ杈撳叆璧峰鍙�
+        public byte byStartIPAlarmOutNo; //IP鎶ヨ杈撳嚭璧峰鍙�
+        public byte byHighIPChanNum;      //鏁板瓧閫氶亾涓暟锛岄珮8浣�
+        public byte byEnableRemotePowerOn;//鏄惁鍚敤鍦ㄨ澶囦紤鐪犵殑鐘舵�佷笅杩滅▼寮�鏈哄姛鑳斤紝0-涓嶅惎鐢紝1-鍚敤
+        public short wDevClass; //璁惧澶х被澶囨槸灞炰簬鍝釜浜у搧绾匡紝0 淇濈暀锛�1-50 DVR锛�51-100 DVS锛�101-150 NVR锛�151-200 IPC锛�65534 鍏朵粬锛屽叿浣撳垎绫绘柟娉曡銆婅澶囩被鍨嬪搴斿簭鍒楀彿鍜岀被鍨嬪��.docx銆�
+        public byte[] byRes2 = new byte[6];    //淇濈暀
+
+
+    }
+
+    public static class NET_DVR_IPADDR extends Structure {
+        public byte[] sIpV4 = new byte[16];
+        public byte[] byRes = new byte[128];
+
+//        public String toString() {
+//            return "NET_DVR_IPADDR.sIpV4: " + new String(sIpV4);
+//        }
+
+        public String getIpV4String() {
+            int endIndex = 0;
+            while (endIndex < sIpV4.length && sIpV4[endIndex] != 0) {
+                endIndex++;
+            }
+            return new String(Arrays.copyOf(sIpV4, endIndex));
+        }
+        @Override
+        protected List<String> getFieldOrder() {
+            return Arrays.asList("sIpV4", "byRes");
+        }
+
+    }
+
+    //缃戠粶鏁版嵁缁撴瀯(瀛愮粨鏋�)(9000鎵╁睍)
+    public static class NET_DVR_ETHERNET_V30 extends Structure {
+        public NET_DVR_IPADDR struDVRIP;
+        public NET_DVR_IPADDR struDVRIPMask;
+        public int dwNetInterface;
+        public short wDVRPort;
+        public short wMTU;
+        public byte[] byMACAddr = new byte[MACADDR_LEN];
+        public byte   byEthernetPortNo;//缃戝彛鍙凤紝0-鏃犳晥锛�1-缃戝彛0锛�2-缃戝彛1浠ユ绫绘帹锛屽彧璇�
+        public byte[] byRes = new byte[1];
+
+        public String toString() {
+            return "NET_DVR_ETHERNET_V30.struDVRIP: \n" + struDVRIP + "\n" + "NET_DVR_ETHERNET_V30.struDVRIPMask: \n" + struDVRIPMask + "\n" + "NET_DVR_ETHERNET_V30.dwNetInterface: " + dwNetInterface + "\n" + "NET_DVR_ETHERNET_V30.wDVRPort: " + wDVRPort + "\n" + "NET_DVR_ETHERNET_V30.wMTU: " + wMTU + "\n" + "NET_DVR_ETHERNET_V30.byMACAddr: " + new String(byMACAddr) + "\n";
+        }
+
+
+    }
+
+    public static class NET_DVR_ETHERNET extends Structure {//缃戠粶鏁版嵁缁撴瀯(瀛愮粨鏋�)
+        public byte[] sDVRIP = new byte[16];                    //DVR IP鍦板潃
+        public byte[] sDVRIPMask = new byte[16];                //DVR IP鍦板潃鎺╃爜
+        public int dwNetInterface;               //缃戠粶鎺ュ彛 1-10MBase-T 2-10MBase-T鍏ㄥ弻宸� 3-100MBase-TX 4-100M鍏ㄥ弻宸� 5-10M/100M鑷�傚簲
+        public short wDVRPort;                        //绔彛鍙�
+        public byte[] byMACAddr = new byte[MACADDR_LEN];        //鏈嶅姟鍣ㄧ殑鐗╃悊鍦板潃
+
+
+    }
+
+    public static class NET_DVR_PPPOECFG extends Structure {//PPPoe
+        public int dwPPPoE;
+        public byte[] sPPPoEUser = new byte[32];
+        public byte[] sPPPoEPassword = new byte[16];
+        public NET_DVR_IPADDR struPPPoEIP;
+
+
+    }
+
+    public static class NET_DVR_NETCFG_V30 extends Structure {
+        public int dwSize;
+        public NET_DVR_ETHERNET_V30[] struEtherNet = new NET_DVR_ETHERNET_V30[2];
+        public NET_DVR_IPADDR[] struRes1 = new NET_DVR_IPADDR[2];
+        public NET_DVR_IPADDR struAlarmHostIpAddr;
+        public short[] wRes2 = new short[2];
+        public short wAlarmHostIpPort;
+        public byte byUseDhcp;
+        public byte byRes3;
+        public NET_DVR_IPADDR struDnsServer1IpAddr;
+        public NET_DVR_IPADDR struDnsServer2IpAddr;
+        public byte[] byIpResolver = new byte[64];
+        public short wIpResolverPort;
+        public short wHttpPortNo;
+        public NET_DVR_IPADDR struMulticastIpAddr;
+        public NET_DVR_IPADDR struGatewayIpAddr;
+        public NET_DVR_PPPOECFG struPPPoE;
+        public byte[] byRes = new byte[64];
+
+        public String toString() {
+            return "NET_DVR_NETCFG_V30.dwSize: " + dwSize + "\n" + "NET_DVR_NETCFG_V30.struEtherNet[0]: \n" + struEtherNet[0] + "\n" + "NET_DVR_NETCFG_V30.struAlarmHostIpAddr: \n" + struAlarmHostIpAddr + "\n" + "NET_DVR_NETCFG_V30.wAlarmHostIpPort: " + wAlarmHostIpPort + "\n" + "NET_DVR_NETCFG_V30.wHttpPortNo: " + wHttpPortNo + "\n" + "NET_DVR_NETCFG_V30.struGatewayIpAddr: \n" + struGatewayIpAddr + "\n";
+        }
+
+
+    }
+
+
+    public static class NET_DVR_NETCFG extends Structure {//缃戠粶閰嶇疆缁撴瀯
+        public int dwSize;
+        public NET_DVR_ETHERNET[] struEtherNet = new NET_DVR_ETHERNET[MAX_ETHERNET];        /* 浠ュお缃戝彛 */
+        public byte[] sManageHostIP = new byte[16];            //杩滅▼绠$悊涓绘満鍦板潃
+        public short wManageHostPort;            //杩滅▼绠$悊涓绘満绔彛鍙�
+        public byte[] sIPServerIP = new byte[16];           //IPServer鏈嶅姟鍣ㄥ湴鍧�
+        public byte[] sMultiCastIP = new byte[16];          //澶氭挱缁勫湴鍧�
+        public byte[] sGatewayIP = new byte[16];            //缃戝叧鍦板潃
+        public byte[] sNFSIP = new byte[16];                //NFS涓绘満IP鍦板潃
+        public byte[] sNFSDirectory = new byte[PATHNAME_LEN];//NFS鐩綍
+        public int dwPPPOE;                    //0-涓嶅惎鐢�,1-鍚敤
+        public byte[] sPPPoEUser = new byte[NAME_LEN];        //PPPoE鐢ㄦ埛鍚�
+        public byte[] sPPPoEPassword = new byte[PASSWD_LEN];// PPPoE瀵嗙爜
+        public byte[] sPPPoEIP = new byte[16];                //PPPoE IP鍦板潃(鍙)
+
+
+    }
+
+    //閫氶亾鍥捐薄缁撴瀯
+    public static class NET_DVR_SCHEDTIMEWEEK extends Structure {
+        public NET_DVR_SCHEDTIME[] struAlarmTime = new NET_DVR_SCHEDTIME[8];
+
+
+    }
+
+    public static class byte96 extends Structure {
+        public byte[] byMotionScope = new byte[96];
+
+
+    }
+
+    public static class NET_DVR_MOTION_V30 extends Structure {//绉诲姩渚︽祴(瀛愮粨鏋�)(9000鎵╁睍)
+        public byte96[] byMotionScope = new byte96[64];                        /*渚︽祴鍖哄煙,0-96浣�,琛ㄧず64琛�,鍏辨湁96*64涓皬瀹忓潡,涓�1琛ㄧず鏄Щ鍔ㄤ睛娴嬪尯鍩�,0-琛ㄧず涓嶆槸*/
+        public byte byMotionSensitive;                            /*绉诲姩渚︽祴鐏垫晱搴�, 0 - 5,瓒婇珮瓒婄伒鏁�,oxff鍏抽棴*/
+        public byte byEnableHandleMotion;                        /* 鏄惁澶勭悊绉诲姩渚︽祴 0锛嶅惁 1锛嶆槸*/
+        public byte byPrecision;                            /* 绉诲姩渚︽祴绠楁硶鐨勮繘搴�: 0--16*16, 1--32*32, 2--64*64 ... */
+        public byte reservedData;
+        public NET_DVR_HANDLEEXCEPTION_V30 struMotionHandleType;            /* 澶勭悊鏂瑰紡 */
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS]; /*甯冮槻鏃堕棿*/
+        public byte[] byRelRecordChan = new byte[64];                    /* 鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾*/
+
+
+    }
+
+    public static class NET_DVR_MOTION extends Structure {//绉诲姩渚︽祴(瀛愮粨鏋�)
+        public byte[] byMotionScope = new byte[18 * 22];    /*渚︽祴鍖哄煙,鍏辨湁22*18涓皬瀹忓潡,涓�1琛ㄧず鏀瑰畯鍧楁槸绉诲姩渚︽祴鍖哄煙,0-琛ㄧず涓嶆槸*/
+        public byte byMotionSensitive;        /*绉诲姩渚︽祴鐏垫晱搴�, 0 - 5,瓒婇珮瓒婄伒鏁�,0xff鍏抽棴*/
+        public byte byEnableHandleMotion;    /* 鏄惁澶勭悊绉诲姩渚︽祴 */
+        public byte[] reservedData = new byte[2];
+        public NET_DVR_HANDLEEXCEPTION strMotionHandleType;    /* 澶勭悊鏂瑰紡 */
+        public byte[] byRelRecordChan = new byte[MAX_CHANNUM]; //鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾,涓�1琛ㄧず瑙﹀彂璇ラ�氶亾
+
+
+    }
+
+    public static class NET_DVR_HIDEALARM_V30 extends Structure {//閬尅鎶ヨ
+        public int dwEnableHideAlarm;                /* 鏄惁鍚姩閬尅鎶ヨ ,0-鍚�,1-浣庣伒鏁忓害 2-涓伒鏁忓害 3-楂樼伒鏁忓害*/
+        public short wHideAlarmAreaTopLeftX;            /* 閬尅鍖哄煙鐨剎鍧愭爣 */
+        public short wHideAlarmAreaTopLeftY;            /* 閬尅鍖哄煙鐨剏鍧愭爣 */
+        public short wHideAlarmAreaWidth;                /* 閬尅鍖哄煙鐨勫 */
+        public short wHideAlarmAreaHeight;                /*閬尅鍖哄煙鐨勯珮*/
+        public NET_DVR_HANDLEEXCEPTION_V30 strHideAlarmHandleType;    /* 澶勭悊鏂瑰紡 */
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];//甯冮槻鏃堕棿
+
+
+    }
+
+    public static class NET_DVR_HIDEALARM extends Structure {//閬尅鎶ヨ(瀛愮粨鏋�)  鍖哄煙澶у皬704*576
+        public int dwEnableHideAlarm;                /* 鏄惁鍚姩閬尅鎶ヨ ,0-鍚�,1-浣庣伒鏁忓害 2-涓伒鏁忓害 3-楂樼伒鏁忓害*/
+        public short wHideAlarmAreaTopLeftX;            /* 閬尅鍖哄煙鐨剎鍧愭爣 */
+        public short wHideAlarmAreaTopLeftY;            /* 閬尅鍖哄煙鐨剏鍧愭爣 */
+        public short wHideAlarmAreaWidth;                /* 閬尅鍖哄煙鐨勫 */
+        public short wHideAlarmAreaHeight;                /*閬尅鍖哄煙鐨勯珮*/
+        public NET_DVR_HANDLEEXCEPTION strHideAlarmHandleType;    /* 澶勭悊鏂瑰紡 */
+
+
+    }
+
+    public static class NET_DVR_VILOST_V30 extends Structure {    //淇″彿涓㈠け鎶ヨ(瀛愮粨鏋�)(9000鎵╁睍)
+        public byte byEnableHandleVILost;                         /* 鏄惁澶勭悊淇″彿涓㈠け鎶ヨ */
+        public NET_DVR_HANDLEEXCEPTION_V30 strVILostHandleType;         /* 澶勭悊鏂瑰紡 */
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];//甯冮槻鏃堕棿
+
+    }
+
+    public static class NET_DVR_VILOST extends Structure {    //淇″彿涓㈠け鎶ヨ(瀛愮粨鏋�)
+        public byte byEnableHandleVILost;    /* 鏄惁澶勭悊淇″彿涓㈠け鎶ヨ */
+        public NET_DVR_HANDLEEXCEPTION strVILostHandleType;    /* 澶勭悊鏂瑰紡 */
+
+    }
+
+    public static class NET_DVR_SHELTER extends Structure {  //閬尅鍖哄煙(瀛愮粨鏋�)
+        public short wHideAreaTopLeftX;                /* 閬尅鍖哄煙鐨剎鍧愭爣 */
+        public short wHideAreaTopLeftY;                /* 閬尅鍖哄煙鐨剏鍧愭爣 */
+        public short wHideAreaWidth;                /* 閬尅鍖哄煙鐨勫 */
+        public short wHideAreaHeight;                /* 閬尅鍖哄煙鐨勯珮*/
+
+
+    }
+
+    public static class NET_DVR_COLOR extends Structure {
+        public byte byBrightness;    /*浜害,0-255*/
+        public byte byContrast;        /*瀵规瘮搴�,0-255*/
+        public byte bySaturation;    /*楗卞拰搴�,0-255*/
+        public byte byHue;            /*鑹茶皟,0-255*/
+
+
+    }
+
+    public static class NET_DVR_VICOLOR extends Structure {
+        public NET_DVR_COLOR[] struColor = new NET_DVR_COLOR[MAX_TIMESEGMENT_V30];/*鍥捐薄鍙傛暟(绗竴涓湁鏁堬紝鍏朵粬涓変釜淇濈暀)*/
+        public NET_DVR_SCHEDTIME[] struHandleTime = new NET_DVR_SCHEDTIME[MAX_TIMESEGMENT_V30];/*澶勭悊鏃堕棿娈�(淇濈暀)*/
+
+
+    }
+
+    //淇″彿涓㈠け
+    public static class NET_DVR_VILOST_V40 extends Structure {
+        public int dwEnableVILostAlarm;                /* 鏄惁鍚姩淇″彿涓㈠け鎶ヨ ,0-鍚�,1-鏄�*/
+        /* 淇″彿涓㈠け瑙﹀彂鎶ヨ杈撳嚭 */
+        public int dwHandleType;        //寮傚父澶勭悊,寮傚父澶勭悊鏂瑰紡鐨�"鎴�"缁撴灉
+        /*0x00: 鏃犲搷搴�*/
+        /*0x01: 甯冮槻鍣ㄤ笂璀﹀憡*/
+        /*0x02: 澹伴煶璀﹀憡*/
+        /*0x04: 涓婁紶涓績*/
+        /*0x08: 瑙﹀彂鎶ヨ杈撳嚭*/
+        /*0x10: 瑙﹀彂JPRG鎶撳浘骞朵笂浼燛mail*/
+        /*0x20: 鏃犵嚎澹板厜鎶ヨ鍣ㄨ仈鍔�*/
+        /*0x40: 鑱斿姩鐢靛瓙鍦板浘(鐩墠鍙湁PCNVR鏀寔)*/
+        /*0x200: 鎶撳浘骞朵笂浼燜TP*/
+        /*0x1000:鎶撳浘涓婁紶鍒颁簯*/
+        public int dwMaxRelAlarmOutChanNum; //瑙﹀彂鐨勬姤璀﹁緭鍑洪�氶亾鏁帮紙鍙锛夋渶澶ф敮鎸佹暟閲�
+        public int[] dwRelAlarmOut = new int[MAX_ALARMOUT_V40]; /*瑙﹀彂鎶ヨ杈撳嚭鍙凤紝鎸夊�艰〃绀�,閲囩敤绱у噾鍨嬫帓鍒楋紝浠庝笅鏍�0 - dwRelAlarmOut -1鏈夋晥锛屽鏋滀腑闂撮亣鍒�0xffffffff,鍒欏悗缁棤鏁�*/
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS]; /*甯冮槻鏃堕棿*/
+        public byte byVILostAlarmThreshold;    /*淇″彿涓㈠け鎶ヨ闃堝�硷紝褰撳�间綆浜庨槇鍊硷紝璁や负淇″彿涓㈠け锛屽彇鍊�0-99*/
+        public byte[] byRes = new byte[63]; //淇濈暀
+
+
+    }
+
+    public static class NET_DVR_DNMODE extends Structure {
+        public byte byObjectSize;//鍗犳瘮鍙傛暟(0~100)
+        public byte byMotionSensitive; /*绉诲姩渚︽祴鐏垫晱搴�, 0 - 5,瓒婇珮瓒婄伒鏁�,0xff鍏抽棴*/
+        public byte[] byRes = new byte[6];
+
+
+    }
+
+    public static class NET_DVR_MOTION_MULTI_AREAPARAM extends Structure {
+        public byte byAreaNo;//鍖哄煙缂栧彿(IPC- 1~8)
+        public byte[] byRes = new byte[3];
+        public NET_VCA_RECT struRect = new NET_VCA_RECT();//鍗曚釜鍖哄煙鐨勫潗鏍囦俊鎭�(鐭╁舰) size = 16;
+        public NET_DVR_DNMODE struDayNightDisable = new NET_DVR_DNMODE();//鍏抽棴妯″紡
+        public NET_DVR_DNMODE struDayModeParam = new NET_DVR_DNMODE();//鐧藉ぉ妯″紡
+        public NET_DVR_DNMODE struNightModeParam = new NET_DVR_DNMODE();//澶滄櫄妯″紡
+        public byte[] byRes1 = new byte[8];
+
+
+    }
+
+    public static final int MAX_MULTI_AREA_NUM = 24;
+
+    public static class NET_DVR_MOTION_MULTI_AREA extends Structure {
+        public byte byDayNightCtrl;//鏃ュ鎺у埗 0~鍏抽棴,1~鑷姩鍒囨崲,2~瀹氭椂鍒囨崲(榛樿鍏抽棴)
+        public byte byAllMotionSensitive; /*绉诲姩渚︽祴鐏垫晱搴�, 0 - 5,瓒婇珮瓒婄伒鏁�,0xff鍏抽棴锛屽叏閮ㄥ尯鍩熺殑鐏垫晱搴﹁寖鍥�*/
+        public byte[] byRes = new byte[2];//
+        public NET_DVR_SCHEDULE_DAYTIME struScheduleTime = new NET_DVR_SCHEDULE_DAYTIME();//鍒囨崲鏃堕棿  16
+        public NET_DVR_MOTION_MULTI_AREAPARAM[] struMotionMultiAreaParam = new NET_DVR_MOTION_MULTI_AREAPARAM[MAX_MULTI_AREA_NUM];//鏈�澶ф敮鎸�24涓尯鍩�
+        public byte[] byRes1 = new byte[60];
+
+
+    }
+
+    public static class NET_DVR_MOTION_SINGLE_AREA extends Structure {
+        public byte[] byMotionScope = new byte[64 * 96];        /*渚︽祴鍖哄煙,0-96浣�,琛ㄧず64琛�,鍏辨湁96*64涓皬瀹忓潡,鐩墠鏈夋晥鐨勬槸22*18,涓�1琛ㄧず鏄Щ鍔ㄤ睛娴嬪尯鍩�,0-琛ㄧず涓嶆槸*/
+        public byte byMotionSensitive;            /*绉诲姩渚︽祴鐏垫晱搴�, 0 - 5,瓒婇珮瓒婄伒鏁�,0xff鍏抽棴*/
+        public byte[] byRes = new byte[3];
+
+
+    }
+
+    public static class NET_DVR_MOTION_MODE_PARAM extends Structure {
+        public NET_DVR_MOTION_SINGLE_AREA struMotionSingleArea = new NET_DVR_MOTION_SINGLE_AREA(); //鏅�氭ā寮忎笅鐨勫崟鍖哄煙璁�
+        public NET_DVR_MOTION_MULTI_AREA struMotionMultiArea = new NET_DVR_MOTION_MULTI_AREA(); //涓撳妯″紡涓嬬殑澶氬尯鍩熻缃�
+
+
+    }
+
+    public static class NET_DVR_MOTION_V40 extends Structure {
+        public NET_DVR_MOTION_MODE_PARAM struMotionMode = new NET_DVR_MOTION_MODE_PARAM(); //(5.1.0鏂板)
+        public byte byEnableHandleMotion;        /* 鏄惁澶勭悊绉诲姩渚︽祴 0锛嶅惁 1锛嶆槸*/
+        public byte byEnableDisplay;    /*鍚敤绉诲姩渚︽祴楂樹寒鏄剧ず锛�0-鍚︼紝1-鏄�*/
+        public byte byConfigurationMode; //0~鏅��,1~涓撳(5.1.0鏂板)
+        public byte byKeyingEnable; //鍚敤閿帶绉诲姩渚︽祴 0-涓嶅惎鐢紝1-鍚敤
+        /* 寮傚父澶勭悊鏂瑰紡 */
+        public int dwHandleType;        //寮傚父澶勭悊,寮傚父澶勭悊鏂瑰紡鐨�"鎴�"缁撴灉
+        /*0x00: 鏃犲搷搴�*/
+        /*0x01: 甯冮槻鍣ㄤ笂璀﹀憡*/
+        /*0x02: 澹伴煶璀﹀憡*/
+        /*0x04: 涓婁紶涓績*/
+        /*0x08: 瑙﹀彂鎶ヨ杈撳嚭*/
+        /*0x10: 瑙﹀彂JPRG鎶撳浘骞朵笂浼燛mail*/
+        /*0x20: 鏃犵嚎澹板厜鎶ヨ鍣ㄨ仈鍔�*/
+        /*0x40: 鑱斿姩鐢靛瓙鍦板浘(鐩墠鍙湁PCNVR鏀寔)*/
+        /*0x200: 鎶撳浘骞朵笂浼燜TP*/
+        /*0x1000: 鎶撳浘涓婁紶鍒颁簯*/
+        public int dwMaxRelAlarmOutChanNum; //瑙﹀彂鐨勬姤璀﹁緭鍑洪�氶亾鏁帮紙鍙锛夋渶澶ф敮鎸佹暟閲�
+        public int[] dwRelAlarmOut = new int[MAX_ALARMOUT_V40]; //瀹為檯瑙﹀彂鐨勬姤璀﹁緭鍑哄彿锛屾寜鍊艰〃绀�,閲囩敤绱у噾鍨嬫帓鍒楋紝浠庝笅鏍�0 - dwRelAlarmOut -1鏈夋晥锛屽鏋滀腑闂撮亣鍒�0xffffffff,鍒欏悗缁棤鏁�
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS]; /*甯冮槻鏃堕棿*/
+        /*瑙﹀彂鐨勫綍鍍忛�氶亾*/
+        public int dwMaxRecordChanNum;   //璁惧鏀寔鐨勬渶澶у叧鑱斿綍鍍忛�氶亾鏁�-鍙
+        public int[] dwRelRecordChan = new int[MAX_CHANNUM_V40];     /* 瀹為檯瑙﹀彂褰曞儚閫氶亾锛屾寜鍊艰〃绀�,閲囩敤绱у噾鍨嬫帓鍒楋紝浠庝笅鏍�0 - dwRelRecordChan -1鏈夋晥锛屽鏋滀腑闂撮亣鍒�0xffffffff,鍒欏悗缁棤鏁�*/
+        public byte byDiscardFalseAlarm; //鍚敤鍘昏鎶� 0-鏃犳晥锛�1-涓嶅惎鐢紝2-鍚敤
+        public byte[] byRes = new byte[127]; //淇濈暀瀛楄妭
+
+
+    }
+
+    public static class NET_DVR_RGB_COLOR extends Structure {
+        public byte byRed;      //RGB棰滆壊涓夊垎閲忎腑鐨勭孩鑹�
+        public byte byGreen;    //RGB棰滆壊涓夊垎閲忎腑鐨勭豢鑹�
+        public byte byBlue;     //RGB棰滆壊涓夊垎閲忎腑鐨勮摑鑹�
+        public byte byRes;       //淇濈暀
+
+
+    }
+
+    public static class NET_DVR_HIDEALARM_V40 extends Structure {
+        public int dwEnableHideAlarm;                /* 鏄惁鍚姩閬尅鎶ヨ锛�0-鍚︼紝1-浣庣伒鏁忓害锛�2-涓伒鏁忓害锛�3-楂樼伒鏁忓害*/
+        public short wHideAlarmAreaTopLeftX;            /* 閬尅鍖哄煙鐨剎鍧愭爣 */
+        public short wHideAlarmAreaTopLeftY;            /* 閬尅鍖哄煙鐨剏鍧愭爣 */
+        public short wHideAlarmAreaWidth;                /* 閬尅鍖哄煙鐨勫 */
+        public short wHideAlarmAreaHeight;                /*閬尅鍖哄煙鐨勯珮*/
+        /* 淇″彿涓㈠け瑙﹀彂鎶ヨ杈撳嚭 */
+        public int dwHandleType;        //寮傚父澶勭悊,寮傚父澶勭悊鏂瑰紡鐨�"鎴�"缁撴灉
+        /*0x00: 鏃犲搷搴�*/
+        /*0x01: 甯冮槻鍣ㄤ笂璀﹀憡*/
+        /*0x02: 澹伴煶璀﹀憡*/
+        /*0x04: 涓婁紶涓績*/
+        /*0x08: 瑙﹀彂鎶ヨ杈撳嚭*/
+        /*0x10: 瑙﹀彂JPRG鎶撳浘骞朵笂浼燛mail*/
+        /*0x20: 鏃犵嚎澹板厜鎶ヨ鍣ㄨ仈鍔�*/
+        /*0x40: 鑱斿姩鐢靛瓙鍦板浘(鐩墠鍙湁PCNVR鏀寔)*/
+        /*0x200: 鎶撳浘骞朵笂浼燜TP*/
+        /*0x1000:鎶撳浘涓婁紶鍒颁簯*/
+        public int dwMaxRelAlarmOutChanNum; //瑙﹀彂鐨勬姤璀﹁緭鍑洪�氶亾鏁帮紙鍙锛夋渶澶ф敮鎸佹暟閲�
+        public int[] dwRelAlarmOut = new int[MAX_ALARMOUT_V40]; /*瑙﹀彂鎶ヨ杈撳嚭鍙凤紝鎸夊�艰〃绀�,閲囩敤绱у噾鍨嬫帓鍒楋紝浠庝笅鏍�0 - dwRelAlarmOut -1鏈夋晥锛屽鏋滀腑闂撮亣鍒�0xffffffff,鍒欏悗缁棤鏁�*/
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS]; /*甯冮槻鏃堕棿*/
+        public byte[] byRes = new byte[64]; //淇濈暀
+
+
+    }//閬尅鎶ヨ
+
+    public static class NET_DVR_PICCFG_V40 extends Structure {
+        public int dwSize;
+        public byte[] sChanName = new byte[NAME_LEN];
+        public int dwVideoFormat;    /* 鍙 瑙嗛鍒跺紡 1-NTSC 2-PAL  */
+        public NET_DVR_VICOLOR struViColor = new NET_DVR_VICOLOR();//    鍥惧儚鍙傛暟鎸夋椂闂存璁剧疆
+        //鏄剧ず閫氶亾鍚�
+        public int dwShowChanName; // 棰勮鐨勫浘璞′笂鏄惁鏄剧ず閫氶亾鍚嶇О,0-涓嶆樉绀�,1-鏄剧ず
+        public short wShowNameTopLeftX;                /* 閫氶亾鍚嶇О鏄剧ず浣嶇疆鐨剎鍧愭爣 */
+        public short wShowNameTopLeftY;                /* 閫氶亾鍚嶇О鏄剧ず浣嶇疆鐨剏鍧愭爣 */
+        //闅愮閬尅
+        public int dwEnableHide;        /* 鏄惁鍚姩閬尅 ,0-鍚�,1-鏄�*/
+        public NET_DVR_SHELTER[] struShelter = new NET_DVR_SHELTER[MAX_SHELTERNUM];
+        //OSD
+        public int dwShowOsd;// 棰勮鐨勫浘璞′笂鏄惁鏄剧ずOSD,0-涓嶆樉绀�,1-鏄剧ず
+        public short wOSDTopLeftX;                /* OSD鐨剎鍧愭爣 */
+        public short wOSDTopLeftY;                /* OSD鐨剏鍧愭爣 */
+        public byte byOSDType;                    /* OSD绫诲瀷(涓昏鏄勾鏈堟棩鏍煎紡) */
+        /* 0: XXXX-XX-XX 骞存湀鏃� */
+        /* 1: XX-XX-XXXX 鏈堟棩骞� */
+        /* 2: XXXX骞碭X鏈圶X鏃� */
+        /* 3: XX鏈圶X鏃XXX骞� */
+        /* 4: XX-XX-XXXX 鏃ユ湀骞�*/
+        /* 5: XX鏃X鏈圶XXX骞� */
+        /*6: xx/xx/xxxx(鏈�/鏃�/骞�) */
+        /*7: xxxx/xx/xx(骞�/鏈�/鏃�) */
+        /*8: xx/xx/xxxx(鏃�/鏈�/骞�)*/
+        public byte byDispWeek;                /* 鏄惁鏄剧ず鏄熸湡 */
+        public byte byOSDAttrib;                /* OSD灞炴��:閫忔槑锛岄棯鐑� */
+        /* 0: 涓嶆樉绀篛SD */
+        /* 1: 閫忔槑锛岄棯鐑� */
+        /* 2: 閫忔槑锛屼笉闂儊 */
+        /* 3: 涓嶉�忔槑锛岄棯鐑� */
+        /* 4: 涓嶉�忔槑锛屼笉闂儊 */
+        public byte byHourOSDType;                /* OSD灏忔椂鍒�:0-24灏忔椂鍒�,1-12灏忔椂鍒� */
+        public byte byFontSize;      //16*16(涓�)/8*16(鑻�)锛�1-32*32(涓�)/16*32(鑻�)锛�2-64*64(涓�)/32*64(鑻�)  3-48*48(涓�)/24*48(鑻�) 4-24*24(涓�)/12*24(鑻�) 5-96*96(涓�)/48*96(鑻�) 6-128*128(涓�)/64*128(鑻�) 7-80*80(涓�)/40*80(鑻�) 8-112*112(涓�)/56*112(鑻�) 0xff-鑷�傚簲(adaptive)
+        public byte byOSDColorType;     //0-榛樿锛堥粦鐧斤級锛�1-鑷畾涔�
+        public byte byAlignment;//瀵归綈鏂瑰紡 0-鑷�傚簲锛�1-鍙冲榻�, 2-宸﹀榻愶紝3-鍥芥爣妯″紡锛�4-鍏ㄩ儴鍙冲榻�(鍖呭惈鍙犲姞瀛楃銆佹椂闂翠互鍙婃爣棰樼瓑鎵�鏈塐SD瀛楃)锛�5-鍏ㄩ儴宸﹀榻�(鍖呭惈鍙犲姞瀛楃銆佹椂闂翠互鍙婃爣棰樼瓑鎵�鏈塐SD瀛楃)
+        public byte byOSDMilliSecondEnable;//瑙嗛鍙犲姞鏃堕棿鏀寔姣锛�0~涓嶅彔鍔�, 1-鍙犲姞
+        public NET_DVR_VILOST_V40 struVILost = new NET_DVR_VILOST_V40();  //瑙嗛淇″彿涓㈠け鎶ヨ锛堟敮鎸佺粍锛�
+        public NET_DVR_VILOST_V40 struAULost = new NET_DVR_VILOST_V40();  /*闊抽淇″彿涓㈠け鎶ヨ锛堟敮鎸佺粍锛�*/
+        public NET_DVR_MOTION_V40 struMotion = new NET_DVR_MOTION_V40();  //绉诲姩渚︽祴鎶ヨ锛堟敮鎸佺粍锛�
+        public NET_DVR_HIDEALARM_V40 struHideAlarm = new NET_DVR_HIDEALARM_V40();  //閬尅鎶ヨ锛堟敮鎸佺粍锛�
+        public NET_DVR_RGB_COLOR struOsdColor = new NET_DVR_RGB_COLOR();//OSD棰滆壊
+        public int dwBoundary; //杈圭晫鍊硷紝宸﹀榻愶紝鍙冲榻愪互鍙婂浗鏍囨ā寮忕殑杈圭晫鍊硷紝0-琛ㄧず榛樿鍊硷紝鍗曚綅锛氬儚绱�;鍦ㄥ浗鏍囨ā寮忎笅锛屽崟浣嶄慨鏀逛负瀛楃涓暟锛堣寖鍥存槸锛�0,1,2锛�
+        public NET_DVR_RGB_COLOR struOsdBkColor = new NET_DVR_RGB_COLOR(); //鑷畾涔塐SD鑳屾櫙鑹�
+        public byte byOSDBkColorMode; //OSD鑳屾櫙鑹叉ā寮忥紝0-榛樿锛�1-鑷畾涔塐SD鑳屾櫙鑹�
+        public byte byUpDownBoundary; //涓婁笅鏈�灏忚竟鐣屽�奸�夐」锛屽崟浣嶄负瀛楃涓暟锛堣寖鍥存槸锛�0,1,2锛�,鍥芥爣妯″紡涓嬫棤鏁堛�俠yAlignment=3璇ュ瓧娈垫棤鏁堬紝閫氳繃dwBoundary杩涜杈圭晫閰嶇疆锛�.byAlignment涓嶇瓑浜�3鐨勬儏鍐典笅锛� byUpDownBoundary/byLeftRightBoundary閰嶇疆鎴愬姛鍚庯紝dwBoundary鍊煎皢涓嶇敓鏁�
+        public byte byLeftRightBoundary; //宸﹀彸鏈�灏忚竟鐣屽�奸�夐」锛屽崟浣嶄负瀛楃涓暟锛堣寖鍥存槸锛�0,1,2锛�, 鍥芥爣妯″紡涓嬫棤鏁堛�俠yAlignment=3璇ュ瓧娈垫棤鏁堬紝閫氳繃dwBoundary杩涜杈圭晫閰嶇疆锛�.byAlignment涓嶇瓑浜�3鐨勬儏鍐典笅锛� byUpDownBoundary/byLeftRightBoundary閰嶇疆鎴愬姛鍚庯紝dwBoundary鍊煎皢涓嶇敓鏁�
+        public byte[] byRes = new byte[113];
+
+
+    }
+
+    public static class NET_DVR_PICCFG_V30 extends Structure {
+        public int dwSize;
+        public byte[] sChanName = new byte[NAME_LEN];
+        public int dwVideoFormat;                /* 鍙 瑙嗛鍒跺紡 1-NTSC 2-PAL*/
+        public NET_DVR_VICOLOR struViColor;        // 鍥惧儚鍙傛暟鎸夋椂闂存璁剧疆
+        public int dwShowChanName;               // 棰勮鐨勫浘璞′笂鏄惁鏄剧ず閫氶亾鍚嶇О,0-涓嶆樉绀�,1-鏄剧ず 鍖哄煙澶у皬704*576
+        public short wShowNameTopLeftX;                /* 閫氶亾鍚嶇О鏄剧ず浣嶇疆鐨剎鍧愭爣 */
+        public short wShowNameTopLeftY;                /* 閫氶亾鍚嶇О鏄剧ず浣嶇疆鐨剏鍧愭爣 */
+        public NET_DVR_VILOST_V30 struVILost;      //瑙嗛淇″彿涓㈠け鎶ヨ
+        public NET_DVR_VILOST_V30 struAULost;    /*闊抽淇″彿涓㈠け鎶ヨ(淇濈暀)*/
+        public NET_DVR_MOTION_V30 struMotion;      //绉诲姩渚︽祴
+        public NET_DVR_HIDEALARM_V30 struHideAlarm;//閬尅鎶ヨ
+        public int dwEnableHide;                    /* 鏄惁鍚姩閬洊(鍖哄煙澶у皬704*576) ,0-鍚�,1-鏄�*/
+        public NET_DVR_SHELTER[] struShelter = new NET_DVR_SHELTER[4];
+        public int dwShowOsd;                //棰勮鐨勫浘璞′笂鏄惁鏄剧ずOSD,0-涓嶆樉绀�,1-鏄剧ず 鍖哄煙澶у皬704*576
+        public short wOSDTopLeftX;                /* OSD鐨剎鍧愭爣 */
+        public short wOSDTopLeftY;                /* OSD鐨剏鍧愭爣 */
+        public byte byOSDType;                    /* OSD绫诲瀷(涓昏鏄勾鏈堟棩鏍煎紡) */
+        public byte byDispWeek;                /* 鏄惁鏄剧ず鏄熸湡 */
+        public byte byOSDAttrib;                /* OSD灞炴��:閫忔槑锛岄棯鐑� */
+        public byte byHourOSDType;                /* OSD灏忔椂鍒�:0-24灏忔椂鍒�,1-12灏忔椂鍒� */
+        public byte[] byRes = new byte[64];
+
+
+    }
+
+    public static class NET_DVR_PICCFG_EX extends Structure {//閫氶亾鍥捐薄缁撴瀯SDK_V14鎵╁睍
+        public int dwSize;
+        public byte[] sChanName = new byte[NAME_LEN];
+        public int dwVideoFormat;    /* 鍙 瑙嗛鍒跺紡 1-NTSC 2-PAL*/
+        public byte byBrightness;    /*浜害,0-255*/
+        public byte byContrast;        /*瀵规瘮搴�,0-255*/
+        public byte bySaturation;    /*楗卞拰搴�,0-255 */
+        public byte byHue;                /*鑹茶皟,0-255*/
+        //鏄剧ず閫氶亾鍚�
+        public int dwShowChanName; // 棰勮鐨勫浘璞′笂鏄惁鏄剧ず閫氶亾鍚嶇О,0-涓嶆樉绀�,1-鏄剧ず 鍖哄煙澶у皬704*576
+        public short wShowNameTopLeftX;                /* 閫氶亾鍚嶇О鏄剧ず浣嶇疆鐨剎鍧愭爣 */
+        public short wShowNameTopLeftY;                /* 閫氶亾鍚嶇О鏄剧ず浣嶇疆鐨剏鍧愭爣 */
+        //淇″彿涓㈠け鎶ヨ
+        public NET_DVR_VILOST struVILost;
+        //绉诲姩渚︽祴
+        public NET_DVR_MOTION struMotion;
+        //閬尅鎶ヨ
+        public NET_DVR_HIDEALARM struHideAlarm;
+        //閬尅  鍖哄煙澶у皬704*576
+        public int dwEnableHide;        /* 鏄惁鍚姩閬尅 ,0-鍚�,1-鏄�*/
+        public NET_DVR_SHELTER[] struShelter = new NET_DVR_SHELTER[MAX_SHELTERNUM];
+        //OSD
+        public int dwShowOsd;// 棰勮鐨勫浘璞′笂鏄惁鏄剧ずOSD,0-涓嶆樉绀�,1-鏄剧ず 鍖哄煙澶у皬704*576
+        public short wOSDTopLeftX;                /* OSD鐨剎鍧愭爣 */
+        public short wOSDTopLeftY;                /* OSD鐨剏鍧愭爣 */
+        public byte byOSDType;                    /* OSD绫诲瀷(涓昏鏄勾鏈堟棩鏍煎紡) */
+        /* 0: XXXX-XX-XX 骞存湀鏃� */
+        /* 1: XX-XX-XXXX 鏈堟棩骞� */
+        /* 2: XXXX骞碭X鏈圶X鏃� */
+        /* 3: XX鏈圶X鏃XXX骞� */
+        /* 4: XX-XX-XXXX 鏃ユ湀骞�*/
+        /* 5: XX鏃X鏈圶XXX骞� */
+        public byte byDispWeek;                /* 鏄惁鏄剧ず鏄熸湡 */
+        public byte byOSDAttrib;                /* OSD灞炴��:閫忔槑锛岄棯鐑� */
+        /* 0: 涓嶆樉绀篛SD */
+        /* 1: 閫忔槑,闂儊 */
+        /* 2: 閫忔槑,涓嶉棯鐑� */
+        /* 3: 闂儊,涓嶉�忔槑 */
+        /* 4: 涓嶉�忔槑,涓嶉棯鐑� */
+        public byte byHourOsdType;    //灏忔椂鍒讹細0琛ㄧず24灏忔椂鍒讹紝1-12灏忔椂鍒舵垨am/pm
+
+
+    }
+
+
+    public static class NET_DVR_PICCFG extends Structure { //閫氶亾鍥捐薄缁撴瀯(SDK_V13鍙婁箣鍓嶇増鏈�)
+        public int dwSize;
+        public byte[] sChanName = new byte[NAME_LEN];
+        public int dwVideoFormat;    /* 鍙 瑙嗛鍒跺紡 1-NTSC 2-PAL*/
+        public byte byBrightness;    /*浜害,0-255*/
+        public byte byContrast;        /*瀵规瘮搴�,0-255*/
+        public byte bySaturation;    /*楗卞拰搴�,0-255 */
+        public byte byHue;                /*鑹茶皟,0-255*/
+        //鏄剧ず閫氶亾鍚�
+        public int dwShowChanName; // 棰勮鐨勫浘璞′笂鏄惁鏄剧ず閫氶亾鍚嶇О,0-涓嶆樉绀�,1-鏄剧ず 鍖哄煙澶у皬704*576
+        public short wShowNameTopLeftX;                /* 閫氶亾鍚嶇О鏄剧ず浣嶇疆鐨剎鍧愭爣 */
+        public short wShowNameTopLeftY;                /* 閫氶亾鍚嶇О鏄剧ず浣嶇疆鐨剏鍧愭爣 */
+        //淇″彿涓㈠け鎶ヨ
+        public NET_DVR_VILOST struVILost;
+        //绉诲姩渚︽祴
+        public NET_DVR_MOTION struMotion;
+        //閬尅鎶ヨ
+        public NET_DVR_HIDEALARM struHideAlarm;
+        //閬尅  鍖哄煙澶у皬704*576
+        public int dwEnableHide;        /* 鏄惁鍚姩閬尅 ,0-鍚�,1-鏄�*/
+        public short wHideAreaTopLeftX;                /* 閬尅鍖哄煙鐨剎鍧愭爣 */
+        public short wHideAreaTopLeftY;                /* 閬尅鍖哄煙鐨剏鍧愭爣 */
+        public short wHideAreaWidth;                /* 閬尅鍖哄煙鐨勫 */
+        public short wHideAreaHeight;                /*閬尅鍖哄煙鐨勯珮*/
+        //OSD
+        public int dwShowOsd;// 棰勮鐨勫浘璞′笂鏄惁鏄剧ずOSD,0-涓嶆樉绀�,1-鏄剧ず 鍖哄煙澶у皬704*576
+        public short wOSDTopLeftX;                /* OSD鐨剎鍧愭爣 */
+        public short wOSDTopLeftY;                /* OSD鐨剏鍧愭爣 */
+        public byte byOSDType;                    /* OSD绫诲瀷(涓昏鏄勾鏈堟棩鏍煎紡) */
+        /* 0: XXXX-XX-XX 骞存湀鏃� */
+        /* 1: XX-XX-XXXX 鏈堟棩骞� */
+        /* 2: XXXX骞碭X鏈圶X鏃� */
+        /* 3: XX鏈圶X鏃XXX骞� */
+        /* 4: XX-XX-XXXX 鏃ユ湀骞�*/
+        /* 5: XX鏃X鏈圶XXX骞� */
+        byte byDispWeek;                /* 鏄惁鏄剧ず鏄熸湡 */
+        byte byOSDAttrib;                /* OSD灞炴��:閫忔槑锛岄棯鐑� */
+        /* 0: 涓嶆樉绀篛SD */
+        /* 1: 閫忔槑,闂儊 */
+        /* 2: 閫忔槑,涓嶉棯鐑� */
+        /* 3: 闂儊,涓嶉�忔槑 */
+        /* 4: 涓嶉�忔槑,涓嶉棯鐑� */
+        public byte reservedData2;
+
+
+    }
+
+    public static class NET_DVR_MULTI_STREAM_COMPRESSIONCFG_COND extends Structure {
+        public int dwSize;
+        public NET_DVR_STREAM_INFO struStreamInfo = new NET_DVR_STREAM_INFO();
+        public int dwStreamType;
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_MULTI_STREAM_COMPRESSIONCFG extends Structure {
+        public int dwSize;
+        public int dwStreamType;
+        public NET_DVR_COMPRESSION_INFO_V30 struStreamPara = new NET_DVR_COMPRESSION_INFO_V30();
+        public byte[] byRes = new byte[80];
+    }
+
+    //鐮佹祦鍘嬬缉鍙傛暟(瀛愮粨鏋�)(9000鎵╁睍)
+    public static class NET_DVR_COMPRESSION_INFO_V30 extends Structure {
+        public byte byStreamType;        //鐮佹祦绫诲瀷 0-瑙嗛娴�, 1-澶嶅悎娴�
+        public byte byResolution;    //鍒嗚鲸鐜�0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF 5锛堜繚鐣欙級16-VGA锛�640*480锛� 17-UXGA锛�1600*1200锛� 18-SVGA 锛�800*600锛�19-HD720p锛�1280*720锛�20-XVGA  21-HD900p
+        public byte byBitrateType;        //鐮佺巼绫诲瀷 0:瀹氱爜鐜囷紝1:鍙樼爜鐜�
+        public byte byPicQuality;        //鍥捐薄璐ㄩ噺 0-鏈�濂� 1-娆″ソ 2-杈冨ソ 3-涓�鑸� 4-杈冨樊 5-宸�
+        public int dwVideoBitrate;    //瑙嗛鐮佺巼 0-淇濈暀 1-16K 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048鏈�楂樹綅(31浣�)缃垚1琛ㄧず鏄嚜瀹氫箟鐮佹祦, 0-30浣嶈〃绀虹爜娴佸�笺��
+        public int dwVideoFrameRate;    //甯х巼 0-鍏ㄩ儴; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20; V2.0鐗堟湰涓柊鍔�14-15; 15-18; 16-22;
+        public short wIntervalFrameI;  //I甯ч棿闅�
+        public byte byIntervalBPFrame;//0-BBP甯�; 1-BP甯�; 2-鍗昉甯�
+        public byte byENumber;        //E甯ф暟閲忥紙淇濈暀锛�
+        public byte byVideoEncType;//瑙嗛缂栫爜绫诲瀷 0 hik264;1鏍囧噯h264; 2鏍囧噯mpeg4;
+        public byte byAudioEncType;//闊抽缂栫爜绫诲瀷 0 G722
+        public byte[] byres = new byte[10];
+
+
+    }
+
+    //閫氶亾鍘嬬缉鍙傛暟(9000鎵╁睍)
+    public static class NET_DVR_COMPRESSIONCFG_V30 extends Structure {
+        public int dwSize;
+        public NET_DVR_COMPRESSION_INFO_V30 struNormHighRecordPara;    //褰曞儚 瀵瑰簲8000鐨勬櫘閫�
+        public NET_DVR_COMPRESSION_INFO_V30 struRes;   //淇濈暀 String[28];
+        public NET_DVR_COMPRESSION_INFO_V30 struEventRecordPara;       //浜嬩欢瑙﹀彂鍘嬬缉鍙傛暟
+        public NET_DVR_COMPRESSION_INFO_V30 struNetPara;               //缃戜紶(瀛愮爜娴�)
+
+
+    }
+
+    //鍏ㄥぉ褰曞儚鍙傛暟缁撴瀯浣�
+    public static class NET_DVR_RECORDDAY_V40 extends Structure {
+        public byte byAllDayRecord; /* 鏄惁鍏ㄥぉ褰曞儚 0-鍚� 1-鏄�*/
+        /*褰曞儚绫诲瀷锛�0:瀹氭椂褰曞儚锛�1:绉诲姩渚︽祴锛�2:鎶ヨ褰曞儚锛�3:鍔ㄦ祴|鎶ヨ锛�4:鍔ㄦ祴&鎶ヨ 5:鍛戒护瑙﹀彂,
+        6-鏅鸿兘鎶ヨ褰曞儚锛�10-PIR鎶ヨ锛�11-鏃犵嚎鎶ヨ锛�12-鍛兼晳鎶ヨ锛�13-鍏ㄩ儴浜嬩欢,14-鏅鸿兘浜ら�氫簨浠�,
+        15-瓒婄晫渚︽祴,16-鍖哄煙鍏ヤ镜,17-澹伴煶寮傚父,18-鍦烘櫙鍙樻洿渚︽祴,
+        19-鏅鸿兘渚︽祴(瓒婄晫渚︽祴|鍖哄煙鍏ヤ镜|浜鸿劯渚︽祴|澹伴煶寮傚父|鍦烘櫙鍙樻洿渚︽祴),20锛嶄汉鑴镐睛娴�,21-POS褰曞儚,
+        22-杩涘叆鍖哄煙渚︽祴, 23-绂诲紑鍖哄煙渚︽祴,24-寰樺緤渚︽祴,25-浜哄憳鑱氶泦渚︽祴,26-蹇�熻繍鍔ㄤ睛娴�,27-鍋滆溅渚︽祴,
+        28-鐗╁搧閬楃暀渚︽祴,29-鐗╁搧鎷垮彇渚︽祴,30-鐏偣妫�娴嬶紝31-闃茬牬鍧忔娴�,32-鎵撴灦鏂楁浜嬩欢(鍙告硶),33-璧疯韩浜嬩欢(鍙告硶), 34-鐬岀潯浜嬩欢(鍙告硶)
+        35-鑸瑰彧妫�娴�, 36-娴嬫俯棰勮锛�37-娴嬫俯鎶ヨ锛�38-娓╁樊鎶ヨ锛�39-绂荤嚎娴嬫俯鎶ヨ,40-闃插尯鎶ヨ锛�41-绱ф�ユ眰鍔�,42-涓氬姟鍜ㄨ,43-璧疯韩妫�娴�,44-鎶樼嚎鏀�楂�,45-濡傚帟瓒呮椂,46-浜鸿劯鎶撴媿,47-闈炴硶鎽嗘憡,48-鐩爣鎶撴媿,
+        49-鍓х儓杩愬姩锛�50绂诲矖妫�娴嬶紝51-璧风珛锛�52浜烘暟鍙樺寲  53-搴熸皵鎺掓斁鏄剧ず  54-鐏板害鎶ヨ*/
+        public byte byRecordType;
+        public byte[] byRes = new byte[62];
+    }
+
+    //鏃堕棿娈靛綍鍍忓弬鏁�
+    public static class NET_DVR_RECORDSCHED_V40 extends Structure {
+        public NET_DVR_SCHEDTIME  struRecordTime; //褰曞儚鏃堕棿娈�
+        public byte byRecordType;
+        /*褰曞儚绫诲瀷锛�0:瀹氭椂褰曞儚锛�1:绉诲姩渚︽祴锛�2:鎶ヨ褰曞儚锛�3:鍔ㄦ祴|鎶ヨ锛�4:鍔ㄦ祴&鎶ヨ 5:鍛戒护瑙﹀彂,
+        6-鏅鸿兘鎶ヨ褰曞儚锛�10-PIR鎶ヨ锛�11-鏃犵嚎鎶ヨ锛�12-鍛兼晳鎶ヨ锛�13-鍏ㄩ儴浜嬩欢,14-鏅鸿兘浜ら�氫簨浠�,
+        15-瓒婄晫渚︽祴,16-鍖哄煙鍏ヤ镜,17-澹伴煶寮傚父,18-鍦烘櫙鍙樻洿渚︽祴,
+        19-鏅鸿兘渚︽祴(瓒婄晫渚︽祴|鍖哄煙鍏ヤ镜|浜鸿劯渚︽祴|澹伴煶寮傚父|鍦烘櫙鍙樻洿渚︽祴),20锛嶄汉鑴镐睛娴�,21-POS褰曞儚,
+        22-杩涘叆鍖哄煙渚︽祴, 23-绂诲紑鍖哄煙渚︽祴,24-寰樺緤渚︽祴,25-浜哄憳鑱氶泦渚︽祴,26-蹇�熻繍鍔ㄤ睛娴�,27-鍋滆溅渚︽祴,
+        28-鐗╁搧閬楃暀渚︽祴,29-鐗╁搧鎷垮彇渚︽祴,30-鐏偣妫�娴嬶紝31-闃茬牬鍧忔娴�,32-鎵撴灦鏂楁浜嬩欢(鍙告硶),33-璧疯韩浜嬩欢(鍙告硶), 34-鐬岀潯浜嬩欢(鍙告硶)
+        35-鑸瑰彧妫�娴�, 36-娴嬫俯棰勮锛�37-娴嬫俯鎶ヨ锛�38-娓╁樊鎶ヨ锛�39-绂荤嚎娴嬫俯鎶ヨ,40-闃插尯鎶ヨ锛�41-绱ф�ユ眰鍔�,42-涓氬姟鍜ㄨ,43-璧疯韩妫�娴�,44-鎶樼嚎鏀�楂�,45-濡傚帟瓒呮椂锛�46-浜鸿劯鎶撴媿锛�47-闈炴硶鎽嗘憡,48-鐩爣鎶撴媿,
+        49-鍓х儓杩愬姩锛�50绂诲矖妫�娴嬶紝51-璧风珛锛�52浜烘暟鍙樺寲 53-搴熸皵鎺掓斁鏄剧ず 54-鐏板害鎶ヨ*/
+        public byte[] byRes = new byte[31];
+    }
+
+    public static class RECORDSCHEDARRAY extends Structure {
+        public NET_DVR_RECORDSCHED_V40[] wRightPlan = new NET_DVR_RECORDSCHED_V40[MAX_TIMESEGMENT_V30];
+    }
+
+    //閫氶亾褰曞儚鍙傛暟
+    public static class NET_DVR_RECORD_V40 extends Structure {
+        public int    dwSize;
+        public int    dwRecord;/*鏄惁褰曞儚 0-鍚� 1-鏄�*/
+        public NET_DVR_RECORDDAY_V40[] struRecAllDay = new NET_DVR_RECORDDAY_V40[MAX_DAYS];
+        public RECORDSCHEDARRAY[] struRecordSched = new RECORDSCHEDARRAY[MAX_DAYS];
+        public int    dwRecordTime;/* 褰曡薄寤舵椂闀垮害 0-5绉掞紝 1-10绉掞紝 2-30绉掞紝 3-1鍒嗛挓锛� 4-2鍒嗛挓锛� 5-5鍒嗛挓锛� 6-10鍒嗛挓*/
+        public int    dwPreRecordTime;/* 棰勫綍鏃堕棿 0-涓嶉褰� 1-5绉� 2-10绉� 3-15绉� 4-20绉� 5-25绉� 6-30绉� 7-0xffffffff(灏藉彲鑳介褰�) */
+        public int    dwRecorderDuration;/* 褰曞儚淇濆瓨鐨勬渶闀挎椂闂� */
+        public byte    byRedundancyRec;/*鏄惁鍐椾綑褰曞儚,閲嶈鏁版嵁鍙屽浠斤細0/1*/
+        public byte    byAudioRec;/*褰曞儚鏃跺鍚堟祦缂栫爜鏃舵槸鍚﹁褰曢煶棰戞暟鎹細鍥藉鏈夋娉曡*/
+        public byte    byStreamType;// 0-涓荤爜娴侊紝1-瀛愮爜娴侊紝2-涓诲瓙鐮佹祦鍚屾椂 3-涓夌爜娴�
+        public byte    byPassbackRecord;// 0:涓嶅洖浼犲綍鍍� 1锛氬洖浼犲綍鍍�
+        public short    wLockDuration;// 褰曞儚閿佸畾鏃堕暱锛屽崟浣嶅皬鏃� 0琛ㄧず涓嶉攣瀹氾紝0xffff琛ㄧず姘镐箙閿佸畾锛屽綍鍍忔鐨勬椂闀垮ぇ浜庨攣瀹氱殑鎸佺画鏃堕暱鐨勫綍鍍忥紝灏嗕笉浼氶攣瀹�
+        public byte    byRecordBackup;// 0:褰曞儚涓嶅瓨妗� 1锛氬綍鍍忓瓨妗�
+        public byte     bySVCLevel;//SVC鎶藉抚绫诲瀷锛�0-涓嶆娊锛�1-鎶戒簩鍒嗕箣涓� 2-鎶藉洓鍒嗕箣涓�
+        public byte    byRecordManage;//褰曞儚璋冨害锛�0-鍚敤锛� 1-涓嶅惎鐢�; 鍚敤鏃惰繘琛屽畾鏃跺綍鍍忥紱涓嶅惎鐢ㄦ椂涓嶈繘琛屽畾鏃跺綍鍍忥紝浣嗘槸褰曞儚璁″垝浠嶅湪浣跨敤锛屾瘮濡傜Щ鍔ㄤ睛娴嬶紝鍥炰紶閮借繕鍦ㄦ寜杩欐潯褰曞儚璁″垝杩涜
+        public byte    byExtraSaveAudio;//闊抽鍗曠嫭瀛樺偍
+        /*寮�鍚櫤鑳藉綍鍍忓姛鑳藉悗锛岀畻娉曞簱鏄嚜鍔ㄥ惎鐢ㄦ櫤鑳藉綍鍍忕畻娉曪紝鍏跺姛鑳戒负鑻ュ綍鍍忎腑鏃犵洰鏍囧嚭鐜帮紝浼氶檷浣庣爜鐜囥�佸抚鐜囷紝鑰岀洰鏍囧嚭鐜版椂鍙堟仮澶嶅叏鐮佺巼鍙婂抚鐜囷紝浠庤�岃揪鍒板噺灏戣祫婧愭秷鑰楃殑鐩殑*/
+        public byte   byIntelligentRecord;//鏄惁寮�鍚櫤鑳藉綍鍍忓姛鑳� 0-鍚� 1-鏄�
+        public byte[] byRes = new byte[125];
+    }
+
+
+
+    public static class NET_DVR_COMPRESSION_INFO extends Structure {//鐮佹祦鍘嬬缉鍙傛暟(瀛愮粨鏋�)
+        public byte byStreamType;        //鐮佹祦绫诲瀷0-瑙嗛娴�,1-澶嶅悎娴�,琛ㄧず鍘嬬缉鍙傛暟鏃舵渶楂樹綅琛ㄧず鏄惁鍚敤鍘嬬缉鍙傛暟
+        public byte byResolution;    //鍒嗚鲸鐜�0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF, 5-2QCIF(352X144)(杞﹁浇涓撶敤)
+        public byte byBitrateType;        //鐮佺巼绫诲瀷0:鍙樼爜鐜囷紝1:瀹氱爜鐜�
+        public byte byPicQuality;        //鍥捐薄璐ㄩ噺 0-鏈�濂� 1-娆″ソ 2-杈冨ソ 3-涓�鑸� 4-杈冨樊 5-宸�
+        public int dwVideoBitrate;    //瑙嗛鐮佺巼 0-淇濈暀 1-16K(淇濈暀) 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
+        // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
+        //鏈�楂樹綅(31浣�)缃垚1琛ㄧず鏄嚜瀹氫箟鐮佹祦, 0-30浣嶈〃绀虹爜娴佸��(MIN-32K MAX-8192K)銆�
+        public int dwVideoFrameRate;    //甯х巼 0-鍏ㄩ儴; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20;
+
+
+    }
+
+    public static class NET_DVR_COMPRESSIONCFG extends Structure {//閫氶亾鍘嬬缉鍙傛暟
+        public int dwSize;
+        public NET_DVR_COMPRESSION_INFO struRecordPara; //褰曞儚/浜嬩欢瑙﹀彂褰曞儚
+        public NET_DVR_COMPRESSION_INFO struNetPara;    //缃戜紶/淇濈暀
+
+
+    }
+
+
+    public static class NET_DVR_COMPRESSION_INFO_EX extends Structure {//鐮佹祦鍘嬬缉鍙傛暟(瀛愮粨鏋�)(鎵╁睍) 澧炲姞I甯ч棿闅�
+        public byte byStreamType;        //鐮佹祦绫诲瀷0-瑙嗛娴�, 1-澶嶅悎娴�
+        public byte byResolution;    //鍒嗚鲸鐜�0-DCIF 1-CIF, 2-QCIF, 3-4CIF, 4-2CIF, 5-2QCIF(352X144)(杞﹁浇涓撶敤)
+        public byte byBitrateType;        //鐮佺巼绫诲瀷0:鍙樼爜鐜囷紝1:瀹氱爜鐜�
+        public byte byPicQuality;        //鍥捐薄璐ㄩ噺 0-鏈�濂� 1-娆″ソ 2-杈冨ソ 3-涓�鑸� 4-杈冨樊 5-宸�
+        public int dwVideoBitrate;    //瑙嗛鐮佺巼 0-淇濈暀 1-16K(淇濈暀) 2-32K 3-48k 4-64K 5-80K 6-96K 7-128K 8-160k 9-192K 10-224K 11-256K 12-320K
+        // 13-384K 14-448K 15-512K 16-640K 17-768K 18-896K 19-1024K 20-1280K 21-1536K 22-1792K 23-2048K
+        //鏈�楂樹綅(31浣�)缃垚1琛ㄧず鏄嚜瀹氫箟鐮佹祦, 0-30浣嶈〃绀虹爜娴佸��(MIN-32K MAX-8192K)銆�
+        public int dwVideoFrameRate;    //甯х巼 0-鍏ㄩ儴; 1-1/16; 2-1/8; 3-1/4; 4-1/2; 5-1; 6-2; 7-4; 8-6; 9-8; 10-10; 11-12; 12-16; 13-20, //V2.0澧炲姞14-15, 15-18, 16-22;
+        public short wIntervalFrameI;  //I甯ч棿闅�
+        //2006-08-11 澧炲姞鍗昉甯х殑閰嶇疆鎺ュ彛锛屽彲浠ユ敼鍠勫疄鏃舵祦寤舵椂闂
+        public byte byIntervalBPFrame;//0-BBP甯�; 1-BP甯�; 2-鍗昉甯�
+        public byte byENumber;//E甯ф暟閲�
+
+
+    }
+
+    public static class NET_DVR_RECORDSCHED extends Structure //鏃堕棿娈靛綍鍍忓弬鏁伴厤缃�(瀛愮粨鏋�)
+    {
+        public NET_DVR_SCHEDTIME struRecordTime = new NET_DVR_SCHEDTIME();
+        public byte byRecordType;    //0:瀹氭椂褰曞儚锛�1:绉诲姩渚︽祴锛�2:鎶ヨ褰曞儚锛�3:鍔ㄦ祴|鎶ヨ锛�4:鍔ㄦ祴&鎶ヨ, 5:鍛戒护瑙﹀彂, 6: 鏅鸿兘褰曞儚
+        public byte[] reservedData = new byte[3];
+
+
+    }
+
+    public static class NET_DVR_RECORDDAY extends Structure //鍏ㄥぉ褰曞儚鍙傛暟閰嶇疆(瀛愮粨鏋�)
+    {
+        public short wAllDayRecord;                /* 鏄惁鍏ㄥぉ褰曞儚 0-鍚� 1-鏄�*/
+        public byte byRecordType;                /* 褰曡薄绫诲瀷 0:瀹氭椂褰曞儚锛�1:绉诲姩渚︽祴锛�2:鎶ヨ褰曞儚锛�3:鍔ㄦ祴|鎶ヨ锛�4:鍔ㄦ祴&鎶ヨ 5:鍛戒护瑙﹀彂, 6: 鏅鸿兘褰曞儚*/
+        public byte reservedData;
+
+
+    }
+
+    public static class NET_DVR_RECORDSCHEDWEEK extends Structure {
+        public NET_DVR_RECORDSCHED[] struRecordSched = new NET_DVR_RECORDSCHED[MAX_TIMESEGMENT_V30];
+
+
+    }
+
+    public static class NET_DVR_RECORD_V30 extends Structure {    //閫氶亾褰曞儚鍙傛暟閰嶇疆(9000鎵╁睍)
+        public int dwSize;
+        public int dwRecord;                        /*鏄惁褰曞儚 0-鍚� 1-鏄�*/
+        public NET_DVR_RECORDDAY[] struRecAllDay = new NET_DVR_RECORDDAY[MAX_DAYS];
+        public NET_DVR_RECORDSCHEDWEEK[] struRecordSched = new NET_DVR_RECORDSCHEDWEEK[MAX_DAYS];
+        public int dwRecordTime;                    /* 褰曡薄寤舵椂闀垮害 0-5绉掞紝 1-20绉掞紝 2-30绉掞紝 3-1鍒嗛挓锛� 4-2鍒嗛挓锛� 5-5鍒嗛挓锛� 6-10鍒嗛挓*/
+        public int dwPreRecordTime;                /* 棰勫綍鏃堕棿 0-涓嶉褰� 1-5绉� 2-10绉� 3-15绉� 4-20绉� 5-25绉� 6-30绉� 7-0xffffffff(灏藉彲鑳介褰�) */
+        public int dwRecorderDuration;                /* 褰曞儚淇濆瓨鐨勬渶闀挎椂闂� */
+        public byte byRedundancyRec;    /*鏄惁鍐椾綑褰曞儚,閲嶈鏁版嵁鍙屽浠斤細0/1*/
+        public byte byAudioRec;        /*褰曞儚鏃跺鍚堟祦缂栫爜鏃舵槸鍚﹁褰曢煶棰戞暟鎹細鍥藉鏈夋娉曡*/
+        public byte[] byReserve = new byte[10];
+
+
+    }
+
+    public static class NET_DVR_RECORD extends Structure { //閫氶亾褰曞儚鍙傛暟閰嶇疆
+        public int dwSize;
+        public int dwRecord;  /*鏄惁褰曞儚 0-鍚� 1-鏄�*/
+        public NET_DVR_RECORDDAY[] struRecAllDay = new NET_DVR_RECORDDAY[MAX_DAYS];
+        public NET_DVR_RECORDSCHEDWEEK[] struRecordSched = new NET_DVR_RECORDSCHEDWEEK[MAX_DAYS];
+        public int dwRecordTime;    /* 褰曡薄鏃堕棿闀垮害 0-5绉掞紝 1-20绉掞紝 2-30绉掞紝 3-1鍒嗛挓锛� 4-2鍒嗛挓锛� 5-5鍒嗛挓锛� 6-10鍒嗛挓*/
+        public int dwPreRecordTime;    /* 棰勫綍鏃堕棿 0-涓嶉褰� 1-5绉� 2-10绉� 3-15绉� 4-20绉� 5-25绉� 6-30绉� 7-0xffffffff(灏藉彲鑳介褰�) */
+
+
+    }
+
+    public static class NET_DVR_STATFRAME extends Structure { //鍗曞抚缁熻鍙傛暟
+        public int dwRelativeTime;
+        public int dwAbsTime;  /*缁熻缁濆鏃舵爣*/
+        public byte[] byRes = new byte[92];
+
+
+    }
+
+    public static class NET_DVR_STATTIME extends Structure { //鍗曞抚缁熻鍙傛暟
+        public NET_DVR_TIME tmStart;  //缁熻寮�濮嬫椂闂�
+        public NET_DVR_TIME tmEnd;    //缁熻缁撴潫鏃堕棿
+        public byte[] byRes = new byte[92];
+
+
+    }
+
+    public static class UNION_PDC_STATPARAM extends Union {
+        // public byte[] byLen = new byte[140];
+        public NET_DVR_STATFRAME struStatFrame;
+        public NET_DVR_STATTIME struStatTime;
+
+
+    }
+
+    public static class NET_DVR_PDC_ALRAM_INFO extends Structure { //閫氶亾褰曞儚鍙傛暟閰嶇疆
+        public int dwSize;
+        public byte byMode;  /*0-鍗曞抚缁熻缁撴灉锛�1-鏈�灏忔椂闂存缁熻缁撴灉*/
+        public byte byChannel;
+        public byte bySmart;         //涓撲笟鏅鸿兘杩斿洖0锛孲mart 杩斿洖 1
+        public byte byRes1;          // 淇濈暀瀛楄妭
+        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();             //鍓嶇璁惧淇℃伅
+        public UNION_PDC_STATPARAM uStatModeParam = new UNION_PDC_STATPARAM();
+        public int dwLeaveNum;    /* 绂诲紑浜烘暟 */
+        public int dwEnterNum;    /* 杩涘叆浜烘暟 */
+        public byte byBrokenNetHttp;     //鏂綉缁紶鏍囧織浣嶏紝0-涓嶆槸閲嶄紶鏁版嵁锛�1-閲嶄紶鏁版嵁
+        public byte byRes3;
+        public short wDevInfoIvmsChannelEx;     //涓嶯ET_VCA_DEV_INFO閲岀殑byIvmsChannel鍚箟鐩稿悓锛岃兘琛ㄧず鏇村ぇ鐨勫�笺�傝�佸鎴风鐢╞yIvmsChannel鑳界户缁吋瀹癸紝浣嗘槸鏈�澶у埌255銆傛柊瀹㈡埛绔増鏈浣跨敤wDevInfoIvmsChannelEx
+        public int dwPassingNum;        // 缁忚繃浜烘暟锛堣繘鍏ュ尯鍩熷悗寰樺緤娌℃湁瑙﹀彂杩涘叆銆佺寮�鐨勪汉鏁帮級
+        public int dwChildLeaveNum;        // 灏忓绂诲紑浜烘暟
+        public int dwChildEnterNum;        // 灏忓杩涘叆浜烘暟
+        public int dwDuplicatePeople;        // 閲嶅浜烘暟
+        public int dwXmlLen;//XML閫忎紶鏁版嵁闀垮害, 鍗矱ventNotificationAlert XML Block鐨勬暟鎹暱搴�
+        public Pointer pXmlBuf; // XML鎶ヨ淇℃伅鎸囬拡,鍏禭ML瀵瑰簲鍒癊ventNotificationAlert XML Block
+        public byte[] byRes2 = new byte[8];
+        public void read() {
+            super.read();
+            switch (byMode) {
+                case 0:
+                    uStatModeParam.setType(NET_DVR_STATFRAME.class);
+                    break;
+                case 1:
+                    uStatModeParam.setType(NET_DVR_STATTIME.class);
+                    break;
+                default:
+                    break;
+            }
+            uStatModeParam.read();
+        }
+
+        public void write() {
+            super.write();
+            uStatModeParam.write();
+        }
+
+
+    }
+
+    //浜戝彴鍗忚琛ㄧ粨鏋勯厤缃�
+    public static class NET_DVR_PTZ_PROTOCOL extends Structure {
+        public int dwType;               /*瑙g爜鍣ㄧ被鍨嬪�硷紝浠�1寮�濮嬭繛缁�掑*/
+        public byte[] byDescribe = new byte[DESC_LEN]; /*瑙g爜鍣ㄧ殑鎻忚堪绗︼紝鍜�8000涓殑涓�鑷�*/
+
+
+    }
+
+    public static class NET_DVR_PTZCFG extends Structure {
+        public int dwSize;
+        public NET_DVR_PTZ_PROTOCOL[] struPtz = new NET_DVR_PTZ_PROTOCOL[PTZ_PROTOCOL_NUM];/*鏈�澶�200涓璓TZ鍗忚*/
+        public int dwPtzNum;           /*鏈夋晥鐨刾tz鍗忚鏁扮洰锛屼粠0寮�濮�(鍗宠绠楁椂鍔�1)*/
+        public byte[] byRes = new byte[8];
+
+
+    }
+
+    /***************************
+     * 浜戝彴绫诲瀷(end)
+     ******************************/
+    public static class NET_DVR_DECODERCFG_V30 extends Structure {//閫氶亾瑙g爜鍣�(浜戝彴)鍙傛暟閰嶇疆(9000鎵╁睍)
+        public int dwSize;
+        public int dwBaudRate;       //娉㈢壒鐜�(bps)锛�0锛�50锛�1锛�75锛�2锛�110锛�3锛�150锛�4锛�300锛�5锛�600锛�6锛�1200锛�7锛�2400锛�8锛�4800锛�9锛�9600锛�10锛�19200锛� 11锛�38400锛�12锛�57600锛�13锛�76800锛�14锛�115.2k;
+        public byte byDataBit;         // 鏁版嵁鏈夊嚑浣� 0锛�5浣嶏紝1锛�6浣嶏紝2锛�7浣嶏紝3锛�8浣�;
+        public byte byStopBit;         // 鍋滄浣� 0锛�1浣嶏紝1锛�2浣�;
+        public byte byParity;          // 鏍¢獙 0锛嶆棤鏍¢獙锛�1锛嶅鏍¢獙锛�2锛嶅伓鏍¢獙;
+        public byte byFlowcontrol;     // 0锛嶆棤锛�1锛嶈蒋娴佹帶,2-纭祦鎺�
+        public short wDecoderType;      //瑙g爜鍣ㄧ被鍨�, 0锛峐ouLi锛�1锛峀iLin-1016锛�2锛峀iLin-820锛�3锛峆elco-p锛�4锛岲M DynaColor锛�5锛岺D600锛�6锛岼C-4116锛�7锛峆elco-d WX锛�8锛峆elco-d PICO
+        public short wDecoderAddress;    /*瑙g爜鍣ㄥ湴鍧�:0 - 255*/
+        public byte[] bySetPreset = new byte[MAX_PRESET_V30];        /* 棰勭疆鐐规槸鍚﹁缃�,0-娌℃湁璁剧疆,1-璁剧疆*/
+        public byte[] bySetCruise = new byte[MAX_CRUISE_V30];        /* 宸¤埅鏄惁璁剧疆: 0-娌℃湁璁剧疆,1-璁剧疆 */
+        public byte[] bySetTrack = new byte[MAX_TRACK_V30];            /* 鏄惁璁剧疆,0-娌℃湁璁剧疆,1-璁剧疆*/
+
+
+    }
+
+    public static class NET_DVR_DECODERCFG extends Structure {//閫氶亾瑙g爜鍣�(浜戝彴)鍙傛暟閰嶇疆
+        public int dwSize;
+        public int dwBaudRate;       //娉㈢壒鐜�(bps)锛�0锛�50锛�1锛�75锛�2锛�110锛�3锛�150锛�4锛�300锛�5锛�600锛�6锛�1200锛�7锛�2400锛�8锛�4800锛�9锛�9600锛�10锛�19200锛� 11锛�38400锛�12锛�57600锛�13锛�76800锛�14锛�115.2k;
+        public byte byDataBit;         // 鏁版嵁鏈夊嚑浣� 0锛�5浣嶏紝1锛�6浣嶏紝2锛�7浣嶏紝3锛�8浣�;
+        public byte byStopBit;         // 鍋滄浣� 0锛�1浣嶏紝1锛�2浣�;
+        public byte byParity;          // 鏍¢獙 0锛嶆棤鏍¢獙锛�1锛嶅鏍¢獙锛�2锛嶅伓鏍¢獙;
+        public byte byFlowcontrol;     // 0锛嶆棤锛�1锛嶈蒋娴佹帶,2-纭祦鎺�
+        public short wDecoderType;      //瑙g爜鍣ㄧ被鍨�, 0锛峐ouLi锛�1锛峀iLin-1016锛�2锛峀iLin-820锛�3锛峆elco-p锛�4锛岲M DynaColor锛�5锛岺D600锛�6锛岼C-4116锛�7锛峆elco-d WX锛�8锛峆elco-d PICO
+        public short wDecoderAddress;    /*瑙g爜鍣ㄥ湴鍧�:0 - 255*/
+        public byte[] bySetPreset = new byte[MAX_PRESET];        /* 棰勭疆鐐规槸鍚﹁缃�,0-娌℃湁璁剧疆,1-璁剧疆*/
+        public byte[] bySetCruise = new byte[MAX_CRUISE];        /* 宸¤埅鏄惁璁剧疆: 0-娌℃湁璁剧疆,1-璁剧疆 */
+        public byte[] bySetTrack = new byte[MAX_TRACK];            /* 鏄惁璁剧疆,0-娌℃湁璁剧疆,1-璁剧疆*/
+
+
+    }
+
+    public static class NET_DVR_PPPCFG_V30 extends Structure {//ppp鍙傛暟閰嶇疆(瀛愮粨鏋�)
+        public NET_DVR_IPADDR struRemoteIP;    //杩滅IP鍦板潃
+        public NET_DVR_IPADDR struLocalIP;        //鏈湴IP鍦板潃
+        public byte[] sLocalIPMask = new byte[16];            //鏈湴IP鍦板潃鎺╃爜
+        public byte[] sUsername = new byte[NAME_LEN];        /* 鐢ㄦ埛鍚� */
+        public byte[] sPassword = new byte[PASSWD_LEN];        /* 瀵嗙爜 */
+        public byte byPPPMode;                    //PPP妯″紡, 0锛嶄富鍔紝1锛嶈鍔�
+        public byte byRedial;                    //鏄惁鍥炴嫧 锛�0-鍚�,1-鏄�
+        public byte byRedialMode;                //鍥炴嫧妯″紡,0-鐢辨嫧鍏ヨ�呮寚瀹�,1-棰勭疆鍥炴嫧鍙风爜
+        public byte byDataEncrypt;                //鏁版嵁鍔犲瘑,0-鍚�,1-鏄�
+        public int dwMTU;                    //MTU
+        public byte[] sTelephoneNumber = new byte[PHONENUMBER_LEN];   //鐢佃瘽鍙风爜
+
+
+    }
+
+    public static class NET_DVR_PPPCFG extends Structure {//ppp鍙傛暟閰嶇疆(瀛愮粨鏋�)
+        public byte[] sRemoteIP = new byte[16];                //杩滅IP鍦板潃
+        public byte[] sLocalIP = new byte[16];                //鏈湴IP鍦板潃
+        public byte[] sLocalIPMask = new byte[16];            //鏈湴IP鍦板潃鎺╃爜
+        public byte[] sUsername = new byte[NAME_LEN];        /* 鐢ㄦ埛鍚� */
+        public byte[] sPassword = new byte[PASSWD_LEN];        /* 瀵嗙爜 */
+        public byte byPPPMode;                    //PPP妯″紡, 0锛嶄富鍔紝1锛嶈鍔�
+        public byte byRedial;                    //鏄惁鍥炴嫧 锛�0-鍚�,1-鏄�
+        public byte byRedialMode;                //鍥炴嫧妯″紡,0-鐢辨嫧鍏ヨ�呮寚瀹�,1-棰勭疆鍥炴嫧鍙风爜
+        public byte byDataEncrypt;                //鏁版嵁鍔犲瘑,0-鍚�,1-鏄�
+        public int dwMTU;                    //MTU
+        public byte[] sTelephoneNumber = new byte[PHONENUMBER_LEN];   //鐢佃瘽鍙风爜
+
+
+    }
+
+
+    public static class NET_DVR_SINGLE_RS232 extends Structure {//RS232涓插彛鍙傛暟閰嶇疆(9000鎵╁睍)
+        public int dwBaudRate;   /*娉㈢壒鐜�(bps)锛�0锛�50锛�1锛�75锛�2锛�110锛�3锛�150锛�4锛�300锛�5锛�600锛�6锛�1200锛�7锛�2400锛�8锛�4800锛�9锛�9600锛�10锛�19200锛� 11锛�38400锛�12锛�57600锛�13锛�76800锛�14锛�115.2k;*/
+        public byte byDataBit;     /* 鏁版嵁鏈夊嚑浣� 0锛�5浣嶏紝1锛�6浣嶏紝2锛�7浣嶏紝3锛�8浣� */
+        public byte byStopBit;     /* 鍋滄浣� 0锛�1浣嶏紝1锛�2浣� */
+        public byte byParity;      /* 鏍¢獙 0锛嶆棤鏍¢獙锛�1锛嶅鏍¢獙锛�2锛嶅伓鏍¢獙 */
+        public byte byFlowcontrol; /* 0锛嶆棤锛�1锛嶈蒋娴佹帶,2-纭祦鎺� */
+        public int dwWorkMode;   /* 宸ヤ綔妯″紡锛�0锛�232涓插彛鐢ㄤ簬PPP鎷ㄥ彿锛�1锛�232涓插彛鐢ㄤ簬鍙傛暟鎺у埗锛�2锛嶉�忔槑閫氶亾 */
+
+
+    }
+
+    public static class NET_DVR_RS232CFG_V30 extends Structure {//RS232涓插彛鍙傛暟閰嶇疆(9000鎵╁睍)
+        public int dwSize;
+        public NET_DVR_SINGLE_RS232 struRs232;/*鐩墠鍙湁绗竴涓覆鍙h缃湁鏁堬紝鎵�鏈夎澶囬兘鍙敮鎸佷竴涓覆鍙o紝鍏朵粬涓冧釜淇濈暀*/
+        public byte[] byRes = new byte[84];
+        public NET_DVR_PPPCFG_V30 struPPPConfig;/*ppp鍙傛暟*/
+
+
+    }
+
+    public static class NET_DVR_RS232CFG extends Structure {//RS232涓插彛鍙傛暟閰嶇疆
+        public int dwSize;
+        public int dwBaudRate;//娉㈢壒鐜�(bps)锛�0锛�50锛�1锛�75锛�2锛�110锛�3锛�150锛�4锛�300锛�5锛�600锛�6锛�1200锛�7锛�2400锛�8锛�4800锛�9锛�9600锛�10锛�19200锛� 11锛�38400锛�12锛�57600锛�13锛�76800锛�14锛�115.2k;
+        public byte byDataBit;// 鏁版嵁鏈夊嚑浣� 0锛�5浣嶏紝1锛�6浣嶏紝2锛�7浣嶏紝3锛�8浣�;
+        public byte byStopBit;// 鍋滄浣� 0锛�1浣嶏紝1锛�2浣�;
+        public byte byParity;// 鏍¢獙 0锛嶆棤鏍¢獙锛�1锛嶅鏍¢獙锛�2锛嶅伓鏍¢獙;
+        public byte byFlowcontrol;// 0锛嶆棤锛�1锛嶈蒋娴佹帶,2-纭祦鎺�
+        public int dwWorkMode;// 宸ヤ綔妯″紡锛�0锛嶇獎甯︿紶杈�(232涓插彛鐢ㄤ簬PPP鎷ㄥ彿)锛�1锛嶆帶鍒跺彴(232涓插彛鐢ㄤ簬鍙傛暟鎺у埗)锛�2锛嶉�忔槑閫氶亾
+        public NET_DVR_PPPCFG struPPPConfig;
+
+
+    }
+
+    public static class NET_DVR_ALARMINCFG_V30 extends Structure {//鎶ヨ杈撳叆鍙傛暟閰嶇疆(9000鎵╁睍)
+        public int dwSize;
+        public byte[] sAlarmInName = new byte[NAME_LEN];    /* 鍚嶇О */
+        public byte byAlarmType;                //鎶ヨ鍣ㄧ被鍨�,0锛氬父寮�,1锛氬父闂�
+        public byte byAlarmInHandle;            /* 鏄惁澶勭悊 0-涓嶅鐞� 1-澶勭悊*/
+        public byte[] reservedData = new byte[2];
+        public NET_DVR_HANDLEEXCEPTION_V30 struAlarmHandleType;    /* 澶勭悊鏂瑰紡 */
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];//甯冮槻鏃堕棿
+        public byte[] byRelRecordChan = new byte[MAX_CHANNUM_V30]; //鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾,涓�1琛ㄧず瑙﹀彂璇ラ�氶亾
+        public byte[] byEnablePreset = new byte[MAX_CHANNUM_V30];        /* 鏄惁璋冪敤棰勭疆鐐� 0-鍚�,1-鏄�*/
+        public byte[] byPresetNo = new byte[MAX_CHANNUM_V30];            /* 璋冪敤鐨勪簯鍙伴缃偣搴忓彿,涓�涓姤璀﹁緭鍏ュ彲浠ヨ皟鐢ㄥ涓�氶亾鐨勪簯鍙伴缃偣, 0xff琛ㄧず涓嶈皟鐢ㄩ缃偣銆�*/
+        public byte[] byEnablePresetRevert = new byte[MAX_CHANNUM_V30]; /* 鏄惁鎭㈠鍒拌皟鐢ㄩ缃偣鍓嶇殑浣嶇疆(淇濈暀) */
+        public short[] wPresetRevertDelay = new short[MAX_CHANNUM_V30];    /* 鎭㈠棰勭疆鐐瑰欢鏃�(淇濈暀) */
+        public byte[] byEnableCruise = new byte[MAX_CHANNUM_V30];        /* 鏄惁璋冪敤宸¤埅 0-鍚�,1-鏄�*/
+        public byte[] byCruiseNo = new byte[MAX_CHANNUM_V30];            /* 宸¤埅 */
+        public byte[] byEnablePtzTrack = new byte[MAX_CHANNUM_V30];        /* 鏄惁璋冪敤 0-鍚�,1-鏄�*/
+        public byte[] byPTZTrack = new byte[MAX_CHANNUM_V30];            /* 璋冪敤鐨勪簯鍙扮殑搴忓彿 */
+        public byte[] byRes = new byte[16];
+
+
+    }
+
+    public static class NET_DVR_ALARMINCFG extends Structure {//鎶ヨ杈撳叆鍙傛暟閰嶇疆
+        public int dwSize;
+        public byte[] sAlarmInName = new byte[NAME_LEN];    /* 鍚嶇О */
+        public byte byAlarmType;    //鎶ヨ鍣ㄧ被鍨�,0锛氬父寮�,1锛氬父闂�
+        public byte byAlarmInHandle;    /* 鏄惁澶勭悊 0-涓嶅鐞� 1-澶勭悊*/
+        public NET_DVR_HANDLEEXCEPTION struAlarmHandleType;    /* 澶勭悊鏂瑰紡 */
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];//甯冮槻鏃堕棿
+        public byte[] byRelRecordChan = new byte[MAX_CHANNUM]; //鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾,涓�1琛ㄧず瑙﹀彂璇ラ�氶亾
+        public byte[] byEnablePreset = new byte[MAX_CHANNUM];        /* 鏄惁璋冪敤棰勭疆鐐� 0-鍚�,1-鏄�*/
+        public byte[] byPresetNo = new byte[MAX_CHANNUM];            /* 璋冪敤鐨勪簯鍙伴缃偣搴忓彿,涓�涓姤璀﹁緭鍏ュ彲浠ヨ皟鐢ㄥ涓�氶亾鐨勪簯鍙伴缃偣, 0xff琛ㄧず涓嶈皟鐢ㄩ缃偣銆�*/
+        public byte[] byEnableCruise = new byte[MAX_CHANNUM];        /* 鏄惁璋冪敤宸¤埅 0-鍚�,1-鏄�*/
+        public byte[] byCruiseNo = new byte[MAX_CHANNUM];            /* 宸¤埅 */
+        public byte[] byEnablePtzTrack = new byte[MAX_CHANNUM];        /* 鏄惁璋冪敤 0-鍚�,1-鏄�*/
+        public byte[] byPTZTrack = new byte[MAX_CHANNUM];            /* 璋冪敤鐨勪簯鍙扮殑搴忓彿 */
+
+
+    }
+
+    public static class NET_DVR_ADDIT_POSITION extends Structure {//杞﹁浇GPS淇℃伅缁撴瀯(2007-12-27)
+        public byte[] sDevName = new byte[32];        /* 璁惧鍚嶇О */
+        public int dwSpeed;            /*閫熷害*/
+        public int dwLongitude;        /* 缁忓害*/
+        public int dwLatitude;       /* 绾害*/
+        public byte[] direction = new byte[2];   /* direction[0]:'E'or'W'(涓滅粡/瑗跨粡), direction[1]:'N'or'S'(鍖楃含/鍗楃含) */
+        public byte[] res = new byte[2];              /* 淇濈暀浣� */
+
+
+    }
+
+    public static class struRecordingHost extends Structure {
+        public byte bySubAlarmType;
+        public byte[] byRes1 = new byte[3];
+        public NET_DVR_TIME_EX struRecordEndTime = new NET_DVR_TIME_EX();
+    }
+
+    public static class struAlarmHardDisk extends Structure {
+        public int dwAlarmHardDiskNum;
+
+
+    }
+
+    public static class struAlarmChannel extends Structure {
+        public int dwAlarmChanNum;
+        public int dwPicLen;//Jpeg鍥剧墖闀垮害
+        public byte byPicURL; //鍥剧墖鏁版嵁閲囩敤URL鏂瑰紡 0-浜岃繘鍒跺浘鐗囨暟鎹紝1-鍥剧墖鏁版嵁璧癠RL鏂瑰紡
+        public byte byTarget; /*0-涓嶅尯鍒嗚瘑鍒洰鏍囷紝1-璇嗗埆鐩爣涓轰汉锛�2-璇嗗埆鐩爣涓鸿溅*/
+        public byte[] byRes1 = new byte[2]; //淇濈暀
+        public Pointer pDataBuff; //鎶ヨ鍥剧墖鎴栬�呭浘鐗嘦RL
+    }
+
+    public static class struIOAlarm extends Structure {
+        public int dwAlarmInputNo;
+        public int dwTrigerAlarmOutNum;
+        public int dwTrigerRecordChanNum;
+
+
+    }
+
+    public static class NET_DVR_TIME_EX extends Structure {
+        public short wYear;
+        public byte byMonth;
+        public byte byDay;
+        public byte byHour;
+        public byte byMinute;
+        public byte bySecond;
+        public byte byRes;
+    }
+
+    public static class uStruAlarm extends Union {
+        public byte[] byUnionLen = new byte[116];
+        public struIOAlarm struioAlarm = new struIOAlarm();
+        public struAlarmHardDisk strualarmHardDisk = new struAlarmHardDisk();
+        public struAlarmChannel strualarmChannel = new struAlarmChannel();
+        public struRecordingHost strurecordingHost = new struRecordingHost();
+
+
+    }
+
+    public static class NET_DVR_ALRAM_FIXED_HEADER extends Structure {
+        public int dwAlarmType;
+        public NET_DVR_TIME_EX struAlarmTime = new NET_DVR_TIME_EX();
+        public uStruAlarm ustruAlarm = new uStruAlarm();
+        public Pointer pRes;
+        public byte byTimeDiffFlag;      /*鏃跺樊瀛楁鏄惁鏈夋晥  0-鏃跺樊鏃犳晥锛� 1-鏃跺樊鏈夋晥 */
+        public byte cTimeDifferenceH;         /*涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛� +琛ㄧず涓滃尯,锛宐yTimeDiffFlag涓�1鏃舵湁鏁�*/
+        public byte cTimeDifferenceM;        /*涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 30, 45锛� +琛ㄧず涓滃尯锛宐yTimeDiffFlag涓�1鏃舵湁鏁�*/
+        public byte byRes; //淇濈暀
+        public short wDevInfoIvmsChannel; //澧炲姞鍚庣閫忎紶鍓嶇鏃剁殑閫氶亾鍙�
+        public byte[] byRes2 = new byte[2]; //淇濈暀
+    }
+
+    public static class NET_DVR_ALARMINFO_V40 extends Structure {
+        public NET_DVR_ALRAM_FIXED_HEADER struAlarmFixedHeader = new NET_DVR_ALRAM_FIXED_HEADER();
+        public Pointer pAlarmData;
+
+
+    }
+
+    public static class NET_DVR_ALARMINFO_V30 extends Structure {//涓婁紶鎶ヨ淇℃伅(9000鎵╁睍)
+        public int dwAlarmType;/*0-淇″彿閲忔姤璀�,1-纭洏婊�,2-淇″彿涓㈠け,3锛嶇Щ鍔ㄤ睛娴�,4锛嶇‖鐩樻湭鏍煎紡鍖�,5-璇诲啓纭洏鍑洪敊,6-閬尅鎶ヨ,7-鍒跺紡涓嶅尮閰�, 8-闈炴硶璁块棶, 0xa-GPS瀹氫綅淇℃伅(杞﹁浇瀹氬埗)*/
+        public int dwAlarmInputNumber;/*鎶ヨ杈撳叆绔彛*/
+        public byte[] byAlarmOutputNumber = new byte[MAX_ALARMOUT_V30];/*瑙﹀彂鐨勮緭鍑虹鍙o紝涓�1琛ㄧず瀵瑰簲杈撳嚭*/
+        public byte[] byAlarmRelateChannel = new byte[MAX_CHANNUM_V30];/*瑙﹀彂鐨勫綍鍍忛�氶亾锛屼负1琛ㄧず瀵瑰簲褰曞儚, dwAlarmRelateChannel[0]瀵瑰簲绗�1涓�氶亾*/
+        public byte[] byChannel = new byte[MAX_CHANNUM_V30];/*dwAlarmType涓�2鎴�3,6鏃讹紝琛ㄧず鍝釜閫氶亾锛宒wChannel[0]瀵瑰簲绗�1涓�氶亾*/
+        public byte[] byDiskNumber = new byte[MAX_DISKNUM_V30];/*dwAlarmType涓�1,4,5鏃�,琛ㄧず鍝釜纭洏, dwDiskNumber[0]瀵瑰簲绗�1涓‖鐩�*/
+
+
+    }
+
+    public static class NET_DVR_ALARMINFO extends Structure {
+        public int dwAlarmType;/*0-淇″彿閲忔姤璀�,1-纭洏婊�,2-淇″彿涓㈠け,3锛嶇Щ鍔ㄤ睛娴�,4锛嶇‖鐩樻湭鏍煎紡鍖�,5-璇诲啓纭洏鍑洪敊,6-閬尅鎶ヨ,7-鍒跺紡涓嶅尮閰�, 8-闈炴硶璁块棶, 9-涓插彛鐘舵��, 0xa-GPS瀹氫綅淇℃伅(杞﹁浇瀹氬埗)*/
+        public int dwAlarmInputNumber;/*鎶ヨ杈撳叆绔彛, 褰撴姤璀︾被鍨嬩负9鏃惰鍙橀噺琛ㄧず涓插彛鐘舵��0琛ㄧず姝e父锛� -1琛ㄧず閿欒*/
+        public int[] dwAlarmOutputNumber = new int[MAX_ALARMOUT];/*瑙﹀彂鐨勮緭鍑虹鍙o紝涓�1琛ㄧず瀵瑰簲鍝竴涓緭鍑�*/
+        public int[] dwAlarmRelateChannel = new int[MAX_CHANNUM];/*瑙﹀彂鐨勫綍鍍忛�氶亾锛宒wAlarmRelateChannel[0]涓�1琛ㄧず绗�1涓�氶亾褰曞儚*/
+        public int[] dwChannel = new int[MAX_CHANNUM];/*dwAlarmType涓�2鎴�3,6鏃讹紝琛ㄧず鍝釜閫氶亾锛宒wChannel[0]浣嶅搴旂1涓�氶亾*/
+        public int[] dwDiskNumber = new int[MAX_DISKNUM];/*dwAlarmType涓�1,4,5鏃�,琛ㄧず鍝釜纭洏, dwDiskNumber[0]浣嶅搴旂1涓‖鐩�*/
+
+
+    }
+
+    public static class NET_DVR_ALARMINFO_EX extends Structure {//涓婁紶鎶ヨ淇℃伅(鏉窞绔炲ぉ瀹氬埗 2006-07-28)
+        public int dwAlarmType;/*0-淇″彿閲忔姤璀�,1-纭洏婊�,2-淇″彿涓㈠け,3锛嶇Щ鍔ㄤ睛娴�,4锛嶇‖鐩樻湭鏍煎紡鍖�,5-璇诲啓纭洏鍑洪敊,6-閬尅鎶ヨ,7-鍒跺紡涓嶅尮閰�, 8-闈炴硶璁块棶*/
+        public int dwAlarmInputNumber;/*鎶ヨ杈撳叆绔彛*/
+        public int[] dwAlarmOutputNumber = new int[MAX_ALARMOUT];/*鎶ヨ杈撳叆绔彛瀵瑰簲鐨勮緭鍑虹鍙o紝鍝竴浣嶄负1琛ㄧず瀵瑰簲鍝竴涓緭鍑�*/
+        public int[] dwAlarmRelateChannel = new int[MAX_CHANNUM];/*鎶ヨ杈撳叆绔彛瀵瑰簲鐨勫綍鍍忛�氶亾锛屽摢涓�浣嶄负1琛ㄧず瀵瑰簲鍝竴璺綍鍍�,dwAlarmRelateChannel[0]瀵瑰簲绗�1涓�氶亾*/
+        public int[] dwChannel = new int[MAX_CHANNUM];/*dwAlarmType涓�2鎴�3,6鏃讹紝琛ㄧず鍝釜閫氶亾锛宒wChannel[0]浣嶅搴旂0涓�氶亾*/
+        public int[] dwDiskNumber = new int[MAX_DISKNUM];/*dwAlarmType涓�1,4,5鏃�,琛ㄧず鍝釜纭洏*/
+        public byte[] sSerialNumber = new byte[SERIALNO_LEN];  //搴忓垪鍙�
+        public byte[] sRemoteAlarmIP = new byte[16];            //杩滅▼鎶ヨIP鍦板潃锛�
+
+
+    }
+
+    //////////////////////////////////////////////////////////////////////////////////////
+//IPC鎺ュ叆鍙傛暟閰嶇疆
+    public static class NET_DVR_IPDEVINFO extends Structure {/* IP璁惧缁撴瀯 */
+        public int dwEnable;                    /* 璇P璁惧鏄惁鍚敤 */
+        public byte[] sUserName = new byte[NAME_LEN];        /* 鐢ㄦ埛鍚� */
+        public byte[] sPassword = new byte[PASSWD_LEN];        /* 瀵嗙爜 */
+        public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR();            /* IP鍦板潃 */
+        public short wDVRPort;                    /* 绔彛鍙� */
+        public byte[] byres = new byte[34];                /* 淇濈暀 */
+
+
+    }
+    /* IP閫氶亾鍖归厤鍙傛暟 */
+    public static class NET_DVR_IPCHANINFO extends Structure {/* IP閫氶亾鍖归厤鍙傛暟 */
+
+        public byte byEnable;                    /* 璇ラ�氶亾鏄惁鍦ㄧ嚎 */
+        public byte byIPID;                    //IP璁惧ID浣�8浣嶏紝褰撹澶嘔D涓�0鏃惰〃绀洪�氶亾涓嶅彲鐢�
+        public byte byChannel;                    /* 閫氶亾鍙� */
+        public byte byIPIDHigh;                // IP璁惧ID鐨勯珮8浣�
+        public byte byTransProtocol;            //浼犺緭鍗忚绫诲瀷0-TCP/auto(鍏蜂綋鏈夎澶囧喅瀹�)锛�1-UDP 2-澶氭挱 3-浠匱CP 4-auto
+        public byte byGetStream;         /* 鏄惁瀵硅閫氶亾鍙栨祦锛�0-鏄紝1-鍚�*/
+        public byte[] byres=new byte[30];                    /* 淇濈暀 */
+
+
+    }
+
+    public static class NET_DVR_IPPARACFG extends Structure {/* IP鎺ュ叆閰嶇疆缁撴瀯 */
+        public int dwSize;                                        /* 缁撴瀯澶у皬 */
+        public NET_DVR_IPDEVINFO[] struIPDevInfo = new NET_DVR_IPDEVINFO[MAX_IP_DEVICE];    /* IP璁惧 */
+        public byte[] byAnalogChanEnable = new byte[MAX_ANALOG_CHANNUM];        /* 妯℃嫙閫氶亾鏄惁鍚敤锛屼粠浣庡埌楂樿〃绀�1-32閫氶亾锛�0琛ㄧず鏃犳晥 1鏈夋晥 */
+        public NET_DVR_IPCHANINFO[] struIPChanInfo = new NET_DVR_IPCHANINFO[MAX_IP_CHANNEL];    /* IP閫氶亾 */
+
+
+    }
+
+    public class NET_DVR_IPDEVINFO_V31 extends Structure {
+        public byte byEnable;/* 璇ラ�氶亾鏄惁鍚敤 */
+        public byte byProType;//鍗忚绫诲瀷(榛樿涓虹鏈夊崗璁�)锛�0- 绉佹湁鍗忚锛�1- 鏉句笅鍗忚锛�2- 绱㈠凹锛屾洿澶氬崗璁�氳繃NET_DVR_GetIPCProtoList鑾峰彇銆�
+        public byte byEnableQuickAdd;//0-涓嶆敮鎸佸揩閫熸坊鍔狅紱1-浣跨敤蹇�熸坊鍔�
+        public byte byRes1;//淇濈暀锛岀疆涓�0
+        public byte[] sUserName = new byte[HCNetSDK.NAME_LEN];//鐢ㄦ埛鍚�
+        public byte[] sPassword = new byte[HCNetSDK.PASSWD_LEN];//瀵嗙爜
+        public byte[] byDomain = new byte[HCNetSDK.MAX_DOMAIN_NAME];//璁惧鍩熷悕
+        public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR();//IP鍦板潃
+        public short wDVRPort;//绔彛鍙�
+        public byte[] szDeviceID = new byte[32];
+        public byte[] byRes2 = new byte[2];//淇濈暀锛岀疆涓�0
+
+
+    }
+
+    public class NET_DVR_STREAM_MODE extends Structure {
+
+        public byte byGetStreamType;//鍙栨祦鏂瑰紡锛�0- 鐩存帴浠庤澶囧彇娴侊紱1- 浠庢祦濯掍綋鍙栨祦锛�2- 閫氳繃IPServer鑾峰緱IP鍦板潃鍚庡彇娴侊紱
+        //3- 閫氳繃IPServer鎵惧埌璁惧锛屽啀閫氳繃娴佸獟浣撳彇璁惧鐨勬祦锛� 4- 閫氳繃娴佸獟浣撶敱URL鍘诲彇娴侊紱5- 閫氳繃hiDDNS鍩熷悕杩炴帴璁惧鐒跺悗浠庤澶囧彇娴�
+        public byte[] byRes = new byte[3];//淇濈暀锛岀疆涓�0
+        public NET_DVR_GET_STREAM_UNION uGetStream = new NET_DVR_GET_STREAM_UNION();//涓嶅悓鍙栨祦鏂瑰紡鑱斿悎浣�
+
+        public void read() {
+            super.read();
+            switch (byGetStreamType) {
+                case 0:
+                    uGetStream.setType(NET_DVR_IPCHANINFO.class);
+                    break;
+                case 6:
+                    uGetStream.setType(NET_DVR_IPCHANINFO_V40.class);
+                    break;
+                default:
+                    break;
+            }
+        }
+
+
+    }
+
+    public class NET_DVR_IPSERVER_STREAM extends Structure {
+        public byte byEnable;
+        public byte[] byRes = new byte[3];
+        public NET_DVR_IPADDR struIPServer = new NET_DVR_IPADDR();
+        public short wPort;
+        public short wDvrNameLen;
+        public byte[] byDVRName = new byte[HCNetSDK.NAME_LEN];
+        public short wDVRSerialLen;
+        public short[] byRes1 = new short[2];
+        public byte[] byDVRSerialNumber = new byte[HCNetSDK.SERIALNO_LEN];
+        public byte[] byUserName = new byte[HCNetSDK.NAME_LEN];
+        public byte[] byPassWord = new byte[HCNetSDK.PASSWD_LEN];
+        public byte byChannel;
+        public byte[] byRes2 = new byte[11];
+
+
+    }
+
+    public class NET_DVR_STREAM_MEDIA_SERVER_CFG extends Structure {
+
+        public byte byValid;//鏄惁鍚敤娴佸獟浣撴湇鍔″櫒鍙栨祦锛�0-涓嶅惎鐢紝闈�0-鍚敤
+        public byte[] byRes1 = new byte[3];//淇濈暀锛岀疆涓�0
+        public NET_DVR_IPADDR struDevIP = new NET_DVR_IPADDR();//娴佸獟浣撴湇鍔″櫒鐨処P鍦板潃
+        public short wDevPort;//娴佸獟浣撴湇鍔″櫒绔彛
+        public byte byTransmitType;//浼犺緭鍗忚绫诲瀷锛�0-TCP锛�1-UDP
+        public byte[] byRes2 = new byte[69];
+
+
+    }
+
+    public class NET_DVR_DEV_CHAN_INFO extends Structure {
+        public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR();//璁惧IP鍦板潃
+        public short wDVRPort;//璁惧绔彛鍙�
+        public byte byChannel;//閫氶亾鍙�,鐩墠璁惧鐨勬ā鎷熼�氶亾鍙锋槸浠�1寮�濮嬬殑锛屽浜�9000绛夎澶囩殑IPC鎺ュ叆锛屾暟瀛楅�氶亾鍙蜂粠33寮�濮�
+        public byte byTransProtocol;//浼犺緭鍗忚绫诲瀷锛�0-TCP锛�1-UDP锛�2-澶氭挱鏂瑰紡锛�3-RTP
+        public byte byTransMode;//浼犺緭鐮佹祦妯″紡锛�0锛嶄富鐮佹祦锛�1锛嶅瓙鐮佹祦
+        public byte byFactoryType;//鍓嶇璁惧鍘傚绫诲瀷锛� 閫氳繃鎺ュ彛NET_DVR_GetIPCProtoList鑾峰彇
+        public byte byDeviceType;//璁惧绫诲瀷(瑙嗛缁煎悎骞冲彴浣跨敤)锛�1- IPC锛�2- ENCODER
+        public byte byDispChan;//	鏄剧ず閫氶亾鍙凤紙鏅鸿兘閰嶇疆浣跨敤锛夛紝鏍规嵁鑳藉姏闆嗗喅瀹氫娇鐢ㄨВ鐮侀�氶亾杩樻槸鏄剧ず閫氶亾
+        public byte bySubDispChan;//鏄剧ず閫氶亾瀛愰�氶亾鍙凤紙鏅鸿兘閰嶇疆鏃朵娇鐢級
+        public byte byResolution;//鍒嗚鲸鐜囷細1- CIF锛�2- 4CIF锛�3- 720P锛�4- 1080P锛�5- 500W锛岀敤浜庡灞忔帶鍒跺櫒锛屽灞忔帶鍒跺櫒浼氭牴鎹鍙傛暟鍒嗛厤瑙g爜璧勬簮
+        public byte[] byRes = new byte[2];//淇濈暀锛岀疆涓�0
+        public byte[] byDomain = new byte[HCNetSDK.MAX_DOMAIN_NAME];//璁惧鍩熷悕
+        public byte[] sUserName = new byte[HCNetSDK.NAME_LEN];//璁惧鐧婚檰甯愬彿
+        public byte[] sPassword = new byte[HCNetSDK.PASSWD_LEN];//璁惧瀵嗙爜
+    }
+
+    public class NET_DVR_PU_STREAM_CFG extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public NET_DVR_STREAM_MEDIA_SERVER_CFG struStreamMediaSvrCfg = new NET_DVR_STREAM_MEDIA_SERVER_CFG();
+        public NET_DVR_DEV_CHAN_INFO struDevChanInfo = new NET_DVR_DEV_CHAN_INFO();
+    }
+
+    public class NET_DVR_PU_STREAM_CFG_V41 extends Structure {
+        public int dwSize;
+        public byte byStreamMode;/*鍙栨祦妯″紡锛�0-鏃犳晥锛�1-閫氳繃IP鎴栧煙鍚嶅彇娴侊紝2-閫氳繃URL鍙栨祦,3-閫氳繃鍔ㄦ�佸煙鍚嶈В鏋愬悜璁惧鍙栨祦*/
+        public byte byStreamEncrypt;  //鏄惁杩涜鐮佹祦鍔犲瘑澶勭悊,0-涓嶆敮鎸�,1-鏀寔
+        public byte[] byRes1 = new byte[2];
+        public NET_DVR_DEC_STREAM_MODE uDecStreamMode;//鍙栨祦淇℃伅
+        public int dwDecDelayTime;//瑙g爜寤舵椂鏃堕棿锛屽崟浣嶏細姣
+        public byte[] sStreamPassword = new byte[STREAM_PASSWD_LEN];  //鐮佹祦鍔犲瘑瀵嗙爜,闇�鏁忔劅淇℃伅鍔犲瘑
+        public byte[] byRes2 = new byte[48];
+    }
+
+
+    public class NET_DVR_DDNS_STREAM_CFG extends Structure {
+        public byte byEnable;
+        public byte[] byRes1 = new byte[3];
+        public NET_DVR_IPADDR struStreamServer = new NET_DVR_IPADDR();
+        public short wStreamServerPort;
+        public byte byStreamServerTransmitType;
+        public byte byRes2;
+        public NET_DVR_IPADDR struIPServer = new NET_DVR_IPADDR();
+        public short wIPServerPort;
+        public byte[] byRes3 = new byte[2];
+        public byte[] sDVRName = new byte[HCNetSDK.NAME_LEN];
+        public short wDVRNameLen;
+        public short wDVRSerialLen;
+        public byte[] sDVRSerialNumber = new byte[HCNetSDK.SERIALNO_LEN];
+        public byte[] sUserName = new byte[HCNetSDK.NAME_LEN];
+        public byte[] sPassWord = new byte[HCNetSDK.PASSWD_LEN];
+        public short wDVRPort;
+        public byte[] byRes4 = new byte[2];
+        public byte byChannel;
+        public byte byTransProtocol;
+        public byte byTransMode;
+        public byte byFactoryType;
+
+
+    }
+
+    public class NET_DVR_PU_STREAM_URL extends Structure {
+        public byte byEnable;//鏄惁鍚敤锛�0- 绂佺敤锛�1- 鍚敤
+        public byte[] strURL = new byte[240];//鍙栨祦URL璺緞
+        public byte byTransPortocol;//浼犺緭鍗忚绫诲瀷锛�0-TCP锛�1-UDP
+        public short wIPID;//璁惧ID鍙凤紝wIPID = iDevInfoIndex + iGroupNO*64 +1
+        public byte byChannel;//璁惧閫氶亾鍙�
+        public byte[] byRes = new byte[7];//淇濈暀锛岀疆涓�0
+
+
+    }
+
+    public class NET_DVR_HKDDNS_STREAM extends Structure {
+        public byte byEnable;//鏄惁鍚敤
+        public byte[] byRes = new byte[3];//淇濈暀
+        public byte[] byDDNSDomain = new byte[64];//hiDDNS鏈嶅姟鍣ㄥ湴鍧�
+        public short wPort;//hiDDNS绔彛锛岄粯璁わ細80
+        public short wAliasLen;//鍒悕闀垮害
+        public byte[] byAlias = new byte[HCNetSDK.NAME_LEN];//鍒悕
+        public short wDVRSerialLen;//搴忓垪鍙烽暱搴�
+        public byte[] byRes1 = new byte[2];//淇濈暀
+        public byte[] byDVRSerialNumber = new byte[HCNetSDK.SERIALNO_LEN];//璁惧搴忓垪鍙�
+        public byte[] byUserName = new byte[HCNetSDK.NAME_LEN];//璁惧鐧诲綍鐢ㄦ埛鍚�
+        public byte[] byPassWord = new byte[HCNetSDK.PASSWD_LEN];//璁惧鐧诲綍瀵嗙爜
+        public byte byChannel;//璁惧閫氶亾鍙�
+        public byte[] byRes2 = new byte[11];//淇濈暀
+
+
+    }
+
+    public class NET_DVR_IPCHANINFO_V40 extends Structure {
+
+        public byte byEnable;//IP閫氶亾鍦ㄧ嚎鐘舵�侊紝鏄竴涓彧璇荤殑灞炴�э紱
+        //0琛ㄧずHDVR鎴栬�匩VR璁惧鐨勬暟瀛楅�氶亾杩炴帴瀵瑰簲鐨処P璁惧澶辫触锛岃閫氶亾涓嶅湪绾匡紱1琛ㄧず杩炴帴鎴愬姛锛岃閫氶亾鍦ㄧ嚎
+        public byte byRes1;//淇濈暀锛岀疆涓�0
+        public short wIPID;//IP璁惧ID
+        public int dwChannel;//IP璁惧鐨勯�氶亾鍙凤紝渚嬪璁惧A锛圚DVR鎴栬�匩VR璁惧锛夌殑IP閫氶亾01锛屽搴旂殑鏄澶嘊锛圖VS锛夐噷鐨勯�氶亾04锛屽垯byChannel=4锛屽鏋滃墠绔帴鐨勬槸IPC鍒檅yChannel=1銆�
+        public byte byTransProtocol;//浼犺緭鍗忚绫诲瀷锛�0- TCP锛�1- UDP锛�2- 澶氭挱锛�0xff- auto(鑷姩)
+        public byte byTransMode;//浼犺緭鐮佹祦妯″紡锛�0- 涓荤爜娴侊紝1- 瀛愮爜娴�
+        public byte byFactoryType;//鍓嶇璁惧鍘傚绫诲瀷
+        public byte[] byRes = new byte[241];//淇濈暀锛岀疆涓�0
+
+
+    }
+
+
+    public static class NET_DVR_GET_STREAM_UNION extends Union {
+        public NET_DVR_IPCHANINFO struChanInfo = new NET_DVR_IPCHANINFO(); /*IP閫氶亾淇℃伅*/
+        public NET_DVR_IPCHANINFO_V40 struIPChan = new NET_DVR_IPCHANINFO_V40(); //鐩存帴浠庤澶囧彇娴侊紙鎵╁睍锛�
+        public byte[] byUnionLen = new byte[492]; //鐩存帴浠庤澶囧彇娴侊紙鎵╁睍锛�
+
+
+    }
+
+    public static class NET_DVR_IPPARACFG_V40 extends Structure {/* IP鎺ュ叆閰嶇疆缁撴瀯V40 */
+        public int dwSize;   /* 缁撴瀯澶у皬 */
+        public int dwGroupNum;//璁惧鏀寔鐨勬�荤粍鏁帮紙鍙锛夈��
+        public int dwAChanNum;//鏈�澶фā鎷熼�氶亾涓暟锛堝彧璇伙級
+        public int dwDChanNum;//鏁板瓧閫氶亾涓暟锛堝彧璇伙級
+        public int dwStartDChan;//璧峰鏁板瓧閫氶亾锛堝彧璇伙級
+        public byte[] byAnalogChanEnable = new byte[MAX_CHANNUM_V30]; //妯℃嫙閫氶亾璧勬簮鏄惁鍚敤锛屼粠浣庡埌楂樿〃绀�1-64閫氶亾锛�0-绂佺敤锛�1-鍚敤銆�
+        public NET_DVR_IPDEVINFO_V31[] struIPDevInfo = new NET_DVR_IPDEVINFO_V31[MAX_IP_DEVICE_V40];//IP璁惧淇℃伅锛屼笅鏍�0瀵瑰簲璁惧IP ID涓�1
+        public NET_DVR_STREAM_MODE[] struStreamMode = new NET_DVR_STREAM_MODE[MAX_CHANNUM_V30];//鍙栨祦妯″紡
+        public byte[] byRes2 = new byte[20];//淇濈暀锛岀疆涓�0
+
+
+    }
+
+    public static class NET_DVR_IPALARMOUTINFO extends Structure {/* 鎶ヨ杈撳嚭鍙傛暟 */
+        public byte byIPID;                    /* IP璁惧ID鍙栧��1- MAX_IP_DEVICE */
+        public byte byAlarmOut;                /* 鎶ヨ杈撳嚭鍙� */
+        public byte[] byRes = new byte[18];                    /* 淇濈暀 */
+
+
+    }
+
+    public static class NET_DVR_IPALARMOUTCFG extends Structure {/* IP鎶ヨ杈撳嚭閰嶇疆缁撴瀯 */
+        public int dwSize;                                    /* 缁撴瀯澶у皬 */
+        public NET_DVR_IPALARMOUTINFO[] struIPAlarmOutInfo = new NET_DVR_IPALARMOUTINFO[MAX_IP_ALARMOUT];/* IP鎶ヨ杈撳嚭 */
+
+
+    }
+
+    public static class NET_DVR_IPALARMININFO extends Structure {/* 鎶ヨ杈撳叆鍙傛暟 */
+        public byte byIPID;                    /* IP璁惧ID鍙栧��1- MAX_IP_DEVICE */
+        public byte byAlarmIn;                    /* 鎶ヨ杈撳叆鍙� */
+        public byte[] byRes = new byte[18];                    /* 淇濈暀 */
+
+
+    }
+
+    public static class NET_DVR_IPALARMINCFG extends Structure {/* IP鎶ヨ杈撳叆閰嶇疆缁撴瀯 */
+        public int dwSize;                                    /* 缁撴瀯澶у皬 */
+        public NET_DVR_IPALARMININFO[] struIPAlarmInInfo = new NET_DVR_IPALARMININFO[MAX_IP_ALARMIN];/* IP鎶ヨ杈撳叆 */
+
+
+    }
+
+    public static class NET_DVR_IPALARMINFO extends Structure {//ipc alarm info
+        public NET_DVR_IPDEVINFO[] struIPDevInfo = new NET_DVR_IPDEVINFO[MAX_IP_DEVICE];            /* IP璁惧 */
+        public byte[] byAnalogChanEnable = new byte[MAX_ANALOG_CHANNUM];                /* 妯℃嫙閫氶亾鏄惁鍚敤锛�0-鏈惎鐢� 1-鍚敤 */
+        public NET_DVR_IPCHANINFO[] struIPChanInfo = new NET_DVR_IPCHANINFO[MAX_IP_CHANNEL];            /* IP閫氶亾 */
+        public NET_DVR_IPALARMININFO[] struIPAlarmInInfo = new NET_DVR_IPALARMININFO[MAX_IP_ALARMIN];    /* IP鎶ヨ杈撳叆 */
+        public NET_DVR_IPALARMOUTINFO[] struIPAlarmOutInfo = new NET_DVR_IPALARMOUTINFO[MAX_IP_ALARMOUT]; /* IP鎶ヨ杈撳嚭 */
+
+
+    }
+
+    public static class NET_DVR_SINGLE_HD extends Structure {//鏈湴纭洏淇℃伅閰嶇疆
+        public int dwHDNo;         /*纭洏鍙�, 鍙栧��0~MAX_DISKNUM_V30-1*/
+        public int dwCapacity;     /*纭洏瀹归噺(涓嶅彲璁剧疆)*/
+        public int dwFreeSpace;    /*纭洏鍓╀綑绌洪棿(涓嶅彲璁剧疆)*/
+        public int dwHdStatus;     /*纭洏鐘舵��(涓嶅彲璁剧疆) 0-姝e父, 1-鏈牸寮忓寲, 2-閿欒, 3-SMART鐘舵��, 4-涓嶅尮閰�, 5-浼戠湢*/
+        public byte byHDAttr;       /*0-榛樿, 1-鍐椾綑; 2-鍙*/
+        public byte[] byRes1 = new byte[3];
+        public int dwHdGroup;      /*灞炰簬鍝釜鐩樼粍 1-MAX_HD_GROUP*/
+        public byte[] byRes2 = new byte[120];
+    }
+
+    public static class NET_DVR_HDCFG extends Structure {
+        public int dwSize;
+        public int dwHDCount;          /*纭洏鏁�(涓嶅彲璁剧疆)*/
+        public NET_DVR_SINGLE_HD[] struHDInfo = new NET_DVR_SINGLE_HD[MAX_DISKNUM_V30];//纭洏鐩稿叧鎿嶄綔閮介渶瑕侀噸鍚墠鑳界敓鏁堬紱
+    }
+
+    public static class NET_DVR_SINGLE_HDGROUP extends Structure {//鏈湴鐩樼粍淇℃伅閰嶇疆
+        public int dwHDGroupNo;       /*鐩樼粍鍙�(涓嶅彲璁剧疆) 1-MAX_HD_GROUP*/
+        public byte[] byHDGroupChans = new byte[64]; /*鐩樼粍瀵瑰簲鐨勫綍鍍忛�氶亾, 0-琛ㄧず璇ラ�氶亾涓嶅綍璞″埌璇ョ洏缁勶紝1-琛ㄧず褰曡薄鍒拌鐩樼粍*/
+        public byte[] byRes = new byte[8];
+    }
+
+    public static class NET_DVR_HDGROUP_CFG extends Structure {
+        public int dwSize;
+        public int dwHDGroupCount;        /*鐩樼粍鎬绘暟(涓嶅彲璁剧疆)*/
+        public NET_DVR_SINGLE_HDGROUP[] struHDGroupAttr = new NET_DVR_SINGLE_HDGROUP[MAX_HD_GROUP];//纭洏鐩稿叧鎿嶄綔閮介渶瑕侀噸鍚墠鑳界敓鏁堬紱
+    }
+
+    public static class NET_DVR_SCALECFG extends Structure {//閰嶇疆缂╂斁鍙傛暟鐨勭粨鏋�
+        public int dwSize;
+        public int dwMajorScale;    /* 涓绘樉绀� 0-涓嶇缉鏀撅紝1-缂╂斁*/
+        public int dwMinorScale;    /* 杈呮樉绀� 0-涓嶇缉鏀撅紝1-缂╂斁*/
+        public int[] dwRes = new int[2];
+    }
+
+    public static class NET_DVR_ALARMOUTCFG_V30 extends Structure {//DVR鎶ヨ杈撳嚭(9000鎵╁睍)
+        public int dwSize;
+        public byte[] sAlarmOutName = new byte[NAME_LEN];    /* 鍚嶇О */
+        public int dwAlarmOutDelay;    /* 杈撳嚭淇濇寔鏃堕棿(-1涓烘棤闄愶紝鎵嬪姩鍏抽棴) */
+        //0-5绉�,1-10绉�,2-30绉�,3-1鍒嗛挓,4-2鍒嗛挓,5-5鍒嗛挓,6-10鍒嗛挓,7-鎵嬪姩
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmOutTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];/* 鎶ヨ杈撳嚭婵�娲绘椂闂存 */
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class NET_DVR_ALARMOUTCFG extends Structure {//DVR鎶ヨ杈撳嚭
+        public int dwSize;
+        public byte[] sAlarmOutName = new byte[NAME_LEN];    /* 鍚嶇О */
+        public int dwAlarmOutDelay;    /* 杈撳嚭淇濇寔鏃堕棿(-1涓烘棤闄愶紝鎵嬪姩鍏抽棴) */
+        //0-5绉�,1-10绉�,2-30绉�,3-1鍒嗛挓,4-2鍒嗛挓,5-5鍒嗛挓,6-10鍒嗛挓,7-鎵嬪姩
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmOutTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];/* 鎶ヨ杈撳嚭婵�娲绘椂闂存 */
+    }
+
+    public static class NET_DVR_PREVIEWCFG_V30 extends Structure {//DVR鏈湴棰勮鍙傛暟(9000鎵╁睍)
+        public int dwSize;
+        public byte byPreviewNumber;//棰勮鏁扮洰,0-1鐢婚潰,1-4鐢婚潰,2-9鐢婚潰,3-16鐢婚潰, 4-6鐢婚潰, 5-8鐢婚潰, 0xff:鏈�澶х敾闈�
+        public byte byEnableAudio;//鏄惁澹伴煶棰勮,0-涓嶉瑙�,1-棰勮
+        public short wSwitchTime;//鍒囨崲鏃堕棿,0-涓嶅垏鎹�,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s
+        public byte[][] bySwitchSeq = new byte[MAX_PREVIEW_MODE][MAX_WINDOW_V30];//鍒囨崲椤哄簭,濡傛灉lSwitchSeq[i]涓� 0xff琛ㄧず涓嶇敤
+        public byte[] byRes = new byte[24];
+    }
+
+    public static class NET_DVR_PREVIEWCFG extends Structure {//DVR鏈湴棰勮鍙傛暟
+        public int dwSize;
+        public byte byPreviewNumber;//棰勮鏁扮洰,0-1鐢婚潰,1-4鐢婚潰,2-9鐢婚潰,3-16鐢婚潰,0xff:鏈�澶х敾闈�
+        public byte byEnableAudio;//鏄惁澹伴煶棰勮,0-涓嶉瑙�,1-棰勮
+        public short wSwitchTime;//鍒囨崲鏃堕棿,0-涓嶅垏鎹�,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s
+        public byte[] bySwitchSeq = new byte[MAX_WINDOW];//鍒囨崲椤哄簭,濡傛灉lSwitchSeq[i]涓� 0xff琛ㄧず涓嶇敤
+    }
+
+    public static class NET_DVR_VGAPARA extends Structure {//DVR瑙嗛杈撳嚭
+        public short wResolution;                            /* 鍒嗚鲸鐜� */
+        public short wFreq;                                    /* 鍒锋柊棰戠巼 */
+        public int dwBrightness;                            /* 浜害 */
+    }
+
+    /*
+     * MATRIX杈撳嚭鍙傛暟缁撴瀯
+     */
+    public static class NET_DVR_MATRIXPARA_V30 extends Structure {
+        public short[] wOrder = new short[MAX_ANALOG_CHANNUM];        /* 棰勮椤哄簭, 0xff琛ㄧず鐩稿簲鐨勭獥鍙d笉棰勮 */
+        public short wSwitchTime;                    /* 棰勮鍒囨崲鏃堕棿 */
+        public byte[] res = new byte[14];
+    }
+
+    public static class NET_DVR_MATRIXPARA extends Structure {
+        public short wDisplayLogo;                        /* 鏄剧ず瑙嗛閫氶亾鍙�(淇濈暀) */
+        public short wDisplayOsd;                        /* 鏄剧ず鏃堕棿(淇濈暀) */
+    }
+
+    public static class NET_DVR_VOOUT extends Structure {
+        public byte byVideoFormat;                        /* 杈撳嚭鍒跺紡,0-PAL,1-NTSC */
+        public byte byMenuAlphaValue;                    /* 鑿滃崟涓庤儗鏅浘璞″姣斿害 */
+        public short wScreenSaveTime;                    /* 灞忓箷淇濇姢鏃堕棿 0-浠庝笉,1-1鍒嗛挓,2-2鍒嗛挓,3-5鍒嗛挓,4-10鍒嗛挓,5-20鍒嗛挓,6-30鍒嗛挓 */
+        public short wVOffset;                            /* 瑙嗛杈撳嚭鍋忕Щ */
+        public short wBrightness;                        /* 瑙嗛杈撳嚭浜害 */
+        public byte byStartMode;                        /* 鍚姩鍚庤棰戣緭鍑烘ā寮�(0:鑿滃崟,1:棰勮)*/
+        public byte byEnableScaler;                    /* 鏄惁鍚姩缂╂斁 (0-涓嶅惎鍔�, 1-鍚姩)*/
+    }
+
+    public static class NET_DVR_VIDEOOUT_V30 extends Structure {//DVR瑙嗛杈撳嚭(9000鎵╁睍)
+        public int dwSize;
+        public NET_DVR_VOOUT[] struVOOut = new NET_DVR_VOOUT[MAX_VIDEOOUT_V30];
+        public NET_DVR_VGAPARA[] struVGAPara = new NET_DVR_VGAPARA[MAX_VGA_V30];    /* VGA鍙傛暟 */
+        public NET_DVR_MATRIXPARA_V30[] struMatrixPara = new NET_DVR_MATRIXPARA_V30[MAX_MATRIXOUT];        /* MATRIX鍙傛暟 */
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class NET_DVR_VIDEOOUT extends Structure {//DVR瑙嗛杈撳嚭
+        public int dwSize;
+        public NET_DVR_VOOUT[] struVOOut = new NET_DVR_VOOUT[MAX_VIDEOOUT];
+        public NET_DVR_VGAPARA[] struVGAPara = new NET_DVR_VGAPARA[MAX_VGA];    /* VGA鍙傛暟 */
+        public NET_DVR_MATRIXPARA struMatrixPara;        /* MATRIX鍙傛暟 */
+    }
+
+    public static class NET_DVR_USER_INFO_V30 extends Structure {//鍗曠敤鎴峰弬鏁�(瀛愮粨鏋�)(9000鎵╁睍)
+        public byte[] sUserName = new byte[NAME_LEN];        /* 鐢ㄦ埛鍚� */
+        public byte[] sPassword = new byte[PASSWD_LEN];        /* 瀵嗙爜 */
+        public byte[] byLocalRight = new byte[MAX_RIGHT];    /* 鏈湴鏉冮檺 */
+        /*鏁扮粍0: 鏈湴鎺у埗浜戝彴*/
+        /*鏁扮粍1: 鏈湴鎵嬪姩褰曡薄*/
+        /*鏁扮粍2: 鏈湴鍥炴斁*/
+        /*鏁扮粍3: 鏈湴璁剧疆鍙傛暟*/
+        /*鏁扮粍4: 鏈湴鏌ョ湅鐘舵�併�佹棩蹇�*/
+        /*鏁扮粍5: 鏈湴楂樼骇鎿嶄綔(鍗囩骇锛屾牸寮忓寲锛岄噸鍚紝鍏虫満)*/
+        /*鏁扮粍6: 鏈湴鏌ョ湅鍙傛暟 */
+        /*鏁扮粍7: 鏈湴绠$悊妯℃嫙鍜孖P camera */
+        /*鏁扮粍8: 鏈湴澶囦唤 */
+        /*鏁扮粍9: 鏈湴鍏虫満/閲嶅惎 */
+        public byte[] byRemoteRight = new byte[MAX_RIGHT];/* 杩滅▼鏉冮檺 */
+        /*鏁扮粍0: 杩滅▼鎺у埗浜戝彴*/
+        /*鏁扮粍1: 杩滅▼鎵嬪姩褰曡薄*/
+        /*鏁扮粍2: 杩滅▼鍥炴斁 */
+        /*鏁扮粍3: 杩滅▼璁剧疆鍙傛暟*/
+        /*鏁扮粍4: 杩滅▼鏌ョ湅鐘舵�併�佹棩蹇�*/
+        /*鏁扮粍5: 杩滅▼楂樼骇鎿嶄綔(鍗囩骇锛屾牸寮忓寲锛岄噸鍚紝鍏虫満)*/
+        /*鏁扮粍6: 杩滅▼鍙戣捣璇煶瀵硅*/
+        /*鏁扮粍7: 杩滅▼棰勮*/
+        /*鏁扮粍8: 杩滅▼璇锋眰鎶ヨ涓婁紶銆佹姤璀﹁緭鍑�*/
+        /*鏁扮粍9: 杩滅▼鎺у埗锛屾湰鍦拌緭鍑�*/
+        /*鏁扮粍10: 杩滅▼鎺у埗涓插彛*/
+        /*鏁扮粍11: 杩滅▼鏌ョ湅鍙傛暟 */
+        /*鏁扮粍12: 杩滅▼绠$悊妯℃嫙鍜孖P camera */
+        /*鏁扮粍13: 杩滅▼鍏虫満/閲嶅惎 */
+        public byte[] byNetPreviewRight = new byte[MAX_CHANNUM_V30];        /* 杩滅▼鍙互棰勮鐨勯�氶亾 0-鏈夋潈闄愶紝1-鏃犳潈闄�*/
+        public byte[] byLocalPlaybackRight = new byte[MAX_CHANNUM_V30];        /* 鏈湴鍙互鍥炴斁鐨勯�氶亾 0-鏈夋潈闄愶紝1-鏃犳潈闄�*/
+        public byte[] byNetPlaybackRight = new byte[MAX_CHANNUM_V30];        /* 杩滅▼鍙互鍥炴斁鐨勯�氶亾 0-鏈夋潈闄愶紝1-鏃犳潈闄�*/
+        public byte[] byLocalRecordRight = new byte[MAX_CHANNUM_V30];        /* 鏈湴鍙互褰曞儚鐨勯�氶亾 0-鏈夋潈闄愶紝1-鏃犳潈闄�*/
+        public byte[] byNetRecordRight = new byte[MAX_CHANNUM_V30];            /* 杩滅▼鍙互褰曞儚鐨勯�氶亾 0-鏈夋潈闄愶紝1-鏃犳潈闄�*/
+        public byte[] byLocalPTZRight = new byte[MAX_CHANNUM_V30];            /* 鏈湴鍙互PTZ鐨勯�氶亾 0-鏈夋潈闄愶紝1-鏃犳潈闄�*/
+        public byte[] byNetPTZRight = new byte[MAX_CHANNUM_V30];            /* 杩滅▼鍙互PTZ鐨勯�氶亾 0-鏈夋潈闄愶紝1-鏃犳潈闄�*/
+        public byte[] byLocalBackupRight = new byte[MAX_CHANNUM_V30];        /* 鏈湴澶囦唤鏉冮檺閫氶亾 0-鏈夋潈闄愶紝1-鏃犳潈闄�*/
+        public NET_DVR_IPADDR struUserIP;        /* 鐢ㄦ埛IP鍦板潃(涓�0鏃惰〃绀哄厑璁镐换浣曞湴鍧�) */
+        public byte[] byMACAddr = new byte[MACADDR_LEN];    /* 鐗╃悊鍦板潃 */
+        public byte byPriority;                /* 浼樺厛绾э紝0xff-鏃狅紝0--浣庯紝1--涓紝2--楂� */
+        /*
+                                    鏃犫�︹�﹁〃绀轰笉鏀寔浼樺厛绾х殑璁剧疆
+                                    浣庘�︹�﹂粯璁ゆ潈闄�:鍖呮嫭鏈湴鍜岃繙绋嬪洖鏀�,鏈湴鍜岃繙绋嬫煡鐪嬫棩蹇楀拰鐘舵��,鏈湴鍜岃繙绋嬪叧鏈�/閲嶅惎
+                                    涓�︹�﹀寘鎷湰鍦板拰杩滅▼鎺у埗浜戝彴,鏈湴鍜岃繙绋嬫墜鍔ㄥ綍鍍�,鏈湴鍜岃繙绋嬪洖鏀�,璇煶瀵硅鍜岃繙绋嬮瑙�
+                                          鏈湴澶囦唤,鏈湴/杩滅▼鍏虫満/閲嶅惎
+                                    楂樷�︹�︾鐞嗗憳
+                                    */
+        public byte[] byRes = new byte[17];
+    }
+
+    public static class NET_DVR_USER_INFO_EX extends Structure {//鍗曠敤鎴峰弬鏁�(SDK_V15鎵╁睍)(瀛愮粨鏋�)
+        public byte[] sUserName = new byte[NAME_LEN];        /* 鐢ㄦ埛鍚� */
+        public byte[] sPassword = new byte[PASSWD_LEN];        /* 瀵嗙爜 */
+        public int[] dwLocalRight = new int[MAX_RIGHT];    /* 鏉冮檺 */
+        /*鏁扮粍0: 鏈湴鎺у埗浜戝彴*/
+        /*鏁扮粍1: 鏈湴鎵嬪姩褰曡薄*/
+        /*鏁扮粍2: 鏈湴鍥炴斁*/
+        /*鏁扮粍3: 鏈湴璁剧疆鍙傛暟*/
+        /*鏁扮粍4: 鏈湴鏌ョ湅鐘舵�併�佹棩蹇�*/
+        /*鏁扮粍5: 鏈湴楂樼骇鎿嶄綔(鍗囩骇锛屾牸寮忓寲锛岄噸鍚紝鍏虫満)*/
+        public int dwLocalPlaybackRight;        /* 鏈湴鍙互鍥炴斁鐨勯�氶亾 bit0 -- channel 1*/
+        public int[] dwRemoteRight = new int[MAX_RIGHT];    /* 鏉冮檺 */
+        /*鏁扮粍0: 杩滅▼鎺у埗浜戝彴*/
+        /*鏁扮粍1: 杩滅▼鎵嬪姩褰曡薄*/
+        /*鏁扮粍2: 杩滅▼鍥炴斁 */
+        /*鏁扮粍3: 杩滅▼璁剧疆鍙傛暟*/
+        /*鏁扮粍4: 杩滅▼鏌ョ湅鐘舵�併�佹棩蹇�*/
+        /*鏁扮粍5: 杩滅▼楂樼骇鎿嶄綔(鍗囩骇锛屾牸寮忓寲锛岄噸鍚紝鍏虫満)*/
+        /*鏁扮粍6: 杩滅▼鍙戣捣璇煶瀵硅*/
+        /*鏁扮粍7: 杩滅▼棰勮*/
+        /*鏁扮粍8: 杩滅▼璇锋眰鎶ヨ涓婁紶銆佹姤璀﹁緭鍑�*/
+        /*鏁扮粍9: 杩滅▼鎺у埗锛屾湰鍦拌緭鍑�*/
+        /*鏁扮粍10: 杩滅▼鎺у埗涓插彛*/
+        public int dwNetPreviewRight;        /* 杩滅▼鍙互棰勮鐨勯�氶亾 bit0 -- channel 1*/
+        public int dwNetPlaybackRight;        /* 杩滅▼鍙互鍥炴斁鐨勯�氶亾 bit0 -- channel 1*/
+        public byte[] sUserIP = new byte[16];                /* 鐢ㄦ埛IP鍦板潃(涓�0鏃惰〃绀哄厑璁镐换浣曞湴鍧�) */
+        public byte[] byMACAddr = new byte[MACADDR_LEN];    /* 鐗╃悊鍦板潃 */
+    }
+
+    public static class NET_DVR_USER_INFO extends Structure {//鍗曠敤鎴峰弬鏁�(瀛愮粨鏋�)
+        public byte[] sUserName = new byte[NAME_LEN];        /* 鐢ㄦ埛鍚� */
+        public byte[] sPassword = new byte[PASSWD_LEN];        /* 瀵嗙爜 */
+        public int[] dwLocalRight = new int[MAX_RIGHT];    /* 鏉冮檺 */
+        /*鏁扮粍0: 鏈湴鎺у埗浜戝彴*/
+        /*鏁扮粍1: 鏈湴鎵嬪姩褰曡薄*/
+        /*鏁扮粍2: 鏈湴鍥炴斁*/
+        /*鏁扮粍3: 鏈湴璁剧疆鍙傛暟*/
+        /*鏁扮粍4: 鏈湴鏌ョ湅鐘舵�併�佹棩蹇�*/
+        /*鏁扮粍5: 鏈湴楂樼骇鎿嶄綔(鍗囩骇锛屾牸寮忓寲锛岄噸鍚紝鍏虫満)*/
+        public int[] dwRemoteRight = new int[MAX_RIGHT];    /* 鏉冮檺 */
+        /*鏁扮粍0: 杩滅▼鎺у埗浜戝彴*/
+        /*鏁扮粍1: 杩滅▼鎵嬪姩褰曡薄*/
+        /*鏁扮粍2: 杩滅▼鍥炴斁 */
+        /*鏁扮粍3: 杩滅▼璁剧疆鍙傛暟*/
+        /*鏁扮粍4: 杩滅▼鏌ョ湅鐘舵�併�佹棩蹇�*/
+        /*鏁扮粍5: 杩滅▼楂樼骇鎿嶄綔(鍗囩骇锛屾牸寮忓寲锛岄噸鍚紝鍏虫満)*/
+        /*鏁扮粍6: 杩滅▼鍙戣捣璇煶瀵硅*/
+        /*鏁扮粍7: 杩滅▼棰勮*/
+        /*鏁扮粍8: 杩滅▼璇锋眰鎶ヨ涓婁紶銆佹姤璀﹁緭鍑�*/
+        /*鏁扮粍9: 杩滅▼鎺у埗锛屾湰鍦拌緭鍑�*/
+        /*鏁扮粍10: 杩滅▼鎺у埗涓插彛*/
+        public byte[] sUserIP = new byte[16];                /* 鐢ㄦ埛IP鍦板潃(涓�0鏃惰〃绀哄厑璁镐换浣曞湴鍧�) */
+        public byte[] byMACAddr = new byte[MACADDR_LEN];    /* 鐗╃悊鍦板潃 */
+    }
+
+    public static class NET_DVR_USER_V30 extends Structure {//DVR鐢ㄦ埛鍙傛暟(9000鎵╁睍)
+        public int dwSize;
+        public NET_DVR_USER_INFO_V30[] struUser = new NET_DVR_USER_INFO_V30[MAX_USERNUM_V30];
+    }
+
+    public static class NET_DVR_USER_EX extends Structure {//DVR鐢ㄦ埛鍙傛暟(SDK_V15鎵╁睍)
+        public int dwSize;
+        public NET_DVR_USER_INFO_EX[] struUser = new NET_DVR_USER_INFO_EX[MAX_USERNUM];
+    }
+
+    public static class NET_DVR_USER extends Structure {//DVR鐢ㄦ埛鍙傛暟
+        public int dwSize;
+        public NET_DVR_USER_INFO[] struUser = new NET_DVR_USER_INFO[MAX_USERNUM];
+    }
+
+    public static class NET_DVR_EXCEPTION_V30 extends Structure {//DVR寮傚父鍙傛暟(9000鎵╁睍)
+        public int dwSize;
+        public NET_DVR_HANDLEEXCEPTION_V30[] struExceptionHandleType = new NET_DVR_HANDLEEXCEPTION_V30[MAX_EXCEPTIONNUM_V30];
+        /*鏁扮粍0-鐩樻弧,1- 纭洏鍑洪敊,2-缃戠嚎鏂�,3-灞�鍩熺綉鍐匢P 鍦板潃鍐茬獊,4-闈炴硶璁块棶, 5-杈撳叆/杈撳嚭瑙嗛鍒跺紡涓嶅尮閰�, 6-琛岃溅瓒呴��(杞﹁浇涓撶敤), 7-瑙嗛淇″彿寮傚父(9000)*/
+    }
+
+    public static class NET_DVR_EXCEPTION extends Structure {//DVR寮傚父鍙傛暟
+        public int dwSize;
+        public NET_DVR_HANDLEEXCEPTION[] struExceptionHandleType = new NET_DVR_HANDLEEXCEPTION[MAX_EXCEPTIONNUM];
+        /*鏁扮粍0-鐩樻弧,1- 纭洏鍑洪敊,2-缃戠嚎鏂�,3-灞�鍩熺綉鍐匢P 鍦板潃鍐茬獊,4-闈炴硶璁块棶, 5-杈撳叆/杈撳嚭瑙嗛鍒跺紡涓嶅尮閰�, 6-琛岃溅瓒呴��(杞﹁浇涓撶敤)*/
+    }
+
+    public static class NET_DVR_CHANNELSTATE_V30 extends Structure {//閫氶亾鐘舵��(9000鎵╁睍)
+        public byte byRecordStatic; //閫氶亾鏄惁鍦ㄥ綍鍍�,0-涓嶅綍鍍�,1-褰曞儚
+        public byte bySignalStatic; //杩炴帴鐨勪俊鍙风姸鎬�,0-姝e父,1-淇″彿涓㈠け
+        public byte byHardwareStatic;//閫氶亾纭欢鐘舵��,0-姝e父,1-寮傚父,渚嬪DSP姝绘帀
+        public byte byRes1;        //淇濈暀
+        public int dwBitRate;//瀹為檯鐮佺巼
+        public int dwLinkNum;//瀹㈡埛绔繛鎺ョ殑涓暟
+        public NET_DVR_IPADDR[] struClientIP = new NET_DVR_IPADDR[MAX_LINK];//瀹㈡埛绔殑IP鍦板潃
+        public int dwIPLinkNum;//濡傛灉璇ラ�氶亾涓篒P鎺ュ叆锛岄偅涔堣〃绀篒P鎺ュ叆褰撳墠鐨勮繛鎺ユ暟
+        public byte byExceedMaxLink;        // 鏄惁瓒呭嚭浜嗗崟璺�6璺繛鎺ユ暟 0 - 鏈秴鍑�, 1-瓒呭嚭
+        public byte[] byRes = new byte[3];        // 淇濈暀瀛楄妭
+        public int dwAllBitRate;      //鎵�鏈夊疄闄呯爜鐜囦箣鍜�
+        public int dwChannelNo;    //褰撳墠鐨勯�氶亾鍙凤紝0xffffffff琛ㄧず鏃犳晥
+    }
+
+    public static class NET_DVR_CHANNELSTATE extends Structure {//閫氶亾鐘舵��
+        public byte byRecordStatic; //閫氶亾鏄惁鍦ㄥ綍鍍�,0-涓嶅綍鍍�,1-褰曞儚
+        public byte bySignalStatic; //杩炴帴鐨勪俊鍙风姸鎬�,0-姝e父,1-淇″彿涓㈠け
+        public byte byHardwareStatic;//閫氶亾纭欢鐘舵��,0-姝e父,1-寮傚父,渚嬪DSP姝绘帀
+        public byte reservedData;        //淇濈暀
+        public int dwBitRate;//瀹為檯鐮佺巼
+        public int dwLinkNum;//瀹㈡埛绔繛鎺ョ殑涓暟
+        public int[] dwClientIP = new int[MAX_LINK];//瀹㈡埛绔殑IP鍦板潃
+    }
+
+    public static class NET_DVR_DISKSTATE extends Structure {//纭洏鐘舵��
+        public int dwVolume;//纭洏鐨勫閲�
+        public int dwFreeSpace;//纭洏鐨勫墿浣欑┖闂�
+        public int dwHardDiskStatic; //纭洏鐨勭姸鎬�,鎸変綅:1-浼戠湢,2-涓嶆甯�,3-浼戠湢纭洏鍑洪敊
+    }
+
+    public static class NET_DVR_WORKSTATE_V30 extends Structure {//DVR宸ヤ綔鐘舵��(9000鎵╁睍)
+        public int dwDeviceStatic;    //璁惧鐨勭姸鎬�,0-姝e父,1-CPU鍗犵敤鐜囧お楂�,瓒呰繃85%,2-纭欢閿欒,渚嬪涓插彛姝绘帀
+        public NET_DVR_DISKSTATE[] struHardDiskStatic = new NET_DVR_DISKSTATE[MAX_DISKNUM_V30];
+        public NET_DVR_CHANNELSTATE_V30[] struChanStatic = new NET_DVR_CHANNELSTATE_V30[MAX_CHANNUM_V30];//閫氶亾鐨勭姸鎬�
+        public byte[] byAlarmInStatic = new byte[MAX_ALARMIN_V30]; //鎶ヨ绔彛鐨勭姸鎬�,0-娌℃湁鎶ヨ,1-鏈夋姤璀�
+        public byte[] byAlarmOutStatic = new byte[MAX_ALARMOUT_V30]; //鎶ヨ杈撳嚭绔彛鐨勭姸鎬�,0-娌℃湁杈撳嚭,1-鏈夋姤璀﹁緭鍑�
+        public int dwLocalDisplay;//鏈湴鏄剧ず鐘舵��,0-姝e父,1-涓嶆甯�
+        public byte[] byAudioChanStatus = new byte[MAX_AUDIO_V30];//琛ㄧず璇煶閫氶亾鐨勭姸鎬� 0-鏈娇鐢紝1-浣跨敤涓�, 0xff鏃犳晥
+        public byte[] byRes = new byte[10];
+    }
+
+    public static class NET_DVR_WORKSTATE extends Structure {//DVR宸ヤ綔鐘舵��
+        public int dwDeviceStatic;    //璁惧鐨勭姸鎬�,0-姝e父,1-CPU鍗犵敤鐜囧お楂�,瓒呰繃85%,2-纭欢閿欒,渚嬪涓插彛姝绘帀
+        public NET_DVR_DISKSTATE[] struHardDiskStatic = new NET_DVR_DISKSTATE[MAX_DISKNUM];
+        public NET_DVR_CHANNELSTATE[] struChanStatic = new NET_DVR_CHANNELSTATE[MAX_CHANNUM];//閫氶亾鐨勭姸鎬�
+        public byte[] byAlarmInStatic = new byte[MAX_ALARMIN]; //鎶ヨ绔彛鐨勭姸鎬�,0-娌℃湁鎶ヨ,1-鏈夋姤璀�
+        public byte[] byAlarmOutStatic = new byte[MAX_ALARMOUT]; //鎶ヨ杈撳嚭绔彛鐨勭姸鎬�,0-娌℃湁杈撳嚭,1-鏈夋姤璀﹁緭鍑�
+        public int dwLocalDisplay;//鏈湴鏄剧ず鐘舵��,0-姝e父,1-涓嶆甯�
+    }
+
+    public static class NET_DVR_LOG_V30 extends Structure {//鏃ュ織淇℃伅(9000鎵╁睍)
+        public NET_DVR_TIME strLogTime;
+        public int dwMajorType;    //涓荤被鍨� 1-鎶ヨ; 2-寮傚父; 3-鎿嶄綔; 0xff-鍏ㄩ儴
+        public int dwMinorType;//娆$被鍨� 0-鍏ㄩ儴;
+        public byte[] sPanelUser = new byte[MAX_NAMELEN]; //鎿嶄綔闈㈡澘鐨勭敤鎴峰悕
+        public byte[] sNetUser = new byte[MAX_NAMELEN];//缃戠粶鎿嶄綔鐨勭敤鎴峰悕
+        public NET_DVR_IPADDR struRemoteHostAddr;//??绋嬩富鏈哄湴鍧�
+        public int dwParaType;//鍙傛暟绫诲瀷
+        public int dwChannel;//閫氶亾鍙�
+        public int dwDiskNumber;//纭洏鍙�
+        public int dwAlarmInPort;//鎶ヨ杈撳叆绔彛
+        public int dwAlarmOutPort;//鎶ヨ杈撳嚭绔彛
+        public int dwInfoLen;
+        public byte[] sInfo = new byte[LOG_INFO_LEN];
+    }
+
+    //鏃ュ織淇℃伅
+    public static class NET_DVR_LOG extends Structure {
+        public NET_DVR_TIME strLogTime;
+        public int dwMajorType;    //涓荤被鍨� 1-鎶ヨ; 2-寮傚父; 3-鎿嶄綔; 0xff-鍏ㄩ儴
+        public int dwMinorType;//娆$被鍨� 0-鍏ㄩ儴;
+        public byte[] sPanelUser = new byte[MAX_NAMELEN]; //鎿嶄綔闈㈡澘鐨勭敤鎴峰悕
+        public byte[] sNetUser = new byte[MAX_NAMELEN];//缃戠粶鎿嶄綔鐨勭敤鎴峰悕
+        public byte[] sRemoteHostAddr = new byte[16];//杩滅▼涓绘満鍦板潃
+        public int dwParaType;//鍙傛暟绫诲瀷
+        public int dwChannel;//閫氶亾鍙�
+        public int dwDiskNumber;//纭洏鍙�
+        public int dwAlarmInPort;//鎶ヨ杈撳叆绔彛
+        public int dwAlarmOutPort;//鎶ヨ杈撳嚭绔彛
+    }
+
+    //鏃堕棿鍙傛暟缁撴瀯浣�
+    public static class NET_DVR_TIME_V50 extends Structure{
+        public short wYear;		//骞�
+        public byte byMonth;    //鏈�
+        public byte byDay;		//鏃�
+        public byte byHour;		//鏃�
+        public byte byMinute;	//鍒�
+        public byte bySecond;	//绉�
+        public byte byISO8601;  //鏄惁鏄�8601鐨勬椂闂存牸寮忥紝鍗虫椂宸瓧娈垫槸鍚︽湁鏁�0-鏃跺樊鏃犳晥锛屽勾鏈堟棩鏃跺垎绉掍负璁惧鏈湴鏃堕棿 1-鏃跺樊鏈夋晥
+        public short wMillisecond;       //姣锛岀簿搴︿笉澶燂紝榛樿涓�0
+        public byte cTimeDifferenceH;   //涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛�+琛ㄧず涓滃尯锛宐yISO8601涓�1鏃舵湁鏁�
+        public byte cTimeDifferenceM;   //涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 0, 30, 45锛�+琛ㄧず涓滃尯锛宐yISO8601涓�1鏃舵湁鏁�
+    }
+
+    //鏃ュ織鏌ユ壘鏉′欢缁撴瀯浣�
+    public static class NET_DVR_FIND_LOG_COND extends Structure{
+        public int dwSelectMode;  // 0锛嶅叏閮紱1锛嶆寜绫诲瀷锛�2锛嶆寜鏃堕棿锛�3锛嶆寜鏃堕棿鍜岀被鍨�
+        public int dwMainType;	//鏃ュ織涓荤被鍨� 0-鍏ㄩ儴 0x1-鎶ヨ锛�0x2-寮傚父锛�0x3-鎿嶄綔锛�0x4-鏃ュ織闄勫姞淇℃伅
+        public int dwSubType;		//鏃ュ織娆$被鍨�
+        public NET_DVR_TIME_V50 struStartTime; //寮�濮嬫椂闂�
+        public NET_DVR_TIME_V50 struEndTime;   //缁撴潫鏃堕棿
+        public boolean bOnlySmart;    //鏄惁鍙悳绱㈠甫S.M.A.R.T淇℃伅鐨勬棩蹇�
+        public byte[] byRes =  new byte[128];
+    }
+
+    //鏃ュ織淇℃伅缁撴瀯浣�
+    public static class NET_DVR_LOG_V50 extends Structure{
+        public NET_DVR_TIME_V50 struLogTime;    //鏃ュ織鍙戠敓鐨勬椂闂�
+        public int dwMajorType;    //涓荤被鍨� 1-鎶ヨ; 2-寮傚父; 3-鎿嶄綔; 0xff-鍏ㄩ儴
+        public int dwMinorType;    //娆$被鍨� 0-鍏ㄩ儴;
+        public byte[] sPanelUser = new byte[MAX_NAMELEN];//鎿嶄綔闈㈡澘鐨勭敤鎴峰悕
+        public byte[] sNetUser = new byte[MAX_NAMELEN];//缃戠粶鎿嶄綔鐨勭敤鎴峰悕
+        public NET_DVR_IPADDR struRemoteHostAddr;     //杩滅▼涓绘満鍦板潃
+        public int dwParaType; //鍙傛暟绫诲瀷,9000璁惧MINOR_START_VT/MINOR_STOP_VT鏃讹紝琛ㄧず璇煶瀵硅鐨勭瀛愬彿
+        public int dwChannel;  //閫氶亾鍙�
+        public int dwDiskNumber;   //纭洏鍙�
+        public int dwAlarmInPort;  //鎶ヨ杈撳叆绔彛
+        public int dwAlarmOutPort; //鎶ヨ杈撳嚭绔彛
+        public int dwInfoLen;
+        public byte[] sInfo = new byte[LOG_INFO_LEN];
+        public byte[] byRes =  new byte[128];
+    }
+
+    /************************
+     * DVR鏃ュ織 end
+     ***************************/
+    public static class NET_DVR_ALARMOUTSTATUS_V30 extends Structure {//鎶ヨ杈撳嚭鐘舵��(9000鎵╁睍)
+        public byte[] Output = new byte[MAX_ALARMOUT_V30];
+    }
+
+    public static class NET_DVR_ALARMOUTSTATUS extends Structure {//鎶ヨ杈撳嚭鐘舵��
+        public byte[] Output = new byte[MAX_ALARMOUT];
+    }
+
+    public static class NET_DVR_TRADEINFO extends Structure {//浜ゆ槗淇℃伅
+        public short m_Year;
+        public short m_Month;
+        public short m_Day;
+        public short m_Hour;
+        public short m_Minute;
+        public short m_Second;
+        public byte[] DeviceName = new byte[24];    //璁惧鍚嶇О
+        public int dwChannelNumer;    //閫氶亾鍙�
+        public byte[] CardNumber = new byte[32];    //鍗″彿
+        public byte[] cTradeType = new byte[12];    //浜ゆ槗绫诲瀷
+        public int dwCash;            //浜ゆ槗閲戦
+    }
+
+    public static class NET_DVR_FRAMETYPECODE extends Structure {/*甯ф牸寮�*/
+        public byte[] code = new byte[12];        /* 浠g爜 */
+    }
+
+    public static class NET_DVR_FRAMEFORMAT_V30 extends Structure {//ATM鍙傛暟(9000鎵╁睍)
+        public int dwSize;
+        public NET_DVR_IPADDR struATMIP;                /* ATM IP鍦板潃 */
+        public int dwATMType;                            /* ATM绫诲瀷 */
+        public int dwInputMode;                        /* 杈撳叆鏂瑰紡	0-缃戠粶渚﹀惉 1-缃戠粶鎺ユ敹 2-涓插彛鐩存帴杈撳叆 3-涓插彛ATM鍛戒护杈撳叆*/
+        public int dwFrameSignBeginPos;                /* 鎶ユ枃鏍囧織浣嶇殑璧峰浣嶇疆*/
+        public int dwFrameSignLength;                    /* 鎶ユ枃鏍囧織浣嶇殑闀垮害 */
+        public byte[] byFrameSignContent = new byte[12];                /* 鎶ユ枃鏍囧織浣嶇殑鍐呭 */
+        public int dwCardLengthInfoBeginPos;            /* 鍗″彿闀垮害淇℃伅鐨勮捣濮嬩綅缃� */
+        public int dwCardLengthInfoLength;                /* 鍗″彿闀垮害淇℃伅鐨勯暱搴� */
+        public int dwCardNumberInfoBeginPos;            /* 鍗″彿淇℃伅鐨勮捣濮嬩綅缃� */
+        public int dwCardNumberInfoLength;                /* 鍗″彿淇℃伅鐨勯暱搴� */
+        public int dwBusinessTypeBeginPos;                /* 浜ゆ槗绫诲瀷鐨勮捣濮嬩綅缃� */
+        public int dwBusinessTypeLength;                /* 浜ゆ槗绫诲瀷鐨勯暱搴� */
+        public NET_DVR_FRAMETYPECODE[] frameTypeCode = new NET_DVR_FRAMETYPECODE[10];    /* 绫诲瀷 */
+        public short wATMPort;                            /* 鍗″彿鎹曟崏绔彛鍙�(缃戠粶鍗忚鏂瑰紡) (淇濈暀)0xffff琛ㄧず璇ュ�兼棤鏁�*/
+        public short wProtocolType;                        /* 缃戠粶鍗忚绫诲瀷(淇濈暀) 0xffff琛ㄧず璇ュ�兼棤鏁�*/
+        public byte[] byRes = new byte[24];
+    }
+
+    public static class NET_DVR_FRAMEFORMAT extends Structure {//ATM鍙傛暟
+        public int dwSize;
+        public byte[] sATMIP = new byte[16];                        /* ATM IP鍦板潃 */
+        public int dwATMType;                        /* ATM绫诲瀷 */
+        public int dwInputMode;                        /* 杈撳叆鏂瑰紡	0-缃戠粶渚﹀惉 1-缃戠粶鎺ユ敹 2-涓插彛鐩存帴杈撳叆 3-涓插彛ATM鍛戒护杈撳叆*/
+        public int dwFrameSignBeginPos;              /* 鎶ユ枃鏍囧織浣嶇殑璧峰浣嶇疆*/
+        public int dwFrameSignLength;                /* 鎶ユ枃鏍囧織浣嶇殑闀垮害 */
+        public byte[] byFrameSignContent = new byte[12];            /* 鎶ユ枃鏍囧織浣嶇殑鍐呭 */
+        public int dwCardLengthInfoBeginPos;            /* 鍗″彿闀垮害淇℃伅鐨勮捣濮嬩綅缃� */
+        public int dwCardLengthInfoLength;            /* 鍗″彿闀垮害淇℃伅鐨勯暱搴� */
+        public int dwCardNumberInfoBeginPos;            /* 鍗″彿淇℃伅鐨勮捣濮嬩綅缃� */
+        public int dwCardNumberInfoLength;            /* 鍗″彿淇℃伅鐨勯暱搴� */
+        public int dwBusinessTypeBeginPos;           /* 浜ゆ槗绫诲瀷鐨勮捣濮嬩綅缃� */
+        public int dwBusinessTypeLength;                /* 浜ゆ槗绫诲瀷鐨勯暱搴� */
+        public NET_DVR_FRAMETYPECODE[] frameTypeCode = new NET_DVR_FRAMETYPECODE[10];/* 绫诲瀷 */
+    }
+
+    public static class NET_DVR_FTPTYPECODE extends Structure {
+        public byte[] sFtpType = new byte[32];     /*瀹㈡埛瀹氫箟鐨勬搷浣滅被鍨�*/
+        public byte[] sFtpCode = new byte[8];      /*瀹㈡埛瀹氫箟鐨勬搷浣滅被鍨嬬殑瀵瑰簲鐨勭爜*/
+    }
+
+    public static class NET_DVR_FRAMEFORMAT_EX extends Structure {//ATM鍙傛暟娣诲姞FTP涓婁紶鍙傛暟, 閾惰瀹氬埗, 2006-11-17
+        public int dwSize;
+        public byte[] sATMIP = new byte[16];                        /* ATM IP鍦板潃 */
+        public int dwATMType;                        /* ATM绫诲瀷 */
+        public int dwInputMode;                        /* 杈撳叆鏂瑰紡	0-缃戠粶渚﹀惉 1-缃戠粶鎺ユ敹 2-涓插彛鐩存帴杈撳叆 3-涓插彛ATM鍛戒护杈撳叆*/
+        public int dwFrameSignBeginPos;              /* 鎶ユ枃鏍囧織浣嶇殑璧峰浣嶇疆*/
+        public int dwFrameSignLength;                /* 鎶ユ枃鏍囧織浣嶇殑闀垮害 */
+        public byte[] byFrameSignContent = new byte[12];            /* 鎶ユ枃鏍囧織浣嶇殑鍐呭 */
+        public int dwCardLengthInfoBeginPos;            /* 鍗″彿闀垮害淇℃伅鐨勮捣濮嬩綅缃� */
+        public int dwCardLengthInfoLength;            /* 鍗″彿闀垮害淇℃伅鐨勯暱搴� */
+        public int dwCardNumberInfoBeginPos;            /* 鍗″彿淇℃伅鐨勮捣濮嬩綅缃� */
+        public int dwCardNumberInfoLength;            /* 鍗″彿淇℃伅鐨勯暱搴� */
+        public int dwBusinessTypeBeginPos;           /* 浜ゆ槗绫诲瀷鐨勮捣濮嬩綅缃� */
+        public int dwBusinessTypeLength;                /* 浜ゆ槗绫诲瀷鐨勯暱搴� */
+        public NET_DVR_FRAMETYPECODE[] frameTypeCode = new NET_DVR_FRAMETYPECODE[10];/* 绫诲瀷 */
+        public byte[] sFTPIP = new byte[16];                        /* FTP IP */
+        public byte[] byFtpUsername = new byte[NAME_LEN];            /* 鐢ㄦ埛鍚� */
+        public byte[] byFtpPasswd = new byte[PASSWD_LEN];            /* 瀵嗙爜 */
+        public byte[] sDirName = new byte[NAME_LEN];                /*鏈嶅姟鍣ㄧ洰褰曞悕*/
+        public int dwATMSrvType;                        /*ATM鏈嶅姟鍣ㄧ被鍨嬶紝0--wincor 锛�1--diebold*/
+        public int dwTimeSpace;                        /*鍙栧�间负1.2.3.4.5.10*/
+        public NET_DVR_FTPTYPECODE[] sFtpTypeCodeOp = new NET_DVR_FTPTYPECODE[300];    /*鏂板姞鐨�*/
+        public int dwADPlay;    /* 1 琛ㄧず鍦ㄦ挱鏀惧箍鍛婏紝0 琛ㄧず娌℃湁鎾斁骞垮憡*/
+        public int dwNewPort;  //绔彛
+    }
+/****************************ATM(end)***************************/
+
+    /*****************************
+     * DS-6001D/F(begin)
+     ***************************/
+//DS-6001D Decoder
+    public static class NET_DVR_DECODERINFO extends Structure {
+        public byte[] byEncoderIP = new byte[16];        //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒IP
+        public byte[] byEncoderUser = new byte[16];        //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勭敤鎴峰悕
+        public byte[] byEncoderPasswd = new byte[16];    //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勫瘑鐮�
+        public byte bySendMode;            //瑙g爜璁惧杩炴帴鏈嶅姟鍣ㄧ殑杩炴帴妯″紡
+        public byte byEncoderChannel;        //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勯�氶亾鍙�
+        public short wEncoderPort;            //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勭鍙e彿
+        public byte[] reservedData = new byte[4];        //淇濈暀
+    }
+
+    public static class NET_DVR_DECODERSTATE extends Structure {
+        public byte[] byEncoderIP = new byte[16];        //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒IP
+        public byte[] byEncoderUser = new byte[16];        //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勭敤鎴峰悕
+        public byte[] byEncoderPasswd = new byte[16];    //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勫瘑鐮�
+        public byte byEncoderChannel;        //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勯�氶亾鍙�
+        public byte bySendMode;            //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勮繛鎺ユā寮�
+        public short wEncoderPort;            //瑙g爜璁惧杩炴帴鐨勬湇鍔″櫒鐨勭鍙e彿
+        public int dwConnectState;        //瑙g爜璁惧杩炴帴鏈嶅姟鍣ㄧ殑鐘舵��
+        public byte[] reservedData = new byte[4];        //淇濈暀
+    }
+
+    public static class NET_DVR_DECCHANINFO extends Structure {
+        public byte[] sDVRIP = new byte[16];                /* DVR IP鍦板潃 */
+        public short wDVRPort;                    /* 绔彛鍙� */
+        public byte[] sUserName = new byte[NAME_LEN];        /* 鐢ㄦ埛鍚� */
+        public byte[] sPassword = new byte[PASSWD_LEN];        /* 瀵嗙爜 */
+        public byte byChannel;                    /* 閫氶亾鍙� */
+        public byte byLinkMode;                /* 杩炴帴妯″紡 */
+        public byte byLinkType;                /* 杩炴帴绫诲瀷 0锛嶄富鐮佹祦 1锛嶅瓙鐮佹祦 */
+    }
+
+    public static class NET_DVR_DECINFO extends Structure {/*姣忎釜瑙g爜閫氶亾鐨勯厤缃�*/
+        public byte byPoolChans;            /*姣忚矾瑙g爜閫氶亾涓婄殑寰幆閫氶亾鏁伴噺, 鏈�澶�4閫氶亾 0琛ㄧず娌℃湁瑙g爜*/
+        public NET_DVR_DECCHANINFO[] struchanConInfo = new NET_DVR_DECCHANINFO[MAX_DECPOOLNUM];
+        public byte byEnablePoll;            /*鏄惁杞贰 0-鍚� 1-鏄�*/
+        public byte byPoolTime;                /*杞贰鏃堕棿 0-淇濈暀 1-10绉� 2-15绉� 3-20绉� 4-30绉� 5-45绉� 6-1鍒嗛挓 7-2鍒嗛挓 8-5鍒嗛挓 */
+    }
+
+    public static class NET_DVR_DECCFG extends Structure {/*鏁翠釜璁惧瑙g爜閰嶇疆*/
+        public int dwSize;
+        public int dwDecChanNum;        /*瑙g爜閫氶亾鐨勬暟閲�*/
+        public NET_DVR_DECINFO[] struDecInfo = new NET_DVR_DECINFO[MAX_DECNUM];
+    }
+
+    //2005-08-01
+    public static class NET_DVR_PORTINFO extends Structure {/* 瑙g爜璁惧閫忔槑閫氶亾璁剧疆 */
+        public int dwEnableTransPort;    /* 鏄惁鍚姩閫忔槑閫氶亾 0锛嶄笉鍚敤 1锛嶅惎鐢�*/
+        public byte[] sDecoderIP = new byte[16];        /* DVR IP鍦板潃 */
+        public short wDecoderPort;            /* 绔彛鍙� */
+        public short wDVRTransPort;            /* 閰嶇疆鍓嶇DVR鏄粠485/232杈撳嚭锛�1琛ㄧず232涓插彛,2琛ㄧず485涓插彛 */
+        public byte[] cReserve = new byte[4];
+    }
+
+    public static class NET_DVR_PORTCFG extends Structure {
+        public int dwSize;
+        public NET_DVR_PORTINFO[] struTransPortInfo = new NET_DVR_PORTINFO[MAX_TRANSPARENTNUM]; /* 鏁扮粍0琛ㄧず232 鏁扮粍1琛ㄧず485 */
+    }
+
+    /*https://jna.dev.java.net/javadoc/com/sun/jna/Union.html#setType(java.lang.Class)  see how to use the JNA Union*/
+    public static class NET_DVR_PLAYREMOTEFILE extends Structure {/* 鎺у埗缃戠粶鏂囦欢鍥炴斁 */
+        public int dwSize;
+        public byte[] sDecoderIP = new byte[16];        /* DVR IP鍦板潃 */
+        public short wDecoderPort;            /* 绔彛鍙� */
+        public short wLoadMode;                /* 鍥炴斁涓嬭浇妯″紡 1锛嶆寜鍚嶅瓧 2锛嶆寜鏃堕棿 */
+        public byte[] byFile = new byte[100];
+
+        public static class mode_size extends Union {
+            public byte[] byFile = new byte[100];        // 鍥炴斁鐨勬枃浠跺悕
+
+            public static class bytime extends Structure {
+                public int dwChannel;
+                public byte[] sUserName = new byte[NAME_LEN];    //璇锋眰瑙嗛鐢ㄦ埛鍚�
+                public byte[] sPassword = new byte[PASSWD_LEN];    // 瀵嗙爜
+                public NET_DVR_TIME struStartTime;    //鎸夋椂闂村洖鏀剧殑寮�濮嬫椂闂�
+                public NET_DVR_TIME struStopTime;    // 鎸夋椂闂村洖鏀剧殑缁撴潫鏃堕棿
+            }
+        }
+    }
+
+    public static class NET_DVR_DECCHANSTATUS extends Structure {/*褰撳墠璁惧瑙g爜杩炴帴鐘舵��*/
+        public int dwWorkType;        /*宸ヤ綔鏂瑰紡锛�1锛氳疆宸°��2锛氬姩鎬佽繛鎺ヨВ鐮併��3锛氭枃浠跺洖鏀句笅杞� 4锛氭寜鏃堕棿鍥炴斁涓嬭浇*/
+        public byte[] sDVRIP = new byte[16];        /*杩炴帴鐨勮澶噄p*/
+        public short wDVRPort;            /*杩炴帴绔彛鍙�*/
+        public byte byChannel;            /* 閫氶亾鍙� */
+        public byte byLinkMode;        /* 杩炴帴妯″紡 */
+        public int dwLinkType;        /*杩炴帴绫诲瀷 0锛嶄富鐮佹祦 1锛嶅瓙鐮佹祦*/
+        public byte[] sUserName = new byte[NAME_LEN];    /*璇锋眰瑙嗛鐢ㄦ埛鍚�*/
+        public byte[] sPassword = new byte[PASSWD_LEN];    /* 瀵嗙爜 */
+        public byte[] cReserve = new byte[52];
+
+        public static class objectInfo extends Union {
+            public static class userInfo extends Structure {
+                public byte[] sUserName = new byte[NAME_LEN];    //璇锋眰瑙嗛鐢ㄦ埛鍚�
+                public byte[] sPassword = new byte[PASSWD_LEN];    // 瀵嗙爜
+                public byte[] cReserve = new byte[52];
+            }
+
+            public static class fileInfo extends Structure {
+                public byte[] fileName = new byte[100];
+            }
+
+            public static class timeInfo extends Structure {
+                public int dwChannel;
+                public byte[] sUserName = new byte[NAME_LEN];    //璇锋眰瑙嗛鐢ㄦ埛鍚�
+                public byte[] sPassword = new byte[PASSWD_LEN];    // 瀵嗙爜
+                public NET_DVR_TIME struStartTime;        // 鎸夋椂闂村洖鏀剧殑寮�濮嬫椂闂�
+                public NET_DVR_TIME struStopTime;        //鎸夋椂闂村洖鏀剧殑缁撴潫鏃堕棿
+            }
+        }
+    }
+
+    public static class NET_DVR_DECSTATUS extends Structure {
+        public int dwSize;
+        public NET_DVR_DECCHANSTATUS[] struDecState = new NET_DVR_DECCHANSTATUS[MAX_DECNUM];
+    }
+
+    /*****************************
+     * DS-6001D/F(end)
+     ***************************/
+
+    public static class NET_DVR_SHOWSTRINGINFO extends Structure {//鍗曞瓧绗﹀弬鏁�(瀛愮粨鏋�)
+        public short wShowString;                // 棰勮鐨勫浘璞′笂鏄惁鏄剧ず瀛楃,0-涓嶆樉绀�,1-鏄剧ず 鍖哄煙澶у皬704*576,鍗曚釜瀛楃鐨勫ぇ灏忎负32*32
+        public short wStringSize;                /* 璇ヨ瀛楃鐨勯暱搴︼紝涓嶈兘澶т簬44涓瓧绗� */
+        public short wShowStringTopLeftX;        /* 瀛楃鏄剧ず浣嶇疆鐨剎鍧愭爣 */
+        public short wShowStringTopLeftY;        /* 瀛楃鍚嶇О鏄剧ず浣嶇疆鐨剏鍧愭爣 */
+        public byte[] sString = new byte[44];                /* 瑕佹樉绀虹殑瀛楃鍐呭 */
+    }
+
+    //鍙犲姞瀛楃(9000鎵╁睍)
+    public static class NET_DVR_SHOWSTRING_V30 extends Structure {
+        public int dwSize;
+        public NET_DVR_SHOWSTRINGINFO[] struStringInfo = new NET_DVR_SHOWSTRINGINFO[MAX_STRINGNUM_V30];                /* 瑕佹樉绀虹殑瀛楃鍐呭 */
+    }
+
+    //鍙犲姞瀛楃鎵╁睍(8鏉″瓧绗�)
+    public static class NET_DVR_SHOWSTRING_EX extends Structure {
+        public int dwSize;
+        public NET_DVR_SHOWSTRINGINFO[] struStringInfo = new NET_DVR_SHOWSTRINGINFO[MAX_STRINGNUM_EX];                /* 瑕佹樉绀虹殑瀛楃鍐呭 */
+    }
+
+    //鍙犲姞瀛楃
+    public static class NET_DVR_SHOWSTRING extends Structure {
+        public int dwSize;
+        public NET_DVR_SHOWSTRINGINFO[] struStringInfo = new NET_DVR_SHOWSTRINGINFO[MAX_STRINGNUM];                /* 瑕佹樉绀虹殑瀛楃鍐呭 */
+    }
+
+    /****************************
+     * DS9000鏂板缁撴瀯(begin)
+     ******************************/
+
+/*
+EMAIL鍙傛暟缁撴瀯
+*/
+    public static class NET_DVR_SENDER extends Structure {
+        public byte[] sName = new byte[NAME_LEN];                /* 鍙戜欢浜哄鍚� */
+        public byte[] sAddress = new byte[MAX_EMAIL_ADDR_LEN];        /* 鍙戜欢浜哄湴鍧� */
+    }
+
+    public static class NET_DVRRECEIVER extends Structure {
+        public byte[] sName = new byte[NAME_LEN];                /* 鏀朵欢浜哄鍚� */
+        public byte[] sAddress = new byte[MAX_EMAIL_ADDR_LEN];        /* 鏀朵欢浜哄湴鍧� */
+    }
+
+    public static class NET_DVR_EMAILCFG_V30 extends Structure {
+        public int dwSize;
+        public byte[] sAccount = new byte[NAME_LEN];                /* 璐﹀彿*/
+        public byte[] sPassword = new byte[MAX_EMAIL_PWD_LEN];            /*瀵嗙爜 */
+        public NET_DVR_SENDER struSender;
+        public byte[] sSmtpServer = new byte[MAX_EMAIL_ADDR_LEN];    /* smtp鏈嶅姟鍣� */
+        public byte[] sPop3Server = new byte[MAX_EMAIL_ADDR_LEN];    /* pop3鏈嶅姟鍣� */
+        public NET_DVRRECEIVER[] struReceiver = new NET_DVRRECEIVER[3];                            /* 鏈�澶氬彲浠ヨ缃�3涓敹浠朵汉 */
+        public byte byAttachment;                    /* 鏄惁甯﹂檮浠� */
+        public byte bySmtpServerVerify;                /* 鍙戦�佹湇鍔″櫒瑕佹眰韬唤楠岃瘉 */
+        public byte byMailInterval;                 /* mail interval */
+        public byte[] res = new byte[77];
+    }
+
+    /*
+DVR瀹炵幇宸¤埅鏁版嵁缁撴瀯
+*/
+    public static class NET_DVR_CRUISE_PARA extends Structure {
+        public int dwSize;
+        public byte[] byPresetNo = new byte[CRUISE_MAX_PRESET_NUMS];        /* 棰勭疆鐐瑰彿 */
+        public byte[] byCruiseSpeed = new byte[CRUISE_MAX_PRESET_NUMS];    /* 宸¤埅閫熷害 */
+        public short[] wDwellTime = new short[CRUISE_MAX_PRESET_NUMS];        /* 鍋滅暀鏃堕棿 */
+        public byte[] byEnableThisCruise;                        /* 鏄惁鍚敤 */
+        public byte[] res = new byte[15];
+    }
+
+    /****************************
+     * DS9000鏂板缁撴瀯(end)
+     ******************************/
+
+//鏃堕棿鐐�
+    public static class NET_DVR_TIMEPOINT extends Structure {
+        public int dwMonth;        //鏈� 0-11琛ㄧず1-12涓湀
+        public int dwWeekNo;        //绗嚑鍛� 0锛嶇1鍛� 1锛嶇2鍛� 2锛嶇3鍛� 3锛嶇4鍛� 4锛嶆渶鍚庝竴鍛�
+        public int dwWeekDate;    //鏄熸湡鍑� 0锛嶆槦鏈熸棩 1锛嶆槦鏈熶竴 2锛嶆槦鏈熶簩 3锛嶆槦鏈熶笁 4锛嶆槦鏈熷洓 5锛嶆槦鏈熶簲 6锛嶆槦鏈熷叚
+        public int dwHour;        //灏忔椂	寮�濮嬫椂闂�0锛�23 缁撴潫鏃堕棿1锛�23
+        public int dwMin;        //鍒�	0锛�59
+    }
+
+    //澶忎护鏃跺弬鏁�
+    public static class NET_DVR_ZONEANDDST extends Structure {
+        public int dwSize;
+        public byte[] byRes1 = new byte[16];            //淇濈暀
+        public int dwEnableDST;        //鏄惁鍚敤澶忔椂鍒� 0锛嶄笉鍚敤 1锛嶅惎鐢�
+        public byte byDSTBias;    //澶忎护鏃跺亸绉诲�硷紝30min, 60min, 90min, 120min, 浠ュ垎閽熻锛屼紶閫掑師濮嬫暟鍊�
+        public byte[] byRes2 = new byte[3];
+        public NET_DVR_TIMEPOINT struBeginPoint;    //澶忔椂鍒跺紑濮嬫椂闂�
+        public NET_DVR_TIMEPOINT struEndPoint;    //澶忔椂鍒跺仠姝㈡椂闂�
+    }
+
+    //鍥剧墖璐ㄩ噺
+    public static class NET_DVR_JPEGPARA extends Structure {
+        /*娉ㄦ剰锛氬綋鍥惧儚鍘嬬缉鍒嗚鲸鐜囦负VGA鏃讹紝鏀寔0=CIF, 1=QCIF, 2=D1鎶撳浘锛�
+	褰撳垎杈ㄧ巼涓�3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA,7=XVGA, 8=HD900p
+	浠呮敮鎸佸綋鍓嶅垎杈ㄧ巼鐨勬姄鍥�*/
+        public short wPicSize;                /* 0=CIF, 1=QCIF, 2=D1 3=UXGA(1600x1200), 4=SVGA(800x600), 5=HD720p(1280x720),6=VGA*/
+        public short wPicQuality;            /* 鍥剧墖璐ㄩ噺绯绘暟 0-鏈�濂� 1-杈冨ソ 2-涓�鑸� */
+    }
+
+    /* aux video out parameter */
+//杈呭姪杈撳嚭鍙傛暟閰嶇疆
+    public static class NET_DVR_AUXOUTCFG extends Structure {
+        public int dwSize;
+        public int dwAlarmOutChan;                       /* 閫夋嫨鎶ヨ寮瑰嚭澶ф姤璀﹂�氶亾鍒囨崲鏃堕棿锛�1鐢婚潰鐨勮緭鍑洪�氶亾: 0:涓昏緭鍑�/1:杈�1/2:杈�2/3:杈�3/4:杈�4 */
+        public int dwAlarmChanSwitchTime;                /* :1绉� - 10:10绉� */
+        public int[] dwAuxSwitchTime = new int[MAX_AUXOUT];            /* 杈呭姪杈撳嚭鍒囨崲鏃堕棿: 0-涓嶅垏鎹�,1-5s,2-10s,3-20s,4-30s,5-60s,6-120s,7-300s */
+        public byte[][] byAuxOrder = new byte[MAX_AUXOUT][MAX_WINDOW];    /* 杈呭姪杈撳嚭棰勮椤哄簭, 0xff琛ㄧず鐩稿簲鐨勭獥鍙d笉棰勮 */
+    }
+
+    //ntp
+    public static class NET_DVR_NTPPARA extends Structure {
+        public byte[] sNTPServer = new byte[64];   /* Domain Name or IP addr of NTP server */
+        public short wInterval;         /* adjust time interval(hours) */
+        public byte byEnableNTP;    /* enable NPT client 0-no锛�1-yes*/
+        public byte cTimeDifferenceH; /* 涓庡浗闄呮爣鍑嗘椂闂寸殑 灏忔椂鍋忕Щ-12 ... +13 */
+        public byte cTimeDifferenceM;/* 涓庡浗闄呮爣鍑嗘椂闂寸殑 鍒嗛挓鍋忕Щ0, 30, 45*/
+        public byte res1;
+        public short wNtpPort;         /* ntp server port 9000鏂板 璁惧榛樿涓�123*/
+        public byte[] res2 = new byte[8];
+    }
+
+    //ddns
+    public static class NET_DVR_DDNSPARA extends Structure {
+        public byte[] sUsername = new byte[NAME_LEN];  /* DDNS璐﹀彿鐢ㄦ埛鍚�/瀵嗙爜 */
+        public byte[] sPassword = new byte[PASSWD_LEN];
+        public byte[] sDomainName = new byte[64];       /* 鍩熷悕 */
+        public byte byEnableDDNS;            /*鏄惁搴旂敤 0-鍚︼紝1-鏄�*/
+        public byte[] res = new byte[15];
+    }
+
+    public static class NET_DVR_DDNSPARA_EX extends Structure {
+        public byte byHostIndex;                    /* 0-Hikvision DNS 1锛岲yndns 2锛峆eanutHull(鑺辩敓澹�), 3-甯岀綉3322*/
+        public byte byEnableDDNS;                    /*鏄惁搴旂敤DDNS 0-鍚︼紝1-鏄�*/
+        public short wDDNSPort;                        /* DDNS绔彛鍙� */
+        public byte[] sUsername = new byte[NAME_LEN];            /* DDNS鐢ㄦ埛鍚�*/
+        public byte[] sPassword = new byte[PASSWD_LEN];            /* DDNS瀵嗙爜 */
+        public byte[] sDomainName = new byte[MAX_DOMAIN_NAME];    /* 璁惧閰嶅鐨勫煙鍚嶅湴鍧� */
+        public byte[] sServerName = new byte[MAX_DOMAIN_NAME];    /* DDNS 瀵瑰簲鐨勬湇鍔″櫒鍦板潃锛屽彲浠ユ槸IP鍦板潃鎴栧煙鍚� */
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class NET_DVR_DDNS extends Structure {
+        public byte[] sUsername = new byte[NAME_LEN];            /* DDNS璐﹀彿鐢ㄦ埛鍚�*/
+        public byte[] sPassword = new byte[PASSWD_LEN];            /* 瀵嗙爜 */
+        public byte[] sDomainName = new byte[MAX_DOMAIN_NAME];    /* 璁惧閰嶅鐨勫煙鍚嶅湴鍧� */
+        public byte[] sServerName = new byte[MAX_DOMAIN_NAME];    /* DDNS鍗忚瀵瑰簲鐨勬湇鍔″櫒鍦板潃锛屽彲浠ユ槸IP鍦板潃鎴栧煙鍚� */
+        public short wDDNSPort;                        /* 绔彛鍙� */
+        public byte[] byRes = new byte[10];
+    }
+
+    //9000鎵╁睍
+    public static class NET_DVR_DDNSPARA_V30 extends Structure {
+        public byte byEnableDDNS;
+        public byte byHostIndex;/* 0-Hikvision DNS(淇濈暀) 1锛岲yndns 2锛峆eanutHull(鑺辩敓澹�) 3锛嶅笇缃�3322 */
+        public byte[] byRes1 = new byte[2];
+        public NET_DVR_DDNS[] struDDNS = new NET_DVR_DDNS[MAX_DDNS_NUMS];//9000鐩墠鍙敮鎸佸墠3涓厤缃紝鍏朵粬閰嶇疆淇濈暀
+        public byte[] byRes2 = new byte[16];
+    }
+
+    //email
+    public static class NET_DVR_EMAILPARA extends Structure {
+        public byte[] sUsername = new byte[64];  /* 閭欢璐﹀彿/瀵嗙爜 */
+        public byte[] sPassword = new byte[64];
+        public byte[] sSmtpServer = new byte[64];
+        public byte[] sPop3Server = new byte[64];
+        public byte[] sMailAddr = new byte[64];   /* email */
+        public byte[] sEventMailAddr1 = new byte[64];  /* 涓婁紶鎶ヨ/寮傚父绛夌殑email */
+        public byte[] sEventMailAddr2 = new byte[64];
+        public byte[] res = new byte[16];
+    }
+
+    //缃戠粶閰嶇疆缁撴瀯浣�
+    public static class NET_DVR_NETCFG_V50 extends Structure {
+        public int dwSize;
+        public NET_DVR_ETHERNET_V30[] struEtherNet = new NET_DVR_ETHERNET_V30[MAX_ETHERNET];//浠ュお缃戝彛
+        public NET_DVR_IPADDR[] struRes1 = new NET_DVR_IPADDR[2];/*淇濈暀*/
+        public NET_DVR_IPADDR struAlarmHostIpAddr;/* 鎶ヨ涓绘満IP鍦板潃 */
+        public byte[] byRes2 = new byte[4];/* 淇濈暀 */
+        public short wAlarmHostIpPort;/* 鎶ヨ涓绘満绔彛鍙� */
+        public byte byUseDhcp;/* 鏄惁鍚敤DHCP 0xff-鏃犳晥 0-涓嶅惎鐢� 1-鍚敤*/
+        public byte byIPv6Mode;//IPv6鍒嗛厤鏂瑰紡锛�0-璺敱鍏憡锛�1-鎵嬪姩璁剧疆锛�2-鍚敤DHCP鍒嗛厤
+        public NET_DVR_IPADDR struDnsServer1IpAddr;/* 鍩熷悕鏈嶅姟鍣�1鐨処P鍦板潃 */
+        public NET_DVR_IPADDR struDnsServer2IpAddr;/* 鍩熷悕鏈嶅姟鍣�2鐨処P鍦板潃 */
+        public byte[]  byIpResolver = new byte[MAX_DOMAIN_NAME];/* IP瑙f瀽鏈嶅姟鍣ㄥ煙鍚嶆垨IP鍦板潃 */
+        public short wIpResolverPort;/* IP瑙f瀽鏈嶅姟鍣ㄧ鍙e彿 */
+        public short wHttpPortNo;/* HTTP绔彛鍙� */
+        public NET_DVR_IPADDR struMulticastIpAddr;                    /* 澶氭挱缁勫湴鍧� */
+        public NET_DVR_IPADDR struGatewayIpAddr;                        /* 缃戝叧鍦板潃 */
+        public NET_DVR_PPPOECFG struPPPoE;//PPPoE鍙傛暟
+        public byte byEnablePrivateMulticastDiscovery;  //绉佹湁澶氭挱鎼滅储锛�0~榛樿锛�1~鍚敤锛�2-绂佺敤
+        public byte byEnableOnvifMulticastDiscovery;  //Onvif澶氭挱鎼滅储锛�0~榛樿锛�1~鍚敤锛�2-绂佺敤
+        public short wAlarmHost2IpPort; /* 鎶ヨ涓绘満2绔彛鍙� */
+        public NET_DVR_IPADDR struAlarmHost2IpAddr; /* 鎶ヨ涓绘満2 IP鍦板潃 */
+        public byte byEnableDNS; //DNS浣胯兘, 0-鍏抽棴锛�1-鎵撳紑
+        public byte[] byRes = new byte[599];
+    }
+
+
+    public static class NET_DVR_NETAPPCFG extends Structure {//缃戠粶鍙傛暟閰嶇疆
+        public int dwSize;
+        public byte[] sDNSIp = new byte[16];                /* DNS鏈嶅姟鍣ㄥ湴鍧� */
+        public NET_DVR_NTPPARA struNtpClientParam;      /* NTP鍙傛暟 */
+        public NET_DVR_DDNSPARA struDDNSClientParam;     /* DDNS鍙傛暟 */
+        //NET_DVR_EMAILPARA struEmailParam;       /* EMAIL鍙傛暟 */
+        public byte[] res = new byte[464];            /* 淇濈暀 */
+    }
+
+    public static class NET_DVR_SINGLE_NFS extends Structure {//nfs缁撴瀯閰嶇疆
+        public byte[] sNfsHostIPAddr = new byte[16];
+        public byte[] sNfsDirectory = new byte[PATHNAME_LEN];        // PATHNAME_LEN = 128
+    }
+
+    public static class NET_DVR_NFSCFG extends Structure {
+        public int dwSize;
+        public NET_DVR_SINGLE_NFS[] struNfsDiskParam = new NET_DVR_SINGLE_NFS[MAX_NFS_DISK];
+    }
+
+    //宸¤埅鐐归厤缃�(HIK IP蹇悆涓撶敤)
+    public static class NET_DVR_CRUISE_POINT extends Structure {
+        public byte PresetNum;    //棰勭疆鐐�
+        public byte Dwell;        //鍋滅暀鏃堕棿
+        public byte Speed;        //閫熷害
+        public byte Reserve;    //淇濈暀
+    }
+
+    public static class NET_DVR_CRUISE_RET extends Structure {
+        public NET_DVR_CRUISE_POINT[] struCruisePoint = new NET_DVR_CRUISE_POINT[32];            //鏈�澶ф敮鎸�32涓贰鑸偣
+    }
+
+    /************************************
+     * 澶氳矾瑙g爜鍣�(begin)
+     ***************************************/
+//澶氳矾瑙g爜鍣ㄦ墿灞� added by zxy 2007-05-23
+    public static class NET_DVR_NETCFG_OTHER extends Structure {
+        public int dwSize;
+        public byte[] sFirstDNSIP = new byte[16];
+        public byte[] sSecondDNSIP = new byte[16];
+        public byte[] sRes = new byte[32];
+    }
+
+    public static class NET_DVR_MATRIX_DECINFO extends Structure {
+        public byte[] sDVRIP = new byte[16];                /* DVR IP鍦板潃 */
+        public short wDVRPort;                /* 绔彛鍙� */
+        public byte byChannel;                /* 閫氶亾鍙� */
+        public byte byTransProtocol;            /* 浼犺緭鍗忚绫诲瀷 0-TCP 1-UDP */
+        public byte byTransMode;                /* 浼犺緭鐮佹祦妯″紡 0锛嶄富鐮佹祦 1锛嶅瓙鐮佹祦*/
+        public byte[] byRes = new byte[3];
+        public byte[] sUserName = new byte[NAME_LEN];            /* 甯冮槻涓绘満鐧婚檰甯愬彿 */
+        public byte[] sPassword = new byte[PASSWD_LEN];            /* 甯冮槻涓绘満瀵嗙爜 */
+    }
+
+    public static class NET_DVR_MATRIX_DYNAMIC_DEC extends Structure {//鍚姩/鍋滄鍔ㄦ�佽В鐮�
+        public int dwSize;
+        public NET_DVR_MATRIX_DECINFO struDecChanInfo;        /* 鍔ㄦ�佽В鐮侀�氶亾淇℃伅 */
+    }
+
+    public static class NET_DVR_MATRIX_DEC_CHAN_STATUS extends Structure {//2007-12-13 modified by zxy 淇敼澶氳矾瑙g爜鍣ㄧ殑NET_DVR_MATRIX_DEC_CHAN_STATUS缁撴瀯
+        public int dwSize;//2008-1-16 modified by zxy dwIsLinked鐨勭姸鎬佺敱鍘熸潵鐨�0锛嶆湭閾炬帴 1锛嶈繛鎺ヤ慨鏀规垚浠ヤ笅涓夌鐘舵�併��
+        public int dwIsLinked;         /* 瑙g爜閫氶亾鐘舵�� 0锛嶄紤鐪� 1锛嶆鍦ㄨ繛鎺� 2锛嶅凡杩炴帴 3-姝e湪瑙g爜 */
+        public int dwStreamCpRate;     /* Stream copy rate, X kbits/second */
+        public byte[] cRes = new byte[64];        /* 淇濈暀 */
+    }
+//end 2007-12-13 modified by zxy
+
+    public static class NET_DVR_MATRIX_DEC_CHAN_INFO extends Structure {
+        public int dwSize;
+        public NET_DVR_MATRIX_DECINFO struDecChanInfo;        /* 瑙g爜閫氶亾淇℃伅 */
+        public int dwDecState;    /* 0-鍔ㄦ�佽В鐮� 1锛嶅惊鐜В鐮� 2锛嶆寜鏃堕棿鍥炴斁 3锛嶆寜鏂囦欢鍥炴斁 */
+        public NET_DVR_TIME StartTime;        /* 鎸夋椂闂村洖鏀惧紑濮嬫椂闂� */
+        public NET_DVR_TIME StopTime;        /* 鎸夋椂闂村洖鏀惧仠姝㈡椂闂� */
+        public byte[] sFileName = new byte[128];        /* 鎸夋枃浠跺洖鏀炬枃浠跺悕 */
+    }
+
+    //杩炴帴鐨勯�氶亾閰嶇疆 2007-11-05
+    public static class NET_DVR_MATRIX_DECCHANINFO extends Structure {
+        public int dwEnable;                    /* 鏄惁鍚敤 0锛嶅惁 1锛嶅惎鐢�*/
+        public NET_DVR_MATRIX_DECINFO struDecChanInfo;        /* 杞惊瑙g爜閫氶亾淇℃伅 */
+    }
+
+    //2007-11-05 鏂板姣忎釜瑙g爜閫氶亾鐨勯厤缃�
+    public static class NET_DVR_MATRIX_LOOP_DECINFO extends Structure {
+        public int dwSize;
+        public int dwPoolTime;            /*杞贰鏃堕棿 */
+        public NET_DVR_MATRIX_DECCHANINFO[] struchanConInfo = new NET_DVR_MATRIX_DECCHANINFO[MAX_CYCLE_CHAN];
+    }
+
+    //2007-05-25  澶氳矾瑙g爜鍣ㄦ暟瀛楃煩闃甸厤缃�
+//鐭╅樀琛屼俊鎭� 2007-12-28
+    public static class NET_DVR_MATRIX_ROW_ELEMENT extends Structure {
+        public byte[] sSurvChanName = new byte[128];            /* 甯冮槻閫氶亾鍚嶇О锛屾敮鎸佷腑鏂� */
+        public int dwRowNum;                /* 琛屽彿 */
+        public NET_DVR_MATRIX_DECINFO struDecChanInfo;        /* 鐭╅樀琛屼俊鎭� */
+    }
+
+    public static class NET_DVR_MATRIX_ROW_INDEX extends Structure {
+        public byte[] sSurvChanName = new byte[128];            /* 甯冮槻閫氶亾鍚嶇О锛屾敮鎸佷腑鏂� */
+        public int dwRowNum;                /* 琛屽彿 */
+    }
+
+    //鐭╅樀鍒椾俊鎭� 2007-12-28
+    public static class NET_DVR_MATRIX_COLUMN_ELEMENT extends Structure {
+        public int dwLocalDispChanNum;    /* 鏈湴鏄剧ず閫氶亾鍙� */
+        public int dwGlobalDispChanNum;    /* 鍏ㄥ眬鏄剧ず閫氶亾鍙� */
+        public int dwRes;            /* 淇濈暀 */
+    }
+
+    public static class NET_DVR_MATRIX_GLOBAL_COLUMN_ELEMENT extends Structure {
+        public int dwConflictTag;        /* 鍐茬獊鏍囪锛�0锛氭棤鍐茬獊锛�1锛氬啿绐� */
+        public int dwConflictGloDispChan;    /* 涓庝箣鍐茬獊鐨勫叏灞�閫氶亾鍙� */
+        public NET_DVR_MATRIX_COLUMN_ELEMENT struColumnInfo;/* 鐭╅樀鍒楀厓绱犵粨鏋勪綋 */
+    }
+
+    //鎵嬪姩鏌ョ湅 2007-12-28
+    public static class NET_DVR_MATRIX_ROW_COLUMN_LINK extends Structure {
+        public int dwSize;
+        /*
+         *	浠ヤ笅涓変釜鍙傛暟鍙渶瑕佹寚瀹氬叾涓竴涓究鍙寚瀹氭暟瀛楃煩闃甸噷鐨勬煇涓�琛�
+         *	鎵�浠h〃鐨勮繙绋嬪竷闃查�氶亾銆�
+         *	濡傛灉鎸囧畾浜嗗涓煙骞舵湁鍐茬獊锛岃澶囧皢鎸夌収鍩熺殑鍏堝悗椤哄簭涓哄噯鍙栨渶鍏堝畾涔夎�呫��
+         */
+        public int dwRowNum;            /* -1浠h〃鏃犳晥鍩�,澶т簬0鑰呮柟涓烘湁鏁堢殑鐭╅樀琛屽彿 */
+        public byte[] sSurvChanName = new byte[128];    /* 甯冮槻閫氶亾鍚�,鏄惁鏃犳晥鎸夊瓧绗︿覆鐨勬湁鏁堟�у垽鏂� */
+        public int dwSurvNum;            /* 甯冮槻閫氶亾鍙�,鎸夌煩闃佃鍒楄〃鐨勯『搴忔寚瀹氾紝涓�鑸儏鍐典笅涓庤鍙蜂竴鑷� */
+        /*
+         *	浠ヤ笅涓ら」鍙渶瑕佹寚瀹氬叾涓竴椤逛究鍙紝濡傛灉涓ら」閮芥湁鏁堥粯璁ら�夋嫨绗竴椤�
+         */
+        public int dwGlobalDispChanNum;            /* 鐢佃澧欎笂鐨勭數瑙嗘満缂栧彿 */
+        public int dwLocalDispChanNum;
+        /*
+         *	0浠h〃鎾斁鍗虫椂鐮佹祦锛�
+         *	1琛ㄧず鎸夋椂闂村洖璁胯繙绋嬪竷闃茶澶囩殑鏂囦欢
+         *	2琛ㄧず鎸夋枃浠跺悕鍥炶
+         */
+        public int dwTimeSel;
+        public NET_DVR_TIME StartTime;
+        public NET_DVR_TIME StopTime;
+        public byte[] sFileName = new byte[128];
+    }
+
+    public static class NET_DVR_MATRIX_PREVIEW_DISP_CHAN extends Structure {
+        public int dwSize;
+        public int dwGlobalDispChanNum;        /* 鐢佃澧欎笂鐨勭數瑙嗘満缂栧彿 */
+        public int dwLocalDispChanNum;        /* 瑙g爜閫氶亾 */
+    }
+
+    public static class NET_DVR_MATRIX_LOOP_PLAY_SET extends Structure {//杞惊鍔熻兘 2007-12-28
+        public int dwSize;
+        /* 浠绘剰鎸囧畾涓�涓�,-1涓烘棤鏁�,濡傛灉閮芥寚瀹氬垯浠ocalDispChanNum涓哄噯 */
+        public int dwLocalDispChanNum;    /* 瑙g爜閫氶亾 */
+        public int dwGlobalDispChanNum;    /* 鐢佃澧欎笂鐨勭數瑙嗘満缂栧彿 */
+        public int dwCycTimeInterval;    /* 杞惊鏃堕棿闂撮殧 */
+    }
+
+    public static class NET_DVR_MATRIX_LOCAL_HOST_INFO extends Structure {//鐭╅樀涓績閰嶇疆 2007-12-28
+        public int dwSize;
+        public int dwLocalHostProperty;    /* 鏈湴涓绘満绫诲瀷 0锛嶆湇鍔″櫒 1锛嶅鎴风*/
+        public int dwIsIsolated;        /* 鏈湴涓绘満鏄惁鐙珛浜庣郴缁燂紝0锛氳仈缃戯紝1锛氱嫭绔� */
+        public int dwLocalMatrixHostPort;    /* 鏈湴涓绘満璁块棶绔彛 */
+        public byte[] byLocalMatrixHostUsrName = new byte[NAME_LEN];        /* 鏈湴涓绘満鐧诲綍鐢ㄦ埛鍚� */
+        public byte[] byLocalMatrixHostPasswd = new byte[PASSWD_LEN];        /* 鏈湴涓绘満鐧诲綍瀵嗙爜 */
+        public int dwLocalMatrixCtrlMedia;                /* 鎺у埗鏂瑰紡 0x1涓插彛閿洏鎺у埗 0x2缃戠粶閿洏鎺у埗 0x4鐭╅樀涓績鎺у埗 0x8PC瀹㈡埛绔帶鍒�*/
+        public byte[] sMatrixCenterIP = new byte[16];        /* 鐭╅樀涓績IP鍦板潃 */
+        public int dwMatrixCenterPort;        /* 鐭╅樀涓績绔彛鍙� */
+        public byte[] byMatrixCenterUsrName = new byte[NAME_LEN];    /* 鐭╅樀涓績鐧诲綍鐢ㄦ埛鍚� */
+        public byte[] byMatrixCenterPasswd = new byte[PASSWD_LEN];    /* 鐭╅樀涓績鐧诲綍瀵嗙爜 */
+    }
+
+    //2007-12-22
+    public static class TTY_CONFIG extends Structure {
+        public byte baudrate;    /* 娉㈢壒鐜� */
+        public byte databits;        /* 鏁版嵁浣� */
+        public byte stopbits;        /* 鍋滄浣� */
+        public byte parity;        /* 濂囧伓鏍¢獙浣� */
+        public byte flowcontrol;    /* 娴佹帶 */
+        public byte[] res = new byte[3];
+    }
+
+    public static class NET_DVR_MATRIX_TRAN_CHAN_INFO extends Structure {
+        public byte byTranChanEnable;    /* 褰撳墠閫忔槑閫氶亾鏄惁鎵撳紑 0锛氬叧闂� 1锛氭墦寮� */
+        /*
+         *	澶氳矾瑙g爜鍣ㄦ湰鍦版湁1涓�485涓插彛锛�1涓�232涓插彛閮藉彲浠ヤ綔涓洪�忔槑閫氶亾,璁惧鍙峰垎閰嶅涓嬶細
+         *	0 RS485
+         *	1 RS232 Console
+         */
+        public byte byLocalSerialDevice;            /* Local serial device */
+        /*
+         *	杩滅▼涓插彛杈撳嚭杩樻槸涓や釜,涓�涓猂S232锛屼竴涓猂S485
+         *	1琛ㄧず232涓插彛
+         *	2琛ㄧず485涓插彛
+         */
+        public byte byRemoteSerialDevice;            /* Remote output serial device */
+        public byte res1;                            /* 淇濈暀 */
+        public byte[] sRemoteDevIP = new byte[16];                /* Remote Device IP */
+        public short wRemoteDevPort;                /* Remote Net Communication Port */
+        public byte[] res2 = new byte[2];                        /* 淇濈暀 */
+        public TTY_CONFIG RemoteSerialDevCfg;
+    }
+
+    public static class NET_DVR_MATRIX_TRAN_CHAN_CONFIG extends Structure {
+        public int dwSize;
+        public byte by232IsDualChan; /* 璁剧疆鍝矾232閫忔槑閫氶亾鏄叏鍙屽伐鐨� 鍙栧��1鍒癕AX_SERIAL_NUM */
+        public byte by485IsDualChan; /* 璁剧疆鍝矾485閫忔槑閫氶亾鏄叏鍙屽伐鐨� 鍙栧��1鍒癕AX_SERIAL_NUM */
+        public byte[] res = new byte[2];    /* 淇濈暀 */
+        public NET_DVR_MATRIX_TRAN_CHAN_INFO[] struTranInfo = new NET_DVR_MATRIX_TRAN_CHAN_INFO[MAX_SERIAL_NUM];/*鍚屾椂鏀寔寤虹珛MAX_SERIAL_NUM涓�忔槑閫氶亾*/
+    }
+
+    //2007-12-24 Merry Christmas Eve...
+    public static class NET_DVR_MATRIX_DEC_REMOTE_PLAY extends Structure {
+        public int dwSize;
+        public byte[] sDVRIP = new byte[16];        /* DVR IP鍦板潃 */
+        public short wDVRPort;            /* 绔彛鍙� */
+        public byte byChannel;            /* 閫氶亾鍙� */
+        public byte byReserve;
+        public byte[] sUserName = new byte[NAME_LEN];        /* 鐢ㄦ埛鍚� */
+        public byte[] sPassword = new byte[PASSWD_LEN];        /* 瀵嗙爜 */
+        public int dwPlayMode;    /* 0锛嶆寜鏂囦欢 1锛嶆寜鏃堕棿*/
+        public NET_DVR_TIME StartTime;
+        public NET_DVR_TIME StopTime;
+        public byte[] sFileName = new byte[128];
+    }
+
+
+    public static class NET_DVR_MATRIX_DEC_REMOTE_PLAY_CONTROL extends Structure {
+        public int dwSize;
+        public int dwPlayCmd;        /* 鎾斁鍛戒护 瑙佹枃浠舵挱鏀惧懡浠�*/
+        public int dwCmdParam;        /* 鎾斁鍛戒护鍙傛暟 */
+    }
+
+    public static class NET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS extends Structure {
+        public int dwSize;
+        public int dwCurMediaFileLen; /* 褰撳墠鎾斁鐨勫獟浣撴枃浠堕暱搴� */
+        public int dwCurMediaFilePosition; /* 褰撳墠鎾斁鏂囦欢鐨勬挱鏀句綅缃� */
+        public int dwCurMediaFileDuration; /* 褰撳墠鎾斁鏂囦欢鐨勬�绘椂闂� */
+        public int dwCurPlayTime; /* 陆聯鍓嶅凡缁忔挱鏀剧殑鏃堕棿 */
+        public int dwCurMediaFIleFrames; /* 褰撳墠鎾斁鏂囦欢鐨勬�诲抚鏁� */
+        public int dwCurDataType; /* 褰撳墠浼犺緭鐨勬暟鎹被鍨嬶紝19-鏂囦欢澶达紝20-娴佹暟鎹紝 21-鎾斁缁撴潫鏍囧織 */
+        public byte[] res = new byte[72];
+    }
+
+    public static class NET_DVR_MATRIX_PASSIVEMODE extends Structure {
+        public short wTransProtol;        //浼犺緭鍗忚锛�0-TCP, 1-UDP, 2-MCAST
+        public short wPassivePort;        //TCP,UDP鏃朵负TCP,UDP绔彛, MCAST鏃朵负MCAST绔彛
+        public NET_DVR_IPADDR struMcastIP;        //TCP,UDP鏃舵棤鏁�, MCAST鏃朵负澶氭挱鍦板潃
+        public byte byStreamType;  //鏁版嵁鎾斁妯″紡锛�1- 瀹炴椂娴侊紝2- 鏂囦欢娴�
+        public byte[] res = new byte[7];
+    }
+/************************************澶氳矾瑙g爜鍣�(end)***************************************/
+
+
+    /************************************
+     * 鎷兼帶(Start)
+     ***************************************/
+
+
+    public static final int NET_DVR_GET_SUBWND_DECODE_OSD = 9183;  //鑾峰彇瀛愮獥鍙hВ鐮丱SD淇℃伅
+    public static final int NET_DVR_GET_SUBWND_DECODE_OSD_ALL = 9184;  //鑾峰彇鎵�鏈夊瓙绐楀彛瑙g爜OSD淇℃伅
+    public static final int NET_DVR_SET_SUBWND_DECODE_OSD = 9185;  //璁剧疆瀛愮獥鍙hВ鐮丱SD淇℃伅
+    public static final int NET_DVR_GET_SUBWND_DECODE_OSD_CAP = 9186;  //鑾峰彇瀛愮獥鍙hВ鐮丱SD淇℃伅鑳藉姏闆�
+    public static final int NET_DVR_GET_DECODE_CHANNEL_OSD = 9187;  //鑾峰彇瑙g爜閫氶亾OSD淇℃伅
+    public static final int NET_DVR_SET_DECODE_CHANNEL_OSD = 9188;  //璁剧疆瑙g爜閫氶亾OSD淇℃伅
+
+    public static final int MAX_PLAN_ACTION_NUM = 32;    //棰勬鍔ㄤ綔涓暟
+    public static final int DAYS_A_WEEK = 7;    //涓�鍛�7澶�
+    public static final int MAX_PLAN_COUNT = 16;    //棰勬涓暟
+    public static final int MAX_LEN_OSD_CONTENT = 256;  //OSD淇℃伅鏈�澶ч暱搴�
+    public static final int MAX_NUM_OSD_ONE_SUBWND = 8;  //鍗曚釜瀛愮獥鍙f敮鎸佺殑鏈�澶SD鏁伴噺
+    public static final int MAX_NUM_SPLIT_WND = 64; //鍗曚釜绐楀彛鏀寔鐨勬渶澶у垎灞忕獥鍙f暟閲忥紙鍗冲瓙绐楀彛鏁伴噺锛�
+    public static final int MAX_NUM_OSD = 8;
+    public static final int MAX_CYCLE_CHAN_V30 = 64;      //鏈�澶ц疆宸¢�氶亾鏁帮紙鎵╁睍锛�
+    public static final int STREAM_PASSWD_LEN = 12;      //鐮佹祦鍔犲瘑瀵嗛挜鏈�澶ч暱搴�
+
+    public static class NET_DVR_VIDEO_WALL_INFO extends Structure {
+        public int dwSize;
+        //绐楀彛鍙凤細1瀛楄妭澧欏彿+1瀛楄妭淇濈暀+2瀛楄妭绐楀彛鍙�
+        public int dwWindowNo;
+        public int dwSceneNo;//鍦烘櫙鍙�
+        public int dwDestWallNo; //鐩殑澧欏彿
+        public int dwDestSceneNo;//鐩殑鍦烘櫙鍙�
+        public byte[] byRes = new byte[12];
+    }
+
+    public static class NET_DVR_SCENE_CONTROL_INFO extends Structure {
+        public int dwSize;
+        public NET_DVR_VIDEO_WALL_INFO struVideoWallInfo; //鐢佃澧欎俊鎭�
+        public int dwCmd; //鍦烘櫙鎺у埗鍛戒护锛�1-鍦烘櫙妯″紡鍒囨崲锛堝鏋滆鍒囨崲鐨勬槸褰撳墠鍦烘櫙锛屽垯涓嶈繘琛屽垏鎹級锛�2-鍒濆鍖栧満鏅紙灏嗘鍦烘櫙鐨勯厤缃竻绌猴紝濡傛灉鏄綋鍓嶅満鏅紝鍒欏悓鏃跺褰撳墠鍦烘櫙杩涜娓呭睆鎿嶄綔锛夛紝3-寮哄埗鍒囨崲锛堟棤璁烘槸鍚︽槸褰撳墠鍦烘櫙锛屽己鍒跺垏鎹級锛�4-淇濆瓨褰撳墠妯″紡鍒版煇鍦烘櫙 5-鍒犻櫎鍦烘櫙 ,6-鍦烘櫙澶嶅埗
+        public byte[] byRes = new byte[4];
+    }
+
+    public static class NET_DVR_BUF_INFO extends Structure {
+        public Pointer pBuf;
+        public int nLen;
+    }
+
+    public static class NET_DVR_IN_PARAM extends Structure {
+        public NET_DVR_BUF_INFO struCondBuf;
+        public NET_DVR_BUF_INFO struInParamBuf;
+        public int dwRecvTimeout;      //鎺ユ敹鏁版嵁瓒呮椂鏃堕棿锛屽崟浣嶏細ms,缃�0閲囩敤鎺ュ彛榛樿瓒呮椂
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_OUT_PARAM extends Structure {
+        public NET_DVR_BUF_INFO struOutBuf;
+        public Pointer lpStatusList;
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_RECTCFG_EX extends Structure {
+        public int dwXCoordinate; /*鐭╁舰宸︿笂瑙掕捣濮嬬偣X鍧愭爣*/
+        public int dwYCoordinate; /*鐭╁舰宸︿笂瑙扽鍧愭爣*/
+        public int dwWidth;       /*鐭╁舰瀹藉害*/
+        public int dwHeight;      /*鐭╁舰楂樺害*/
+        public byte[] byRes = new byte[4];
+
+    }
+
+    public static class NET_DVR_VIDEOWALLWINDOWPOSITION extends Structure {
+        public int dwSize;
+        public byte byEnable;  //绐楀彛浣胯兘,0-涓嶄娇鑳斤紝1-浣胯兘
+        public byte byWndOperateMode;  //绐楀彛鎿嶄綔妯″紡锛�0-缁熶竴鍧愭爣锛�1-鍒嗚鲸鐜囧潗鏍�
+        public byte[] byRes1 = new byte[6];
+        public int dwWindowNo;//绐楀彛鍙�
+        public int dwLayerIndex;//绐楀彛鐩稿搴旂殑鍥惧眰鍙凤紝鍥惧眰鍙峰埌鏈�澶у嵆缃《锛岀疆椤舵搷浣�
+        public NET_DVR_RECTCFG_EX struRect; //鐩殑绐楀彛缁熶竴鍧愭爣(鐩稿鏄剧ず澧�)锛岃幏鍙栨垨鎸夌粺涓�鍧愭爣璁剧疆鏃舵湁鏁�
+        public NET_DVR_RECTCFG_EX struResolution; //鐩殑绐楀彛鍒嗚鲸鐜囧潗鏍囷紝鑾峰彇鎴栨寜鍒嗚鲸鐜囧潗鏍囪缃湁鏁�
+        public int dwXCoordinate; //LED鍖哄煙宸︿笂瑙扻鍧愭爣锛堢粺涓�鍧愭爣锛夛紝鑾峰彇鎴栨寜鍒嗚鲸鐜囧潗鏍囪缃湁鏁�
+        public int dwYCoordinate; //LED鍖哄煙宸︿笂瑙扽鍧愭爣锛堢粺涓�鍧愭爣锛夛紝鑾峰彇鎴栨寜鍒嗚鲸鐜囧潗鏍囪缃湁鏁�
+        public byte[] byRes2 = new byte[36];
+    }
+
+    public static class VIDEOWALLWINDOWPOSITION_ARRAY extends Structure {
+        public NET_DVR_VIDEOWALLWINDOWPOSITION[] strVideoWinPostion;
+
+        public VIDEOWALLWINDOWPOSITION_ARRAY(int iLen) {
+            strVideoWinPostion = new NET_DVR_VIDEOWALLWINDOWPOSITION[iLen];
+        }
+
+
+    }
+
+
+    public static class NET_DVR_WALLWINPARAM extends Structure {
+        public int dwSize;
+        public byte byTransparency; //浣胯兘閫忔槑搴︼紝0-鍏筹紝闈�0-寮�
+        public byte byWinMode;//绐楀彛鍒嗗睆妯″紡锛岃兘鍔涢泦鑾峰彇
+        public byte byEnableSpartan;//鐣呮樉浣胯兘锛�0-鍏筹紝1-寮�
+        public byte byDecResource;  //涓虹獥鍙e垎閰嶇殑瑙g爜璧勬簮锛�1-D1,2-720P,3-1080P
+        public byte byWndShowMode; //绐楀彛鏄剧ず妯″紡锛�0-姝ゅ瓧娈典笉鐢紝1-瀛愮獥鍙fā寮忥紝2-瀛愮獥鍙e叏灞忔ā寮�
+        public byte byEnabledFeature; //鏄惁鍚敤鍦烘櫙鐗瑰啓锛�0-涓嶅惎鐢紝!0-鍚敤
+        public byte byFeatureMode; //鐗瑰啓妯″紡锛屽惎鐢ㄥ満鏅壒鍐欐椂鏈夋晥锛�0-鏃犳晥锛�1-鈥�1+5鈥濇ā寮�
+        public byte byRes1;
+        public int dwAmplifyingSubWndNo; //鍏ㄥ睆瀛愮獥鍙e彿锛�1瀛楄妭澧欏彿+1瀛楄妭瀛愮獥鍙e彿+2瀛楄妭绐楀彛鍙凤級
+        //褰揵yWndShowMode涓�2鏃舵湁鏁堬紝琛ㄧず褰撳墠鍏ㄥ睆鏄剧ず鐨勫瓙绐楀彛
+        public byte byWndTopKeep; //绐楀彛缃《淇濇寔锛�0-涓嶄繚鎸侊紝1-淇濇寔
+        public byte byWndOpenKeep; //绐楀彛鎵撳紑淇濇寔锛�0-涓嶄繚鎸侊紝1-淇濇寔
+        public byte[] byRes = new byte[22];
+    }
+
+    public static class NET_DVR_PLAN_LIST extends Structure {
+        public int dwSize;
+        public int dwPlanNums;            //璁惧杈撳叆淇″彿婧愭暟閲�
+        public Pointer pBuffer;            //鎸囧悜dwInputSignalNums涓狽ET_DVR_PLAN_CFG缁撴瀯澶у皬鐨勭紦鍐插尯
+        public byte byWallNo;            //澧欏彿锛屼粠1寮�濮�
+        public byte[] byRes1 = new byte[2];
+        public int dwBufLen;            //鎵�鍒嗛厤缂撳啿鍖洪暱搴︼紝杈撳叆鍙傛暟锛堝ぇ浜庣瓑浜巇wInputSignalNums涓狽ET_DVR_PLAN_CFG缁撴瀯澶у皬锛�
+        public byte[] byRes2 = new byte[64];
+    }
+
+    /*棰勬椤逛俊鎭�*/
+    public static class NET_DVR_PLAN_INFO extends Structure {
+        public byte byValid;          // 璇ラ」鏄惁鏈夋晥
+        public byte byType;           // 瑙佸畾涔塏ET_DVR_PLAN_OPERATE_TYPE
+        public short wLayoutNo;      // 甯冨眬鍙�
+        public byte byScreenStyle;    //灞忓箷鍨嬪彿锛屽紑鍏虫満鎵�鐢紝1鏄綆浜紝2鏄珮浜�
+        public byte byBaseMapType;  //搴曞浘绫诲瀷锛�1-鍥剧墖搴曞浘锛�2-瓒呴珮娓呰緭鍏ュ簳鍥撅紝搴曞浘鍒囨崲鏃舵湁鏁�
+        public byte[] byRes1 = new byte[2];
+        public int dwDelayTime;      // 涓�涓」鐨勮繍琛屾椂闂�, 鍗曚綅绉�
+        public int dwSerialNo;        //涓插彛鍙凤紝灞忓箷鎺у埗鏃朵娇鐢�
+        public int dwBaseMapWndNo; //搴曞浘绐楀彛鍙凤紝搴曞浘鍒囨崲鏃舵湁鏁�
+        public int dwBaseMapNo;   //搴曞浘鍙凤紝搴曞浘鍒囨崲鏃舵湁鏁堬紱搴曞浘绫诲瀷涓�1鏃讹紝姝ゅ弬鏁颁负鍥剧墖搴忓彿锛屽簳鍥剧被鍨嬩负2鏃舵鍙傛暟涓鸿秴楂樻竻杈撳叆瀛愮郴缁熻緭鍏ュ彿锛�1瀛楄妭璁惧鍙�+1瀛楄妭瀛愭澘鍙�+2瀛楄妭鏄剧ず杈撳叆搴忓彿锛�
+        public byte[] byRes2 = new byte[20];
+    }
+
+    public static class NET_DVR_CYCLE_TIME extends Structure {
+        public byte byValid;
+        public byte[] byRes = new byte[3];
+        public NET_DVR_TIME_EX struTime = new NET_DVR_TIME_EX();
+    }
+
+    /*棰勬绠$悊*/
+    public static class NET_DVR_PLAN_CFG extends Structure {
+        public int dwSize;
+        public byte byValid;          // 璇ラ妗堟槸鍚︽湁鏁�
+        public byte byWorkMode;      // 棰勬宸ヤ綔妯″紡 1琛ㄧず鎵嬪姩锛�2鑷姩锛�3棰勬寰幆
+        public byte byWallNo;        //鐢佃澧欏彿锛屼粠1寮�濮�
+        public byte byPlanNo;    //棰勬鍙凤紝鑾峰彇棰勬鍒楄〃鏃舵湁鏁堬紝0-鏃犳晥鎴栦笉鏀寔
+        public byte[] byPlanName = new byte[NAME_LEN/*32*/]; //棰勬鍚嶇О
+        public NET_DVR_TIME_EX struTime; // 宸ヤ綔妯″紡涓鸿嚜鍔ㄦ椂浣跨敤
+        public NET_DVR_CYCLE_TIME[] struTimeCycle = new NET_DVR_CYCLE_TIME[DAYS_A_WEEK/*7*/]; /*寰幆鏃堕棿锛屽懆鏈熶负涓�涓槦鏈燂紝骞淬�佹湀銆佹棩涓変釜鍙傛暟涓嶄娇鐢ㄣ�傚锛歴truTimeCycle[0]涓殑byValid鐨勫�兼槸1锛岃〃绀烘槦鏈熷ぉ鎵ц璇ラ妗堛�傛槦鏈熷彇鍊煎尯闂翠负[0,6]锛屽叾涓�0浠h〃鏄熸湡澶╋紝1浠h〃鏄熸湡涓�锛屼互姝ょ被鎺�*/
+        public int dwWorkCount;      // 棰勬鍐呭鎵ц娆℃暟
+        public NET_DVR_PLAN_INFO[] strPlanEntry = new NET_DVR_PLAN_INFO[MAX_PLAN_ACTION_NUM/*32*/];  // 棰勬鎵ц鐨勫唴瀹�
+        public int dwPlanNo; //4瀛楄妭棰勬鍙凤紝瀹㈡埛绔粺涓�浣跨敤4瀛楄妭鐨勯妗堝彿锛屽崟瀛楄妭鐨勯妗堝彿涓嶅啀浣跨敤
+        public byte[] byRes2 = new byte[60];
+    }
+
+    public static class NET_DVR_WALLSCENECFG extends Structure {
+        public int dwSize;
+        public byte[] sSceneName = new byte[NAME_LEN];    //鍦烘櫙鍚嶇О
+        public byte byEnable;                //鍦烘櫙鏄惁鏈夋晥锛�0-鏃犳晥锛�1-鏈夋晥
+        public byte bySceneIndex;            //鍦烘櫙鍙凤紝鍙兘鑾峰彇銆傝幏鍙栨墍鏈夊満鏅椂浣跨敤璇ュ弬鏁�
+        public byte[] byRes = new byte[78];
+    }
+
+    public static class NET_DVR_SUBWND_DECODE_OSD extends Structure {
+        public int dwSize = 0;
+        public int dwSubWndNo = 0; //瀛愮獥鍙e彿锛�4瀛楄妭缁勫悎鏂瑰紡锛�
+        public int dwOSDNums = 0;  //璇ュ瓙绐楀彛閰嶇疆鐨凮SD淇℃伅鐨勪釜鏁�
+        public NET_DVR_OSD_INFO[] struOSDList = new NET_DVR_OSD_INFO[MAX_NUM_OSD_ONE_SUBWND];  //OSD淇℃伅鍒楄〃
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_OSD_INFO extends Structure {
+        public byte byEnabled = 1;  //鏄惁浣胯兘锛岄浂-涓嶄娇鑳斤紝闈為浂-浣胯兘
+        public byte byEnabledFlash = 0;  //鏄惁闂儊锛岄浂-涓嶉棯鐑侊紝闈為浂-闂儊
+        public byte byFontSize = 1;  //瀛椾綋澶у皬锛�1-澶э紝2-涓紝3-灏�
+        public byte byTransparent = 0;  //閫忔槑搴︼紝鍙栧�艰寖鍥�0-100
+        public NET_DVR_RGB_COLOR struColor = new NET_DVR_RGB_COLOR();  //瀛椾綋棰滆壊
+        public short wCoordinateX = 0;  //OSD宸︿笂瑙扻鍧愭爣
+        public short wCoordinateY = 0;  //OSD宸︿笂瑙扽鍧愭爣
+        public byte[] byContent = new byte[MAX_LEN_OSD_CONTENT];  //OSD淇℃伅
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_DEV_CHAN_INFO_EX extends Structure {
+        public byte byChanType;              //閫氶亾绫诲瀷锛�0-鏅�氶�氶亾,1-闆堕�氶亾,2-娴両D锛�3-鏈湴杈撳叆婧愶紝4-铏氭嫙灞忔湇鍔″櫒閫氶亾锛�5-鎷兼帴閫氶亾锛�6-灞忓箷鏈嶅姟鍣紝7-鍒嗗竷寮忕綉缁滄簮锛�8-澶氱浉鏈鸿瀺鍚堥�氶亾锛�9-缃戠粶杈撳叆婧�
+        public byte[] byStreamId = new byte[STREAM_ID_LEN]; //娴両D锛屽綋byChanType=2銆�9鏃讹紝璇ュ瓧娈电敤浜庢寚瀹氭祦鎴栬�呯綉缁渋pc鐨処D鍙�
+        public byte[] byRes1 = new byte[3];
+        public int dwChannel;  //閫氶亾鍙凤紝閫氶亾绫诲瀷涓烘櫘閫氶�氶亾锛岄浂閫氶亾锛屾湰鍦拌緭鍏ユ簮锛岃櫄鎷熷睆鏈嶅姟鍣ㄩ�氶亾锛屾嫾鎺ラ�氶亾锛屽睆骞曟湇鍔″櫒锛屽垎甯冨紡缃戠粶婧愭椂濉瀛楁
+        public byte[] byRes2 = new byte[24];
+        public byte[] byAddress = new byte[MAX_DOMAIN_NAME];    //璁惧鍩熷悕
+        public short wDVRPort;                 //绔彛鍙�
+        public byte byChannel;                //閫氶亾鍙�,dwChannel涓嶄负0鏃舵瀛楁鏃犳晥
+        public byte byTransProtocol;        //浼犺緭鍗忚绫诲瀷0-TCP锛�1-UDP
+        public byte byTransMode;            //浼犺緭鐮佹祦妯″紡 0锛嶄富鐮佹祦 1锛嶅瓙鐮佹祦
+        public byte byFactoryType;            /*鍓嶇璁惧鍘傚绫诲瀷,閫氳繃鎺ュ彛鑾峰彇*/
+        public byte byDeviceType; //璁惧绫诲瀷(瑙嗛缁煎悎骞冲彴鏅鸿兘鏉夸娇鐢�)锛�1-瑙g爜鍣紙姝ゆ椂鏍规嵁瑙嗛缁煎悎骞冲彴鑳藉姏闆嗕腑byVcaSupportChanMode瀛楁鏉ュ喅瀹氭槸浣跨敤瑙g爜閫氶亾杩樻槸鏄剧ず閫氶亾锛夛紝2-缂栫爜鍣�
+        public byte byDispChan;//鏄剧ず閫氶亾鍙�,鏅鸿兘閰嶇疆浣跨敤
+        public byte bySubDispChan;//鏄剧ず閫氶亾瀛愰�氶亾鍙凤紝鏅鸿兘閰嶇疆鏃朵娇鐢�
+        public byte byResolution;    //; 1-CIF 2-4CIF 3-720P 4-1080P 5-500w澶у睆鎺у埗鍣ㄤ娇鐢紝澶у睆鎺у埗鍣ㄤ細鏍规嵁璇ュ弬鏁板垎閰嶈В鐮佽祫婧�
+        public byte[] byRes = new byte[2];
+        public byte[] sUserName = new byte[NAME_LEN];    //甯冮槻涓绘満鐧婚檰甯愬彿
+        public byte[] sPassword = new byte[PASSWD_LEN];    //甯冮槻涓绘満瀵嗙爜
+    }
+
+    public static class NET_DVR_STREAM_MEDIA_SERVER extends Structure {
+        public byte byValid; //鏄惁鍚敤锛�0-鍚︼紝1-鏄�
+        public byte[] byRes1 = new byte[3];
+        public byte[] byAddress = new byte[MAX_DOMAIN_NAME];   //IP鎴栬�呭煙鍚�
+        public short wDevPort;            /*娴佸獟浣撴湇鍔″櫒绔彛*/
+        public byte byTransmitType;        /*浼犺緭鍗忚绫诲瀷 0-TCP锛�1-UDP*/
+        public byte[] byRes2 = new byte[5];
+    }
+
+    public static class NET_DVR_DEV_DDNS_INFO extends Structure {
+        public byte[] byDevAddress = new byte[MAX_DOMAIN_NAME];    //鍩熷悕(IPServer鎴杊iDDNS鏃跺彲濉簭鍒楀彿鎴栬�呭埆鍚�)
+        public byte byTransProtocol;        //浼犺緭鍗忚绫诲瀷0-TCP锛�1-UDP, 2-MCAST
+        public byte byTransMode;            //浼犺緭鐮佹祦妯″紡 0锛嶄富鐮佹祦 1锛嶅瓙鐮佹祦
+        public byte byDdnsType;         //鍩熷悕鏈嶅姟鍣ㄧ被鍨嬶紝0-IPServer 1锛岲yndns 2锛峆eanutHull(鑺辩敓澹�)锛�3- NO-IP, 4- hiDDNS
+        public byte byRes1;
+        public byte[] byDdnsAddress = new byte[MAX_DOMAIN_NAME];  //DDNS鏈嶅姟鍣ㄥ湴鍧�
+        public short wDdnsPort;                 //DDNS鏈嶅姟鍣ㄧ鍙e彿
+        public byte byChanType;              //0-鏅�氶�氶亾,1-闆堕�氶亾,2-娴両D
+        public byte byFactoryType;            //鍓嶇璁惧鍘傚绫诲瀷,閫氳繃鎺ュ彛鑾峰彇
+        public int dwChannel; //閫氶亾鍙�
+        public byte[] byStreamId = new byte[STREAM_ID_LEN]; //娴両D
+        public byte[] sUserName = new byte[NAME_LEN];    //甯冮槻涓绘満鐧婚檰甯愬彿
+        public byte[] sPassword = new byte[PASSWD_LEN];    //甯冮槻涓绘満瀵嗙爜
+        public short wDevPort;                //鍓嶇璁惧閫氫俊绔彛
+        public byte[] byRes2 = new byte[2];
+    }
+
+    public static class NET_DVR_DEC_STREAM_DEV_EX extends Structure {
+        public NET_DVR_STREAM_MEDIA_SERVER struStreamMediaSvrCfg = new NET_DVR_STREAM_MEDIA_SERVER();
+        public NET_DVR_DEV_CHAN_INFO_EX struDevChanInfo = new NET_DVR_DEV_CHAN_INFO_EX();
+    }
+
+    //DDNS鏂瑰紡鍙栨祦
+    public static class NET_DVR_DEC_DDNS_DEV extends Structure {
+        public NET_DVR_DEV_DDNS_INFO struDdnsInfo;
+        public NET_DVR_STREAM_MEDIA_SERVER struMediaServer;
+    }
+
+    public static class NET_DVR_DEC_STREAM_MODE extends Union {
+        public NET_DVR_DEC_STREAM_DEV_EX struDecStreamDev = new NET_DVR_DEC_STREAM_DEV_EX();
+        public NET_DVR_PU_STREAM_URL struUrlInfo = new NET_DVR_PU_STREAM_URL();
+        public NET_DVR_DEC_DDNS_DEV struDdnsDecInfo = new NET_DVR_DEC_DDNS_DEV();
+        public byte[] byRes = new byte[300];
+    }
+
+    public static class NET_DVR_MATRIX_CHAN_INFO_V41 extends Structure {
+        public byte byEnable; //鏄惁鍚敤锛�0-鍚︼紝1-鏄�
+        public byte byStreamMode;/*鍙栨祦妯″紡锛�0-鏃犳晥锛�1-閫氳繃IP鎴栧煙鍚嶅彇娴侊紝2-閫氳繃URL鍙栨祦,3-閫氳繃鍔ㄦ�佸煙鍚嶈В鏋愬悜璁惧鍙栨祦*/
+        public byte[] byRes = new byte[2];
+        public NET_DVR_DEC_STREAM_MODE uDecStreamMode = new NET_DVR_DEC_STREAM_MODE();//鍙栨祦淇℃伅
+    }
+
+    public static class NET_DVR_MATRIX_LOOP_DECINFO_V41 extends Structure {
+        public int dwSize;
+        public int dwPoolTime;        /*杞贰闂撮殧*/
+        public NET_DVR_MATRIX_CHAN_INFO_V41[] struchanConInfo = new NET_DVR_MATRIX_CHAN_INFO_V41[MAX_CYCLE_CHAN_V30];
+        public byte byStreamEncrypt;  //鏄惁杩涜鐮佹祦鍔犲瘑澶勭悊,0-涓嶆敮鎸�,1-鏀寔
+        public byte[] byRes = new byte[3];
+        public byte[] sStreamPassword = new byte[STREAM_PASSWD_LEN];  //鐮佹祦鍔犲瘑瀵嗙爜,闇�鏁忔劅淇℃伅鍔犲瘑
+    }
+
+    /************************************
+     * 鎷兼帶(End)
+     ***************************************/
+
+    public static class NET_DVR_EMAILCFG extends Structure {    /* 12 bytes */
+        public int dwSize;
+        public byte[] sUserName = new byte[32];
+        public byte[] sPassWord = new byte[32];
+        public byte[] sFromName = new byte[32];            /* Sender *///瀛楃涓蹭腑鐨勭涓�涓瓧绗﹀拰鏈�鍚庝竴涓瓧绗︿笉鑳芥槸"@",骞朵笖瀛楃涓蹭腑瑕佹湁"@"瀛楃
+        public byte[] sFromAddr = new byte[48];            /* Sender address */
+        public byte[] sToName1 = new byte[32];            /* Receiver1 */
+        public byte[] sToName2 = new byte[32];            /* Receiver2 */
+        public byte[] sToAddr1 = new byte[48];            /* Receiver address1 */
+        public byte[] sToAddr2 = new byte[48];            /* Receiver address2 */
+        public byte[] sEmailServer = new byte[32];        /* Email server address */
+        public byte byServerType;            /* Email server type: 0-SMTP, 1-POP, 2-IMTP鈥�*/
+        public byte byUseAuthen;            /* Email server authentication method: 1-enable, 0-disable */
+        public byte byAttachment;            /* enable attachment */
+        public byte byMailinterval;            /* mail interval 0-2s, 1-3s, 2-4s. 3-5s*/
+    }
+
+    public static class NET_DVR_COMPRESSIONCFG_NEW extends Structure {
+        public int dwSize;
+        public NET_DVR_COMPRESSION_INFO_EX struLowCompression;    //瀹毬毬氭椂褰曞儚
+        public NET_DVR_COMPRESSION_INFO_EX struEventCompression;    //浜嬩欢瑙﹀彂褰曞儚
+    }
+
+    //鐞冩満浣嶇疆淇℃伅
+    public static class NET_DVR_PTZPOS extends Structure {
+        public short wAction;//鑾峰彇鏃惰瀛楁鏃犳晥
+        public short wPanPos;//姘村钩鍙傛暟
+        public short wTiltPos;//鍨傜洿鍙傛暟
+        public short wZoomPos;//鍙樺�嶅弬鏁�
+    }
+
+    //鐞冩満鑼冨洿淇℃伅
+    public static class NET_DVR_PTZSCOPE extends Structure {
+        public short wPanPosMin;//姘村钩鍙傛暟min
+        public short wPanPosMax;//姘村钩鍙傛暟max
+        public short wTiltPosMin;//鍨傜洿鍙傛暟min
+        public short wTiltPosMax;//鍨傜洿鍙傛暟max
+        public short wZoomPosMin;//鍙樺�嶅弬鏁癿in
+        public short wZoomPosMax;//鍙樺�嶅弬鏁癿ax
+    }
+
+    public static class NET_DVR_PTZABSOLUTEEX_CFG extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public NET_PTZ_INFO struPTZCtrl = new NET_PTZ_INFO();//璁惧PTZF淇℃伅
+        public int dwFocalLen;//鐒﹁窛鑼冨洿锛�0-100000MM
+        public float fHorizontalSpeed;//姘村钩杞姩閫熷害锛�0.01-1000.00搴�/S
+        public float fVerticalSpeed;//鍨傜洿杞姩閫熷害锛�0.01-1000.00搴�/S
+        /*闀滃ご鍙樺�嶉厤缃被鍨嬶紱absoluteZoom:閫氳繃鍙樺�嶅弬鏁拌繘琛岄厤缃紝閫夋嫨涓鸿绫诲瀷鏃秙truPTZCtrl涓殑fZoom鍙傛暟鐢熸晥銆俧ocalLen:閫氳繃鐒﹁窛鍙傛暟杩涜閰嶇疆锛岄�夋嫨涓鸿绫诲瀷鏃讹紝dwFocalLen鍙傛暟鐢熸晥銆�*/
+        public byte byZoomType;// 闀滃ご鍙樺�嶉厤缃被鍨�0~ absoluteZoom锛�1~ focalLen
+        public byte[] byRes = new byte[123];
+    }
+
+    //rtsp閰嶇疆 ipcamera涓撶敤
+    public static class NET_DVR_RTSPCFG extends Structure {
+        public int dwSize;         //闀垮害
+        public short wPort;          //rtsp鏈嶅姟鍣ㄤ睛鍚鍙�
+        public byte[] byReserve = new byte[54];  //棰勭暀
+    }
+
+    /********************************
+     * 鎺ュ彛鍙傛暟缁撴瀯(begin)
+     *********************************/
+
+//NET_DVR_Login()鍙傛暟缁撴瀯
+    public static class NET_DVR_DEVICEINFO extends Structure {
+        public byte[] sSerialNumber = new byte[SERIALNO_LEN];   //搴忓垪鍙�
+        public byte byAlarmInPortNum;                //DVR鎶ヨ杈撳叆涓暟
+        public byte byAlarmOutPortNum;                //DVR鎶ヨ杈撳嚭涓暟
+        public byte byDiskNum;                        //DVR纭洏涓暟
+        public byte byDVRType;                        //DVR绫诲瀷, 1:DVR 2:ATM DVR 3:DVS ......
+        public byte byChanNum;                        //DVR 閫氶亾涓暟
+        public byte byStartChan;                    //璧峰閫氶亾鍙�,渚嬪DVS-1,DVR - 1
+    }
+
+    //NET_DVR_Login_V30()鍙傛暟缁撴瀯
+    public static class NET_DVR_DEVICEINFO_V30 extends Structure {
+        public byte[] sSerialNumber = new byte[SERIALNO_LEN];  //搴忓垪鍙�
+        public byte byAlarmInPortNum;    //鎶ヨ杈撳叆涓暟
+        public byte byAlarmOutPortNum;   //鎶ヨ杈撳嚭涓暟
+        public byte byDiskNum;           //纭洏涓暟
+        public byte byDVRType;         //璁惧绫诲瀷, 1:DVR 2:ATM DVR 3:DVS ......
+        public byte byChanNum;         //妯℃嫙閫氶亾涓暟
+        public byte byStartChan;      //璧峰閫氶亾鍙�,渚嬪DVS-1,DVR - 1
+        public byte byAudioChanNum;    //璇煶閫氶亾鏁�
+        public byte byIPChanNum;     //鏈�澶ф暟瀛楅�氶亾涓暟锛屼綆浣�
+        public byte byZeroChanNum;    //闆堕�氶亾缂栫爜涓暟 //2010-01-16
+        public byte byMainProto;      //涓荤爜娴佷紶杈撳崗璁被鍨� 0-private, 1-rtsp,2-鍚屾椂鏀寔private鍜宺tsp
+        public byte bySubProto;        //瀛愮爜娴佷紶杈撳崗璁被鍨�0-private, 1-rtsp,2-鍚屾椂鏀寔private鍜宺tsp
+        public byte bySupport;        //鑳藉姏锛屼綅涓庣粨鏋滀负0琛ㄧず涓嶆敮鎸侊紝1琛ㄧず鏀寔锛�
+        public byte bySupport1;        // 鑳藉姏闆嗘墿鍏咃紝浣嶄笌缁撴灉涓�0琛ㄧず涓嶆敮鎸侊紝1琛ㄧず鏀寔
+        public byte bySupport2; /*鑳藉姏*/
+        public short wDevType;              //璁惧鍨嬪彿
+        public byte bySupport3; //鑳藉姏闆嗘墿灞�
+        public byte byMultiStreamProto;//鏄惁鏀寔澶氱爜娴�,鎸変綅琛ㄧず,0-涓嶆敮鎸�,1-鏀寔,bit1-鐮佹祦3,bit2-鐮佹祦4,bit7-涓荤爜娴侊紝bit-8瀛愮爜娴�
+        public byte byStartDChan;        //璧峰鏁板瓧閫氶亾鍙�,0琛ㄧず鏃犳晥
+        public byte byStartDTalkChan;    //璧峰鏁板瓧瀵硅閫氶亾鍙凤紝鍖哄埆浜庢ā鎷熷璁查�氶亾鍙凤紝0琛ㄧず鏃犳晥
+        public byte byHighDChanNum;        //鏁板瓧閫氶亾涓暟锛岄珮浣�
+        public byte bySupport4;        //鑳藉姏闆嗘墿灞�
+        public byte byLanguageType;// 鏀寔璇鑳藉姏,鎸変綅琛ㄧず,姣忎竴浣�0-涓嶆敮鎸�,1-鏀寔
+        //  byLanguageType 绛変簬0 琛ㄧず 鑰佽澶�
+        //  byLanguageType & 0x1琛ㄧず鏀寔涓枃
+        //  byLanguageType & 0x2琛ㄧず鏀寔鑻辨枃
+        public byte byVoiceInChanNum;   //闊抽杈撳叆閫氶亾鏁�
+        public byte byStartVoiceInChanNo; //闊抽杈撳叆璧峰閫氶亾鍙� 0琛ㄧず鏃犳晥
+        public byte bySupport5;
+        public byte bySupport6;   //鑳藉姏
+        public byte byMirrorChanNum;    //闀滃儚閫氶亾涓暟锛�<褰曟挱涓绘満涓敤浜庤〃绀哄鎾�氶亾>
+        public short wStartMirrorChanNo;  //璧峰闀滃儚閫氶亾鍙�
+        public byte bySupport7;   //鑳藉姏
+        public byte byRes2;        //淇濈暀
+    }
+
+    public static final int NET_DVR_DEV_ADDRESS_MAX_LEN = 129;
+    public static final int NET_DVR_LOGIN_USERNAME_MAX_LEN = 64;
+    public static final int NET_DVR_LOGIN_PASSWD_MAX_LEN = 64;
+
+    public static interface FLoginResultCallBack extends Callback {
+        public int invoke(int lUserID, int dwResult, NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser);
+    }
+
+    //NET_DVR_Login_V40()鍙傛暟
+    public static class NET_DVR_USER_LOGIN_INFO extends Structure {
+        public byte[] sDeviceAddress = new byte[NET_DVR_DEV_ADDRESS_MAX_LEN];
+        public byte byUseTransport;
+        public short wPort;
+        public byte[] sUserName = new byte[NET_DVR_LOGIN_USERNAME_MAX_LEN];
+        public byte[] sPassword = new byte[NET_DVR_LOGIN_PASSWD_MAX_LEN];
+        public FLoginResultCallBack cbLoginResult;
+        public Pointer pUser;
+        public boolean bUseAsynLogin;
+        public byte byProxyType; //0:涓嶄娇鐢ㄤ唬鐞嗭紝1锛氫娇鐢ㄦ爣鍑嗕唬鐞嗭紝2锛氫娇鐢‥Home浠g悊
+        public byte byUseUTCTime;    //0-涓嶈繘琛岃浆鎹紝榛樿,1-鎺ュ彛涓婅緭鍏ヨ緭鍑哄叏閮ㄤ娇鐢║TC鏃堕棿,SDK瀹屾垚UTC鏃堕棿涓庤澶囨椂鍖虹殑杞崲,2-鎺ュ彛涓婅緭鍏ヨ緭鍑哄叏閮ㄤ娇鐢ㄥ钩鍙版湰鍦版椂闂达紝SDK瀹屾垚骞冲彴鏈湴鏃堕棿涓庤澶囨椂鍖虹殑杞崲
+        public byte byLoginMode; //0-Private 1-ISAPI 2-鑷�傚簲
+        public byte byHttps;    //0-涓嶉�傜敤tls锛�1-浣跨敤tls 2-鑷�傚簲
+        public int iProxyID;    //浠g悊鏈嶅姟鍣ㄥ簭鍙凤紝娣诲姞浠g悊鏈嶅姟鍣ㄤ俊鎭椂锛岀浉瀵瑰簲鐨勬湇鍔″櫒鏁扮粍涓嬭〃鍊�
+        public byte byVerifyMode;  //璁よ瘉鏂瑰紡锛�0-涓嶈璇侊紝1-鍙屽悜璁よ瘉锛�2-鍗曞悜璁よ瘉锛涜璇佷粎鍦ㄤ娇鐢═LS鐨勬椂鍊欑敓鏁�;
+        public byte[] byRes2 = new byte[119];
+    }
+
+    //NET_DVR_Login_V40()鍙傛暟
+    public static class NET_DVR_DEVICEINFO_V40 extends Structure {
+        public NET_DVR_DEVICEINFO_V30 struDeviceV30 = new NET_DVR_DEVICEINFO_V30();
+        public byte bySupportLock;
+        public byte byRetryLoginTime;
+        public byte byPasswordLevel;
+        public byte byRes1;
+        public int dwSurplusLockTime;
+        public byte byCharEncodeType;//瀛楃缂栫爜绫诲瀷锛�0- 鏃犲瓧绗︾紪鐮佷俊鎭�(鑰佽澶�)锛�1- GB2312(绠�浣撲腑鏂�)锛�2- GBK锛�3- BIG5(绻佷綋涓枃)锛�4- Shift_JIS(鏃ユ枃)锛�5- EUC-KR(闊╂枃)锛�6- UTF-8锛�7- ISO8859-1锛�8- ISO8859-2锛�9- ISO8859-3锛屸�︼紝渚濇绫绘帹锛�21- ISO8859-15(瑗挎)
+        public byte bySupportDev5; //鏀寔v50鐗堟湰鐨勮澶囧弬鏁拌幏鍙栵紝璁惧鍚嶇О鍜岃澶囩被鍨嬪悕绉伴暱搴︽墿灞曚负64瀛楄妭
+        public byte bySupport;  //鑳藉姏闆嗘墿灞曪紝浣嶄笌缁撴灉锛�0- 涓嶆敮鎸侊紝1- 鏀寔
+        public byte byLoginMode; //鐧诲綍妯″紡 0-Private鐧诲綍 1-ISAPI鐧诲綍
+        public int dwOEMCode;
+        public int iResidualValidity;   //璇ョ敤鎴峰瘑鐮佸墿浣欐湁鏁堝ぉ鏁帮紝鍗曚綅锛氬ぉ锛岃繑鍥炶礋鍊硷紝琛ㄧず瀵嗙爜宸茬粡瓒呮湡浣跨敤锛屼緥濡傗��-3琛ㄧず瀵嗙爜宸茬粡瓒呮湡浣跨敤3澶┾��
+        public byte byResidualValidity; // iResidualValidity瀛楁鏄惁鏈夋晥锛�0-鏃犳晥锛�1-鏈夋晥
+        public byte bySingleStartDTalkChan;    //鐙珛闊宠建鎺ュ叆鐨勮澶囷紝璧峰鎺ュ叆閫氶亾鍙凤紝0-涓轰繚鐣欏瓧鑺傦紝鏃犲疄闄呭惈涔夛紝闊宠建閫氶亾鍙蜂笉鑳戒粠0寮�濮�
+        public byte bySingleDTalkChanNums;    //鐙珛闊宠建鎺ュ叆鐨勮澶囩殑閫氶亾鎬绘暟锛�0-琛ㄧず涓嶆敮鎸�
+        public byte byPassWordResetLevel; //0-鏃犳晥锛�1-绠$悊鍛樺垱寤轰竴涓潪绠$悊鍛樼敤鎴蜂负鍏惰缃瘑鐮侊紝璇ラ潪绠$悊鍛樼敤鎴锋纭櫥褰曡澶囧悗瑕佹彁绀衡�滆淇敼鍒濆鐧诲綍瀵嗙爜鈥濓紝鏈慨鏀圭殑鎯呭喌涓嬶紝鐢ㄦ埛姣忔鐧诲叆閮戒細杩涜鎻愰啋锛�2-褰撻潪绠$悊鍛樼敤鎴风殑瀵嗙爜琚鐞嗗憳淇敼锛岃闈炵鐞嗗憳鐢ㄦ埛鍐嶆姝g‘鐧诲綍璁惧鍚庯紝闇�瑕佹彁绀衡�滆閲嶆柊璁剧疆鐧诲綍瀵嗙爜鈥濓紝鏈慨鏀圭殑鎯呭喌涓嬶紝鐢ㄦ埛姣忔鐧诲叆閮戒細杩涜鎻愰啋銆�
+        public byte bySupportStreamEncrypt;  //鑳藉姏闆嗘墿灞曪紝浣嶄笌缁撴灉锛�0- 涓嶆敮鎸侊紝1- 鏀寔 bySupportStreamEncrypt & 0x1:琛ㄧず鏄惁鏀寔RTP/TLS鍙栨祦 bySupportStreamEncrypt & 0x2:  琛ㄧず鏄惁鏀寔SRTP/UDP鍙栨祦 bySupportStreamEncrypt & 0x4:  琛ㄧず鏄惁鏀寔SRTP/MULTICAST鍙栨祦
+        public byte byMarketType;//0-鏃犳晥锛堟湭鐭ョ被鍨嬶級,1-缁忛攢鍨嬶紝2-琛屼笟鍨�
+        public byte[] byRes2 = new byte[238];
+    }
+
+    //sdk缃戠粶鐜鏋氫妇鍙橀噺锛岀敤浜庤繙绋嬪崌绾�
+    enum _SDK_NET_ENV {
+        LOCAL_AREA_NETWORK,
+        WIDE_AREA_NETWORK
+    }
+
+    //鏄剧ず妯″紡
+    enum DISPLAY_MODE {
+        NORMALMODE,
+        OVERLAYMODE
+    }
+
+    //鍙戦�佹ā寮�
+    enum SEND_MODE {
+        PTOPTCPMODE,
+        PTOPUDPMODE,
+        MULTIMODE,
+        RTPMODE,
+        RESERVEDMODE
+    }
+
+    ;
+
+    //鎶撳浘妯″紡
+    enum CAPTURE_MODE {
+        BMP_MODE,        //BMP妯″紡
+        JPEG_MODE        //JPEG妯″紡
+    }
+
+    ;
+
+    //瀹炴椂澹伴煶妯″紡
+    enum REALSOUND_MODE {
+        NONE,                   //SDK涓棤姝ゆā寮�,鍙槸涓轰簡濉ˉ0杩欎釜浣嶇疆
+        MONOPOLIZE_MODE,       //鐙崰妯″紡 1
+        SHARE_MODE        //鍏变韩妯″紡 2
+    }
+
+    ;
+
+    //杞В鐮侀瑙堝弬鏁�
+    public static class NET_DVR_CLIENTINFO extends Structure {
+        public int lChannel;
+        public int lLinkMode;
+        public HWND hPlayWnd;
+        public String sMultiCastIP;
+    }
+
+    //棰勮V40鎺ュ彛
+    public static class NET_DVR_PREVIEWINFO extends Structure {
+        public int lChannel;//閫氶亾鍙�
+        public int dwStreamType;    // 鐮佹祦绫诲瀷锛�0-涓荤爜娴侊紝1-瀛愮爜娴侊紝2-鐮佹祦3锛�3-鐮佹祦4, 4-鐮佹祦5,5-鐮佹祦6,7-鐮佹祦7,8-鐮佹祦8,9-鐮佹祦9,10-鐮佹祦10
+        public int dwLinkMode;// 0锛歍CP鏂瑰紡,1锛歎DP鏂瑰紡,2锛氬鎾柟寮�,3 - RTP鏂瑰紡锛�4-RTP/RTSP,5-RSTP/HTTP ,6- HRUDP锛堝彲闈犱紶杈擄級 ,7-RTSP/HTTPS
+        public int hPlayWnd;//鎾斁绐楀彛鐨勫彞鏌�,涓篘ULL琛ㄧず涓嶆挱鏀惧浘璞�
+        public int bBlocked;  //0-闈為樆濉炲彇娴�, 1-闃诲鍙栨祦, 濡傛灉闃诲SDK鍐呴儴connect澶辫触灏嗕細鏈�5s鐨勮秴鏃舵墠鑳藉杩斿洖,涓嶉�傚悎浜庤疆璇㈠彇娴佹搷浣�.
+        public int bPassbackRecord; //0-涓嶅惎鐢ㄥ綍鍍忓洖浼�,1鍚敤褰曞儚鍥炰紶
+        public byte byPreviewMode;//棰勮妯″紡锛�0-姝e父棰勮锛�1-寤惰繜棰勮
+        public byte[] byStreamID = new byte[32];//娴両D锛宭Channel涓�0xffffffff鏃跺惎鐢ㄦ鍙傛暟
+        public byte byProtoType; //搴旂敤灞傚彇娴佸崗璁紝0-绉佹湁鍗忚锛�1-RTSP鍗忚
+        public byte byRes1;
+        public byte byVideoCodingType; //鐮佹祦鏁版嵁缂栬В鐮佺被鍨� 0-閫氱敤缂栫爜鏁版嵁 1-鐑垚鍍忔帰娴嬪櫒浜х敓鐨勫師濮嬫暟鎹紙娓╁害鏁版嵁鐨勫姞瀵嗕俊鎭紝閫氳繃鍘诲姞瀵嗚繍绠楋紝灏嗗師濮嬫暟鎹畻鍑虹湡瀹炵殑娓╁害鍊硷級
+        public int dwDisplayBufNum; //鎾斁搴撴挱鏀剧紦鍐插尯鏈�澶х紦鍐插抚鏁帮紝鑼冨洿1-50锛岀疆0鏃堕粯璁や负1
+        public byte byNPQMode;    //NPQ鏄洿杩炴ā寮忥紝杩樻槸杩囨祦濯掍綋 0-鐩磋繛 1-杩囨祦濯掍綋
+        public byte[] byRes = new byte[215];
+    }
+
+    public static class NET_DVR_STREAM_INFO extends Structure {
+        public int dwSize;
+        public byte[] byID = new byte[32];
+        public int dwChannel;
+        public byte[] byRes = new byte[32];
+    }
+
+    //閰嶇疆鏉′欢
+    public static class NET_DVR_CLOUDSTORAGE_COND extends Structure {
+        public int dwSize;
+        public int dwChannel;
+        public byte[] byRes1 = new byte[64];
+    }
+
+    public static class NET_DVR_STREAM_RECORD_STATUS extends Structure {
+        public int dwSize;
+        public byte byRecord;
+        public byte byOffLineRecord;
+        public byte[] byRes1 = new byte[2];
+        public int dwRelatedHD;
+        public byte[] byRes2 = new byte[8];
+    }
+
+    //SDK鐘舵�佷俊鎭�(9000鏂板)
+    public static class NET_DVR_SDKSTATE extends Structure {
+        public int dwTotalLoginNum;        //褰撳墠login鐢ㄦ埛鏁�
+        public int dwTotalRealPlayNum;    //褰撳墠realplay璺暟
+        public int dwTotalPlayBackNum;    //褰撳墠鍥炴斁鎴栦笅杞借矾鏁�
+        public int dwTotalAlarmChanNum;    //褰撳墠寤虹珛鎶ヨ閫氶亾璺暟
+        public int dwTotalFormatNum;        //褰撳墠纭洏鏍煎紡鍖栬矾鏁�
+        public int dwTotalFileSearchNum;    //褰撳墠鏃ュ織鎴栨枃浠舵悳绱㈣矾鏁�
+        public int dwTotalLogSearchNum;    //褰撳墠鏃ュ織鎴栨枃浠舵悳绱㈣矾鏁�
+        public int dwTotalSerialNum;        //褰撳墠閫忔槑閫氶亾璺暟
+        public int dwTotalUpgradeNum;    //褰撳墠鍗囩骇璺暟
+        public int dwTotalVoiceComNum;    //褰撳墠璇煶杞彂璺暟
+        public int dwTotalBroadCastNum;    //褰撳墠璇煶骞挎挱璺暟
+        public int[] dwRes = new int[10];
+    }
+
+    //SDK鍔熻兘鏀寔淇℃伅(9000鏂板)
+    public static class NET_DVR_SDKABL extends Structure {
+        public int dwMaxLoginNum;        //鏈�澶ogin鐢ㄦ埛鏁� MAX_LOGIN_USERS
+        public int dwMaxRealPlayNum;        //鏈�澶ealplay璺暟 WATCH_NUM
+        public int dwMaxPlayBackNum;        //鏈�澶у洖鏀炬垨涓嬭浇璺暟 WATCH_NUM
+        public int dwMaxAlarmChanNum;    //鏈�澶у缓绔嬫姤璀﹂�氶亾璺暟 ALARM_NUM
+        public int dwMaxFormatNum;        //鏈�澶х‖鐩樻牸寮忓寲璺暟 SERVER_NUM
+        public int dwMaxFileSearchNum;    //鏈�澶ф枃浠舵悳绱㈣矾鏁� SERVER_NUM
+        public int dwMaxLogSearchNum;    //鏈�澶ф棩蹇楁悳绱㈣矾鏁� SERVER_NUM
+        public int dwMaxSerialNum;        //鏈�澶ч�忔槑閫氶亾璺暟 SERVER_NUM
+        public int dwMaxUpgradeNum;        //鏈�澶у崌绾ц矾鏁� SERVER_NUM
+        public int dwMaxVoiceComNum;        //鏈�澶ц闊宠浆鍙戣矾鏁� SERVER_NUM
+        public int dwMaxBroadCastNum;    //鏈�澶ц闊冲箍鎾矾鏁� MAX_CASTNUM
+        public int[] dwRes = new int[10];
+    }
+
+    //鎶ヨ璁惧淇℃伅
+    public static class NET_DVR_ALARMER extends Structure {
+        public byte byUserIDValid;                 /* userid鏄惁鏈夋晥 0-鏃犳晥锛�1-鏈夋晥 */
+        public byte bySerialValid;                 /* 搴忓垪鍙锋槸鍚︽湁鏁� 0-鏃犳晥锛�1-鏈夋晥 */
+        public byte byVersionValid;                /* 鐗堟湰鍙锋槸鍚︽湁鏁� 0-鏃犳晥锛�1-鏈夋晥 */
+        public byte byDeviceNameValid;             /* 璁惧鍚嶅瓧鏄惁鏈夋晥 0-鏃犳晥锛�1-鏈夋晥 */
+        public byte byMacAddrValid;                /* MAC鍦板潃鏄惁鏈夋晥 0-鏃犳晥锛�1-鏈夋晥 */
+        public byte byLinkPortValid;               /* login绔彛鏄惁鏈夋晥 0-鏃犳晥锛�1-鏈夋晥 */
+        public byte byDeviceIPValid;               /* 璁惧IP鏄惁鏈夋晥 0-鏃犳晥锛�1-鏈夋晥 */
+        public byte bySocketIPValid;               /* socket ip鏄惁鏈夋晥 0-鏃犳晥锛�1-鏈夋晥 */
+        public int lUserID;                       /* NET_DVR_Login()杩斿洖鍊�, 甯冮槻鏃舵湁鏁� */
+        public byte[] sSerialNumber = new byte[SERIALNO_LEN];    /* 搴忓垪鍙� */
+        public int dwDeviceVersion;                /* 鐗堟湰淇℃伅 楂�16浣嶈〃绀轰富鐗堟湰锛屼綆16浣嶈〃绀烘鐗堟湰*/
+        public byte[] sDeviceName = new byte[NAME_LEN];            /* 璁惧鍚嶅瓧 */
+        public byte[] byMacAddr = new byte[MACADDR_LEN];        /* MAC鍦板潃 */
+        public short wLinkPort;                     /* link port */
+        public byte[] sDeviceIP = new byte[128];                /* IP鍦板潃 */
+        public byte[] sSocketIP = new byte[128];                /* 鎶ヨ涓诲姩涓婁紶鏃剁殑socket IP鍦板潃 */
+        public byte byIpProtocol;                  /* Ip鍗忚 0-IPV4, 1-IPV6 */
+        public byte[] byRes2 = new byte[11];
+
+
+    }
+
+    //纭В鐮佹樉绀哄尯鍩熷弬鏁�(瀛愮粨鏋�)
+    public static class NET_DVR_DISPLAY_PARA extends Structure {
+        public int bToScreen;
+        public int bToVideoOut;
+        public int nLeft;
+        public int nTop;
+        public int nWidth;
+        public int nHeight;
+        public int nReserved;
+    }
+
+    //纭В鐮侀瑙堝弬鏁�
+    public static class NET_DVR_CARDINFO extends Structure {
+        public int lChannel;//閫氶亾鍙�
+        public int lLinkMode; //鏈�楂樹綅(31)涓�0琛ㄧず涓荤爜娴侊紝涓�1琛ㄧず瀛愶紝0锛�30浣嶈〃绀虹爜娴佽繛鎺ユ柟寮�:0锛歍CP鏂瑰紡,1锛歎DP鏂瑰紡,2锛氬鎾柟寮�,3 - RTP鏂瑰紡锛�4-鐢佃瘽绾匡紝5锛�128k瀹藉甫锛�6锛�256k瀹藉甫锛�7锛�384k瀹藉甫锛�8锛�512k瀹藉甫锛�
+        public String sMultiCastIP;
+        public NET_DVR_DISPLAY_PARA struDisplayPara;
+    }
+
+    //褰曡薄鏂囦欢鍙傛暟
+    public static class NET_DVR_FIND_DATA extends Structure {
+        public byte[] sFileName = new byte[100];//鏂囦欢鍚�
+        public NET_DVR_TIME struStartTime;//鏂囦欢鐨勫紑濮嬫椂闂�
+        public NET_DVR_TIME struStopTime;//鏂囦欢鐨勭粨鏉熸椂闂�
+        public int dwFileSize;//鏂囦欢鐨勫ぇ灏�
+    }
+
+    //褰曡薄鏂囦欢鍙傛暟(9000)
+    public static class NET_DVR_FINDDATA_V30 extends Structure {
+        public byte[] sFileName = new byte[100];//鏂囦欢鍚�
+        public NET_DVR_TIME struStartTime;//鏂囦欢鐨勫紑濮嬫椂闂�
+        public NET_DVR_TIME struStopTime;//鏂囦欢鐨勭粨鏉熸椂闂�
+        public int dwFileSize;//鏂囦欢鐨勫ぇ灏�
+        public byte[] sCardNum = new byte[32];
+        public byte byLocked;//9000璁惧鏀寔,1琛ㄧず姝ゆ枃浠跺凡缁忚閿佸畾,0琛ㄧず姝e父鐨勬枃浠�
+        public byte[] byRes = new byte[3];
+    }
+
+    //褰曡薄鏂囦欢鍙傛暟(甯﹀崱鍙�)
+    public static class NET_DVR_FINDDATA_CARD extends Structure {
+        public byte[] sFileName = new byte[100];//鏂囦欢鍚�
+        public NET_DVR_TIME struStartTime;//鏂囦欢鐨勫紑濮嬫椂闂�
+        public NET_DVR_TIME struStopTime;//鏂囦欢鐨勭粨鏉熸椂闂�
+        public int dwFileSize;//鏂囦欢鐨勫ぇ灏�
+        public byte[] sCardNum = new byte[32];
+    }
+
+    public static class NET_DVR_FILECOND_V40 extends Structure {
+        public int lChannel;
+        public int dwFileType;
+        public int dwIsLocked;
+        public int dwUseCardNo;//鏄惁甯TM淇℃伅杩涜鏌ヨ锛�0-涓嶅甫ATM淇℃伅锛�1-鎸変氦鏄撳崱鍙锋煡璇紝2-鎸変氦鏄撶被鍨嬫煡璇紝3-鎸変氦鏄撻噾棰濇煡璇紝4-鎸夊崱鍙枫�佷氦鏄撶被鍨嬪強浜ゆ槗閲戦鐨勭粍鍚堟煡璇� 5-鎸夎绋嬪悕绉版煡鎵撅紝姝ゆ椂鍗″彿琛ㄧず璇剧▼鍚嶇О
+        public byte[] sCardNumber = new byte[CARDNUM_LEN_OUT];
+        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();
+        public NET_DVR_TIME struStopTime = new NET_DVR_TIME();
+        public byte byDrawFrame; //0:涓嶆娊甯э紝1锛氭娊甯�
+        public byte byFindType; //0:鏌ヨ鏅�氬嵎锛�1锛氭煡璇㈠瓨妗e嵎
+        public byte byQuickSearch; //0:鏅�氭煡璇紝1锛氬揩閫燂紙鏃ュ巻锛夋煡璇�
+        public byte bySpecialFindInfoType;    //涓撴湁鏌ヨ鏉′欢绫诲瀷 0-鏃犳晥锛� 1-甯TM鏌ヨ鏉′欢
+        public int dwVolumeNum;  //瀛樻。鍗峰彿
+        public byte[] byWorkingDeviceGUID = new byte[GUID_LEN];    //宸ヤ綔鏈篏UID锛岄�氳繃鑾峰彇N+1寰楀埌
+        public NET_DVR_SPECIAL_FINDINFO_UNION uSpecialFindInfo = new NET_DVR_SPECIAL_FINDINFO_UNION();   //涓撴湁鏌ヨ鏉′欢
+        public byte byStreamType;    //0-鍚屼竴涓椂闂存鍙繑鍥炰竴绉嶅綍鍍忥紝浼樺厛绾ч『搴忎负锛氫富鐮佹祦銆佸瓙鐮佹祦銆佷笁鐮佹祦锛�1-瀛愮爜娴侊紝2-涓夌爜娴侊紝3-涓荤爜娴侊紝254-鍙岀爜娴佹悳绱�(浼樺厛杩斿洖涓荤爜娴佸綍鍍忥紝娌℃湁涓荤爜娴佸綍鍍忔椂杩斿洖瀛愮爜娴佸綍鍍�)
+        public byte byAudioFile;                //闊抽鏂囦欢 0-闈為煶棰戞枃浠讹紝1-闊抽鏂囦欢
+        public byte[] byRes2 = new byte[30];    //淇濈暀
+    }
+
+    public static class NET_DVR_SPECIAL_FINDINFO_UNION extends Union {
+        public byte[] byLenth = new byte[8];
+        public NET_DVR_ATMFINDINFO struATMFindInfo = new NET_DVR_ATMFINDINFO();           //ATM鏌ヨ
+    }
+
+    public static class NET_DVR_ATMFINDINFO extends Structure {
+        public byte byTransactionType;       //浜ゆ槗绫诲瀷 0-鍏ㄩ儴锛�1-鏌ヨ锛� 2-鍙栨锛� 3-瀛樻锛� 4-淇敼瀵嗙爜锛�5-杞处锛� 6-鏃犲崱鏌ヨ 7-鏃犲崱瀛樻锛� 8-鍚為挒 9-鍚炲崱 10-鑷畾涔�
+        public byte[] byRes = new byte[3];    //淇濈暀
+        public int dwTransationAmount;     //浜ゆ槗閲戦 ;
+    }
+
+    //褰曞儚鏂囦欢鏌ユ壘鏉′欢缁撴瀯V50
+    public static class NET_DVR_FILECOND_V50 extends Structure {
+        public NET_DVR_STREAM_INFO struStreamID; //娴両D鎴栭�氶亾鍙�
+        public NET_DVR_TIME_SEARCH_COND struStartTime = new NET_DVR_TIME_SEARCH_COND(); //寮�濮嬫椂闂�
+        public NET_DVR_TIME_SEARCH_COND struStopTime = new NET_DVR_TIME_SEARCH_COND(); //缁撴潫鏃堕棿
+        public byte byFindType; //0-鏌ヨ鏅�氬嵎锛�1-鏌ヨ瀛樻。鍗� 2-鏌ヨN+1褰曞儚鏂囦欢
+        public byte byDrawFrame; //鏄惁鎶藉抚 0-涓嶆娊甯� 1-鎶藉抚
+        public byte byQuickSearch; //0-鏅�氭煡璇紝1-蹇�燂紙鏃ュ巻锛夋煡璇�
+        public byte byStreamType; //0-涓荤爜娴侊紝1-瀛愮爜娴侊紝2-3鐮佹祦锛�0xff-鍏ㄩ儴
+        public int dwFileType; // 鏂囦欢绫诲瀷
+        public int dwVolumeNum; //瀛樻。鍗峰彿锛宐yFindType涓�1鏃舵湁鏁�
+        public byte byIsLocked; //鏄惁閿佸畾 0-姝e父鏂囦欢,1-閿佸畾鏂囦欢, 0xff琛ㄧず鎵�鏈夋枃浠�
+        public byte byNeedCard; //鏄惁闇�瑕佹煡璇㈠崱锛�0-涓嶉渶瑕� 1-闇�瑕�
+        public byte byOnlyAudioFile;        //闊抽鏂囦欢 0-瑙嗛鏂囦欢 1-闊抽鏂囦欢
+        public byte bySpecialFindInfoType; //0-鏃犳晥锛� 1-甯TM鏌ヨ鏉′欢
+        public byte[] szCardNum = new byte[32];  //鍗″彿锛宐yNeedCard涓�1鏃舵湁鏁�
+        public byte[] szWorkingDeviceGUID = new byte[16]; //宸ヤ綔鏈篏UID锛岄�氳繃鑾峰彇N+1寰楀埌锛宐yFindType涓�2鏃舵湁鏁�
+        public NET_DVR_SPECIAL_FINDINFO_UNION uSpecialFindInfo = new NET_DVR_SPECIAL_FINDINFO_UNION(); //涓撴湁鏌ヨ鏉′欢鑱斿悎浣�
+        public int dwTimeout; //鏌ユ壘瓒呮椂鏃堕棿锛堟寚瀹歂ET_DVR_FindNextFile_V30/NET_DVR_FindNextFile_V40/NET_DVR_FindNextFile_V50鎺ュ彛鐨勮秴鏃舵椂闂磋繑鍥烇級锛涘崟浣嶏細姣锛屼笉濉啓锛堥粯璁や负0鏃讹級锛屾帴鍙h涓鸿窡浠ュ墠涓�鏍� ;鏈夋晥鍊硷細0, [5000 鈥� 15000]
+        public byte[] byRes = new byte[252];
+    }
+
+    public static class NET_DVR_FINDDATA_V40 extends Structure {
+        public byte[] sFileName = new byte[100];//鏂囦欢鍚�
+        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();//鏂囦欢鐨勫紑濮嬫椂闂�
+        public NET_DVR_TIME struStopTime = new NET_DVR_TIME();//鏂囦欢鐨勭粨鏉熸椂闂�
+        public int dwFileSize;//鏂囦欢鐨勫ぇ灏�
+        public byte[] sCardNum = new byte[32];
+        public byte byLocked;//9000璁惧鏀寔,1琛ㄧず姝ゆ枃浠跺凡缁忚閿佸畾,0琛ㄧず姝e父鐨勬枃浠�
+        public byte byFileType;  //鏂囦欢绫诲瀷:0锛嶅畾鏃跺綍鍍�,1-绉诲姩渚︽祴 锛�2锛嶆姤璀﹁Е鍙戯紝
+        //3-鎶ヨ|绉诲姩渚︽祴 4-鎶ヨ&绉诲姩渚︽祴 5-鍛戒护瑙﹀彂 6-鎵嬪姩褰曞儚,7锛嶉渿鍔ㄦ姤璀︼紝8-鐜鎶ヨ锛�9-鏅鸿兘鎶ヨ锛�10-PIR鎶ヨ锛�11-鏃犵嚎鎶ヨ锛�12-鍛兼晳鎶ヨ,14-鏅鸿兘浜ら�氫簨浠�
+        public byte byQuickSearch; //0:鏅�氭煡璇㈢粨鏋滐紝1锛氬揩閫燂紙鏃ュ巻锛夋煡璇㈢粨鏋�
+        public byte byRes;
+        public int dwFileIndex; //鏂囦欢绱㈠紩鍙�
+        public byte byStreamType;
+        public byte[] byRes1 = new byte[127];
+    }
+
+    public static class NET_DVR_TIME_SEARCH extends Structure {
+        public short wYear;        //骞达紝璁惧OSD鏃堕棿
+        public byte byMonth;        //鏈堬紝璁惧OSD鏃堕棿
+        public byte byDay;        //鏃ワ紝璁惧OSD鏃堕棿
+        public byte byHour;        //鏃讹紝璁惧OSD鏃堕棿
+        public byte byMinute;    //鍒嗭紝璁惧OSD鏃堕棿
+        public byte bySecond;    //绉掞紝璁惧OSD鏃堕棿
+        public byte cTimeDifferenceH;        //涓庡浗闄呮爣鍑嗘椂闂寸殑鏃跺樊锛堝皬鏃讹級锛�-12 ... +14
+        public byte cTimeDifferenceM;        //涓庡浗闄呮爣鍑嗘椂闂寸殑鏃跺樊锛堝垎閽燂級锛�-30, 0, 30, 45
+        public byte byLocalOrUTC;      //0-鏃跺樊鏃犳晥锛岃澶囨湰鍦版椂闂达紝鍗宠澶嘜SD鏃堕棿  1-鏃跺樊鏈夋晥
+        public short wMillisecond;      //姣锛岀簿搴︿笉澶燂紝榛樿涓�0
+    }
+
+    public static class NET_DVR_ADDRESS extends Structure {
+        public NET_DVR_IPADDR struIP = new NET_DVR_IPADDR(); //IP鍦板潃
+        public short wPort;    //绔彛鍙�
+        public byte[] byRes = new byte[2];
+    }
+
+    public static class NET_DVR_FINDDATA_V50 extends Structure {
+        public byte[] sFileName = new byte[100];
+        public NET_DVR_TIME_SEARCH struStartTime = new NET_DVR_TIME_SEARCH();
+        public NET_DVR_TIME_SEARCH struStopTime = new NET_DVR_TIME_SEARCH();
+        public NET_DVR_ADDRESS struAddr = new NET_DVR_ADDRESS(); //鐗囨鎵�鍦ㄧ殑鍦板潃淇℃伅锛岄泦缇ゅ洖鏀炬椂鐢ㄥ埌
+        public int dwFileSize; //鏂囦欢澶у皬
+        public byte byLocked; //鏂囦欢鏄惁琚攣瀹氾紝1锛嶆枃浠跺凡閿佸畾锛�0锛嶆枃浠舵湭閿佸畾
+        public byte byFileType; //鏂囦欢绫诲瀷锛屼笌V40鐩稿悓
+        public byte byQuickSearch; //0- 鏅�氭煡璇㈢粨鏋滐紝1- 蹇�燂紙鏃ュ巻锛夋煡璇㈢粨鏋�
+        public byte byStreamType; //鐮佹祦绫诲瀷锛�0- 涓荤爜娴侊紝1- 瀛愮爜娴侊紝2- 鐮佹祦涓�
+        public int dwFileIndex; //鏂囦欢绱㈠紩鍙�
+        public byte[] sCardNum = new byte[32]; //鍗″彿
+        public int dwTotalLenH; // 瀵逛簬澶ф枃浠舵悳绱紝鏃堕棿娈靛唴鏁版嵁鎬婚暱搴︼紝楂�32瀛楄妭
+        public int dwTotalLenL; // 瀵逛簬澶ф枃浠舵悳绱紝鏃堕棿娈靛唴鏁版嵁鎬婚暱搴︼紝浣�32瀛楄妭
+        public byte byBigFileType;  // 0涓烘櫘閫氱墖娈垫悳绱紝1涓哄ぇ鏂囦欢鎼滅储
+        public byte[] byRes = new byte[247];
+    }
+
+    public static class NET_DVR_FILECOND extends Structure //褰曡薄鏂囦欢鏌ユ壘鏉′欢缁撴瀯
+    {
+        public int lChannel;//閫氶亾鍙�
+        public int dwFileType;//褰曡薄鏂囦欢绫诲瀷0xff锛嶅叏閮紝0锛嶅畾鏃跺綍鍍�,1-绉诲姩渚︽祴 锛�2锛嶆姤璀﹁Е鍙戯紝3-鎶ヨ|绉诲姩渚︽祴 4-鎶ヨ&绉诲姩渚︽祴 5-鍛戒护瑙﹀彂 6-鎵嬪姩褰曞儚
+        public int dwIsLocked;//鏄惁閿佸畾 0-姝e父鏂囦欢,1-閿佸畾鏂囦欢, 0xff琛ㄧず鎵�鏈夋枃浠�
+        public int dwUseCardNo;//鏄惁浣跨敤鍗″彿
+        public byte[] sCardNumber = new byte[32];//鍗″彿
+        public NET_DVR_TIME struStartTime;//寮�濮嬫椂闂�
+        public NET_DVR_TIME struStopTime;//缁撴潫鏃堕棿
+    }
+
+    public static class NET_DVR_PLAYCOND extends Structure //鍥炴斁鎴栬�呬笅杞戒俊鎭粨鏋勪綋
+    {
+        public int dwChannel;//閫氶亾鍙�
+        public NET_DVR_TIME struStartTime;
+        public NET_DVR_TIME struStopTime;
+        public byte byDrawFrame;  //0:涓嶆娊甯э紝1锛氭娊甯�
+        public byte byStreamType; //鐮佹祦绫诲瀷锛�0-涓荤爜娴� 1-瀛愮爜娴� 2-鐮佹祦涓�
+        public byte[] byStreamID = new byte[STREAM_ID_LEN];
+        public byte[] byRes = new byte[30];//淇濈暀
+    }
+
+    public static class NET_DVR_VOD_PARA extends Structure //鍥炴斁鎴栬�呬笅杞戒俊鎭粨鏋勪綋
+    {
+        public int dwSize;
+        public NET_DVR_STREAM_INFO struIDInfo;
+        public NET_DVR_TIME struBeginTime;
+        public NET_DVR_TIME struEndTime;
+        public HWND hWnd;
+        public byte byDrawFrame; //0:涓嶆娊甯э紝1锛氭娊甯�
+        public byte byVolumeType;  //0-鏅�氬綍鍍忓嵎  1-瀛樻。鍗�
+        public byte byVolumeNum;  //鍗峰彿锛岀洰鍓嶆寚瀛樻。鍗峰彿
+        public byte byStreamType;   //鐮佹祦绫诲瀷 0-涓荤爜娴侊紝 1-瀛愮爜娴侊紝2-鐮佹祦涓�
+        public int dwFileIndex;      //瀛樻。鍗蜂笂鐨勫綍鍍忔枃浠剁储寮曪紝鎼滅储瀛樻。鍗峰綍鍍忔椂杩斿洖鐨勫��
+        public byte byAudioFile;    //闊抽鏂囦欢0-鍚︼紝1-鏄�
+        public byte byCourseFile;    //璇剧▼鏂囦欢0-鍚︼紝1-鏄�
+        public byte byDownload;    //鏄惁涓嬭浇 0-鍚︼紝1-鏄�
+        public byte byOptimalStreamType;    //鏄惁鎸夋渶浼樼爜娴佺被鍨嬪洖鏀� 0-鍚︼紝1-鏄紙瀵逛簬鍙岀爜娴佽澶囷紝鏌愪竴娈垫椂闂村唴鐨勫綍鍍忔枃浠朵笌鎸囧畾鐮佹祦绫诲瀷涓嶅悓锛屽垯杩斿洖瀹為檯鐮佹祦绫诲瀷鐨勫綍鍍忥級
+        public byte[] byRes2 = new byte[20];
+    }
+
+    //鍥剧墖鏌ユ壘鏉′欢
+    public static class NET_DVR_FIND_PICTURE_PARAM extends Structure {
+        public int dwSize;         // 缁撴瀯浣撳ぇ灏�
+        public int lChannel;       // 閫氶亾鍙�
+        public byte byFileType;   //鍥剧墖鏌ユ壘绫诲瀷
+        public byte byNeedCard;     // 鏄惁闇�瑕佸崱鍙�
+        /*
+                           0-淇濈暀锛�1-婢筹紝2-浜紝3-娓濓紝4-闂斤紝5-鐢橈紝6-绮わ紝7-妗傦紝
+                           8-璐碉紝9-鐞硷紝10-鍐�锛�11-璞紝12-榛戯紝13-閯傦紝14-婀橈紝
+                           15-鍚夛紝16-鑻忥紝17-璧o紝18-杈斤紝19-钂欙紝20-瀹侊紝21-闈掞紝
+                           22-椴侊紝23-鏅嬶紝24-闄曪紝25-娌紝26-宸濓紝27-鍙帮紝28-娲ワ紝
+                           29-钘忥紝30-娓紝31-鏂帮紝32-浜戯紝33-娴欙紝34-鐨栵紝0xff-鍏ㄩ儴
+                           */
+        public byte byProvince;     //鐪佷唤绱㈠紩鍊�
+        public byte byEventType;      // 浜嬩欢绫诲瀷锛�0淇濈暀锛�1-浜ら�氫簨浠讹紱2-杩濈珷鍙栬瘉锛�3-鍏朵粬浜嬩欢
+        public byte[] sCardNum = new byte[CARDNUM_LEN_V30];     // 鍗″彿
+        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();//鏌ユ壘鍥剧墖鐨勫紑濮嬫椂闂�
+        public NET_DVR_TIME struStopTime = new NET_DVR_TIME();// 鏌ユ壘鍥剧墖鐨勭粨鏉熸椂闂�
+        //ITC3.7 鏂板
+        public int dwTrafficType; //鍥剧墖妫�绱㈢敓鏁堥」 鍙傝�� VCA_OPERATE _TYPE
+        public int dwVehicleType; //杞﹁締绫诲瀷 鍙傝�� VCA_VEHICLE_TYPE
+        //杩濊妫�娴嬬被鍨嬪弬鑰� VCA_ILLEGAL_TYPE 褰撳墠涓嶆敮鎸佸閫�
+        public int dwIllegalType;
+        public byte byLaneNo;  //杞﹂亾鍙�(1~99)
+        public byte bySubHvtType;//0-淇濈暀,1-鏈哄姩杞�(鏈哄姩杞﹀瓙绫诲瀷涓敮鎸佽溅鐗屾绱紝鐪佷唤妫�绱�),2-闈炴満鍔ㄨ溅,3-琛屼汉
+        public byte[] byRes2 = new byte[2];
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN/*16*/];    //杞︾墝鍙风爜
+        public byte byRegion;     // 鍖哄煙绱㈠紩鍊� 0-淇濈暀锛�1-娆ф床(Europe Region)锛�3-娆ф床&(EU&CIS), 4-涓笢(Middle East),0xff-鎵�鏈�
+        public byte byCountry;     // 鍥藉绱㈠紩鍊硷紝鍙傜収锛欳OUNTRY_INDEX
+        public byte byArea;  //鍦板尯
+        public byte byISO8601;  //鏄惁鏄�8601鐨勬椂闂存牸寮忥紝鍗虫椂宸瓧娈垫槸鍚︽湁鏁�0-鏃跺樊鏃犳晥锛屽勾鏈堟棩鏃跺垎绉掍负璁惧鏈湴鏃堕棿 1-鏃跺樊鏈夋晥
+        public byte cStartTimeDifferenceH;   //寮�濮嬫椂闂翠笌UTC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛� 姝f暟琛ㄧず涓滄椂鍖�
+        public byte cStartTimeDifferenceM;   //寮�濮嬫椂闂翠笌UTC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 0, 30, 45锛屾鏁拌〃绀轰笢鏃跺尯
+        public byte cStopTimeDifferenceH;    //缁撴潫鏃堕棿涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛屾鏁拌〃绀轰笢鏃跺尯
+        public byte cStopTimeDifferenceM;    //缁撴潫鏃堕棿涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 0, 30, 45锛屾鏁拌〃绀轰笢鏃跺尯
+    }
+
+    public static class NET_DVR_FIND_PICTURE extends Structure {
+        public byte[] sFileName = new byte[PICTURE_NAME_LEN];//鍥剧墖鍚�
+        public NET_DVR_TIME struTime;//鍥剧墖鐨勬椂闂�
+        public int dwFileSize;//鍥剧墖鐨勫ぇ灏�
+        public byte[] sCardNum = new byte[CARDNUM_LEN_V30];    //鍗″彿
+        public byte byPlateColor;//鍙傝�冪粨鏋� VCA_PLATE_COLOR
+        public byte byVehicleLogo;//鍙傝�冪粨鏋� VLR_VEHICLE_CLASS
+        public byte byEventSearchStatus; //杩炵画鍥剧墖琛ㄧず鍚屼竴鏌ユ壘缁撴灉鐨勬椂鍊欙紝0-琛ㄧず鍚庨潰娌℃湁鍥剧墖淇℃伅锛�1-琛ㄧず鍚庨潰杩樻湁鍥剧墖淇℃伅銆傛�诲叡鍥剧墖淇℃伅鍖呮嫭鏈�鍚庝竴寮犵姸鎬佷负0鐨勫浘鐗囥��
+        public byte byRecogResult;//璇嗗埆缁撴灉鍙傝�冪粨鏋刅TR_RESULT
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN/*16*/];    //杞︾墝鍙风爜
+        public byte[] byRes = new byte[12];
+    }
+
+
+    public class NET_DVR_FIND_PICTURE_V50 extends Structure {
+        public byte[] sFileName = new byte[PICTURE_NAME_LEN];//鍥剧墖鍚�
+        public NET_DVR_TIME struTime = new NET_DVR_TIME();//鍥剧墖鐨勬椂闂�
+        public int dwFileSize;//鍥剧墖鐨勫ぇ灏�
+        public byte[] sCardNum = new byte[CARDNUM_LEN_V30];    //鍗″彿
+        public byte byPlateColor;//鍙傝�冪粨鏋� VCA_PLATE_COLOR
+        public byte byVehicleLogo;//鍙傝�冪粨鏋� VLR_VEHICLE_CLASS
+        public byte byFileType;  //鏂囦欢绫诲瀷锛� :0瀹氭椂鎶撳浘1 绉诲姩渚︽祴鎶撳浘 2 鎶ヨ鎶撳浘3  鎶ヨ | 绉诲姩渚︽祴鎶撳浘 4 鎶ヨ & 绉诲姩渚︽祴鎶撳浘     6 鎵嬪姩鎶撳浘 ,9-鏅鸿兘鍥剧墖,10- PIR鎶ヨ锛�11- 鏃犵嚎鎶ヨ锛�12- 鍛兼晳鎶ヨ,    0xa 棰勮鏃舵埅鍥撅紝0xd 浜鸿劯渚︽祴, 0xe 瓒婄晫渚︽祴锛�0xf 鍏ヤ镜鍖哄煙渚︽祴锛�0x10 鍦烘櫙鍙樻洿渚︽祴, 0x11-璁惧鏈湴鍥炴斁鏃舵埅鍥�, 0x12-鏅鸿兘渚︽祴
+        public byte byRecogResult;//璇嗗埆缁撴灉鍙傝�冪粨鏋刅TR_RESULT
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN/*16*/];    //杞︾墝鍙风爜
+        public byte byEventSearchStatus; //杩炵画鍥剧墖琛ㄧず鍚屼竴鏌ユ壘缁撴灉鐨勬椂鍊欙紝0-琛ㄧず鍚庨潰娌℃湁鍥剧墖淇℃伅锛�1-琛ㄧず鍚庨潰杩樻湁鍥剧墖淇℃伅銆傛�诲叡鍥剧墖淇℃伅鍖呮嫭鏈�鍚庝竴寮犵姸鎬佷负0鐨勫浘鐗囥��
+        public NET_DVR_ADDRESS struAddr;        //鍥剧墖鎵�鍦ㄧ殑鍦板潃淇℃伅锛屽浘鐗囦笅杞芥椂鐢ㄥ埌
+        public byte[] byRes = new byte[256];        //  淇濈暀瀛楄妭
+        public NET_DVR_PIC_EXTRA_INFO_UNION uPicExtraInfo; //鍥剧墖闄勪欢淇℃伅
+    }
+
+
+    public class NET_DVR_PIC_PARAM extends Structure {
+        public Pointer pDVRFileName;
+        public Pointer pSavedFileBuf;
+        public int dwBufLen;
+        public IntByReference lpdwRetLen;
+        public NET_DVR_ADDRESS struAddr;
+        public byte[] byRes = new byte[256];
+    }
+
+
+    //鏌ユ壘缁撴灉缁撴瀯浣�
+    public static class NET_DVR_FIND_PICTURE_V40 extends Structure {
+        public byte[] sFileName = new byte[PICTURE_NAME_LEN];//鍥剧墖鍚�
+        public NET_DVR_TIME struTime = new NET_DVR_TIME();//鍥剧墖鐨勬椂闂�
+        public int dwFileSize;//鍥剧墖鐨勫ぇ灏�
+        public byte[] sCardNum = new byte[CARDNUM_LEN_V30];    //鍗″彿
+        public byte byPlateColor;//鍙傝�冪粨鏋� VCA_PLATE_COLOR
+        public byte byVehicleLogo;//鍙傝�冪粨鏋� VLR_VEHICLE_CLASS
+        public byte byFileType;  //鏂囦欢绫诲瀷锛� :0瀹氭椂鎶撳浘1 绉诲姩渚︽祴鎶撳浘 2 鎶ヨ鎶撳浘3  鎶ヨ | 绉诲姩渚︽祴鎶撳浘 4 鎶ヨ & 绉诲姩渚︽祴鎶撳浘     6 鎵嬪姩鎶撳浘 ,9-鏅鸿兘鍥剧墖,10- PIR鎶ヨ锛�11- 鏃犵嚎鎶ヨ锛�12- 鍛兼晳鎶ヨ,    0xa 棰勮鏃舵埅鍥撅紝0xd 浜鸿劯渚︽祴, 0xe 瓒婄晫渚︽祴锛�0xf 鍏ヤ镜鍖哄煙渚︽祴锛�0x10 鍦烘櫙鍙樻洿渚︽祴, 0x11-璁惧鏈湴鍥炴斁鏃舵埅鍥�, 0x12-鏅鸿兘渚︽祴, 0x32-闃插尯鎶ヨ, 0x33-绱ф�ユ眰鍔�, 0x34-涓氬姟鍜ㄨ
+        public byte byRecogResult;//璇嗗埆缁撴灉鍙傝�冪粨鏋刅TR_RESULT
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN/*16*/];    //杞︾墝鍙风爜
+        public byte byEventSearchStatus; //杩炵画鍥剧墖琛ㄧず鍚屼竴鏌ユ壘缁撴灉鐨勬椂鍊欙紝0-琛ㄧず鍚庨潰娌℃湁鍥剧墖淇℃伅锛�1-琛ㄧず鍚庨潰杩樻湁鍥剧墖淇℃伅銆傛�诲叡鍥剧墖淇℃伅鍖呮嫭鏈�鍚庝竴寮犵姸鎬佷负0鐨勫浘鐗囥��
+        public byte[] byRes = new byte[75];        //  淇濈暀瀛楄妭
+        public NET_DVR_PIC_EXTRA_INFO_UNION uPicExtraInfo; //鍥剧墖闄勪欢淇℃伅
+    }
+
+    public static class NET_DVR_FACE_EXTRA_INFO extends Union {
+        public NET_VCA_RECT[] struVcaRect = new NET_VCA_RECT[MAX_FACE_PIC_NUM];  //浜鸿劯瀛愬浘鍧愭爣淇℃伅
+        public byte[] byRes = new byte[64];
+    }
+
+    //鍥剧墖闄勪欢淇℃伅鑱斿悎浣�
+    public static class NET_DVR_PIC_EXTRA_INFO_UNION extends Union {
+        public byte[] byUnionLen = new byte[544];   //鑱斿悎浣撻暱搴︼紝鏃犲疄闄呮剰涔�
+        public NET_DVR_FACE_EXTRA_INFO struFaceExtraInfo;   //浜鸿劯渚︽祴淇℃伅
+    }
+
+    public static class NET_DVR_PACKET_INFO_EX extends Union {
+        public short wWidth;         //width
+        public short wHeight;        //height
+        public int dwTimeStamp;    //lower time stamp
+        public int dwTimeStampHigh;//higher time stamp
+        public int dwYear;            //year
+        public int dwMonth;         //month
+        public int dwDay;           //day
+        public int dwHour;          //hour
+        public int dwMinute;        //minute
+        public int dwSecond;        //second
+        public int dwMillisecond;   //millisecond
+        public int dwFrameNum;     //frame num
+        public int dwFrameRate;    //frame rate,褰撳抚鐜囧皬浜�0鏃讹紝0x80000002:琛ㄧず1/2甯х巼锛屽悓鐞嗗彲鎺�0x80000010涓�1/16甯х巼
+        public int dwFlag;         //flag E甯ф爣璁�
+        public int dwFilePos;      //file pos
+        public int dwPacketType;    //Packet type:0 -file head锛�1 -video I frame锛�2- video B frame锛� 3- video P frame锛� 10- audio packet锛� 11- private packet
+        public int dwPacketSize;   //packet size
+        public Pointer pPacketBuffer;  //packet buffer
+        public byte[] byRes1 = new byte[4];
+        public int dwPacketMode;   //鎵撳寘鏂瑰紡:0-淇濈暀锛�1-FU_A鎵撳寘鏂瑰紡
+        public byte[] byRes2 = new byte[16];
+        public int[] dwReserved = new int[6];    //reserved[0] 琛ㄧず绉佹湁鏁版嵁绫诲瀷
+    }
+
+    //浜戝彴鍖哄煙閫夋嫨鏀惧ぇ缂╁皬(HIK 蹇悆涓撶敤)
+    public static class NET_DVR_POINT_FRAME extends Structure {
+        public int xTop;     //鏂规璧峰鐐圭殑x鍧愭爣
+        public int yTop;     //鏂规缁撴潫鐐圭殑y鍧愭爣
+        public int xBottom;  //鏂规缁撴潫鐐圭殑x鍧愭爣
+        public int yBottom;  //鏂规缁撴潫鐐圭殑y鍧愭爣
+        public int bCounter; //淇濈暀
+    }
+
+    //璇煶瀵硅鍙傛暟
+    public static class NET_DVR_COMPRESSION_AUDIO extends Structure {
+        public byte byAudioEncType;   //0- G722锛�1- G711_U锛�2- G711_A锛�5- MP2L2锛�6- G726锛�7- AAC锛�8- PCM锛�9-G722锛�10-G723锛�11-G729锛�12-AAC_LC锛�13-AAC_LD锛�14-Opus锛�15-MP3锛�16-ADPCM
+        public byte  byAudioSamplingRate;//闊抽閲囨牱鐜� 0-榛樿锛�1-16kHZ锛�2-32kHZ锛�3-48kHZ, 4- 44.1kHZ,5-8kHZ
+        public byte  byAudioBitRate;// 闊抽鐮佺巼 鍙傝�� BITRATE_ENCODE_INDEX
+        public byte[]  byres=new byte[4];//杩欓噷淇濈暀闊抽鐨勫帇缂╁弬鏁�
+        public byte  bySupport;//bySupport Bit0琛ㄧず Mp2l2鍓�4涓瓧鑺傜殑鍚箟琛ㄧず鍚庨潰鍐呭闊抽鏁版嵁闀垮害
+    }
+
+    public static class NET_DVR_AUDIODEC_INFO extends Structure {
+        public int nchans;                         /* 澹伴亾鏁� */
+        public int sample_rate;                  /* 閲囨牱鐜� */
+        public int aacdec_profile;               /* 缂栫爜鐢ㄧ殑妗嗘灦 */
+        public int[] reserved = new int[16];                 /* 淇濈暀 */
+    }
+
+    //闊抽瑙g爜
+    public static class NET_DVR_AUDIODEC_PROCESS_PARAM extends Structure {
+        public Pointer in_buf;                      /* 杈撳叆鏁版嵁buf */
+        public Pointer out_buf;                     /* 杈撳嚭鏁版嵁buf */
+        public int in_data_size;                 /* 杈撳叆in_buf鍐呮暟鎹産yte鏁� */
+        public int proc_data_size;               /* 杈撳嚭瑙g爜搴撳鐞唅n_buf涓暟鎹ぇ灏廱ytes */
+        public int out_frame_size;               /* 瑙g爜涓�甯у悗鏁版嵁BYTE鏁� */
+        public NET_DVR_AUDIODEC_INFO dec_info = new NET_DVR_AUDIODEC_INFO();                     /* 杈撳嚭瑙g爜淇℃伅 */
+        public int g726dec_reset;                /* 閲嶇疆寮�鍏� */
+        public int g711_type;                    /* g711缂栫爜绫诲瀷,0 - U law, 1- A law */
+        public int[] reserved = new int[16];                 /* 淇濈暀 */
+    }
+
+    public static class NET_DVR_AUDIOENC_INFO extends Structure {
+        public int in_frame_size;                /* 杈撳叆涓�甯ф暟鎹ぇ灏�(BYTES)锛岀敱GetInfoParam鍑芥暟杩斿洖         */
+        public int[] reserved = new int[16];                 /* 淇濈暀 */
+    }
+
+    //闊抽缂栫爜
+    public static class NET_DVR_AUDIOENC_PROCESS_PARAM extends Structure {
+        public Pointer in_buf;                      /* 杈撳叆buf */
+        public Pointer out_buf;                     /* 杈撳嚭buf */
+        public int out_frame_size;               /* 缂栫爜涓�甯у悗鐨凚YTE鏁� */
+        public int g726enc_reset;                /* 閲嶇疆寮�鍏� */
+        public int g711_type;                    /* g711缂栫爜绫诲瀷,0 - U law, 1- A law */
+        public int enc_mode;                     /* 闊抽缂栫爜妯″紡锛孉MR缂栫爜閰嶇疆 */
+        public int[] reserved = new int[16];                 /* 淇濈暀 */
+    }
+
+    //鐢ㄤ簬鎺ユ敹鎶ヨ淇℃伅鐨勭紦瀛樺尯
+    public static class RECV_ALARM extends Structure {
+        public byte[] RecvBuffer = new byte[4000];//姝ゅ鐨�400搴斾笉灏忎簬鏈�澶ф姤璀︽姤鏂囬暱搴�
+    }
+
+    //甯冮槻鍙傛暟
+    public static class NET_DVR_SETUPALARM_PARAM extends Structure {
+        public int dwSize;
+        public byte byLevel; //甯冮槻浼樺厛绾э紝0-涓�绛夌骇锛堥珮锛夛紝1-浜岀瓑绾э紙涓級锛�2-涓夌瓑绾э紙浣庯級
+        public byte byAlarmInfoType; //涓婁紶鎶ヨ淇℃伅绫诲瀷锛堟姄鎷嶆満鏀寔锛夛紝0-鑰佹姤璀︿俊鎭紙NET_DVR_PLATE_RESULT锛夛紝1-鏂版姤璀︿俊鎭�(NET_ITS_PLATE_RESULT)2012-9-28
+        public byte byRetAlarmTypeV40; //0--杩斿洖NET_DVR_ALARMINFO_V30鎴朜ET_DVR_ALARMINFO, 1--璁惧鏀寔NET_DVR_ALARMINFO_V40鍒欒繑鍥濶ET_DVR_ALARMINFO_V40锛屼笉鏀寔鍒欒繑鍥濶ET_DVR_ALARMINFO_V30鎴朜ET_DVR_ALARMINFO
+        public byte byRetDevInfoVersion; //CVR涓婁紶鎶ヨ淇℃伅鍥炶皟缁撴瀯浣撶増鏈彿 0-COMM_ALARM_DEVICE锛� 1-COMM_ALARM_DEVICE_V40
+        public byte byRetVQDAlarmType; //VQD鎶ヨ涓婁紶绫诲瀷锛�0-涓婁紶鎶ユ姤璀ET_DVR_VQD_DIAGNOSE_INFO锛�1-涓婁紶鎶ヨNET_DVR_VQD_ALARM
+        public byte byFaceAlarmDetection;
+        public byte bySupport;
+        public byte byBrokenNetHttp;
+        public short wTaskNo;    //浠诲姟澶勭悊鍙� 鍜� (涓婁紶鏁版嵁NET_DVR_VEHICLE_RECOG_RESULT涓殑瀛楁dwTaskNo瀵瑰簲 鍚屾椂 涓嬪彂浠诲姟缁撴瀯 NET_DVR_VEHICLE_RECOG_COND涓殑瀛楁dwTaskNo瀵瑰簲)
+        public byte byDeployType;    //甯冮槻绫诲瀷锛�0-瀹㈡埛绔竷闃诧紝1-瀹炴椂甯冮槻
+        public byte[] byRes1 = new byte[3];
+        public byte byAlarmTypeURL;//bit0-琛ㄧず鐗瑰緛鎶撴媿鎶ヨ涓婁紶锛圛NTER_FACESNAP_RESULT锛夛紱0-琛ㄧず浜岃繘鍒朵紶杈擄紝1-琛ㄧずURL浼犺緭锛堣澶囨敮鎸佺殑鎯呭喌涓嬶紝璁惧鏀寔鑳藉姏鏍规嵁鍏蜂綋鎶ヨ鑳藉姏闆嗗垽鏂�,鍚屾椂璁惧闇�瑕佹敮鎸乁RL鐨勭浉鍏虫湇鍔★紝褰撳墠鏄�濅簯瀛樺偍鈥滐級
+        public byte byCustomCtrl;//Bit0- 琛ㄧず鏀寔鍓┚椹朵汉鑴稿瓙鍥句笂浼�: 0-涓嶄笂浼�,1-涓婁紶,(娉細鍙湪鍏徃鍐呴儴8600/8200绛夊钩鍙板紑鏀�)
+
+
+    }
+
+    public static class NET_DVR_SETUPALARM_PARAM_V50 extends Structure {
+        public int dwSize;
+        public byte byLevel; //甯冮槻浼樺厛绾э紝0-涓�绛夌骇锛堥珮锛夛紝1-浜岀瓑绾э紙涓級锛�2-涓夌瓑绾э紙浣庯級
+        public byte byAlarmInfoType; //涓婁紶鎶ヨ淇℃伅绫诲瀷锛堟姄鎷嶆満鏀寔锛夛紝0-鑰佹姤璀︿俊鎭紙NET_DVR_PLATE_RESULT锛夛紝1-鏂版姤璀︿俊鎭�(NET_ITS_PLATE_RESULT)2012-9-28
+        public byte byRetAlarmTypeV40; //0--杩斿洖NET_DVR_ALARMINFO_V30鎴朜ET_DVR_ALARMINFO, 1--璁惧鏀寔NET_DVR_ALARMINFO_V40鍒欒繑鍥濶ET_DVR_ALARMINFO_V40锛屼笉鏀寔鍒欒繑鍥濶ET_DVR_ALARMINFO_V30鎴朜ET_DVR_ALARMINFO
+        public byte byRetDevInfoVersion; //CVR涓婁紶鎶ヨ淇℃伅鍥炶皟缁撴瀯浣撶増鏈彿 0-COMM_ALARM_DEVICE锛� 1-COMM_ALARM_DEVICE_V40
+        public byte byRetVQDAlarmType; //VQD鎶ヨ涓婁紶绫诲瀷锛�0-涓婁紶鎶ユ姤璀ET_DVR_VQD_DIAGNOSE_INFO锛�1-涓婁紶鎶ヨNET_DVR_VQD_ALARM
+        //1-琛ㄧず浜鸿劯渚︽祴鎶ヨ鎵╁睍(INTER_FACE_DETECTION),0-琛ㄧず鍘熷厛鏀寔缁撴瀯(INTER_FACESNAP_RESULT)
+        public byte byFaceAlarmDetection;
+        //Bit0- 琛ㄧず浜岀骇甯冮槻鏄惁涓婁紶鍥剧墖: 0-涓婁紶锛�1-涓嶄笂浼�
+        //Bit1- 琛ㄧず寮�鍚暟鎹笂浼犵‘璁ゆ満鍒讹紱0-涓嶅紑鍚紝1-寮�鍚�
+        //Bit6- 琛ㄧず闆疯揪妫�娴嬫姤璀�(eventType:radarDetection)鏄惁寮�鍚疄鏃朵笂浼狅紱0-涓嶅紑鍚紝1-寮�鍚紙鐢ㄤ簬web鎻掍欢瀹炴椂鏄剧ず闆疯揪鐩爣锛�
+        public byte bySupport;
+        //鏂綉缁紶绫诲瀷
+        //bit0-杞︾墝妫�娴嬶紙IPC锛� 锛�0-涓嶇画浼狅紝1-缁紶锛�
+        //bit1-瀹㈡祦缁熻锛圛PC锛�  锛�0-涓嶇画浼狅紝1-缁紶锛�
+        //bit2-鐑害鍥剧粺璁★紙IPC锛� 锛�0-涓嶇画浼狅紝1-缁紶锛�
+        //bit3-鐗瑰緛鎶撴媿锛圛PC锛� 锛�0-涓嶇画浼狅紝1-缁紶锛�
+        //bit4-浜鸿劯瀵规瘮锛圛PC锛� 锛�0-涓嶇画浼狅紝1-缁紶锛�
+        //bit5-JSON鎶ヨ閫忎紶锛圛PC锛� 锛�0-涓嶇画浼狅紝1-缁紶锛�
+        //bit6-鐑害鍥炬寜浜哄憳鍋滅暀鏃堕棿缁熻鏁版嵁涓婁紶浜嬩欢锛�0-涓嶇画浼狅紝1-缁紶锛�
+        //bit7-鐑害鍥炬寜浜烘暟缁熻鏁版嵁涓婁紶浜嬩欢鐨勭‘璁ゆ満鍒讹紙0-涓嶇画浼狅紝1-缁紶锛�
+        public byte byBrokenNetHttp;
+        public short wTaskNo;    //浠诲姟澶勭悊鍙� 鍜� (涓婁紶鏁版嵁NET_DVR_VEHICLE_RECOG_RESULT涓殑瀛楁dwTaskNo瀵瑰簲 鍚屾椂 涓嬪彂浠诲姟缁撴瀯 NET_DVR_VEHICLE_RECOG_COND涓殑瀛楁dwTaskNo瀵瑰簲)
+        public byte byDeployType;    //甯冮槻绫诲瀷锛�0-瀹㈡埛绔竷闃诧紝1-瀹炴椂甯冮槻
+        public byte bySubScription;    //璁㈤槄锛屾寜浣嶈〃绀猴紝鏈紑鍚闃呬笉涓婃姤  //鍗犱綅
+        //Bit7-绉诲姩渚︽祴浜鸿溅鍒嗙被鏄惁浼犲浘锛�0-涓嶄紶鍥�(V30涓婃姤)锛�1-浼犲浘(V40涓婃姤)
+        public byte[] byRes1 = new byte[2];
+        public byte byAlarmTypeURL;//bit0-琛ㄧず鐗瑰緛鎶撴媿鎶ヨ涓婁紶锛圛NTER_FACESNAP_RESULT锛夛紱0-琛ㄧず浜岃繘鍒朵紶杈擄紝1-琛ㄧずURL浼犺緭锛堣澶囨敮鎸佺殑鎯呭喌涓嬶紝璁惧鏀寔鑳藉姏鏍规嵁鍏蜂綋鎶ヨ鑳藉姏闆嗗垽鏂�,鍚屾椂璁惧闇�瑕佹敮鎸乁RL鐨勭浉鍏虫湇鍔★紝褰撳墠鏄�濅簯瀛樺偍鈥滐級
+        //bit1-琛ㄧずEVENT_JSON涓浘鐗囨暟鎹暱浼犵被鍨嬶紱0-琛ㄧず浜岃繘鍒朵紶杈擄紝1-琛ㄧずURL浼犺緭锛堣澶囨敮鎸佺殑鎯呭喌涓嬶紝璁惧鏀寔鑳藉姏鏍规嵁鍏蜂綋鎶ヨ鑳藉姏闆嗗垽鏂級
+        //bit2 - 浜鸿劯姣斿(鎶ヨ绫诲瀷涓篊OMM_SNAP_MATCH_ALARM)涓浘鐗囨暟鎹笂浼犵被鍨嬶細0 - 浜岃繘鍒朵紶杈擄紝1 - URL浼犺緭
+        //bit3 - 寮傚父琛屼负妫�娴�(鎶ヨ绫诲瀷涓篊OMM_ALARM_RULE)涓浘鐗囨暟鎹笂浼犵被鍨嬶細0 - 浜岃繘鍒朵紶杈擄紝1 - URL浼犺緭锛屾湰瀛楁璁惧鏄惁鏀寔锛屽搴旇蒋纭欢鑳藉姏闆嗕腑<isSupportBehaviorUploadByCloudStorageURL>鑺傜偣鏄惁杩斿洖涓斾负true
+        public byte byCustomCtrl;//Bit0- 琛ㄧず鏀寔鍓┚椹朵汉鑴稿瓙鍥句笂浼�: 0-涓嶄笂浼�,1-涓婁紶
+        public byte[] byRes4 = new byte[128];
+    }
+
+
+    //鍖哄煙妗嗗弬鏁�
+    public static class NET_VCA_RECT extends Structure {
+        public float fX;
+        public float fY;
+        public float fWidth;
+        public float fHeight;
+    }
+
+    //鎶ヨ鐩爣淇℃伅
+    public static class NET_VCA_TARGET_INFO extends Structure {
+        public int dwID;
+        public NET_VCA_RECT struRect;
+        public byte[] byRes = new byte[4];
+    }
+
+    //鍓嶇璁惧淇℃伅
+    public static class NET_VCA_DEV_INFO extends Structure {
+        public NET_DVR_IPADDR struDevIP;
+        public short wPort;
+        public byte byChannel;
+        public byte byIvmsChannel;
+    }
+
+    //浜嬩欢瑙勫垯淇℃伅
+    public static class NET_VCA_RULE_INFO extends Structure {
+        public byte byRuleID;
+        public byte byRes;
+        public short wEventTypeEx;
+        public byte[] byRuleName = new byte[NAME_LEN];
+        public int dwEventType;
+        public NET_VCA_EVENT_UNION uEventParam;
+
+        public void read() {
+            super.read();
+            switch (wEventTypeEx) {
+                case 1:
+                    uEventParam.setType(NET_VCA_TRAVERSE_PLANE.class);
+                    break;
+                case 2:
+                    uEventParam.setType(NET_VCA_AREA.class);
+                    break;
+                case 3:
+                    uEventParam.setType(NET_VCA_AREA.class);
+                    break;
+                case 4:
+                    uEventParam.setType(NET_VCA_INTRUSION.class);
+                    break;
+                case 15:
+                    uEventParam.setType(NET_VCA_LEAVE_POSITION.class);
+                    break;
+                default:
+                    break;
+            }
+            uEventParam.read();
+        }
+
+        public void write() {
+            super.write();
+            uEventParam.write();
+        }
+
+    }
+
+    //璀︽垝瑙勫垯鍙傛暟鑱斿悎浣�
+    public static class NET_VCA_EVENT_UNION extends Union {
+        public int[] uLen = new int[23];
+        public NET_VCA_TRAVERSE_PLANE struTraversePlane;  //璀︽垝鍙傛暟
+        public NET_VCA_AREA struArea; //杩涘叆/绂诲紑鍖哄煙鍙傛暟
+        public NET_VCA_INTRUSION struIntrusion; //鍖哄煙鍏ヤ镜鍙傛暟
+        public NET_VCA_LEAVE_POSITION   struLeavePos;        //鍙傛暟
+
+    }
+
+    //绌胯秺璀︽垝闈㈠弬鏁�
+    public static class NET_VCA_TRAVERSE_PLANE extends Structure {
+        public NET_VCA_LINE struPlaneBottom;
+        public int dwCrossDirection;
+        public byte bySensitivity;
+        public byte byPlaneHeight;
+        public byte byDetectionTarget;/*妫�娴嬬洰鏍囷細0- 鎵�鏈夌洰鏍囷紝1- 浜猴紝2- 杞�   */
+        public byte[] byRes2 = new byte[37];
+    }
+
+
+    //鏍规嵁鎶ヨ寤惰繜鏃堕棿鏉ユ爣璇嗘姤璀︿腑甯﹀浘鐗囷紝鎶ヨ闂撮殧鍜孖O鎶ヨ涓�鑷达紝1绉掑彂閫佷竴涓��
+//鍏ヤ镜鍙傛暟
+    public static class NET_VCA_INTRUSION extends Structure
+    {
+        public NET_VCA_POLYGON struRegion;//鍖哄煙鑼冨洿
+        public short wDuration;            //琛屼负浜嬩欢瑙﹀彂鏃堕棿闃堝��: 1-120绉掞紝寤鸿5绉掞紝鍒ゆ柇鏄湁鏁堟姤璀︾殑鏃堕棿  鍦ˋTM绯荤粺涓Е鍙戞枃浠堕槇鍊间负 1-1000绉�
+        public byte bySensitivity;        //鐏垫晱搴﹀弬鏁帮紝鑼冨洿[1-100]
+        public byte byRate;               //鍗犳瘮锛氬尯鍩熷唴鎵�鏈夋湭鎶ヨ鐩爣灏哄鐩爣鍗犲尯鍩熼潰绉殑姣旈噸锛屽綊涓�鍖栦负锛嶏紱
+        /*
+        妫�娴嬬洰鏍囷紝鍙敮鎸佸閫夛紝鍏蜂綋瀹氫箟涓猴細
+        0~鎵�鏈夌洰鏍囷紙琛ㄧず涓嶉攣瀹氭娴嬬洰鏍囷紝鎵�鏈夌洰鏍囬兘灏嗚繘琛屾娴嬶級
+        0x01 ~ 浜猴紝
+        0x02 ~ 杞︼紝
+        0x04 ~ 鍏朵粬锛�
+        璇ュ瓧娈垫敮鎸佸閫夛紝鎸変綅鍙栧�硷紝渚嬪3琛ㄧず1+2.
+        */
+        public byte byDetectionTarget;
+        public byte byPriority;//浼樺厛绾�,0~浣�,1~涓�,2~楂�
+        public byte byAlarmConfidence;    //鎶ヨ缃俊搴�, 0-浣�,1-杈冧綆,2-杈冮珮,3-楂�
+        public byte byRecordConfidence;   //褰曞儚缃俊搴�, 0-浣�,1-杈冧綆,2-杈冮珮,3-楂�
+    }
+
+    public static class NET_VCA_LEAVE_POSITION extends Structure {
+        public NET_VCA_POLYGON struRegion; //鍖哄煙鑼冨洿
+        public short wLeaveDelay;  //鏃犱汉鎶ヨ鏃堕棿锛屽崟浣嶏細s
+        public short wStaticDelay; //鐫¤鎶ヨ鏃堕棿锛屽崟浣嶏細s
+        public byte byMode;       //妯″紡锛�0-浜嬩欢锛岋紝3-鍦ㄥ矖锛堝綋浜哄憳鍥炲埌宀椾綅锛�
+        public byte byPersonType; //鍊煎矖浜烘暟绫诲瀷锛�0-鍗曚汉鍊煎矖锛�1-鍙屼汉鍊煎矖
+        public byte byOnPosition; //鍦ㄥ矖浜烘暟锛�1-10锛岄粯璁�1
+        public byte bySensitivity;     //鐏垫晱搴﹀弬鏁帮紝鑼冨洿[1,5]
+    }
+
+    public static class NET_DVR_HANDLEEXCEPTION_V40 extends Structure {
+        public int dwHandleType;/*澶勭悊鏂瑰紡锛屽悇绉嶅紓甯稿鐞嗘柟寮忕殑"鎴�"缁撴灉锛屽紓甯稿鐞嗘柟寮忥細
+                                    0x00: 鏃犲搷搴�    0x01: 甯冮槻鍣ㄤ笂璀﹀憡  0x02: 澹伴煶璀﹀憡  0x04: 涓婁紶涓績
+                                    0x08: 瑙﹀彂鎶ヨ杈撳嚭  0x10: Jpeg鎶撳浘骞朵笂浼燛Mail
+                                    0x20: 鏃犵嚎澹板厜鎶ヨ鍣ㄨ仈鍔�    0x40: 鑱斿姩鐢靛瓙鍦板浘(鐩墠浠匬CNVR鏀寔)
+                                    0x200锛氭姄鍥惧苟涓婁紶ftp    0x400: 铏氱劍渚︽祴鑱斿姩鑱氱劍
+                                    0x800: PTZ鑱斿姩(鐞冩満鐩爣)
+                                    E.g. dwHandleType==0x01|0x04 琛ㄧず閰嶇疆鎶ヨ鍙戠敓鏃惰仈鍔ㄥ竷闃插櫒涓婅鍛婂苟涓斿皢鎶ヨ淇℃伅涓婁紶涓績銆� */
+        public int dwMaxRelAlarmOutChanNum;/*璁惧鏈�澶ф敮鎸佺殑瑙﹀彂鎶ヨ杈撳嚭閫氶亾鏁帮紙鍙锛� */
+        public int dwRelAlarmOutChanNum;/*宸查厤缃殑瑙﹀彂鐨勬姤璀﹁緭鍑洪�氶亾涓暟锛屽喅瀹歞wRelAlarmOut鍙栧墠澶氬皯涓暟缁勪笅鏍� */
+        public int[] dwRelAlarmOut = new int[MAX_CHANNUM_V30];/*瑙﹀彂鎶ヨ杈撳嚭閫氶亾锛屽彇鏁扮粍鍓峝wRelAlarmOutChanNum涓�硷紝
+                                        鍏跺�艰〃绀烘姤璀﹁緭鍑洪�氶亾鍙�(浠�1寮�濮�)锛屽垵濮嬪�兼槸0xfffffffff(涓嶅叧鑱旈�氶亾)銆�
+                                        渚嬪锛宒wRelAlarmOutChanNum=5锛屽垯鍙互閰嶇疆瑙﹀彂鎶ヨ杈撳嚭閫氶亾dwRelAlarmOut[0]~dwRelAlarmOut[4]銆� */
+        public byte[] byRes = new byte[64]; /*淇濈暀锛岀疆涓�0 */
+    }
+
+    public static final int MAX_ALERTLINE_NUM = 8;
+
+    public static class NET_VCA_TRAVERSE_PLANE_DETECTION extends Structure {
+        public int dwSize;
+        public byte byEnable;//浣胯兘
+        public byte byEnableDualVca;// 鍚敤鏀寔鏅鸿兘鍚庢绱� 0-涓嶅惎鐢紝1-鍚敤
+        public byte[] byRes1 = new byte[2];
+        public NET_VCA_TRAVERSE_PLANE[] struAlertParam = new NET_VCA_TRAVERSE_PLANE[MAX_ALERTLINE_NUM];  //璀︽垝绾垮弬鏁�
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmSched = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];
+        public NET_DVR_HANDLEEXCEPTION_V40 struHandleException;  //寮傚父澶勭悊鏂瑰紡
+        public int dwMaxRelRecordChanNum;  //鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾 鏁帮紙鍙锛夋渶澶ф敮鎸佹暟閲�
+        public int dwRelRecordChanNum;     //鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾 鏁� 瀹為檯鏀寔鐨勬暟閲�
+        public int[] byRelRecordChan = new int[MAX_CHANNUM_V30];//瑙﹀彂褰曞儚鐨勯�氶亾鍙�
+        public NET_DVR_SCHEDTIME[] struHolidayTime = new NET_DVR_SCHEDTIME[MAX_TIMESEGMENT_V30]; //鍋囨棩甯冮槻鏃堕棿
+        public byte[] byRes2 = new byte[100];
+    }
+
+
+
+
+    //蹇�熺Щ鍔ㄥ弬鏁�
+    public static class NET_VCA_RUN extends Structure {
+        public NET_VCA_POLYGON struRegion;//鍖哄煙鑼冨洿
+        public float fRunDistance;        //浜哄揩閫熺Щ鍔ㄦ渶澶ц窛绂�, 鑼冨洿: [0.1, 1.00] 鍍忕礌妯″紡 瀹為檯妯″紡(1,20)m/s
+        public byte bySensitivity;            //鐏垫晱搴﹀弬鏁帮紝鑼冨洿[1,5]
+        public byte byMode;     // 0 鍍忕礌妯″紡  1 瀹為檯妯″紡
+        /*
+    妫�娴嬬洰鏍囷紝鍙敮鎸佸閫夛紝鍏蜂綋瀹氫箟涓猴細
+    0~鎵�鏈夌洰鏍囷紙琛ㄧず涓嶉攣瀹氭娴嬬洰鏍囷紝鎵�鏈夌洰鏍囬兘灏嗚繘琛屾娴嬶級
+    0x01 ~ 浜猴紝
+    0x02 ~ 杞︼紝锛�
+    0x04 ~ 鍏朵粬锛�
+    璇ュ瓧娈垫敮鎸佸閫夛紝鎸変綅鍙栧�硷紝渚嬪3琛ㄧず1+2.
+    */
+        public byte byDetectionTarget;
+        public byte byRes;
+    }
+
+
+    //濂旇窇妫�娴�
+    public static class NET_VCA_RUNNING extends Structure {
+        public NET_VCA_POLYGON struRegion;  //鍖哄煙鑼冨洿
+        public int dwSpeed;      //濂旇窇閫熷害锛岃寖鍥碵1,10]
+        public short wDuration;      // 瑙﹀彂鎶ヨ鏃堕棿闃堝��
+        public byte byRunMode;    //濂旇窇妯″紡锛�0-淇濈暀,1锛氬崟浜哄璺�,2:澶氫汉濂旇窇
+        public byte byRes;
+    }
+
+    //鍊掑湴鍙傛暟
+    public static class NET_VCA_FALL_DOWN extends Structure {
+        public NET_VCA_POLYGON struRegion;//鍖哄煙鑼冨洿
+        public short wDuration;      /* 瑙﹀彂浜嬩欢闃堝�� 1-60s*/
+        public short bySensitivity;       /* 鐏垫晱搴﹀弬鏁帮紝鑼冨洿[1,5] */
+        public short byHeightThreshold; //楂樺害闃堝�硷紝鑼冨洿[0,250]锛岄粯璁�90锛屽崟浣嶏細鍘樼背
+        public byte[] byRes = new byte[4];
+    }
+
+    public static final int MAX_INTRUSIONREGION_NUM = 8; //鏈�澶у尯鍩熸暟鏁�
+
+    public static class NET_VCA_FIELDDETECION extends Structure {
+        public int dwSize;
+        public byte byEnable; //浣胯兘锛屾槸鍚﹀紑鍚�
+        public byte byEnableDualVca;// 鍚敤鏀寔鏅鸿兘鍚庢绱� 0-涓嶅惎鐢紝1-鍚敤
+        public byte byEnableHumanMisinfoFilter;// 鍚敤浜轰綋鍘昏鎶� 0-涓嶅惎鐢紝1-鍚敤
+        public byte byEnableVehicleMisinfoFilter;// 鍚敤杞﹁締鍘昏鎶� 0-涓嶅惎鐢紝1-鍚敤
+        public NET_VCA_INTRUSION[] struIntrusion = new NET_VCA_INTRUSION[MAX_INTRUSIONREGION_NUM];//姣忎釜鍖哄煙鐨勫弬鏁拌缃�
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmSched = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS]; //甯冮槻鏃堕棿
+        public NET_DVR_HANDLEEXCEPTION_V40 struHandleException;  //寮傚父澶勭悊鏂瑰紡
+        public int dwMaxRelRecordChanNum;  //鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾 鏁帮紙鍙锛夋渶澶ф敮鎸佹暟閲�
+        public int dwRelRecordChanNum;     //鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾 鏁� 瀹為檯鏀寔鐨勬暟閲�
+        public int[] byRelRecordChan = new int[MAX_CHANNUM_V30];//瑙﹀彂褰曞儚閫氶亾
+        public NET_DVR_SCHEDTIME[] struHolidayTime = new NET_DVR_SCHEDTIME[MAX_TIMESEGMENT_V30]; //鍋囨棩甯冮槻鏃堕棿
+        public byte[] byRes2 = new byte[100];
+    }
+
+    public static class NET_DVR_CHANNEL_GROUP extends Structure {
+        public int dwSize;
+        public int dwChannel;
+        public int dwGroup;
+        public byte byID;
+        public byte[] byRes1 = new byte[3];
+        public int dwPositionNo;
+        public byte[] byRes = new byte[56];
+    }
+
+    //绾跨粨鏋勫弬鏁�
+    public static class NET_VCA_LINE extends Structure {
+        public NET_VCA_POINT struStart;
+        public NET_VCA_POINT struEnd;
+    }
+
+    //鐐瑰潗鏍囧弬鏁�
+    public static class NET_VCA_POINT extends Structure {
+        public float fX;
+        public float fY;
+
+
+    }
+
+    //杩涘叆/绂诲紑鍖哄煙鍙傛暟
+    public static class NET_VCA_AREA extends Structure {
+        public NET_VCA_POLYGON struRegion;
+        public byte bySensitivity;        //鐏垫晱搴﹀弬鏁帮紝鑼冨洿[1,5]
+        /*
+        妫�娴嬬洰鏍囷紝鍙敮鎸佸閫夛紝鍏蜂綋瀹氫箟涓猴細
+        0~鎵�鏈夌洰鏍囷紙琛ㄧず涓嶉攣瀹氭娴嬬洰鏍囷紝鎵�鏈夌洰鏍囬兘灏嗚繘琛屾娴嬶級
+        0x01 ~ 浜猴紝
+        0x02 ~ 杞︼紝
+        0x04 ~ 鍏朵粬锛�
+        璇ュ瓧娈垫敮鎸佸閫夛紝鎸変綅鍙栧�硷紝渚嬪3琛ㄧず1+2.
+        */
+        public byte byDetectionTarget;
+        public byte byPriority;//浼樺厛绾�,0~浣�,1~涓�,2~楂�
+        public byte[] byRes = new byte[5];
+    }
+
+    //澶氳竟褰㈢粨鏋勪綋
+    public static class NET_VCA_POLYGON extends Structure {
+        public int dwPointNum;
+        public NET_VCA_POINT[] struPos = new NET_VCA_POINT[VCA_MAX_POLYGON_POINT_NUM];
+    }
+
+    public static class NET_VCA_SIZE_FILTER extends Structure {
+        public byte byActive;            //鏄惁婵�娲诲昂瀵歌繃婊ゅ櫒 0-鍚� 闈�0-鏄�
+        public byte byMode;         //杩囨护鍣ㄦā寮廠IZE_FILTER_MODE
+        public byte[] byRes = new byte[2];        //淇濈暀锛岀疆0
+        public NET_VCA_RECT struMiniRect;    //鏈�灏忕洰鏍囨,鍏�0琛ㄧず涓嶈缃�
+        public NET_VCA_RECT struMaxRect;      //鏈�澶х洰鏍囨,鍏�0琛ㄧず涓嶈缃�
+    }
+
+
+    //灏哄杩囨护绛栫暐
+    public static class NET_VCA_FILTER_STRATEGY extends Structure {
+        public byte byStrategy;      //灏哄杩囨护绛栫暐 0 - 涓嶅惎鐢� 1-楂樺害鍜屽搴﹁繃婊�,2-闈㈢Н杩囨护
+        public byte[] byRes = new byte[11];       //淇濈暀
+    }
+
+    //寮傚父琛屼负妫�娴嬫姤璀�
+    public static class NET_VCA_RULE_ALARM extends Structure {
+        public int dwSize;
+        public int dwRelativeTime;
+        public int dwAbsTime;
+        public NET_VCA_RULE_INFO struRuleInfo;
+        public NET_VCA_TARGET_INFO struTargetInfo;
+        public NET_VCA_DEV_INFO struDevInfo;
+        public int dwPicDataLen;
+        public byte byPicType;
+        public byte byRelAlarmPicNum; //鍏宠仈閫氶亾鎶ヨ鍥剧墖鏁伴噺
+        public byte bySmart;//IDS璁惧杩斿洖0(榛樿鍊�)锛孲mart Functiom Return 1
+        public byte byPicTransType;        //鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public int dwAlarmID;     //鎶ヨID锛岀敤浠ユ爣璇嗛�氶亾闂村叧鑱斾骇鐢熺殑缁勫悎鎶ヨ锛�0琛ㄧず鏃犳晥
+        public short wDevInfoIvmsChannelEx;     //涓嶯ET_VCA_DEV_INFO閲岀殑byIvmsChannel鍚箟鐩稿悓锛岃兘琛ㄧず鏇村ぇ鐨勫�笺�傝�佸鎴风鐢╞yIvmsChannel鑳界户缁吋瀹癸紝浣嗘槸鏈�澶у埌255銆傛柊瀹㈡埛绔増鏈浣跨敤wDevInfoIvmsChannelEx銆�
+        public byte byRelativeTimeFlag;      //dwRelativeTime瀛楁鏄惁鏈夋晥  0-鏃犳晥锛� 1-鏈夋晥锛宒wRelativeTime琛ㄧずUTC鏃堕棿
+        public byte byAppendInfoUploadEnabled; //闄勫姞淇℃伅涓婁紶浣胯兘 0-涓嶄笂浼� 1-涓婁紶
+        public Pointer pAppendInfo;     //鎸囧悜闄勫姞淇℃伅NET_VCA_APPEND_INFO鐨勬寚閽堬紝byAppendInfoUploadEnabled涓�1鏃舵垨鑰卋yTimeDiffFlag涓�1鏃舵湁鏁�
+        public Pointer pImage;
+    }
+
+    public static class NET_DVR_SYSTEM_TIME extends Structure {
+        public short wYear;           //骞�
+        public short wMonth;          //鏈�
+        public short wDay;            //鏃�
+        public short wHour;           //鏃�
+        public short wMinute;      //鍒�
+        public short wSecond;      //绉�
+        public short wMilliSec;    //姣
+        public byte[] byRes = new byte[2];
+    }
+
+    //璁惧鏀寔AI寮�鏀惧钩鍙版帴鍏ワ紝涓婁紶瑙嗛妫�娴嬫暟鎹�
+    public static class NET_AIOP_VIDEO_HEAD extends Structure {
+        public int dwSize;      //dwSize = sizeof(NET_AIOP_VIDEO_HEAD)
+        public int dwChannel;    //璁惧鍒嗘瀽閫氶亾鐨勯�氶亾鍙凤紱
+        public NET_DVR_SYSTEM_TIME struTime = new NET_DVR_SYSTEM_TIME();    //鏃堕棿
+        public byte[] szTaskID = new byte[64];     //瑙嗛浠诲姟ID锛屾潵鑷簬瑙嗛浠诲姟娲惧彂
+        public int dwAIOPDataSize;   //瀵瑰簲AIOPDdata鏁版嵁闀垮害
+        public int dwPictureSize;    //瀵瑰簲鍒嗘瀽鍥剧墖闀垮害
+        public byte[] szMPID = new byte[64];        //妫�娴嬫ā鍨嬪寘ID锛岀敤浜庡尮閰岮IOP鐨勬娴嬫暟鎹В鏋愶紱鍙互閫氳繃URI(GET /ISAPI/Intelligent/AIOpenPlatform/algorithmModel/management?format=json)鑾峰彇褰撳墠璁惧鍔犺浇鐨勬ā鍨嬪寘鐨刲abel description淇℃伅锛�
+        public Pointer pBufferAIOPData;  //AIOPDdata鏁版嵁
+        public Pointer pBufferPicture;//瀵瑰簲鍒嗘瀽鍥剧墖鏁版嵁
+        public byte byPictureMode;//鍥剧墖鏁版嵁浼犺緭妯″紡 0-浜岃繘鍒讹紝1-姝︽眽浜戜簯瀛樺偍锛屽綋byPictureMode涓�0鏃秔BufferPicture涓轰簩杩涘埗鏁版嵁锛屽綋byPictureMode涓�1鏃秔BufferPicture涓烘姹変簯URL
+        public byte[] byRes2 = new byte[3];//淇濈暀瀛楄妭
+        public int dwPresetIndex; //棰勭疆鐐瑰簭鍙�
+        public byte[] byRes = new byte[176];
+    }
+
+    //璁惧鏀寔AI寮�鏀惧钩鍙版帴鍏ワ紝涓婁紶鍥剧墖妫�娴嬫暟鎹�
+    public static class NET_AIOP_PICTURE_HEAD extends Structure {
+        public int dwSize;           //dwSize = sizeof(NET_AIOP_PICTURE_HEAD)
+        public NET_DVR_SYSTEM_TIME struTime = new NET_DVR_SYSTEM_TIME();    //鏃堕棿
+        public byte[] szPID = new byte[64];        //閫忎紶涓嬪彂鐨勫浘鐗嘔D锛屾潵鑷簬鍥剧墖浠诲姟娲惧彂
+        public int dwAIOPDataSize;   //瀵瑰簲AIOPDdata鏁版嵁闀垮害
+        public byte byStatus;         //鐘舵�佸�硷細0-鎴愬姛锛�1-鍥剧墖澶у皬閿欒
+        public byte[] byRes1 = new byte[3];
+        public byte[] szMPID = new byte[64]; //妫�娴嬫ā鍨嬪寘ID锛岀敤浜庡尮閰岮IOP鐨勬娴嬫暟鎹В鏋愶紱
+        public Pointer pBufferAIOPData;//AIOPDdata鏁版嵁
+        public int dwPresetIndex; //棰勭疆鐐瑰簭鍙�
+        public byte[] byRes = new byte[180];
+    }
+
+
+    public static class NET_DVR_AI_PICTUR_UPLOAD extends Structure {
+        public int dwSize;
+        public byte[] szTaskID = new byte[64];   //浠诲姟id锛宻trlen.max = 64,涓氬姟骞冲彴缁熶竴缁存姢绠$悊
+        public byte[] szPID = new byte[64];   //鍥剧墖id锛宻trlen.max = 64锛屼笟鍔″钩鍙扮粺涓�缁存姢绠$悊
+        public byte[] byRes = new byte[128];
+    }
+
+    // AI寮�鏀惧钩鍙版帴鍏ヨ疆璇㈣棰戞娴嬫姤璀︾粨鏋勪綋銆�
+    public static class NET_AIOP_POLLING_SNAP_HEAD extends Structure {
+        public int dwSize;            //dwSize = sizeof(NET_AIOP_POLLING_SNAP_HEAD)
+        public int dwChannel;      //璁惧鍒嗘瀽閫氶亾鐨勯�氶亾鍙�(璧癝DK鍗忚)锛�
+        public NET_DVR_SYSTEM_TIME struTime = new NET_DVR_SYSTEM_TIME();    //鏃堕棿
+        public byte[] szTaskID = new byte[64];    //杞鎶撳浘浠诲姟ID锛屾潵鑷簬杞鎶撳浘浠诲姟娲惧彂
+        public int dwAIOPDataSize;    //瀵瑰簲AIOPDdata鏁版嵁闀垮害
+        public int dwPictureSize;    //瀵瑰簲鍒嗘瀽鍥剧墖闀垮害
+        public byte[] szMPID = new byte[64];       //妫�娴嬫ā鍨嬪寘ID锛岀敤浜庡尮閰岮IOP鐨勬娴嬫暟鎹В鏋愶紱
+        public Pointer pBufferAIOPData;//AIOPDdata鏁版嵁
+        public Pointer pBufferPicture;//鍒嗘瀽鍥剧墖鏁版嵁
+        public byte byPictureMode;//鍥剧墖鏁版嵁浼犺緭妯″紡 0-浜岃繘鍒讹紝1-姝︽眽浜戜簯瀛樺偍锛屽綋byPictureMode涓�0鏃秔BufferPicture涓轰簩杩涘埗鏁版嵁锛屽綋byPictureMode涓�1鏃秔BufferPicture涓烘姹変簯URL
+        public byte[] byRes2 = new byte[3];//淇濈暀瀛楄妭
+        public int dwPresetIndex; //棰勭疆鐐瑰簭鍙�
+        public byte[] byRes = new byte[176];
+    }
+
+    // AI寮�鏀惧钩鍙版帴鍏ヨ疆璇㈣棰戞娴嬫姤璀︾粨鏋勪綋銆�
+    public static class NET_AIOP_POLLING_VIDEO_HEAD extends Structure {
+        public int dwSize;            //dwSize = sizeof(NET_AIOP_POLLING_VIDEO_HEAD)
+        public int dwChannel;      //璁惧鍒嗘瀽閫氶亾鐨勯�氶亾鍙�(璧癝DK鍗忚)锛�
+        public NET_DVR_SYSTEM_TIME struTime;    //鏃堕棿
+        public byte[] szTaskID = new byte[64];    //杞鎶撳浘浠诲姟ID锛屾潵鑷簬杞鎶撳浘浠诲姟娲惧彂
+        public int dwAIOPDataSize;    //瀵瑰簲AIOPDdata鏁版嵁闀垮害
+        public int dwPictureSize;    //瀵瑰簲鍒嗘瀽鍥剧墖闀垮害
+        public byte[] szMPID = new byte[64]; //妫�娴嬫ā鍨嬪寘ID锛岀敤浜庡尮閰岮IOP鐨勬娴嬫暟鎹В鏋愶紱
+        public Pointer pBufferAIOPData;//AIOPDdata鏁版嵁
+        public Pointer pBufferPicture;//瀵瑰簲鍒嗘瀽鍥剧墖鏁版嵁
+        public byte byPictureMode;//鍥剧墖鏁版嵁浼犺緭妯″紡 0-浜岃繘鍒讹紝1-姝︽眽浜戜簯瀛樺偍锛屽綋byPictureMode涓�0鏃秔BufferPicture涓轰簩杩涘埗鏁版嵁锛屽綋byPictureMode涓�1鏃秔BufferPicture涓烘姹変簯URL
+        public byte[] byRes2 = new byte[3];//淇濈暀瀛楄妭
+        public int dwPresetIndex; //棰勭疆鐐瑰簭鍙�
+        public byte[] byRes = new byte[176];
+    }
+
+    //瑙勫垯瑙﹀彂鍙傛暟
+    public static class NET_VCA_RULE_TRIGGER_PARAM extends Structure {
+        public byte byTriggerMode;   //瑙勫垯鐨勮Е鍙戞柟寮忥紝0- 涓嶅惎鐢紝1- 鐐� 2- 鐩爣闈㈢Н
+        public byte byTriggerPoint;  //瑙﹀彂鐐癸紝瑙﹀彂鏂瑰紡涓虹偣鏃舵湁鏁� 0- 涓�,1-涓�,2-涓�
+        public byte[] byRes1 = new byte[2];       //淇濈暀
+        public float fTriggerArea;    //瑙﹀彂鐩爣闈㈢Н鐧惧垎姣� [0,100]锛岃Е鍙戞柟寮忎负鐩爣闈㈢Н鏃舵湁鏁�
+        public byte[] byRes2 = new byte[4];       //淇濈暀
+    }
+
+    public static class NET_VCA_ONE_RULE_V42 extends Structure {
+        public byte byActive;       //鏄惁婵�娲昏鍒�, 0-鍚︼紝闈�0-鏄�
+        public byte byEventPriority;//浜嬩欢浼樺厛绾� 0-浣庯紝1-涓紝2-楂�
+        public byte[] byRes1 = new byte[4];           //淇濈暀锛岃缃负0瀛楁
+        public short wEventType;        //琛屼负浜嬩欢绫诲瀷锛屽弬鑰僔CA_RULE_EVENT_TYPE_EX
+        public byte[] byRuleName = new byte[NAME_LEN/*32*/];        //瑙勫垯鍚嶇О
+        public NET_VCA_EVENT_UNION uEventParam;            //寮傚父琛屼负妫�娴嬩簨浠跺弬鏁�
+        public NET_VCA_SIZE_FILTER struSizeFilter;          //灏哄杩囨护鍣�
+        public NET_DVR_SCHEDTIMEWEEK[] struAlarmTime = new NET_DVR_SCHEDTIMEWEEK[MAX_DAYS];//甯冮槻鏃堕棿
+        public NET_DVR_HANDLEEXCEPTION_V40 struAlarmHandleType; /*澶勭悊鏂瑰紡*/
+        //寮傚父澶勭悊鏂瑰紡涓姤璀﹁緭鍑哄彿涓庣粍鍙风粦瀹氾紝鍗崇粍鍙蜂负0鏃讹紝琛ㄧず鍏宠仈鐨勬姤璀﹁緭鍑哄彿鑼冨洿涓�1-64锛屽綋缁勫彿涓�1鏃讹紝琛ㄧず鍏宠仈鐨勬姤璀﹁緭鍑哄彿鑼冨洿涓�65-128锛� 涓旀槸缁勫唴绱у噾鎺掑垪锛屽鏋滈亣鍒�0xffffffff琛ㄧず鏈粍 褰撳墠鐨勫強缁勫唴鍚庣画鐨勬姤璀﹀嚭鍙锋棤鏁�
+        public int[] dwRelRecordChan = new int[MAX_CHANNUM_V30];    /* 鎶ヨ瑙﹀彂鐨勫綍璞¢�氶亾锛堝洓瀛楄妭鐨勯�氶亾鍙凤紝鍒濆鍊兼槸 0xffffffff锛�*/
+        //鍏宠仈鐨勫綍鍍忛�氶亾鍙蜂笌缁勫彿缁戝畾锛屽嵆缁勫彿涓�0鏃讹紝琛ㄧず鍏宠仈鐨勯�氶亾鍙疯寖鍥翠负1-64锛屽綋缁勫彿涓�1鏃讹紝琛ㄧず鍏宠仈鐨勯�氶亾鍙疯寖鍥翠负65-128锛� 涓旀槸缁勫唴绱у噾鎺掑垪锛屽鏋滈亣鍒�0xffffffff琛ㄧず鏈粍 褰撳墠鐨勫強缁勫唴鍚庣画鐨勫叧鑱旈�氶亾鍙锋棤鏁�
+        public short wAlarmDelay; //鏅鸿兘鎶ヨ寤舵椂锛�0-5s,1-10,2-30s,3-60s,4-120s,5-300s,6-600s
+        public byte[] byRes2 = new byte[2];           //淇濈暀
+        public NET_VCA_FILTER_STRATEGY struFilterStrategy;  //灏哄杩囨护绛栫暐
+        public NET_VCA_RULE_TRIGGER_PARAM struTriggerParam; //瑙勫垯瑙﹀彂鍙傛暟
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_PTZ_POSITION extends Structure {
+        // 鏄惁鍚敤鍦烘櫙锛屽湪璁剧疆鍦烘櫙琛屼负瑙勫垯鐨勬椂鍊欒瀛楁鏃犳晥锛屽湪璁剧疆鐞冩満鏈湴閰嶇疆鍦烘櫙浣嶇疆淇℃伅鏃朵綔涓轰娇鑳戒綅
+        public byte byEnable;
+        public byte[] byRes1 = new byte[3];  //淇濈暀
+        public byte[] byPtzPositionName = new byte[NAME_LEN]; //鍦烘櫙浣嶇疆鍚嶇О
+        public NET_DVR_PTZPOS struPtzPos; //ptz 鍧愭爣
+        public byte[] byRes2 = new byte[40];
+    }
+
+    //寮傚父琛屼负妫�娴嬮厤缃粨鏋勪綋
+    public static class NET_VCA_RULECFG_V42 extends Structure {
+        public int dwSize;             //缁撴瀯鍥惧ぇ灏�
+        public byte byPicProType;            //鎶ヨ鏃跺浘鐗囧鐞嗘柟寮� 0-涓嶅鐞� 1-涓婁紶
+        public byte byUpLastAlarm;         //鏄惁鍏堜笂浼犳渶杩戜竴娆$殑鎶ヨ锛�0-鍚︼紝1-鏄�
+        public byte byPicRecordEnable;   //鏄惁鍚敤鍥剧墖瀛樺偍, 0-涓嶅惎鐢�, 1-鍚敤
+        public byte byRes1;
+        public NET_DVR_JPEGPARA struPicParam;         //鍥剧墖瑙勬牸缁撴瀯
+        public NET_VCA_ONE_RULE_V42[] struRule = new NET_VCA_ONE_RULE_V42[16];       /* 瑙勫垯鏁扮粍*/
+        public short[] wRelSnapChan = new short[3]; //鍏宠仈鎶撳浘閫氶亾锛屽綋涓婚�氶亾鎶ヨ鏃讹紝鍚屾椂浼氫笂浼犲叧鑱旈�氶亾鐨勬姄鎷嶅浘鐗囷紝0琛ㄧず涓嶅叧鑱旓紝鍏朵粬鍊间负鍏宠仈閫氶亾鍙�
+        public byte byTrackEnable; //鏄惁鍚敤
+        public byte byRes2;
+        public NET_DVR_PTZ_POSITION struPTZPosition;  //鍦烘櫙浣嶇疆淇℃伅
+        public short wTrackDuration; //鎸佺画鏃堕棿锛屽崟浣峴
+        public short wIntervalTime; //鍗曟鎶ヨ闂撮殧鏃堕棿锛堢锛塠1-7200]锛埪堥粯璁や负600锛�
+        public short wHeightLimit;//鐩爣妫�娴嬮珮搴︿笅闄愶紙鍘樼背锛塠0-250]锛堥粯璁や负80cm锛夛紝灏忎簬姝ら珮搴︾殑鐩爣灏嗕笉浣滀负鐩爣杩涜妫�娴�
+        public byte[] byRes = new byte[58];//淇濈暀
+    }
+
+    public static final int CID_CODE_LEN = 4;
+    public static final int DEV_SERIAL_LEN = 9;
+    public static final int ACCOUNTNUM_LEN = 6;
+    public static final int ACCOUNTNUM_LEN_32 = 32;
+
+    public static class NET_DVR_CID_ALARM extends Structure {
+        public int dwSize;
+        public byte[] sCIDCode = new byte[CID_CODE_LEN/*4*/];    //CID浜嬩欢鍙�
+        public byte[] sCIDDescribe = new byte[NAME_LEN/*32*/];    //CID浜嬩欢鍚�
+        public NET_DVR_TIME_EX struTriggerTime = new NET_DVR_TIME_EX();            //瑙﹀彂鎶ヨ鐨勬椂闂寸偣
+        public NET_DVR_TIME_EX struUploadTime = new NET_DVR_TIME_EX();                //涓婁紶鎶ヨ鐨勬椂闂寸偣
+        public byte[] sCenterAccount = new byte[ACCOUNTNUM_LEN/*6*/];    //涓績甯愬彿
+        public byte byReportType;                    //瑙佸畾涔塏ET_DVR_ALARMHOST_REPORT_TYPE
+        public byte byUserType;                        //鐢ㄦ埛绫诲瀷锛�0-缃戠粶鐢ㄦ埛 1-閿洏鐢ㄦ埛,2-鎵嬫満鐢ㄦ埛,3-绯荤粺鐢ㄦ埛
+        public byte[] sUserName = new byte[NAME_LEN/*32*/];        //缃戠粶鐢ㄦ埛鐢ㄦ埛鍚�
+        public short wKeyUserNo;                        //閿洏鐢ㄦ埛鍙�    0xFFFF琛ㄧず鏃犳晥
+        public byte byKeypadNo;                        //閿洏鍙�        0xFF琛ㄧず鏃犳晥
+        public byte bySubSysNo;                        //瀛愮郴缁熷彿        0xFF琛ㄧず鏃犳晥
+        public short wDefenceNo;                        //闃插尯鍙�        0xFFFF琛ㄧず鏃犳晥
+        public byte byVideoChanNo;                    //瑙嗛閫氶亾鍙�    0xFF琛ㄧず鏃犳晥
+        public byte byDiskNo;                        //纭洏鍙�        0xFF琛ㄧず鏃犳晥
+        public short wModuleAddr;                    //妯″潡鍦板潃        0xFFFF琛ㄧず鏃犳晥
+        public byte byCenterType;                    //0-鏃犳晥, 1-涓績璐﹀彿(闀垮害6),2-鎵╁睍鐨勪腑蹇冭处鍙�(闀垮害9)
+        public byte byRes1;
+        public byte[] sCenterAccountV40 = new byte[ACCOUNTNUM_LEN_32/*32*/];    //涓績璐﹀彿V40,浣跨敤姝ゅ瓧娈垫椂sCenterAccount鏃犳晥
+        public byte[] byDevSerialNo = new byte[DEV_SERIAL_LEN];   /*浜у搧搴忓垪鍙�*/
+        public byte byRepeaterNo;    //涓户鍣ㄥ彿锛屼负0鏃犳晥
+        public short wRemoteCtrllerUserNo;    //閬ユ帶鍣ㄧ敤鎴峰彿锛屼负0鏃犳晥
+        public int dwIOTChannelNo;    //IOT閫氶亾鍙�
+        public byte[] byRes2 = new byte[12];
+    }
+
+    public static class NET_DVR_SENSOR_ALARM extends Structure {
+        public int dwSize;                // 缁撴瀯浣撳ぇ灏�
+        public int dwAbsTime;            // 缁濆鏃舵爣淇℃伅  OSD鏄剧ず淇℃伅
+        public byte[] byName = new byte[NAME_LEN];     // sensor 鍚嶇О
+        public byte bySensorChannel;    // 妯℃嫙閲忛�氶亾
+        public byte byType;             // 妯℃嫙閲忕被鍨�
+        public byte byAlarmType;        // 1-涓�4銆�2-涓�3銆�3-涓�2銆�4-涓�1銆�5-涓�1銆�6-涓�2銆�7-涓�3銆�8-涓�4 鍜屽綋鍓嶆ā寮忔湁鍏�
+        // 渚嬪褰撲负1000鏃�,鏈変笂1涓�1锛�2锛�3鎶ヨ鍥涚鎶ヨ
+        public byte byAlarmMode;        //鎶ヨ妯″紡锛屼簲绉嶏紝-HHHH銆�-HHHL銆�-HHLL銆丠LLL銆�-LLLL锛� 浣滀负骞冲彴鎶ヨ绋嬪害鍒ゆ柇鍔熻兘,鍗筹細1111锛堜笂涓婁笂涓婏級锛�1110锛堜笂涓婁笂涓嬶級锛�1100锛堜笂涓婁笅涓嬶級锛�1000(涓婁笅涓嬩笅)锛�0000(涓嬩笅涓嬩笅)
+        public float fValue;                // 浣嗗墠妯℃嫙閲忕殑鍊�
+        public float fOriginalValue; //鍘熷鐢垫祦鐢靛帇鍊硷紝淇濈暀灏忔暟鐐瑰悗涓変綅锛屽叿浣撳�艰〃绀虹數娴佽繕鏄數鍘嬫牴鎹甆ET_DVR_SENSOR_INFO鐨刡ySensorStandard绫诲瀷
+        public byte[] byRes2 = new byte[28];            // 淇濈暀瀛楄妭
+    }
+
+    //寮�鍏抽噺鎶ヨ涓婁紶
+    public static class NET_DVR_SWITCH_ALARM extends Structure {
+        public int dwSize;
+        public byte[] byName = new byte[NAME_LEN];     // switch 鍚嶇О
+        public short wSwitchChannel;     // 寮�鍏抽噺閫氶亾, 0-255
+        public byte byAlarmType;        // 鎶ヨ绫诲瀷 0--姝e父锛�1--鐭矾锛�2--鏂矾,3-寮傚父
+        public byte[] byRes = new byte[41];            // 淇濈暀瀛楄妭
+    }
+
+    public static class NET_DVR_ALARMHOST_EXCEPTION_ALARM extends Structure {
+        public int dwSize;             // 缁撴瀯浣撳ぇ灏�
+        // 寮傚父鍙傛暟  1-璁惧闃叉媶鎶ヨ 2-璁惧闃叉媶鍚庡悗鎭㈠姝e父 3-涓荤數婧愭帀鐢垫姤璀� 4-涓荤數婧愭帀鐢靛悗鎭㈠姝e父 5-鍐呴儴閫氫俊鏁呴殰鎶ヨ
+        // 6-鍐呴儴閫氫俊鏁呴殰鍚庢仮澶嶆甯�  7-鐢佃瘽绾挎柇绾� 8-鐢佃瘽绾挎柇绾挎仮澶� 9-鑷澶辫触鎶ヨ  10-鑷澶辫触鍚庢仮澶嶆甯�
+        // 11钃勭數姹犳瑺鍘�  12钃勭數姹犵數鍘嬫仮澶嶆甯革紝13-钃勭數姹犳晠闅滐紱14-MBUS妯″潡鎺夌嚎锛�15-MBUS妯″潡鎺夌嚎鎭㈠锛�16-閿洏鎺夌嚎锛�
+        //17-閿洏鎺夌嚎鎭㈠锛�18-璁惧琚Щ鍔紱19-璁惧琚Щ鍔ㄥ浣�  20-485澶栬绾胯矾鏂姤璀�  21-485澶栬绾胯矾鏂悗鎭㈠姝e父
+        //25-瀛愭澘1鎻掍笂,26-瀛愭澘1鎷斿嚭, 27-瀛愭澘2鎻掍笂,28-瀛愭澘2鎷斿嚭
+        public int dwExceptionType;
+        public byte[] byRes = new byte[36];          // 淇濈暀
+    }
+
+
+    public static class NET_DVR_ALARMHOST_POINT_VALUE extends Structure {
+        public byte byChanType;        //鎺ュ叆绫诲瀷锛�1-鏈湴妯℃嫙閲忛�氶亾锛�2-鏈湴寮�鍏抽噺閫氶亾锛�3-485閫氶亾锛�4-缃戠粶閫氶亾
+        public byte byPointType;    //鐐圭被鍨嬶紝1-閬ユ祴锛堟ā鎷熼噺锛夛紝2-閬ヤ俊锛堝紑鍏抽噺锛�
+        public byte[] byRes1 = new byte[2];        //淇濈暀
+        public int dwChanNo;        //485閫氶亾鍙凤紝0xffffffff琛ㄧず鏃犳晥锛岄�氶亾绫诲瀷涓�1鏃讹細琛ㄧず鏈湴妯℃嫙閲忛�氶亾鍙凤紝閫氶亾绫诲瀷涓�2鏃惰〃绀烘湰鍦板紑鍏抽噺閫氶亾鍙凤紝閫氶亾绫诲瀷涓�3鏃惰〃绀�485閫氶亾鍙枫��
+        public int dwSubChanNo;    //妲戒綅鍙凤紝 0xffffffff琛ㄧず鏃犳晥锛岄�氶亾绫诲瀷涓�3鏃朵娇鐢�
+        public int dwVariableNo;    //鍙橀噺缂栧彿锛�0xffffffff琛ㄧず鏃犳晥
+        public int dwPointNo;        //104鐐瑰彿锛�0xffffffff琛ㄧず鏃犳晥
+        public int iValue;            //鐩戞祴鐐圭殑鍊硷紝琛ㄧず浣�32浣�
+        public int iValueEx;          //鐩戞祴鐐圭殑鍊硷紝琛ㄧず楂�32浣�
+        public byte[] byRes = new byte[12];
+    }
+
+    public static class NET_DVR_ALARMHOST_DATA_UNION extends Structure {
+        public byte[] byLength = new byte[40];
+        public NET_DVR_ALARMHOST_POINT_VALUE struPointValue;    //鐩戞祴鐐瑰疄鏃舵暟鎹�
+    }
+
+    public static class NET_DVR_ALARMHOST_DATA_UPLOAD extends Structure {
+        public int dwSize;
+        public byte byDataType;        //鏁版嵁绫诲瀷锛�1-鐩戞祴鐐瑰疄鏃舵暟鎹笂浼�
+        public byte[] byRes1 = new byte[3];
+        public NET_DVR_ALARMHOST_DATA_UNION struAlarmData;
+        public byte[] byRes2 = new byte[32];
+    }
+
+    //杞︾墝璇嗗埆缁撴灉瀛愮粨鏋�
+    public static class NET_DVR_PLATE_INFO extends Structure {
+        public byte byPlateType;                    //杞︾墝绫诲瀷
+        public byte byColor;                        //杞︾墝棰滆壊
+        public byte byBright;                        //杞︾墝浜害
+        public byte byLicenseLen;                    //杞︾墝瀛楃涓暟
+        public byte byEntireBelieve;                //鏁翠釜杞︾墝鐨勭疆淇″害锛�-100
+        public byte byRegion;                       // 鍖哄煙绱㈠紩鍊� 0-淇濈暀锛�1-娆ф床(EU)锛�3-娆ф床&(EU&CIS) ,4-涓笢(ME),0xff-鎵�鏈�
+        public byte byCountry;                      // 鍥藉绱㈠紩鍊硷紝鍙傜収鏋氫妇COUNTRY_INDEX锛堜笉鏀寔"COUNTRY_ALL = 0xff, //ALL  鍏ㄩ儴"锛�
+        public byte byArea;                         //鍖哄煙锛堢渷浠斤級锛屽悇鍥藉鍐呴儴鍖哄煙鏋氫妇锛岄樋鑱旈厠鍙傜収 EMI_AREA
+        public byte byPlateSize;                    //杞︾墝灏哄锛�0~鏈煡锛�1~long, 2~short(涓笢杞︾墝浣跨敤)
+        public byte byAddInfoFlag;
+        public short wCRIndex;//鍥藉/鍦板尯绱㈠紩锛岀储寮曞�煎弬鑰僟CR_ INDEX_
+        public byte[] byRes = new byte[12];   //淇濈暀
+        public byte[] sPlateCategory = new byte[8];//杞︾墝闄勫姞淇℃伅, 鍗充腑涓滆溅鐗屼腑杞︾墝鍙风爜鏃佽竟鐨勫皬瀛椾俊鎭紝(鐩墠鍙湁涓笢鍦板尯鏀寔)
+        public int dwXmlLen;                        //XML鎶ヨ淇℃伅闀垮害
+        public Pointer pXmlBuf;                      // XML鎶ヨ淇℃伅鎸囬拡,鎶ヨ绫诲瀷涓� COMM_ITS_PLATE_RESUL鏃舵湁鏁堬紝鍏禭ML瀵瑰簲鍒癊ventNotificationAlert XML Block
+        public NET_VCA_RECT struPlateRect = new NET_VCA_RECT();        //杞︾墝浣嶇疆
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN];        //杞︾墝鍙风爜,娉細涓笢杞︾墝闇�姹傛妸灏忓瓧涔熺撼鍏ヨ溅鐗屽彿鐮侊紝灏忓瓧鍜岃溅鐗屽彿涓棿鐢ㄧ┖鏍煎垎闅�
+        public byte[] byBelieve = new byte[MAX_LICENSE_LEN];    //鍚勪釜璇嗗埆瀛楃鐨勭疆淇″害锛屽妫�娴嬪埌杞︾墝"娴橝12345", 缃俊搴︿负,20,30,40,50,60,70锛屽垯琛ㄧず"娴�"瀛楁纭殑鍙兘鎬у彧鏈�%锛�"A"瀛楃殑姝g‘鐨勫彲鑳芥�ф槸%
+    }
+
+    public static class NET_DVR_VEHICLE_INFO extends Structure {
+        public int dwIndex;          //杞﹁締搴忓彿
+        public byte byVehicleType;    //杞﹁締绫诲瀷 0 琛ㄧず鍏跺畠杞﹀瀷锛�1 琛ㄧず灏忓瀷杞︼紝2 琛ㄧず澶у瀷杞� ,3琛ㄧず琛屼汉瑙﹀彂 ,4琛ㄧず浜岃疆杞﹁Е鍙� 5琛ㄧず涓夎疆杞﹁Е鍙�(3.5Ver)
+        public byte byColorDepth;        //杞﹁韩棰滆壊娣辨祬
+        public byte byColor;          //杞﹁韩棰滆壊,鍙傝�僔CR_CLR_CLASS
+        /*闆疯揪寮傚父鐘舵�侊細
+    0~闆疯揪姝e父锛�
+    1~闆疯揪鏁呴殰
+    2~闆疯揪涓�鐩村彂閫佹煇涓�涓浉鍚岄�熷害鍊�
+    3~闆疯揪閫佸嚭鏁版嵁涓�0
+    4~闆疯揪閫佸嚭鏁版嵁杩囧ぇ鎴栬�呰繃灏�
+    */
+        public byte byRadarState;
+        public short wSpeed;           //鍗曚綅km/h
+        public short wLength;          //鍓嶄竴杈嗚溅鐨勮溅韬暱搴�
+        /*杩濊绫诲瀷锛�0-姝e父锛�1-浣庨�燂紝2-瓒呴�燂紝3-閫嗚锛�4-闂孩鐏�,5-鍘嬭溅閬撶嚎,6-涓嶆寜瀵煎悜锛�7-璺彛婊炵暀锛�
+                            8-鏈哄崰闈烇紝9-杩濇硶鍙橀亾锛�10-涓嶆寜杞﹂亾 11-杩濆弽绂佷护锛�12-璺彛鍋滆溅锛�13-缁跨伅鍋滆溅, 14-鏈ぜ璁╄浜�(杩濇硶浠g爜1357),
+    15-杩濈珷鍋滆溅锛�16-杩濈珷鎺夊ご,17-鍗犵敤搴旀�ヨ溅閬�,18-绂佸彸,19-绂佸乏,20-鍘嬮粍绾�,21-鏈郴瀹夊叏甯�,22-琛屼汉闂孩鐏�,23-鍔犲,24-杩濇硶浣跨敤杩滃厜鐏紝
+    25-椹鹃┒鏃舵嫧鎵撴帴鍚墜鎸佺數璇濓紝26-宸﹁浆涓嶈鐩磋锛�27-鍙宠浆涓嶈宸﹁浆锛�28-鎺夊ご涓嶈鐩磋锛�29-澶у集灏忚浆, 30-闂豢鐏紝31-鏈甫澶寸洈锛�
+    32-闈炴満鍔ㄨ溅杞戒汉锛�33-闈炴満鍔ㄨ溅鍗犵敤鏈哄姩杞﹂亾锛�34-闈炴満鍔ㄨ溅鎵撲紴妫�, 35-榛戠儫杞�, 36-楦g瑳*/
+        public byte byIllegalType;
+        public byte byVehicleLogoRecog; //鍙傝�冩灇涓剧被鍨� VLR_VEHICLE_CLASS
+        public byte byVehicleSubLogoRecog; //杞﹁締鍝佺墝瀛愮被鍨嬭瘑鍒紱鍙傝�僔SB_VOLKSWAGEN_CLASS绛夊瓙绫诲瀷鏋氫妇銆�
+        public byte byVehicleModel; //杞﹁締瀛愬搧鐗屽勾娆撅紝0-鏈煡锛屽弬鑰�"杞﹁締瀛愬搧鐗屽勾娆�.xlsx"
+        public byte[] byCustomInfo = new byte[16];  //鑷畾涔変俊鎭�
+        public short wVehicleLogoRecog;  //杞﹁締涓诲搧鐗岋紝鍙傝��"杞﹁締涓诲搧鐗�.xlsx" (璇ュ瓧娈靛吋瀹筨yVehicleLogoRecog);
+        public byte byIsParking;//鏄惁鍋滆溅 0-鏃犳晥锛�1-鍋滆溅锛�2-鏈仠杞�
+        public byte byRes;//淇濈暀瀛楄妭
+        public int dwParkingTime; //鍋滆溅鏃堕棿锛屽崟浣嶏細s
+        public byte[] byRes3 = new byte[8];
+    }
+
+    //鎵嬪姩鎶撴媿
+    public static class NET_DVR_MANUALSNAP extends Structure {
+        public byte byOSDEnable;//0-涓嶅叧闂�(榛樿)锛�1-鍏抽棴
+        public byte byLaneNo;//杞﹂亾鍙�, 鑼冨洿涓�1-6锛岄粯璁や负1(鎶撴媿鏈哄唴閮ㄦ祴璇曚娇鐢�)
+        public byte byChannel;//閫氶亾鍙�
+        public byte[] byRes = new byte[21]; //淇濈暀
+    }
+
+    //浜ら�氭姄鎷嶇粨鏋滀俊鎭�
+    public static class NET_DVR_PLATE_RESULT extends Structure {
+        public int dwSize;
+        public byte byResultType;
+        public byte byChanIndex;
+        public short wAlarmRecordID;
+        public int dwRelativeTime;
+        public byte[] byAbsTime = new byte[32];
+        public int dwPicLen;
+        public int dwPicPlateLen;
+        public int dwVideoLen;
+        public byte byTrafficLight;
+        public byte byPicNum;
+        public byte byDriveChan;
+        public byte byVehicleType;
+        public int dwBinPicLen;
+        public int dwCarPicLen;
+        public int dwFarCarPicLen;
+        public Pointer pBuffer3;
+        public Pointer pBuffer4;
+        public Pointer pBuffer5;
+        public byte[] byRes3 = new byte[8];
+        public NET_DVR_PLATE_INFO struPlateInfo;
+        public NET_DVR_VEHICLE_INFO struVehicleInfo;
+        public Pointer pBuffer1;
+        public Pointer pBuffer2;
+    }
+
+    public static class NET_DVR_TIME_V30 extends Structure {
+        public short wYear;
+        public byte byMonth;
+        public byte byDay;
+        public byte byHour;
+        public byte byMinute;
+        public byte bySecond;
+        public byte byRes;
+        public short wMilliSec;
+        public byte[] byRes1 = new byte[2];
+
+
+    }
+
+    public static class NET_ITS_PICTURE_INFO extends Structure {
+        public int dwDataLen;
+        public byte byType;
+        public byte byDataType;
+        public byte byCloseUpType;
+        public byte byPicRecogMode;
+        public int dwRedLightTime;
+        public byte[] byAbsTime = new byte[32];
+        public NET_VCA_RECT struPlateRect = new NET_VCA_RECT();
+        public NET_VCA_RECT struPlateRecgRect = new NET_VCA_RECT();
+        public Pointer pBuffer;
+        public int dwUTCTime;//UTC鏃堕棿
+        public byte byCompatibleAblity;//鍏煎鑳藉姏瀛楁锛屾寜浣嶈〃绀猴紝鍊硷細0- 鏃犳晥锛�1- 鏈夋晥
+        public byte byTimeDiffFlag;      /*鏃跺樊瀛楁鏄惁鏈夋晥  0-鏃跺樊鏃犳晥锛� 1-鏃跺樊鏈夋晥 */
+        public byte cTimeDifferenceH;         /*涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛� +琛ㄧず涓滃尯,锛宐yTimeDiffFlag涓�1鏃舵湁鏁�*/
+        public byte cTimeDifferenceM;        /*涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 30, 45锛� +琛ㄧず涓滃尯锛宐yTimeDiffFlag涓�1鏃舵湁鏁�*/
+        public byte[] byRes2 = new byte[4];
+    }
+
+    public static class NET_ITS_PLATE_RESULT extends Structure {
+        public int dwSize;
+        public int dwMatchNo;
+        public byte byGroupNum;
+        public byte byPicNo;
+        public byte bySecondCam;
+        public byte byFeaturePicNo;
+        public byte byDriveChan;
+        public byte byVehicleType;
+        public byte byDetSceneID;
+        public byte byVehicleAttribute;
+        public short wIllegalType;
+        public byte[] byIllegalSubType = new byte[8];
+        public byte byPostPicNo;
+        public byte byChanIndex;
+        public short wSpeedLimit;
+        public byte byChanIndexEx; //byChanIndexEx*256+byChanIndex琛ㄧず鐪熷疄閫氶亾鍙枫��
+        public byte byRes2;
+        public NET_DVR_PLATE_INFO struPlateInfo = new NET_DVR_PLATE_INFO();
+        public NET_DVR_VEHICLE_INFO struVehicleInfo = new NET_DVR_VEHICLE_INFO();
+        public byte[] byMonitoringSiteID = new byte[48];
+        public byte[] byDeviceID = new byte[48];
+        public byte byDir;
+        public byte byDetectType;
+        public byte byRelaLaneDirectionType;
+        public byte byCarDirectionType;
+        public int dwCustomIllegalType;
+        public Pointer pIllegalInfoBuf;
+        public byte byIllegalFromatType;
+        public byte byPendant;
+        public byte byDataAnalysis;
+        public byte byYellowLabelCar;
+        public byte byDangerousVehicles;
+        public byte byPilotSafebelt;
+        public byte byCopilotSafebelt;
+        public byte byPilotSunVisor;
+        public byte byCopilotSunVisor;
+        public byte byPilotCall;
+        public byte byBarrierGateCtrlType;
+        public byte byAlarmDataType;
+        public NET_DVR_TIME_V30 struSnapFirstPicTime = new NET_DVR_TIME_V30();
+        public int dwIllegalTime;
+        public int dwPicNum;
+        public NET_ITS_PICTURE_INFO[] struPicInfo = new NET_ITS_PICTURE_INFO[6];
+    }
+
+    public int MAX_PARKNO_LEN = 16; //杞︿綅缂栧彿闀垮害
+    public int MAX_ID_LEN = 48; //缂栧彿鏈�澶ч暱搴�
+
+    //鍋滆溅鍦烘暟鎹笂浼�
+    public static class NET_ITS_PARK_VEHICLE extends Structure {
+        public int dwSize; //缁撴瀯闀垮害
+        public byte byGroupNum; //鍥剧墖缁勬暟閲忥紙鍗曟杞鎶撴媿鐨勫浘鐗囨暟閲忥級
+        public byte byPicNo; //杩炴媿鐨勫浘鐗囩粍涓婁紶鍥剧墖搴忓彿锛堟帴鏀跺埌鍥剧墖缁勬暟閲忓悗锛岃〃绀烘帴鏀跺畬鎴�
+        //鎺ユ敹瓒呮椂涓嶈冻鍥剧墖缁勬暟閲忔椂锛屾牴鎹渶瑕佷繚鐣欐垨鍒犻櫎锛�
+        public byte byLocationNum; //鍗曞紶鍥剧墖鎵�绠$悊鐨勮溅浣嶆暟
+        public byte byParkError; //鍋滆溅寮傚父锛�0-姝e父 1 寮傚父
+        public byte[] byParkingNo = new byte[MAX_PARKNO_LEN];//杞︿綅缂栧彿
+        public byte byLocationStatus; //杞︿綅杞﹁締鐘舵�侊紝0-鏃犺溅锛�1鏈夎溅
+        public byte bylogicalLaneNum;//閫昏緫杞︿綅鍙凤紝0-3锛屼竴涓浉鏈烘渶澶ц兘绠�4涓溅浣� 锛�0浠h〃鏈�宸﹁竟锛�3浠h〃鏈�鍙宠竟锛�
+        public short wUpLoadType;//绗浂浣嶈〃绀猴細0~杞涓婁紶銆�1~鍙樺寲涓婁紶
+        public byte[] byRes1 = new byte[4]; //淇濈暀瀛楄妭
+        public int dwChanIndex; //閫氶亾鍙锋暟瀛楅�氶亾
+        public NET_DVR_PLATE_INFO struPlateInfo;  //杞︾墝淇℃伅缁撴瀯
+        public NET_DVR_VEHICLE_INFO struVehicleInfo; //杞﹁締淇℃伅
+        public byte[] byMonitoringSiteID = new byte[MAX_ID_LEN]; //鐩戞祴鐐圭紪鍙�
+        public byte[] byDeviceID = new byte[MAX_ID_LEN]; //璁惧缂栧彿
+        public int dwPicNum; //鍥剧墖鏁伴噺锛堜笌picGroupNum涓嶅悓锛屼唬琛ㄦ湰鏉′俊鎭檮甯︾殑鍥剧墖鏁伴噺锛屽浘鐗囦俊鎭敱struVehicleInfoEx瀹氫箟
+        public NET_ITS_PICTURE_INFO[] struPicInfo = new NET_ITS_PICTURE_INFO[2];  //鍥剧墖淇℃伅,鍗曞紶鍥炶皟锛屾渶澶�2寮犲浘锛岀敱搴忓彿鍖哄垎
+        public byte[] byRes2 = new byte[256];
+    }
+
+    public static class NET_DVR_SNAPCFG extends Structure {
+
+        public int dwSize;
+        public byte byRelatedDriveWay;//瑙﹀彂IO鍏宠仈鐨勮溅閬撳彿
+        public byte bySnapTimes; //绾垮湀鎶撴媿娆℃暟锛�0-涓嶆姄鎷嶏紝闈�0-杩炴媿娆℃暟锛岀洰鍓嶆渶澶�5娆�
+        public short wSnapWaitTime;  //鎶撴媿绛夊緟鏃堕棿锛屽崟浣峬s锛屽彇鍊艰寖鍥碵0,60000]
+        public short[] wIntervalTime = new short[MAX_INTERVAL_NUM];//杩炴媿闂撮殧鏃堕棿锛宮s
+        public int dwSnapVehicleNum; //鎶撴媿杞﹁締搴忓彿銆�
+        public NET_DVR_JPEGPARA struJpegPara;//鎶撴媿鍥剧墖鍙傛暟
+        public byte[] byRes2 = new byte[16];
+    }
+
+    // 閬撻椄鎺у埗
+    public static class NET_DVR_BARRIERGATE_CFG extends Structure {
+        public int dwSize;
+        public int dwChannel; //閫氶亾鍙�
+        public byte byLaneNo;  //閬撻椄鍙凤紙0-琛ㄧず鏃犳晥鍊�(璁惧闇�瑕佸仛鏈夋晥鍊煎垽鏂�),1-閬撻椄1锛�
+        /*
+    鑻ヨ�佺殑骞冲彴涓嶆敮鎸乥yUnlock瀛楁锛岃瀛楁灏嗚祴鍊间负0锛岄�氳繃鈥�0-鍏抽棴閬撻椄,1-寮�鍚亾闂�,2-鍋滄閬撻椄鈥濅腑鐨勪换浣曚竴绉嶆搷浣滅殕鍙繘琛岃В閿併��
+    鑻ユ柊骞冲彴鏀寔byUnlock瀛楁锛岄渶byUnlock瀛楁璧嬪�间负1锛屽苟缁撳悎4~瑙i攣閬撻椄鏉ヨ繘琛岃В閿併�俠yUnlock瀛楁璧嬪�间负1鍚庯紝鈥�0-鍏抽棴閬撻椄,1-寮�鍚亾闂�,2-鍋滄閬撻椄鈥濇搷浣滃皢涓嶅彲鐢ㄤ簬瑙i攣銆�
+    */
+        public byte byBarrierGateCtrl;//0-鍏抽棴閬撻椄,1-寮�鍚亾闂�,2-鍋滄閬撻椄 3-閿佸畾閬撻椄,4~瑙i攣閬撻椄
+        public byte byEntranceNo;//鍑哄叆鍙g紪鍙� [1,8]
+        public byte byUnlock;//鍚敤瑙i攣浣胯兘锛�0~涓轰笉鍚敤锛�1~鍚敤
+        public byte[] byRes = new byte[12];
+    }
+
+
+    public static class NET_DVR_GROUP_PARAM extends Structure {
+        public int dwTeenage;//灏戝勾锛堜汉鏁帮級
+        public int dwYouth;//闈掑勾锛堜汉鏁帮級
+        public int dwMidLife;//涓勾锛堜汉鏁帮級
+        public int dwElderly;//鑰佸勾锛堜汉鏁帮級
+        public int dwChild;//鍎跨锛堜汉鏁帮級
+        public int dwAdolescent;//闈掑皯骞达紙浜烘暟锛�
+        public int dwPrime;//澹勾锛堜汉鏁帮級
+        public int dwMidage;//涓�佸勾锛堜汉鏁帮級
+        public byte[] byRes = new byte[48];
+    }
+
+    public static class NET_DVR_SEXGROUP_PARAM extends Structure {
+        public int dwMale;//鐢凤紙浜烘暟锛�
+        public int dwFemale;//濂筹紙浜烘暟锛�
+        public byte[] byRes = new byte[64];
+    }
+
+    public static class NET_DVR_PROGRAM_INFO extends Structure {
+        public int dwProgramNo; //鑺傜洰缂栧彿
+        public byte[] sProgramName = new byte[NAME_LEN]; //鑺傜洰鍚嶇О
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class NET_DVR_FACECAPTURE_STATISTICS_RESULT extends Structure {
+        public int dwSize;
+        public NET_DVR_TIME_EX struStartTime;/*闂撮殧寮�濮嬫椂闂�*/
+        public NET_DVR_TIME_EX struEndTime;/*闂撮殧缁撴潫鏃堕棿*/
+        public byte byStatType;//鏁版嵁绫诲瀷缁熻锛欱it0-骞撮緞娈垫湁鏁堬紝Bit1-鎬у埆鏈夋晥锛孊it2-浜烘暟鏈夋晥
+        public byte[] byRes = new byte[7];
+        public int dwPeopleNum;//浜烘暟缁熻
+        public byte[] byRes2=new byte[80]; //
+        public NET_DVR_SEXGROUP_PARAM struSexGroupParam;//鎬у埆浜烘暟缁熻
+        public NET_DVR_PROGRAM_INFO struProgramInfo;        //鑺傜洰淇℃伅
+        public byte[] byRes1 = new byte[76];
+    }
+
+    //鑾峰彇浜ら�氭暟鎹潯浠剁粨鏋�
+    public static class NET_DVR_TRAFFIC_DATA_QUERY_COND extends Structure {
+        public int dwSize;
+        /*
+       Bit0-閫氶亾鏈夋晥
+       Bit1-鏃堕棿鏈夋晥
+       Bit2-杞︾墝鍙锋湁鏁�
+       Bit3-杞︾墝绫诲瀷鏈夋晥
+       Bit4-杞︾墝棰滆壊鏈夋晥
+       Bit5-杞﹁韩棰滆壊鏈夋晥
+       Bit6-杞﹁締绫诲瀷鏈夋晥
+       Bit7-杞﹁締鍝佺墝鏈夋晥
+       Bit8-杞﹂亾鍙锋湁鏁�
+       Bit9-鐩戞祴鏂瑰悜鏈夋晥
+       Bit10-鏈�浣庨�熷害鏈夋晥
+       Bit11-鏈�楂橀�熷害鏈夋晥
+       Bit12-鏁版嵁绫诲瀷鏈夋晥
+       Bit13-甯冮槻鏂瑰紡绫诲瀷鏈夋晥
+       Bit14-杩濇硶鍙栬瘉鏈夋晥
+       Bit15-浜嬩欢绫诲瀷鏈夋晥
+       Bit16-鍙栬瘉绫诲瀷鏈夋晥
+       */
+        public int dwQueryCond;//鏌ヨ鏉′欢 0琛ㄧず鏃犳晥锛�1琛ㄧず鏈夋晥
+        public int dwChannel;//榛樿鏄�1锛圼1~32]锛宐it0琛ㄧず閫氶亾1锛屼緷娆$被鎺╞it31琛ㄧず閫氶亾32锛�
+        public NET_DVR_TIME_V30 struStartTime;//寮�濮嬫椂闂�
+        public NET_DVR_TIME_V30 struEndTime;//缁撴潫鏃堕棿
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN/*16*/];//(璁惧鏀寔妯$硦鏌ヨ, GB2312缂栫爜)
+        /*
+       Bit0-鏈煡锛堝叾浠栵級
+       Bit1-鏍囧噯姘戠敤杞︿笌鐗圭杞�
+       Bit2-02寮忔皯鐢ㄨ溅鐗�
+       Bit3-
+       Bit4-璀﹁溅
+       Bit5-姘戠敤杞﹀弻琛屽熬鐗�
+       Bit6-浣块杞︾墝
+       Bit7-鍐滅敤杞�
+       Bit8-鎽╂墭杞�
+       */
+        public int dwPlateType;//杞︾墝绫诲瀷锛堟敮鎸佹寜浣嶈〃绀猴紝鍙互澶嶉�夛級
+        /*
+       Bit0-鏈煡锛堝叾浠栵級
+       Bit1-榛勮壊
+       Bit2-鐧借壊
+       Bit3-榛戣壊
+       Bit4-缁胯壊
+       Bit5-钃濊壊
+       */
+        public int dwPlateColor;//杞︾墝棰滆壊锛堟敮鎸佹寜浣嶈〃绀猴紝鍙互澶嶉�夛級
+        /*
+       Bit0-鏈煡锛堝叾浠栵級
+       Bit1-鐧借壊
+       Bit2-閾惰壊
+       Bit3-鐏拌壊
+       Bit4-榛戣壊
+       Bit5-绾㈣壊
+       Bit6-娣辫摑鑹�
+       Bit7-钃濊壊
+       Bit8-榛勮壊
+       Bit9-缁胯壊
+       Bit10-妫曡壊
+       Bit11-绮夎壊
+       Bit12-绱壊
+       Bit13-娣辩伆鑹�
+       */
+        public int dwVehicleColor;//杞﹁韩棰滆壊锛堟敮鎸佹寜浣嶈〃绀猴紝鍙互澶嶉�夛級
+        /*
+       Bit0-鏈煡锛堝叾浠栵級
+       Bit1-瀹㈣溅
+       Bit2-澶ц揣杞�
+       Bit3-杞胯溅
+       Bit4-闈㈠寘杞�
+       Bit5-灏忚揣杞�
+       Bit6-琛屼汉
+       Bit7-浜岃疆杞�
+       Bit8-涓夎疆杞�
+       Bit9-SUV/MPV
+       Bit10-涓瀷瀹㈣溅
+       */
+        public int dwVehicleType;//杞﹁締绫诲瀷锛堟敮鎸佹寜浣嶈〃绀猴紝鍙互澶嶉�夛級
+        /**
+         * Bit0-鍏朵粬锛堜繚鐣欙級
+         * Bit1-浣庨��
+         * Bit2-瓒呴��
+         * Bit3-閫嗚
+         * Bit4-闂孩鐏�
+         * Bit5-鍘嬭溅閬撶嚎
+         * Bit6-涓嶆寜瀵煎悜
+         * Bit7-璺彛婊炵暀
+         * Bit8-鏈哄崰闈�
+         * Bit9-杩濇硶鍙橀亾
+         * Bit10-涓嶆寜杞﹂亾
+         * Bit11-杩濆弽绂佷护
+         * Bit12-璺彛鍋滆溅
+         * Bit13-缁跨伅鍋滆溅
+         * Bit14-鏈ぜ璁╄浜�
+         * Bit15-杩濈珷鍋滆溅
+         * Bit16-杩濈珷鎺夊ご
+         * Bit17-鍗犵敤搴旀�ヨ溅閬�
+         * Bit18-鏈郴瀹夊叏甯�
+         */
+        public int dwIllegalType;
+        /**
+         * Bit0-鍏朵粬锛堜繚鐣欙級
+         * Bit1-鎷ュ牭
+         * Bit2-鍋滆溅
+         * Bit3-閫嗚
+         * Bit4-琛屼汉
+         * Bit5-鎶涙磼鐗�
+         * Bit6-鐑熼浘
+         * Bit7-鍘嬬嚎
+         * Bit8-绂佹鍚嶅崟
+         * Bit9-瓒呴��
+         * Bit10-鍙橀亾
+         * Bit11-鎺夊ご
+         * Bit12-鏈哄崰闈�
+         * Bit13-鍔犲
+         */
+        public int dwEventType;
+        /**
+         * Bit0-鍏朵粬锛堜繚鐣欙級
+         * Bit1-鍩庡競鍏矾杩濇硶鍋滆溅
+         * Bit2-楂橀�熷叕璺繚娉曞仠杞�
+         * Bit3-鍘嬬嚎
+         * Bit4-閫嗚
+         * Bit5-杩濇硶鍙橀亾
+         * Bit6-鏈哄崰闈�
+         */
+        public int dwForensiceType;
+        public short wVehicleLogoRecog;  //杞﹁締涓诲搧鐗岋紝鍙傝��"杞﹁締涓诲搧鐗�.xlsx" 锛堜粎鍗曢�夛級
+        public byte byLaneNo;//杞﹂亾鍙凤紙0~255,0鍙疯溅閬� 琛ㄧず 杞﹂亾鍙锋湭鐭ワ級
+        public byte byDirection;//鐩戞祴鏂瑰悜锛�1-涓婅锛�2-涓嬭锛�3-鍙屽悜锛�4-鐢变笢鍚戣タ锛�5-鐢卞崡鍚戝寳,6-鐢辫タ鍚戜笢锛�7-鐢卞寳鍚戝崡
+        public short wMinSpeed;//鏈�浣庨�熷害锛�0~999锛夊崟浣峩m/h
+        public short wMaxSpeed;//鏈�楂橀�熷害锛�0~999锛夊崟浣峩m/h
+        public byte byDataType;//鏁版嵁绫诲瀷 0-鍗″彛鏁版嵁锛�1-杩濇硶鏁版嵁锛�2-浜ら�氫簨浠讹紝3-鍙栬瘉鏁版嵁 锛堜粎鍗曢�夛級
+        public byte byExecuteCtrl;//甯冮槻 0-鍏佽鍚嶅崟锛�1-绂佹鍚嶅崟锛�0xff-鍏朵粬
+        public byte[] byRes = new byte[254];
+    }
+
+    public static final int MAX_TRAFFIC_PICTURE_NUM = 8; //浜ら�氬浘鐗囨暟閲�
+
+    //浜ら�氭暟鎹粨鏋勪綋
+    public static class NET_DVR_TRAFFIC_DATA_QUERY_RESULT extends Structure {
+        public int dwSize;
+        public int dwChannel;//榛樿鏄�1锛圼1~32]锛�
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN/*16*/];
+        /*
+    Bit0-鏈煡锛堝叾浠栵級
+    Bit1-鏍囧噯姘戠敤杞︿笌鐗圭杞�
+    Bit2-02寮忔皯鐢ㄨ溅鐗�
+    Bit4-璀﹁溅
+    Bit5-姘戠敤杞﹀弻琛屽熬鐗�
+    Bit6-浣块杞︾墝
+    Bit7-鍐滅敤杞�
+    Bit8-鎽╂墭杞�
+    */
+        public int dwPlateType;//杞︾墝绫诲瀷
+        /*
+    Bit0-鏈煡锛堝叾浠栵級
+    Bit1-榛勮壊
+    Bit2-鐧借壊
+    Bit3-榛戣壊
+    Bit4-缁胯壊
+    Bit5-钃濊壊
+    */
+        public int dwPlateColor;//杞︾墝棰滆壊
+        /*
+    Bit0-鏈煡锛堝叾浠栵級
+    Bit1-鐧借壊
+    Bit2-閾惰壊
+    Bit3-鐏拌壊
+    Bit4-榛戣壊
+    Bit5-绾㈣壊
+    Bit6-娣辫摑鑹�
+    Bit7-钃濊壊
+    Bit8-榛勮壊
+    Bit9-缁胯壊
+    Bit10-妫曡壊
+    Bit11-绮夎壊
+    Bit12-绱壊
+    Bit13-娣辩伆鑹�
+    */
+        public int dwVehicleColor;//杞﹁韩棰滆壊
+        /*
+    Bit0-鏈煡锛堝叾浠栵級
+    Bit1-瀹㈣溅
+    Bit2-澶ц揣杞�
+    Bit3-杞胯溅
+    Bit4-闈㈠寘杞�
+    Bit5-灏忚揣杞�
+    Bit6-琛屼汉
+    Bit7-浜岃疆杞�
+    Bit8-涓夎疆杞�
+    Bit9-SUV/MPV
+    Bit10-涓瀷瀹㈣溅
+    Bit11-鏈哄姩杞�
+    Bit12-闈炴満鍔ㄨ溅
+    Bit13-灏忓瀷杞胯溅
+    Bit14-寰瀷杞胯溅
+    Bit15-鐨崱杞�
+    Bit16-闆嗚绠卞崱杞�
+    Bit17-寰崱锛屾爮鏉垮崱
+    Bit18-娓e湡杞�
+    Bit19-鍚婅溅锛屽伐绋嬭溅
+    Bit20-娌圭綈杞�
+    Bit21-娣峰嚌鍦熸悈鎷岃溅
+    Bit22-骞虫澘鎷栬溅
+    Bit23-涓ゅ帰杞胯溅
+    Bit24-涓夊帰杞胯溅
+    Bit25-杞胯窇
+    Bit26-灏忓瀷瀹㈣溅
+    */
+        public int dwVehicleType;//杞﹁締绫诲瀷
+        /**
+         * Bit0-鍏朵粬锛堜繚鐣欙級
+         * Bit1-浣庨��
+         * Bit2-瓒呴��
+         * Bit3-閫嗚
+         * Bit4-闂孩鐏�
+         * Bit5-鍘嬭溅閬撶嚎
+         * Bit6-涓嶆寜瀵煎悜
+         * Bit7-璺彛婊炵暀
+         * Bit8-鏈哄崰闈�
+         * Bit9-杩濇硶鍙橀亾
+         * Bit10-涓嶆寜杞﹂亾
+         * Bit11-杩濆弽绂佷护
+         * Bit12-璺彛鍋滆溅
+         * Bit13-缁跨伅鍋滆溅
+         * Bit14-鏈ぜ璁╄浜�
+         * Bit15-杩濈珷鍋滆溅
+         * Bit16-杩濈珷鎺夊ご
+         * Bit17-鍗犵敤搴旀�ヨ溅閬�
+         * Bit18-鏈郴瀹夊叏甯�
+         */
+        public int dwIllegalType;
+        /**
+         * Bit0-鍏朵粬锛堜繚鐣欙級
+         * Bit1-鎷ュ牭
+         * Bit2-鍋滆溅
+         * Bit3-閫嗚
+         * Bit4-琛屼汉
+         * Bit5-鎶涙磼鐗�
+         * Bit6-鐑熼浘
+         * Bit7-鍘嬬嚎
+         * Bit8-绂佹鍚嶅崟
+         * Bit9-瓒呴��
+         * Bit10-鍙橀亾
+         * Bit11-鎺夊ご
+         * Bit12-鏈哄崰闈�
+         * Bit13-鍔犲
+         */
+        public int dwEventType;
+        /**
+         * Bit0-鍏朵粬锛堜繚鐣欙級
+         * Bit1-鍩庡競鍏矾杩濇硶鍋滆溅
+         * Bit2-楂橀�熷叕璺繚娉曞仠杞�
+         * Bit3-鍘嬬嚎
+         * Bit4-閫嗚
+         * Bit5-杩濇硶鍙橀亾
+         * Bit6-鏈哄崰闈�
+         */
+        public int dwForensiceType;
+        public short wVehicleLogoRecog;  //杞﹁締涓诲搧鐗岋紝鍙傝��"杞﹁締涓诲搧鐗�.xlsx"
+        public byte byLaneNo;//杞﹂亾鍙凤紙0~255,0鍙疯溅閬� 琛ㄧず 杞﹂亾鍙锋湭鐭ワ級
+        public byte byDirection;//鐩戞祴鏂瑰悜锛�1-涓婅锛�2-涓嬭锛�3-鍙屽悜锛�4-鐢变笢鍚戣タ锛�5-鐢卞崡鍚戝寳,6-鐢辫タ鍚戜笢锛�7-鐢卞寳鍚戝崡
+        public short wSpeed;//閫熷害锛�0~999锛夊崟浣峩m/h
+        public byte byDataType;//鏁版嵁绫诲瀷: 0-鍗″彛 1-杩濇硶 2-浜嬩欢 3-鍙栬瘉
+        public byte[] byRes = new byte[253];
+        public NET_DVR_TRAFFIC_PICTURE_PARAM[] struTrafficPic = new NET_DVR_TRAFFIC_PICTURE_PARAM[MAX_TRAFFIC_PICTURE_NUM/*8*/];
+    }
+
+    //浜ら�氬浘鐗囧弬鏁板瓙缁撴瀯
+    public static final int PICTURE_NAME_LEN = 64;
+
+    public static class NET_DVR_TRAFFIC_PICTURE_PARAM extends Structure {
+        public NET_DVR_TIME_V30 struRelativeTime = new NET_DVR_TIME_V30(); //鎶撴媿鐩稿鏃舵爣
+        public NET_DVR_TIME_V30 struAbsTime = new NET_DVR_TIME_V30();  //鎶撴媿缁濆鏃舵爣
+        public byte[] szPicName = new byte[PICTURE_NAME_LEN/*64*/];
+        public byte byPicType;//鍥剧墖绫诲瀷 0-杞︾墝鍥撅紝1-鎶撴媿鍘熷浘锛�2-鍚堟垚鍥撅紝3-鐗瑰啓鍥�
+        public byte[] byRes = new byte[63];
+    }
+
+    public static class NET_DVR_VEHICLE_CONTROL_COND extends Structure {
+        public int dwChannel;
+        public int dwOperateType;
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN];
+        public byte[] sCardNo = new byte[48];
+        public byte byListType;
+        public byte[] byRes1 = new byte[3];
+        public int dwDataIndex;
+        public byte[] byRes = new byte[116];
+    }
+
+    public static class NET_DVR_VEHICLE_CONTROL_LIST_INFO extends Structure {
+        public int dwSize;
+        public int dwChannel;
+        public int dwDataIndex;
+        public byte[] sLicense = new byte[16];
+        public byte byListType;
+        public byte byPlateType;
+        public byte byPlateColor;
+        public byte[] byRes = new byte[21];
+        public byte[] sCardNo = new byte[48];
+        public NET_DVR_TIME_V30 struStartTime = new NET_DVR_TIME_V30();
+        public NET_DVR_TIME_V30 struStopTime = new NET_DVR_TIME_V30();
+        public byte[] sOperateIndex = new byte[32];
+        public byte[] byRes1 = new byte[224];
+    }
+
+    //杞﹁締鎶ヨ
+    public static class NET_DVR_VEHICLE_CONTROL_ALARM extends Structure {
+        public int dwSize;
+        public byte byListType;   //鍚嶅崟灞炴�э細0-鍏佽鍚嶅崟锛�1-绂佹鍚嶅崟锛�2-涓存椂鍚嶅崟
+        public byte byPlateType;  //杞︾墝绫诲瀷
+        public byte byPlateColor;    //杞︾墝棰滆壊
+        public byte byRes1;
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN];//杞︾墝鍙风爜
+        public byte[] sCardNo = new byte[MAX_CARDNO_LEN];  // 鍗″彿
+        public NET_DVR_TIME_V30 struAlarmTime = new NET_DVR_TIME_V30(); //鎶ヨ鏃堕棿
+        public int dwChannel;          //璁惧閫氶亾鍙凤紝濡傛灉鐩磋繛鐨勬槸IPC锛屽垯涓篿pc閫氶亾鍙凤紱濡傛灉杩炵殑DVR\nvr,鍒欎负DVR\NVR鐨勯�氶亾鍙�
+        public int dwPicDataLen;   //鍥剧墖鏁版嵁澶у皬锛�0琛ㄧず鏃犲浘鐗囷紝涓嶄负0鏄〃绀哄悗闈㈠甫鍥剧墖鏁版嵁
+        public byte byPicType;    //鍥剧墖绫诲瀷锛�0-JPEG
+        public byte byPicTransType;        //鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public byte[] byRes3 = new byte[2];
+        public Pointer pPicData;
+        public byte[] byRes2 = new byte[48];
+    }
+
+    public int MAX_LED_INFO_LEN = 512;
+    public int MAX_VOICE_INFO_LEN = 128;
+
+    //LED灞忓箷鏄剧ず鍙傛暟
+    public static class NET_DVR_LEDDISPLAY_CFG extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public byte[] sDisplayInfo = new byte[MAX_LED_INFO_LEN/*512*/]; // LED鏄剧ず鍐呭
+        public byte byDisplayMode;//鏄剧ず鏂瑰紡:0~宸︾Щ,1~鍙崇Щ,2~绔嬪嵆鏄剧ず
+        public byte bySpeedType;//閫熷害绫诲瀷:0~蹇�,1~涓�,2~鎱�
+        public byte byShowPlateEnable;//鏄剧ず杞︾墝浣胯兘锛�0~鍏抽棴锛�1~鍚敤
+        public byte byRes1;
+        public int dwShowTime;//鏄剧ず鏃堕暱锛�1~60绉�
+        public byte[] byRes = new byte[128];
+    }
+
+    //璇煶鎾姤鎺у埗鍙傛暟
+    public static class NET_DVR_VOICEBROADCAST_CFG extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public byte[] sInfo = new byte[MAX_VOICE_INFO_LEN/*128*/]; //璇煶鎾姤鍐呭
+        public byte byBroadcastNum;// 璇煶鎾姤娆℃暟锛� 1~10娆�
+        public byte byIntervalTime;// 璇煶鎾姤闂撮殧鏃堕棿,1~5s
+        public byte[] byRes = new byte[126];
+    }
+
+    //缂磋垂閲戦淇℃伅
+    public static class NET_DVR_CHARGEACCOUNT_CFG extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public float fAccount;//瀹為檯鏀惰垂閲戦
+        public byte[] byRes = new byte[128];
+    }
+
+    public static final int DOOR_NAME_LEN = 32;        //闂ㄥ悕绉�
+    public static final int STRESS_PASSWORD_LEN = 8;   //鑳佽揩瀵嗙爜闀垮害
+    public static final int SUPER_PASSWORD_LEN = 8;    //鑳佽揩瀵嗙爜闀垮害
+    public static final int UNLOCK_PASSWORD_LEN = 8;   // 瑙i櫎瀵嗙爜闀垮害
+
+    public static class NET_DVR_DOOR_CFG extends Structure {
+        public int dwSize;
+        public byte[] byDoorName = new byte[DOOR_NAME_LEN]; //闂ㄥ悕绉�
+        public byte byMagneticType; //闂ㄧ绫诲瀷锛�0-甯搁棴锛�1-甯稿紑
+        public byte byOpenButtonType; //寮�闂ㄦ寜閽被鍨嬶紝0-甯搁棴锛�1-甯稿紑
+        public byte byOpenDuration; //寮�闂ㄦ寔缁椂闂达紝1-255s锛堟ゼ灞傜户鐢靛櫒鍔ㄤ綔鏃堕棿锛�
+        public byte byDisabledOpenDuration; //鍗″紑闂ㄦ寔缁椂闂达紝1-255s
+        public byte byMagneticAlarmTimeout; //闂ㄧ妫�娴嬭秴鏃舵姤璀︽椂闂达紝0-255s锛�0琛ㄧず涓嶆姤璀�
+        public byte byEnableDoorLock; //鏄惁鍚敤闂棬鍥為攣锛�0-鍚︼紝1-鏄�
+        public byte byEnableLeaderCard; //鏄惁鍚敤棣栧崱甯稿紑鍔熻兘锛�0-鍚︼紝1-鏄�
+        public byte byLeaderCardMode; //棣栧崱妯″紡锛�0-涓嶅惎鐢ㄩ鍗″姛鑳斤紝1-棣栧崱甯稿紑妯″紡锛�2-棣栧崱鎺堟潈妯″紡锛堜娇鐢ㄤ簡姝ゅ瓧娈碉紝鍒檅yEnableLeaderCard鏃犳晥锛�
+        public int dwLeaderCardOpenDuration; //棣栧崱甯稿紑鎸佺画鏃堕棿锛�1-1440min
+        public byte[] byStressPassword = new byte[STRESS_PASSWORD_LEN]; //鑳佽揩瀵嗙爜
+        public byte[] bySuperPassword = new byte[SUPER_PASSWORD_LEN]; //瓒呯骇瀵嗙爜
+        public byte[] byUnlockPassword = new byte[UNLOCK_PASSWORD_LEN];         //瑙i櫎鐮丯ET_DVR_LOCAL_CONTROLLER_STATUS
+        public byte byUseLocalController; //鍙锛屾槸鍚﹁繛鎺ュ湪灏卞湴鎺у埗鍣ㄤ笂锛�0-鍚︼紝1-鏄�
+        public byte byRes1;
+        public short wLocalControllerID; //鍙锛屽氨鍦版帶鍒跺櫒搴忓彿锛�1-64,0浠h〃鏈敞鍐�
+        public short wLocalControllerDoorNumber; //鍙锛屽氨鍦版帶鍒跺櫒鐨勯棬缂栧彿锛�1-4,0浠h〃鏈敞鍐�
+        public short wLocalControllerStatus; //鍙锛屽氨鍦版帶鍒跺櫒鍦ㄧ嚎鐘舵�侊細0-绂荤嚎锛�1-缃戠粶鍦ㄧ嚎锛�2-鐜矾1涓婄殑RS485涓插彛1锛�3-鐜矾1涓婄殑RS485涓插彛2锛�4-鐜矾2涓婄殑RS485涓插彛1锛�5-鐜矾2涓婄殑RS485涓插彛2锛�6-鐜矾3涓婄殑RS485涓插彛1锛�7-鐜矾3涓婄殑RS485涓插彛2锛�8-鐜矾4涓婄殑RS485涓插彛1锛�9-鐜矾4涓婄殑RS485涓插彛2锛堝彧璇伙級
+        public byte byLockInputCheck; //鏄惁鍚敤闂ㄩ攣杈撳叆妫�娴�(1瀛楄妭锛�0涓嶅惎鐢紝1鍚敤锛岄粯璁や笉鍚敤)
+        public byte byLockInputType; //闂ㄩ攣杈撳叆绫诲瀷(1瀛楄妭锛�0甯搁棴锛�1甯稿紑锛岄粯璁ゅ父闂�)
+        public byte byDoorTerminalMode; //闂ㄧ浉鍏崇瀛愬伐浣滄ā寮�(1瀛楄妭锛�0闃插壀闃茬煭锛�1鏅�氾紝榛樿闃插壀闃茬煭)
+        public byte byOpenButton; //鏄惁鍚敤寮�闂ㄦ寜閽�(1瀛楄妭锛�0鏄紝1鍚︼紝榛樿鏄�)
+        public byte byLadderControlDelayTime; //姊帶璁垮寤惰繜鏃堕棿锛�1-255min
+        public byte[] byRes2 = new byte[43];
+    }
+
+    public static class NET_DVR_DOOR_STATUS_PLAN extends Structure {
+        public int dwSize;
+        public int dwTemplateNo; //璁″垝妯℃澘缂栧彿锛屼负0琛ㄧず鍙栨秷鍏宠仈锛屾仮澶嶉粯璁ょ姸鎬侊紙鏅�氱姸鎬侊級
+        public byte[] byRes = new byte[64];
+    }
+
+
+    public static class NET_DVR_EVENT_CARD_LINKAGE_COND extends Structure {
+        public int dwSize;
+        public int dwEventID; //浜嬩欢ID
+        public short wLocalControllerID; //灏卞湴鎺у埗鍣ㄥ簭鍙穂1,64]
+        public byte[] byRes = new byte[106];
+    }
+
+    public static final int MAX_ALARMHOST_ALARMIN_NUM = 512;//缃戠粶鎶ヨ涓绘満鏈�澶ф姤璀﹁緭鍏ュ彛鏁�
+    public static final int MAX_ALARMHOST_ALARMOUT_NUM = 512;//缃戠粶鎶ヨ涓绘満鏈�澶ф姤璀﹁緭鍑哄彛鏁�
+
+    public static class NET_DVR_EVENT_CARD_LINKAGE_CFG_V50 extends Structure {
+        public int dwSize;    //缁撴瀯浣撳ぇ灏�
+        public byte byProMode;                          //鑱斿姩鏂瑰紡锛�0-浜嬩欢锛�1-鍗″彿, 2-MAC鍦板潃
+        public byte[] byRes1 = new byte[3];
+        public int dwEventSourceID;                    //浜嬩欢婧怚D锛屽綋涓荤被鍨嬩负璁惧浜嬩欢鏃舵棤鏁堬紝 褰撲富绫诲瀷鏄棬浜嬩欢鏃朵负闂ㄧ紪鍙�;褰撲富绫诲瀷涓鸿鍗″櫒浜嬩欢鏃讹紝涓鸿鍗″櫒ID;褰撲负鎶ヨ杈撳叆浜嬩欢鏃朵负闃插尯鎶ヨ杈撳叆ID鎴栦簨浠舵姤璀﹁緭鍏D銆�0xffffffff琛ㄧず鑱斿姩鍏ㄩ儴
+        public NET_DVR_EVETN_CARD_LINKAGE_UNION uLinkageInfo = new NET_DVR_EVETN_CARD_LINKAGE_UNION();  //鑱斿姩鏂瑰紡鍙傛暟
+        public byte[] byAlarmout = new byte[MAX_ALARMHOST_ALARMOUT_NUM];            //鍏宠仈鐨勬姤璀﹁緭鍑哄彿锛屾寜浣嶈〃绀猴紝涓�0琛ㄧず涓嶅叧鑱旓紝涓�1琛ㄧず鍏宠仈
+        public byte[] byRes2 = new byte[32];                         //淇濈暀
+        public byte[] byOpenDoor = new byte[MAX_DOOR_NUM_256];     //鎸変綅琛ㄧず,鏄惁鑱斿姩寮�闂紝0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[] byCloseDoor = new byte[MAX_DOOR_NUM_256];    //鎸変綅琛ㄧず,鏄惁鑱斿姩鍏抽棬锛�0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[] byNormalOpen = new byte[MAX_DOOR_NUM_256];   //鎸変綅琛ㄧず,鏄惁鑱斿姩甯稿紑锛�0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[] byNormalClose = new byte[MAX_DOOR_NUM_256];  //鎸変綅琛ㄧず,鏄惁鑱斿姩甯稿叧锛�0-涓嶈仈鍔紝1-鑱斿姩
+        public byte byMainDevBuzzer;                    //涓绘満铚傞福鍣�   0-涓嶈仈鍔紝1-鑱斿姩杈撳嚭
+        public byte byCapturePic;                           //鏄惁鑱斿姩鎶撴媿锛�0-涓嶈仈鍔ㄦ姄鎷嶏紝1-鑱斿姩鎶撴媿
+        public byte byRecordVideo;                          //鏄惁鑱斿姩褰曞儚锛�0-涓嶈仈鍔ㄥ綍鍍忥紝1-鑱斿姩褰曞儚
+        public byte[] byRes3 = new byte[29];                         //淇濈暀
+        public byte[] byReaderBuzzer = new byte[MAX_CARD_READER_NUM_512]; //鑱斿姩璇诲崱鍣ㄨ渹楦e櫒锛屾寜浣嶈〃绀猴紝0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[] byAlarmOutClose = new byte[MAX_ALARMHOST_ALARMOUT_NUM];            //鍏宠仈鎶ヨ杈撳嚭鍏抽棴锛屾寜瀛楄妭琛ㄧず锛屼负0琛ㄧず涓嶅叧鑱旓紝涓�1琛ㄧず鍏宠仈
+        public byte[] byAlarmInSetup = new byte[MAX_ALARMHOST_ALARMIN_NUM];  //鍏宠仈闃插尯甯冮槻锛屾寜瀛楄妭琛ㄧず锛屼负0琛ㄧず涓嶅叧鑱旓紝涓�1琛ㄧず鍏宠仈
+        public byte[] byAlarmInClose = new byte[MAX_ALARMHOST_ALARMIN_NUM];  //鍏宠仈闃插尯鎾ら槻锛屾寜瀛楄妭琛ㄧず锛屼负0琛ㄧず涓嶅叧鑱旓紝涓�1琛ㄧず鍏宠仈
+        public byte[] byRes = new byte[500];                           //淇濈暀
+    }
+
+    public static class NET_DVR_EVENT_LINKAGE_CARD_CFG_V51 extends Structure {
+        public int              dwSize;    //缁撴瀯浣撳ぇ灏�
+        public byte             byProMode;                          //鑱斿姩鏂瑰紡锛�0-浜嬩欢锛�1-鍗″彿锛�2-MAC鍦板潃锛�3-宸ュ彿锛堜汉鍛業D锛�
+        public byte[]           byRes1=new byte[3];
+        public int              dwEventSourceID;                    //浜嬩欢婧怚D锛屽綋涓荤被鍨嬩负璁惧浜嬩欢鏃舵棤鏁堬紝 褰撲富绫诲瀷鏄棬浜嬩欢鏃朵负闂ㄧ紪鍙�;褰撲富绫诲瀷涓鸿鍗″櫒浜嬩欢鏃讹紝涓鸿鍗″櫒ID;褰撲负鎶ヨ杈撳叆浜嬩欢鏃朵负闃插尯鎶ヨ杈撳叆ID鎴栦簨浠舵姤璀﹁緭鍏D銆�0xffffffff琛ㄧず鑱斿姩鍏ㄩ儴
+        public NET_DVR_EVETN_CARD_LINKAGE_UNION    uLinkageInfo;  //鑱斿姩鏂瑰紡鍙傛暟
+        public byte[]           byAlarmout=new byte[MAX_ALARMHOST_ALARMOUT_NUM];            //鍏宠仈鐨勬姤璀﹁緭鍑哄彿锛屾寜浣嶈〃绀猴紝涓�0琛ㄧず涓嶅叧鑱旓紝涓�1琛ㄧず鍏宠仈
+        public byte[]           byRes2=new byte[32];                         //淇濈暀
+        public byte[]           byOpenDoor=new byte[MAX_DOOR_NUM_256];     //鎸変綅琛ㄧず,鏄惁鑱斿姩寮�闂紝0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[]           byCloseDoor=new byte[MAX_DOOR_NUM_256];    //鎸変綅琛ㄧず,鏄惁鑱斿姩鍏抽棬锛�0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[]           byNormalOpen=new byte[MAX_DOOR_NUM_256];   //鎸変綅琛ㄧず,鏄惁鑱斿姩甯稿紑锛�0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[]           byNormalClose=new byte[MAX_DOOR_NUM_256];  //鎸変綅琛ㄧず,鏄惁鑱斿姩甯稿叧锛�0-涓嶈仈鍔紝1-鑱斿姩
+        public byte             byMainDevBuzzer;                    //涓绘満铚傞福鍣�   0-涓嶈仈鍔紝1-鑱斿姩杈撳嚭
+        public byte             byCapturePic;                           //鏄惁鑱斿姩鎶撴媿锛�0-涓嶈仈鍔ㄦ姄鎷嶏紝1-鑱斿姩鎶撴媿
+        public byte             byRecordVideo;                          //鏄惁鑱斿姩褰曞儚锛�0-涓嶈仈鍔ㄥ綍鍍忥紝1-鑱斿姩褰曞儚
+        public byte             byMainDevStopBuzzer;               //涓绘満鍋滄铚傞福   0-涓嶈仈鍔紝1-鑱斿姩杈撳嚭
+        public short            wAudioDisplayID;                    //鑱斿姩璇煶鎾斁ID锛�0-涓嶈仈鍔紝鐩墠鑼冨洿1-32
+        public byte             byAudioDisplayMode;                 //鑱斿姩璇煶鎾斁妯″紡锛�0-鍏抽棴锛�1-鍗曟鎾斁锛�2-寰幆鎾斁
+        public byte[]           byRes3=new byte[25];                         //淇濈暀
+        public byte[]           byReaderBuzzer=new byte[MAX_CARD_READER_NUM_512]; //鑱斿姩璇诲崱鍣ㄨ渹楦e櫒锛屾寜浣嶈〃绀猴紝0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[]           byAlarmOutClose=new byte[MAX_ALARMHOST_ALARMOUT_NUM];            //鍏宠仈鎶ヨ杈撳嚭鍏抽棴锛屾寜瀛楄妭琛ㄧず锛屼负0琛ㄧず涓嶅叧鑱旓紝涓�1琛ㄧず鍏宠仈
+        public byte[]           byAlarmInSetup=new byte[MAX_ALARMHOST_ALARMIN_NUM];  //鍏宠仈闃插尯甯冮槻锛屾寜瀛楄妭琛ㄧず锛屼负0琛ㄧず涓嶅叧鑱旓紝涓�1琛ㄧず鍏宠仈
+        public byte[]           byAlarmInClose=new byte[MAX_ALARMHOST_ALARMIN_NUM];  //鍏宠仈闃插尯鎾ら槻锛屾寜瀛楄妭琛ㄧず锛屼负0琛ㄧず涓嶅叧鑱旓紝涓�1琛ㄧず鍏宠仈
+        public byte[]           byReaderStopBuzzer=new byte[MAX_CARD_READER_NUM_512]; //鑱斿姩璇诲崱鍣ㄥ仠姝㈣渹楦o紝鎸夊瓧鑺傝〃绀猴紝0-涓嶈仈鍔紝1-鑱斿姩
+        public byte[]           byRes=new byte[512];                   //淇濈暀
+    }
+
+
+
+
+    public static class NET_DVR_EVENT_LINKAGE_INFO extends Structure {
+        public short wMainEventType;                     //浜嬩欢涓荤被鍨嬶紝0-璁惧浜嬩欢锛�1-鎶ヨ杈撳叆浜嬩欢锛�2-闂ㄤ簨浠讹紝3-璇诲崱鍣ㄤ簨浠�
+        public short wSubEventType;                      //浜嬩欢娆$被鍨�
+        public byte[] byRes = new byte[28];
+    }
+
+    public static class NET_DVR_EVETN_CARD_LINKAGE_UNION extends Union {
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];          //鍗″彿
+        public NET_DVR_EVENT_LINKAGE_INFO struEventLinkage;                   //浜嬩欢鑱斿姩鏃跺弬鏁�
+        public byte[] byMACAddr = new byte[MACADDR_LEN];          //鐗╃悊MAC鍦板潃
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛�
+    }
+
+    //鍗″弬鏁伴厤缃潯浠�
+    public static class NET_DVR_CARD_CFG_COND extends Structure {
+        public int dwSize;
+        public int dwCardNum;
+        public byte byCheckCardNo;
+        public byte[] ibyRes = new byte[31];
+    }
+
+    //鑾峰彇鍗″弬鏁扮殑鍙戦�佹暟鎹�
+    public static class NET_DVR_CARD_CFG_SEND_DATA extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[32];
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class CARDRIGHTPLAN extends Structure {
+        public byte[] byRightPlan = new byte[4];
+    }
+
+    //鍗″弬鏁�
+    public static class NET_DVR_CARD_CFG extends Structure {
+        public int dwSize;
+        public int dwModifyParamType;
+        public byte[] byCardNo = new byte[32];
+        public byte byCardValid;
+        public byte byCardType;
+        public byte byLeaderCard;
+        public byte byRes1;
+        public int dwDoorRight;
+        public NET_DVR_VALID_PERIOD_CFG struValid;
+        public int dwBelongGroup;
+        public byte[] byCardPassword = new byte[8];
+        public CARDRIGHTPLAN[] byCardRightPlan = new CARDRIGHTPLAN[32];
+        public int dwMaxSwipeTime;
+        public int dwSwipeTime;
+        public short wRoomNumber;
+        public short wFloorNumber;
+        public byte[] byRes2 = new byte[20];
+    }
+
+    public int ACS_CARD_NO_LEN = 32;  //闂ㄧ鍗″彿闀垮害
+    public int MAX_GROUP_NUM_128 = 128; //鏈�澶х兢缁勬暟
+    public int MAX_DOOR_NUM_256 = 256; //鏈�澶ч棬鏁�
+    public int CARD_PASSWORD_LEN = 8;   //鍗″瘑鐮侀暱搴�
+    public int MAX_CARD_READER_NUM = 64;  //鏈�澶ц鍗″櫒鏁�
+    public int MAX_DOOR_CODE_LEN = 8; //鎴块棿浠g爜闀垮害
+    public int MAX_LOCK_CODE_LEN = 8; //閿佷唬鐮侀暱搴�
+    public int MAX_CARD_RIGHT_PLAN_NUM = 4; //鍗℃潈闄愭渶澶ц鍒掍釜鏁�
+    public int MAX_CASE_SENSOR_NUM = 8;  //鏈�澶ase sensor瑙﹀彂鍣ㄦ暟
+
+    public static class CARDRIGHTPLAN_WORD extends Structure {
+        public short[] wRightPlan = new short[MAX_CARD_RIGHT_PLAN_NUM];
+    }
+
+    public static class NET_DVR_CARD_CFG_V50 extends Structure {
+        public int dwSize;
+        public int dwModifyParamType;//闇�瑕佷慨鏀圭殑鍗″弬鏁帮紝璁剧疆鍗″弬鏁版椂鏈夋晥锛屾寜浣嶈〃绀猴紝姣忎綅浠h〃涓�绉嶅弬鏁帮紝1涓洪渶瑕佷慨鏀癸紝0涓轰笉淇敼
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鍗″彿
+        public byte byCardValid; //鍗℃槸鍚︽湁鏁堬紝0-鏃犳晥锛�1-鏈夋晥锛堢敤浜庡垹闄ゅ崱锛岃缃椂缃负0杩涜鍒犻櫎锛岃幏鍙栨椂姝ゅ瓧娈靛缁堜负1锛�
+        public byte byCardType; //鍗$被鍨嬶紝1-鏅�氬崱锛�3-绂佹鍚嶅崟鍗★紝4-宸℃洿鍗★紝5-鑳佽揩鍗★紝6-瓒呯骇鍗★紝7-鏉ュ鍗★紝8-瑙i櫎鍗★紝9-鍛樺伐鍗★紝10-搴旀�ュ崱锛�11-搴旀�ョ鐞嗗崱锛岄粯璁ゆ櫘閫氬崱
+        public byte byLeaderCard; //鏄惁涓洪鍗★紝1-鏄紝0-鍚�
+        public byte byRes1;
+        public byte[] byDoorRight = new byte[MAX_DOOR_NUM_256]; //闂ㄦ潈闄�(妤煎眰鏉冮檺)锛屾寜浣嶈〃绀猴紝1涓烘湁鏉冮檺锛�0涓烘棤鏉冮檺锛屼粠浣庝綅鍒伴珮浣嶈〃绀哄闂�1-N鏄惁鏈夋潈闄�
+        public NET_DVR_VALID_PERIOD_CFG struValid; //鏈夋晥鏈熷弬鏁�
+        public byte[] byBelongGroup = new byte[MAX_GROUP_NUM_128]; //鎵�灞炵兢缁勶紝鎸夊瓧鑺傝〃绀猴紝1-灞炰簬锛�0-涓嶅睘浜�
+        public byte[] byCardPassword = new byte[CARD_PASSWORD_LEN]; //鍗″瘑鐮�
+        public CARDRIGHTPLAN_WORD[] wCardRightPlan = new CARDRIGHTPLAN_WORD[MAX_DOOR_NUM_256]; //鍗℃潈闄愯鍒掞紝鍙栧�间负璁″垝妯℃澘缂栧彿锛屽悓涓棬涓嶅悓璁″垝妯℃澘閲囩敤鏉冮檺鎴栫殑鏂瑰紡澶勭悊
+        public int dwMaxSwipeTime; //鏈�澶у埛鍗℃鏁帮紝0涓烘棤娆℃暟闄愬埗锛堝紑閿佹鏁帮級
+        public int dwSwipeTime; //宸插埛鍗℃鏁�
+        public short wRoomNumber;  //鎴块棿鍙�
+        public short wFloorNumber;   //灞傚彿
+        public int dwEmployeeNo;   //宸ュ彿
+        public byte[] byName = new byte[NAME_LEN];   //濮撳悕
+        public short wDepartmentNo;   //閮ㄩ棬缂栧彿
+        public short wSchedulePlanNo;   //鎺掔彮璁″垝缂栧彿
+        public byte bySchedulePlanType;  //鎺掔彮璁″垝绫诲瀷锛�0-鏃犳剰涔夈��1-涓汉銆�2-閮ㄩ棬
+        public byte byRightType;  //涓嬪彂鏉冮檺绫诲瀷锛�0-鏅�氬彂鍗℃潈闄愩��1-浜岀淮鐮佹潈闄愩��2-钃濈墮鏉冮檺锛堝彲瑙嗗璁茶澶囦簩缁寸爜鏉冮檺閰嶇疆椤癸細鎴块棿鍙枫�佸崱鍙凤紙铏氭嫙鍗″彿锛夈�佹渶澶у埛鍗℃鏁帮紙寮�閿佹鏁帮級銆佹湁鏁堟湡鍙傛暟锛涜摑鐗欐潈闄愶細鍗″彿锛堣悿鐭矨PP璐﹀彿锛夈�佸叾浠栧弬鏁伴厤缃笌鏅�氬彂鍗℃潈闄愪竴鑷达級
+        public byte[] byRes2 = new byte[2];
+        public int dwLockID;  //閿両D
+        public byte[] byLockCode = new byte[MAX_LOCK_CODE_LEN];    //閿佷唬鐮�
+        public byte[] byRoomCode = new byte[MAX_DOOR_CODE_LEN];  //鎴块棿浠g爜
+        public int dwCardRight;      //鍗℃潈闄�
+        public int dwPlanTemplate;   //璁″垝妯℃澘(姣忓ぉ)鍚勬椂闂存鏄惁鍚敤锛屾寜浣嶈〃绀猴紝0--涓嶅惎鐢紝1-鍚敤
+        public int dwCardUserId;    //鎸佸崱浜篒D
+        public byte byCardModelType;  //0-绌猴紝1-  S50锛�2-  S70锛�3- FM1208 CPU鍗★紝4- FM1216 CPU鍗★紝5-鍥藉瘑CPU鍗★紝6-韬唤璇侊紝7- NFC
+        public byte[] byRes3 = new byte[83];
+    }
+    //鏈夋晥鏈熷弬鏁扮粨鏋勪綋
+    public static class NET_DVR_VALID_PERIOD_CFG extends Structure {
+        public byte byEnable;
+        public byte byBeginTimeFlag;      //鏄惁闄愬埗璧峰鏃堕棿鐨勬爣蹇楋紝0-涓嶉檺鍒讹紝1-闄愬埗
+        public byte byEnableTimeFlag;     //鏄惁闄愬埗缁堟鏃堕棿鐨勬爣蹇楋紝0-涓嶉檺鍒讹紝1-闄愬埗
+        public byte byTimeDurationNo;     //鏈夋晥鏈熺储寮�,浠�0寮�濮嬶紙鏃堕棿娈甸�氳繃SDK璁剧疆缁欓攣锛屽悗缁湪鍒跺崱鏃讹紝鍙渶瑕佷紶閫掓湁鏁堟湡绱㈠紩鍗冲彲锛屼互鍑忓皯鏁版嵁閲忥級
+        public NET_DVR_TIME_EX struBeginTime;
+        public NET_DVR_TIME_EX struEndTime;
+        public byte byTimeType; //鏃堕棿绫诲瀷
+        public byte[] byRes2 = new byte[31];
+    }
+
+    //鎵╁睍缁撴瀯浣撲俊鎭�
+    public static class NET_DVR_ID_CARD_INFO_EXTEND extends Structure {
+        public byte byRemoteCheck; //鏄惁闇�瑕佽繙绋嬫牳楠岋紙0-鏃犳晥锛�1-涓嶉渶瑕侊紙榛樿锛夛紝2-闇�瑕侊級
+        public byte byThermometryUnit; //娴嬫俯鍗曚綅锛�0-鎽勬皬搴︼紙榛樿锛夛紝1-鍗庢皬搴︼紝2-寮�灏旀枃锛�
+        public byte byIsAbnomalTemperature; //鐗瑰緛鎶撴媿娴嬫俯鏄惁娓╁害寮傚父锛�1-鏄紝0-鍚�
+        public byte byRes2;
+        public float fCurrTemperature; //浜鸿劯娓╁害锛堢簿纭埌灏忔暟鐐瑰悗涓�浣嶏級
+        public NET_VCA_POINT struRegionCoordinates = new NET_VCA_POINT(); //浜鸿劯娓╁害鍧愭爣
+        public int dwQRCodeInfoLen; //浜岀淮鐮佷俊鎭暱搴︼紝涓嶄负0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public int dwVisibleLightDataLen; //鐑垚鍍忕浉鏈哄彲瑙佸厜鍥剧墖闀垮害锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public int dwThermalDataLen; //鐑垚鍍忓浘鐗囬暱搴︼紝涓嶄负0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pQRCodeInfo; //浜岀淮鐮佷俊鎭寚閽�
+        public Pointer pVisibleLightData; //鐑垚鍍忕浉鏈哄彲瑙佸厜鍥剧墖鎸囬拡
+        public Pointer pThermalData; //鐑垚鍍忓浘鐗囨寚閽�
+        public byte[] byRes = new byte[1024];
+    }
+
+    //韬唤璇佷俊鎭姤璀�
+    public static class NET_DVR_ID_CARD_INFO_ALARM extends Structure {
+        public int dwSize;        //缁撴瀯闀垮害
+        public NET_DVR_ID_CARD_INFO struIDCardCfg = new NET_DVR_ID_CARD_INFO();//韬唤璇佷俊鎭�
+        public int dwMajor; //鎶ヨ涓荤被鍨嬶紝鍙傝�冨畯瀹氫箟
+        public int dwMinor; //鎶ヨ娆$被鍨嬶紝鍙傝�冨畯瀹氫箟
+        public NET_DVR_TIME_V30 struSwipeTime = new NET_DVR_TIME_V30(); //鏃堕棿
+        public byte[] byNetUser = new byte[MAX_NAMELEN];//缃戠粶鎿嶄綔鐨勭敤鎴峰悕
+        public NET_DVR_IPADDR struRemoteHostAddr = new NET_DVR_IPADDR();//杩滅▼涓绘満鍦板潃
+        public int dwCardReaderNo; //璇诲崱鍣ㄧ紪鍙凤紝涓�0鏃犳晥
+        public int dwDoorNo; //闂ㄧ紪鍙凤紝涓�0鏃犳晥
+        public int dwPicDataLen;   //鍥剧墖鏁版嵁澶у皬锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pPicData;
+        public byte byCardType; //鍗$被鍨嬶紝1-鏅�氬崱锛�3-绂佹鍚嶅崟鍗★紝4-宸℃洿鍗★紝5-鑳佽揩鍗★紝6-瓒呯骇鍗★紝7-鏉ュ鍗★紝8-瑙i櫎鍗★紝涓�0鏃犳晥
+        public byte byDeviceNo;                             // 璁惧缂栧彿锛屼负0鏃舵棤鏁堬紙鏈夋晥鑼冨洿1-255锛�
+        public byte byMask; //鏄惁甯﹀彛缃╋細0-淇濈暀锛�1-鏈煡锛�2-涓嶆埓鍙g僵锛�3-鎴村彛缃�
+        public byte byCurrentEvent; //鏄惁涓哄疄鏃朵簨浠讹細0-鏃犳晥锛�1-鏄紙瀹炴椂浜嬩欢锛夛紝2-鍚︼紙绂荤嚎浜嬩欢锛�
+        public int dwFingerPrintDataLen;                  // 鎸囩汗鏁版嵁澶у皬锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pFingerPrintData;
+        public int dwCapturePicDataLen;                   // 鎶撴媿鍥剧墖鏁版嵁澶у皬锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pCapturePicData;
+        public int dwCertificatePicDataLen;   //璇佷欢鎶撴媿鍥剧墖鏁版嵁澶у皬锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pCertificatePicData;
+        public byte byCardReaderKind; //璇诲崱鍣ㄥ睘浜庡摢涓�绫伙紝0-鏃犳晥锛�1-IC璇诲崱鍣紝2-韬唤璇佽鍗″櫒锛�3-浜岀淮鐮佽鍗″櫒,4-鎸囩汗澶�
+        public byte[] byRes3 = new byte[2];
+        public byte byIDCardInfoExtend;    //pIDCardInfoExtend鏄惁鏈夋晥锛�0-鏃犳晥锛�1-鏈夋晥
+        public Pointer pIDCardInfoExtend;    //byIDCardInfoExtend涓�1鏃讹紝琛ㄧず鎸囧悜涓�涓狽ET_DVR_ID_CARD_INFO_EXTEND缁撴瀯浣�
+        public int dwSerialNo; //浜嬩欢娴佹按鍙凤紝涓�0鏃犳晥
+        public byte[] byRes = new byte[168];
+    }
+
+    public static final int CARD_READER_DESCRIPTION = 32;            //璇诲崱鍣ㄦ弿杩�
+
+    public static class NET_DVR_CARD_READER_CFG_V50 extends Structure {
+        public int dwSize;
+        public byte byEnable; //鏄惁浣胯兘锛�1-浣胯兘锛�0-涓嶄娇鑳�
+        public byte byCardReaderType; //璇诲崱鍣ㄧ被鍨嬶紝1-DS-K110XM/MK/C/CK锛�2-DS-K192AM/AMP锛�3-DS-K192BM/BMP锛�4-DS-K182AM/AMP锛�5-DS-K182BM/BMP锛�6-DS-K182AMF/ACF锛�7-闊︽牴鎴�485涓嶅湪绾匡紝8- DS-K1101M/MK锛�9- DS-K1101C/CK锛�10- DS-K1102M/MK/M-A锛�11- DS-K1102C/CK锛�12- DS-K1103M/MK锛�13- DS-K1103C/CK锛�14- DS-K1104M/MK锛�15- DS-K1104C/CK锛�16- DS-K1102S/SK/S-A锛�17- DS-K1102G/GK锛�18- DS-K1100S-B锛�19- DS-K1102EM/EMK锛�20- DS-K1102E/EK锛�21- DS-K1200EF锛�22- DS-K1200MF锛�23- DS-K1200CF锛�24- DS-K1300EF锛�25- DS-K1300MF锛�26- DS-K1300CF锛�27- DS-K1105E锛�28- DS-K1105M锛�29- DS-K1105C锛�30- DS-K182AMF锛�31- DS-K196AMF锛�32-DS-K194AMP锛�33-DS-K1T200EF/EF-C/MF/MF-C/CF/CF-C,34-DS-K1T300EF/EF-C/MF/MF-C/CF/CF-C锛�35-DS-K1T105E/E-C/M/M-C/C/C-C,36-DS-K1T803F/F-M/F-S/F-E,37-DS-K1A801F/F-M/F-S/F-E,38-DS-K1107M/MK,39-DS-K1107E/EK,40-DS-K1107S/SK,41-DS-K1108M/MK,42-DS-K1108E/EK,43-DS-K1108S/SK,44-DS-K1200F,45-DS-K1S110-I,46-DS-K1T200M-PG/PGC,47-DS-K1T200M-PZ/PZC,48-DS-K1109H
+        public byte byOkLedPolarity; //OK LED鏋佹�э紝0-闃存瀬锛�1-闃虫瀬
+        public byte byErrorLedPolarity; //Error LED鏋佹�э紝0-闃存瀬锛�1-闃虫瀬
+        public byte byBuzzerPolarity; //铚傞福鍣ㄦ瀬鎬э紝0-闃存瀬锛�1-闃虫瀬
+        public byte bySwipeInterval; //閲嶅鍒峰崱闂撮殧鏃堕棿锛屽崟浣嶏細绉�
+        public byte byPressTimeout;  //鎸夐敭瓒呮椂鏃堕棿锛屽崟浣嶏細绉�
+        public byte byEnableFailAlarm; //鏄惁鍚敤璇诲崱澶辫触瓒呮鎶ヨ锛�0-涓嶅惎鐢紝1-鍚敤
+        public byte byMaxReadCardFailNum; //鏈�澶ц鍗″け璐ユ鏁�
+        public byte byEnableTamperCheck;  //鏄惁鏀寔闃叉媶妫�娴嬶紝0-disable 锛�1-enable
+        public byte byOfflineCheckTime;  //鎺夌嚎妫�娴嬫椂闂� 鍗曚綅绉�
+        public byte byFingerPrintCheckLevel; //鎸囩汗璇嗗埆绛夌骇锛�1-1/10璇鐜囷紝2-1/100璇鐜囷紝3-1/1000璇鐜囷紝4-1/10000璇鐜囷紝5-1/100000璇鐜囷紝6-1/1000000璇鐜囷紝7-1/10000000璇鐜囷紝8-1/100000000璇鐜囷紝9-3/100璇鐜囷紝10-3/1000璇鐜囷紝11-3/10000璇鐜囷紝12-3/100000璇鐜囷紝13-3/1000000璇鐜囷紝14-3/10000000璇鐜囷紝15-3/100000000璇鐜囷紝16-Automatic Normal,17-Automatic Secure,18-Automatic More Secure锛堢洰鍓嶉棬绂佷笉鏀寔锛�
+        public byte byUseLocalController; //鍙锛屾槸鍚﹁繛鎺ュ湪灏卞湴鎺у埗鍣ㄤ笂锛�0-鍚︼紝1-鏄�
+        public byte byRes1;
+        public short wLocalControllerID; //鍙锛屽氨鍦版帶鍒跺櫒搴忓彿, byUseLocalController=1鏃舵湁鏁堬紝1-64,0浠h〃鏈敞鍐�
+        public short wLocalControllerReaderID; //鍙锛屽氨鍦版帶鍒跺櫒鐨勮鍗″櫒ID锛宐yUseLocalController=1鏃舵湁鏁堬紝0浠h〃鏈敞鍐�
+        public short wCardReaderChannel; //鍙锛岃鍗″櫒閫氫俊閫氶亾鍙凤紝byUseLocalController=1鏃舵湁鏁堬紝0闊︽牴鎴栫绾匡紝1-RS485A,2-RS485B
+        public byte byFingerPrintImageQuality; //鎸囩汗鍥惧儚璐ㄩ噺锛�0-鏃犳晥锛�1-浣庤川閲�(V1)锛�2-涓瓑璐ㄩ噺(V1)锛�3-楂樿川閲�(V1)锛�4-鏈�楂樿川閲�(V1)锛�5-浣庤川閲�(V2)锛�6-涓瓑璐ㄩ噺(V2)锛�7-楂樿川閲�(V2)锛�8-鏈�楂樿川閲�(V2)
+        public byte byFingerPrintContrastTimeOut; //鎸囩汗瀵规瘮瓒呮椂鏃堕棿锛�0-鏃犳晥锛岃寖鍥�1-20浠h〃:1s-20s锛�0xff-鏃犻檺澶�
+        public byte byFingerPrintRecogizeInterval; //鎸囩汗杩炵画璇嗗埆闂撮殧锛�0-鏃犳晥锛岃寖鍥�1-10浠h〃:1s-10s锛�0xff-鏃犲欢杩�
+        public byte byFingerPrintMatchFastMode; //鎸囩汗鍖归厤蹇�熸ā寮忥紝0-鏃犳晥锛岃寖鍥�1-5浠h〃:蹇�熸ā寮�1-蹇�熸ā寮�5锛�0xff-鑷姩
+        public byte byFingerPrintModuleSensitive; //鎸囩汗妯$粍鐏垫晱搴︼紝0-鏃犳晥锛岃寖鍥�1-8浠h〃锛氱伒鏁忓害绾у埆1-鐏垫晱搴︾骇鍒�8
+        public byte byFingerPrintModuleLightCondition; //鎸囩汗妯$粍鍏夌嚎鏉′欢锛�0-鏃犳晥锛�1-瀹ゅ锛�2-瀹ゅ唴
+        public byte byFaceMatchThresholdN; //浜鸿劯姣斿闃�鍊硷紝鑼冨洿0-100
+        public byte byFaceQuality; //浜鸿劯璐ㄩ噺锛岃寖鍥�0-100
+        public byte byFaceRecogizeTimeOut; //鐗瑰緛璇嗗埆瓒呮椂鏃堕棿锛岃寖鍥�1-20浠h〃锛�1s-20s锛�0xff-鏃犻檺澶�
+        public byte byFaceRecogizeInterval; //浜鸿劯杩炵画璇嗗埆闂撮殧锛�0-鏃犳晥锛岃寖鍥�1-10浠h〃锛�1s-10s锛�0xff-鏃犲欢杩�
+        public short wCardReaderFunction; //鍙锛岃鍗″櫒绉嶇被锛屾寜浣嶈〃绀猴細绗�1浣�-鎸囩汗锛岀浜屼綅-浜鸿劯锛岀涓変綅-鎸囬潤鑴�
+        public byte[] byCardReaderDescription = new byte[CARD_READER_DESCRIPTION]; //璇诲崱鍣ㄦ弿杩�
+        public short wFaceImageSensitometry; //鍙锛屼汉鑴稿浘鍍忔洕鍏夊害锛岃寖鍥�0-65535
+        public byte byLivingBodyDetect; //鐪熶汉妫�娴嬶紝0-鏃犳晥锛�1-涓嶅惎鐢紝2-鍚敤
+        public byte byFaceMatchThreshold1; //浜鸿劯1:1鍖归厤闃�鍊硷紝鑼冨洿0-100
+        public short wBuzzerTime; //铚傞福鏃堕棿锛岃寖鍥�0s-5999s锛�0-浠h〃闀块福锛�
+        public byte byFaceMatch1SecurityLevel; //浜鸿劯1:1璇嗗埆瀹夊叏绛夌骇锛�0-鏃犳晥锛�1-涓�鑸紝2-杈冨己锛�3-鏋佸己
+        public byte byFaceMatchNSecurityLevel; //浜鸿劯1:N璇嗗埆瀹夊叏绛夌骇锛�0-鏃犳晥锛�1-涓�鑸紝2-杈冨己锛�3-鏋佸己
+        public byte byEnvirMode;//鐗瑰緛璇嗗埆鐜妯″紡锛�0-鏃犳晥锛�1-瀹ゅ唴锛�2-鍏朵粬锛�
+        public byte byLiveDetLevelSet;//娲讳綋妫�娴嬮槇鍊肩瓑绾ц缃紝0-鏃犳晥锛�1-浣庯紝2-涓紝3-楂橈紱
+        public byte byLiveDetAntiAttackCntLimit;//娲讳綋妫�娴嬮槻鏀诲嚮娆℃暟锛� 0-鏃犳晥锛�1-255娆★紙瀹㈡埛绔�佽澶囩粺涓�娆℃暟闄愬埗锛屾牴鎹兘鍔涚骇闄愬埗锛夛紱
+        public byte byEnableLiveDetAntiAttack;//娲讳綋妫�娴嬮槻鏀诲嚮浣胯兘锛�0-鏃犳晥锛�1-涓嶅惎鐢紝2-鍚敤
+        public byte bySupportDelFPByID;//鍙锛岃鍗″櫒鏄惁鏀寔鎸夋墜鎸嘔D鍒犻櫎鎸囩汗锛�0-鏃犳晥锛�1-涓嶆敮鎸侊紝2-鏀寔
+        public byte byFaceContrastMotionDetLevel;//浜鸿劯姣斿鏃剁Щ鍔ㄤ睛娴嬬骇鍒紝0-鏃犳晥锛�1-浣庯紝2-涓紝3-楂橈紝0xff-绂佺敤
+        public byte byDayFaceMatchThresholdN; //鐧藉ぉ浜鸿劯1:N鍖归厤闃�鍊硷紝鑼冨洿0-100
+        public byte byNightFaceMatchThresholdN; //澶滄櫄浜鸿劯1:N鍖归厤闃�鍊硷紝鑼冨洿0-100
+        public byte byFaceRecogizeEnable; //鐗瑰緛璇嗗埆浣胯兘锛�0-鏃犳晥锛�1-寮�鍚紝2-鍏抽棴
+        public byte byBlockListMatchThreshold; //绂佹鍚嶅崟鍖归厤闃�鍊硷紝鑼冨洿0-100
+        public byte byRes3;
+        public byte byDefaultVerifyMode; //鍙锛岃鍗″櫒榛樿楠岃瘉鏂瑰紡锛堝嚭鍘傞粯璁わ級锛�1-浼戠湢锛�2-鍒峰崱+瀵嗙爜锛�3-鍒峰崱锛�4-鍒峰崱鎴栧瘑鐮侊紝5-鎸囩汗锛�6-鎸囩汗+瀵嗙爜锛�7-鎸囩汗鎴栧埛鍗★紝8-鎸囩汗+鍒峰崱锛�9-鎸囩汗+鍒峰崱+瀵嗙爜锛�10-浜鸿劯鎴栨寚绾规垨鍒峰崱鎴栧瘑鐮侊紝11-浜鸿劯+鎸囩汗锛�12-浜鸿劯+瀵嗙爜锛�13-浜鸿劯+鍒峰崱锛�14-浜鸿劯锛�15-宸ュ彿+瀵嗙爜锛�16-鎸囩汗鎴栧瘑鐮侊紝17-宸ュ彿+鎸囩汗锛�18-宸ュ彿+鎸囩汗+瀵嗙爜锛�19-浜鸿劯+鎸囩汗+鍒峰崱锛�20-浜鸿劯+瀵嗙爜+鎸囩汗锛�21-宸ュ彿+浜鸿劯锛�22-浜鸿劯鎴栦汉鑴�+鍒峰崱锛�23-鎸囩汗鎴栦汉鑴革紝24-鍒峰崱鎴栦汉鑴告垨瀵嗙爜锛�25-鍒峰崱鎴栦汉鑴革紝26-鍒峰崱鎴栦汉鑴告垨鎸囩汗锛�27-鍒峰崱鎴栨寚绾规垨瀵嗙爜
+        public int dwFingerPrintCapacity;//鍙锛屾寚绾瑰閲�
+        public int dwFingerPrintNum;//鍙锛屽凡瀛樺湪鎸囩汗鏁伴噺
+        public byte byEnableFingerPrintNum;//鍙锛屾寚绾瑰閲忎娇鑳斤細0-涓嶄娇鑳斤紝1-浣胯兘锛堝彧鏈夊綋璇ュ瓧娈典负1-浣胯兘鏃讹紝dwFingerPrintCapacity鍜宒wFingerPrintNum鎵嶆湁鏁堬級
+        public byte[] byRes = new byte[231];
+    }
+
+    /****************
+     * 浼樺寲鎺ュ彛缁撴瀯浣撳畾涔夊紑濮�
+     *************/
+
+    public static final int NET_SDK_CONFIG_STATUS_SUCCESS = 1000;
+    public static final int NET_SDK_CONFIG_STATUS_NEED_WAIT = 1001;
+    public static final int NET_SDK_CONFIG_STATUS_FINISH = 1002;
+    public static final int NET_SDK_CONFIG_STATUS_FAILED = 1003;
+    public static final int NET_SDK_CONFIG_STATUS_EXCEPTION = 1004;
+
+    public static final int NET_SDK_GET_NEXT_STATUS_SUCCESS = 1000;
+    public static final int NET_SDK_GET_NEXT_STATUS_NEED_WAIT = 1001;
+    public static final int NET_SDK_NEXT_STATUS__FINISH = 1002;
+    public static final int NET_SDK_GET_NEXT_STATUS_FAILED = 1003;
+
+    public static class NET_DVR_CARD_COND extends Structure {
+        public int dwSize;
+        public int dwCardNum; //璁剧疆鎴栬幏鍙栧崱鏁伴噺锛岃幏鍙栨椂缃负0xffffffff琛ㄧず鑾峰彇鎵�鏈夊崱淇℃伅
+        public byte[] byRes = new byte[64];
+    }
+
+    public static class NET_DVR_CARD_SEND_DATA extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鍗″彿
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class NET_DVR_CARD_RECORD extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];
+        public byte byCardType;
+        public byte byLeaderCard;
+        public byte byUserType;
+        public byte byRes1;
+        public byte[] byDoorRight = new byte[MAX_DOOR_NUM_256];
+        public NET_DVR_VALID_PERIOD_CFG struValid = new NET_DVR_VALID_PERIOD_CFG();
+        public byte[] byBelongGroup = new byte[MAX_GROUP_NUM_128];
+        public byte[] byCardPassword = new byte[CARD_PASSWORD_LEN];
+        public short[] wCardRightPlan = new short[MAX_DOOR_NUM_256];
+        public int dwMaxSwipeTimes;
+        public int dwSwipeTimes;
+        public int dwEmployeeNo;
+        public byte[] byName = new byte[NAME_LEN];
+        //鎸変綅琛ㄧず锛�0-鏃犳潈闄愶紝1-鏈夋潈闄�
+        //绗�0浣嶈〃绀猴細寮辩數鎶ヨ
+        //绗�1浣嶈〃绀猴細寮�闂ㄦ彁绀洪煶
+        //绗�2浣嶈〃绀猴細闄愬埗瀹㈠崱
+        //绗�3浣嶈〃绀猴細閫氶亾
+        //绗�4浣嶈〃绀猴細鍙嶉攣寮�闂�
+        //绗�5浣嶈〃绀猴細宸℃洿鍔熻兘
+        public int dwCardRight;
+        public byte[] byRes = new byte[256];
+    }
+
+    public static class NET_DVR_CARD_STATUS extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];
+        public int dwErrorCode;
+        public byte byStatus; // 鐘舵�侊細0-澶辫触锛�1-鎴愬姛
+        public byte[] byRes = new byte[23];
+    }
+
+
+    public static class NET_DVR_FACE_COND extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];
+        public int dwFaceNum;
+        public int dwEnableReaderNo;
+        public byte[] byRes = new byte[124];
+    }
+
+    public static class NET_DVR_FACE_RECORD extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];
+        public int dwFaceLen;
+        public Pointer pFaceBuffer;
+        public byte[] byRes = new byte[128];
+    }
+
+    public static class NET_DVR_FACE_STATUS extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];
+        public byte[] byErrorMsg = new byte[ERROR_MSG_LEN];
+        public int dwReaderNo;
+        public byte byRecvStatus;
+        public byte[] byRes = new byte[131];
+    }
+
+    public static class NET_DVR_FINGERPRINT_COND extends Structure {
+        public int dwSize;
+        public int dwFingerprintNum;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];
+        public int dwEnableReaderNo;
+        public byte byFingerPrintID;
+        public byte[] byRes = new byte[131];
+    }
+
+    public static class NET_DVR_FINGERPRINT_RECORD extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];
+        public int dwFingerPrintLen;     //鎸囩汗鏁版嵁闀垮害
+        public int dwEnableReaderNo;     //闇�瑕佷笅鍙戞寚绾圭殑璇诲崱鍣ㄧ紪鍙�
+        public byte byFingerPrintID;      //鎵嬫寚缂栧彿锛屾湁鏁堝�艰寖鍥翠负1-10
+        public byte byFingerType;         //鎸囩汗绫诲瀷  0-鏅�氭寚绾癸紝1-鑳佽揩鎸囩汗
+        public byte[] byRes1 = new byte[30];
+        public byte[] byFingerData = new byte[MAX_FINGER_PRINT_LEN]; //鎸囩汗鏁版嵁鍐呭
+        public byte[] byRes = new byte[96];
+    }
+
+    public static class NET_DVR_FINGERPRINT_STATUS extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鎸囩汗鍏宠仈鐨勫崱鍙�
+        public byte byCardReaderRecvStatus;  //鎸囩汗璇诲崱鍣ㄧ姸鎬侊紝鎸夊瓧鑺傝〃绀猴紝0-澶辫触锛�1-鎴愬姛锛�2-璇ユ寚绾规ā缁勪笉鍦ㄧ嚎锛�3-閲嶈瘯鎴栨寚绾硅川閲忓樊锛�4-鍐呭瓨宸叉弧锛�5-宸插瓨鍦ㄨ鎸囩汗锛�6-宸插瓨鍦ㄨ鎸囩汗ID锛�7-闈炴硶鎸囩汗ID锛�8-璇ユ寚绾规ā缁勬棤闇�閰嶇疆
+        public byte byFingerPrintID;     //鎵嬫寚缂栧彿锛屾湁鏁堝�艰寖鍥翠负1-10
+        public byte byFingerType;       //鎸囩汗绫诲瀷  0-鏅�氭寚绾癸紝1-鑳佽揩鎸囩汗
+        public byte byRecvStatus;    //涓绘満閿欒鐘舵�侊細0-鎴愬姛锛�1-鎵嬫寚缂栧彿閿欒锛�2-鎸囩汗绫诲瀷閿欒锛�3-鍗″彿閿欒锛堝崱鍙疯鏍间笉绗﹀悎璁惧瑕佹眰锛夛紝4-鎸囩汗鏈叧鑱斿伐鍙锋垨鍗″彿锛堝伐鍙锋垨鍗″彿瀛楁涓虹┖锛夛紝5-宸ュ彿涓嶅瓨鍦紝6-鎸囩汗鏁版嵁闀垮害涓�0锛�7-璇诲崱鍣ㄧ紪鍙烽敊璇紝8-宸ュ彿閿欒
+        public byte[] byErrorMsg = new byte[ERROR_MSG_LEN]; //涓嬪彂閿欒淇℃伅锛屽綋byCardReaderRecvStatus涓�5鏃讹紝琛ㄧず宸插瓨鍦ㄦ寚绾瑰搴旂殑鍗″彿
+        public int dwCardReaderNo;   //褰揵yCardReaderRecvStatus涓�5鏃讹紝琛ㄧず宸插瓨鍦ㄦ寚绾瑰搴旂殑鎸囩汗璇诲崱鍣ㄧ紪鍙凤紝鍙敤浜庝笅鍙戦敊璇繑鍥炪��0鏃惰〃绀烘棤閿欒淇℃伅
+        public byte[] byRes = new byte[20];
+    }
+
+    public static class NET_DVR_CAPTURE_FINGERPRINT_COND extends Structure {
+        public int dwSize;
+        public byte byFingerPrintPicType;    //鍥剧墖绫诲瀷锛�0-鏃犳剰涔�
+        public byte byFingerNo;              //鎵嬫寚缂栧彿锛岃寖鍥�1-10
+        public byte[] byRes = new byte[126];
+    }
+
+    //
+    public static class NET_DVR_CAPTURE_FINGERPRINT_CFG extends Structure {
+        public int dwSize;
+        public int dwFingerPrintDataSize;    //鎸囩汗鏁版嵁澶у皬
+        public byte[] byFingerData = new byte[MAX_FINGER_PRINT_LEN];    //鍥剧墖绫诲瀷锛�0-鏃犳剰涔�
+        public int dwFingerPrintPicSize;    //鎸囩汗鍥剧墖澶у皬锛岀瓑浜�0鏃讹紝浠h〃鏃犳寚绾瑰浘鐗囨暟鎹�
+        public Pointer pFingerPrintPicBuffer;       //鎸囩汗鍥剧墖缂撳瓨
+        public byte byFingerNo;              //鎵嬫寚缂栧彿锛岃寖鍥�1-10
+        public byte byFingerPrintQuality;    //鎸囩汗璐ㄩ噺锛岃寖鍥�1-100
+        public byte[] byRes = new byte[62];
+    }
+
+    public static class NET_DVR_FINGER_PRINT_INFO_CTRL_V50 extends Structure {
+        public int dwSize;
+        public byte byMode;          //鍒犻櫎鏂瑰紡锛�0-鎸夊崱鍙凤紙浜哄憳ID锛夋柟寮忓垹闄わ紝1-鎸夎鍗″櫒鍒犻櫎
+        public byte[] byRes1 = new byte[3];       //淇濈暀
+        public NET_DVR_DEL_FINGER_PRINT_MODE_V50 struProcessMode;  //澶勭悊鏂瑰紡
+        public byte[] byRes = new byte[64];          //淇濈暀
+    }
+
+    public static class NET_DVR_DEL_FINGER_PRINT_MODE_V50 extends Union {
+        public byte[] uLen = new byte[588];   //鑱斿悎浣撻暱搴�
+        public NET_DVR_FINGER_PRINT_BYCARD_V50 struByCard;     //鎸夊崱鍙凤紙浜哄憳ID锛夌殑鏂瑰紡鍒犻櫎
+        public NET_DVR_FINGER_PRINT_BYREADER_V50 struByReader;   //鎸夎鍗″櫒鐨勬柟寮忓垹闄�
+    }
+
+    public static class NET_DVR_FINGER_PRINT_BYREADER_V50 extends Structure {
+        public int dwCardReaderNo;  //鎸夊�艰〃绀猴紝鎸囩汗璇诲崱鍣ㄧ紪鍙�
+        public byte byClearAllCard;  //鏄惁鍒犻櫎鎵�鏈夊崱鐨勬寚绾逛俊鎭紝0-鎸夊崱鍙凤紙浜哄憳ID锛夊垹闄ゆ寚绾逛俊鎭紝1-鍒犻櫎鎵�鏈夊崱锛堜汉鍛業D锛夌殑鎸囩汗淇℃伅
+        public byte[] byRes1 = new byte[3];       //淇濈暀
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鎸囩汗鍏宠仈鐨勫崱鍙�
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛�
+        public byte[] byRes = new byte[516];          //淇濈暀
+    }
+
+    public static class NET_DVR_FINGER_PRINT_BYCARD_V50 extends Structure {
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鎸囩汗鍏宠仈鐨勫崱鍙�
+        public byte[] byEnableCardReader = new byte[MAX_CARD_READER_NUM_512];  //鎸囩汗鐨勮鍗″櫒淇℃伅锛屾寜浣嶈〃绀�
+        public byte[] byFingerPrintID = new byte[10];        //闇�瑕佸垹闄ょ殑鎵嬫寚缂栧彿锛屾寜鏁扮粍涓嬫爣锛屽�艰〃绀�0-涓嶅垹闄わ紝1-鍒犻櫎璇ユ寚绾�
+        public byte[] byRes1 = new byte[2];
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛�
+    }
+
+    //浜鸿劯鍒犻櫎鎺у埗鍙傛暟缁撴瀯浣�
+    public static class NET_DVR_FACE_PARAM_CTRL extends Structure {
+        public int dwSize;
+        public byte byMode;          //鍒犻櫎鏂瑰紡锛�0-鎸夊崱鍙锋柟寮忓垹闄わ紝1-鎸夎鍗″櫒鍒犻櫎
+        public byte[] byRes1 = new byte[3];        //淇濈暀
+        public NET_DVR_DEL_FACE_PARAM_MODE struProcessMode = new NET_DVR_DEL_FACE_PARAM_MODE();  //澶勭悊鏂瑰紡
+        public byte[] byRes = new byte[64];          //淇濈暀
+
+        public void read() {
+            super.read();
+            switch (byMode) {
+                case 0:
+                    struProcessMode.setType(NET_DVR_FACE_PARAM_BYCARD.class);
+                    break;
+                case 1:
+                    struProcessMode.setType(NET_DVR_FACE_PARAM_BYREADER.class);
+                    break;
+                default:
+                    break;
+            }
+            struProcessMode.read();
+        }
+
+        public void write() {
+            super.write();
+            struProcessMode.write();
+        }
+    }
+
+    //鎸囩汗鍒犻櫎鎺у埗鍙傛暟缁撴瀯浣�
+    public static class NET_DVR_FINGER_PRINT_INFO_CTRL extends Structure {
+        public int dwSize;
+        public byte byMode;          //鍒犻櫎鏂瑰紡锛�0-鎸夊崱鍙锋柟寮忓垹闄わ紝1-鎸夎鍗″櫒鍒犻櫎
+        public byte[] byRes1 = new byte[3];        //淇濈暀
+        public NET_DVR_DEL_FINGER_PRINT_MODE struProcessMode = new NET_DVR_DEL_FINGER_PRINT_MODE();  //澶勭悊鏂瑰紡
+        public byte[] byRes = new byte[64];          //淇濈暀
+
+        public void read() {
+            super.read();
+            switch (byMode) {
+                case 0:
+                    struProcessMode.setType(NET_DVR_FINGER_PRINT_BYCARD.class);
+                    break;
+                case 1:
+                    struProcessMode.setType(NET_DVR_FINGER_PRINT_BYREADER.class);
+                    break;
+                default:
+                    break;
+            }
+            struProcessMode.read();
+        }
+
+        public void write() {
+            super.write();
+            struProcessMode.write();
+        }
+    }
+
+    public static class NET_DVR_DEL_FINGER_PRINT_MODE extends Union {
+        //	public byte[] uLen = new byte[588];   //鑱斿悎浣撻暱搴�
+        public NET_DVR_FINGER_PRINT_BYCARD struByCard;     //鎸夊崱鍙风殑鏂瑰紡鍒犻櫎
+        public NET_DVR_FINGER_PRINT_BYREADER struByReader;   //鎸夎鍗″櫒鐨勬柟寮忓垹闄�
+    }
+
+    public static class NET_DVR_FINGER_PRINT_BYCARD extends Structure {
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //浜鸿劯鍏宠仈鐨勫崱鍙�
+        public byte[] byEnableCardReader = new byte[MAX_CARD_READER_NUM_512];  //浜鸿劯鐨勮鍗″櫒淇℃伅锛屾寜鏁扮粍琛ㄧず
+        public byte[] byFaceID = new byte[MAX_FACE_NUM];        //闇�瑕佸垹闄ょ殑浜鸿劯缂栧彿锛屾寜鏁扮粍涓嬫爣锛屽�艰〃绀�0-涓嶅垹闄わ紝1-鍒犻櫎璇ヤ汉鑴�
+        public byte[] byRes1 = new byte[34];          //淇濈暀
+    }
+
+    public static class NET_DVR_FINGER_PRINT_BYREADER extends Structure {
+        public int dwCardReaderNo;  //鎸夊�艰〃绀猴紝浜鸿劯璇诲崱鍣ㄧ紪鍙�
+        public byte byClearAllCard;  //鏄惁鍒犻櫎鎵�鏈夊崱鐨勪汉鑴镐俊鎭紝0-鎸夊崱鍙峰垹闄や汉鑴镐俊鎭紝1-鍒犻櫎鎵�鏈夊崱鐨勪汉鑴镐俊鎭�
+        public byte[] byRes1 = new byte[3];       //淇濈暀
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //浜鸿劯鍏宠仈鐨勫崱鍙�
+        public byte[] byRes = new byte[548];          //淇濈暀
+    }
+
+    //闂ㄧ涓绘満鍙傛暟
+    public static class NET_DVR_ACS_CFG extends Structure {
+        public int dwSize;            //缁撴瀯浣撳ぇ灏�
+        public byte byRS485Backup;  //鏄惁鍚敤涓嬭RS485閫氫俊澶囦唤鍔熻兘锛�0-涓嶅惎鐢紝1-鍚敤
+        public byte byShowCapPic;    //鏄惁鏄剧ず鎶撴媿鍥剧墖锛� 0-涓嶆樉绀猴紝1-鏄剧ず
+        public byte byShowCardNo;    //鏄惁鏄剧ず鍗″彿锛�0-涓嶆樉绀猴紝1-鏄剧ず
+        public byte byShowUserInfo;  //鏄惁鏄剧ず鐢ㄦ埛淇℃伅锛�0-涓嶆樉绀猴紝1-鏄剧ず
+        public byte byOverlayUserInfo;//鏄惁鍙犲姞鐢ㄦ埛淇℃伅锛�0-涓嶅彔鍔狅紝1-鍙犲姞
+        public byte byVoicePrompt;  //鏄惁鍚敤璇煶鎻愮ず锛�0-涓嶅惎鐢紝1-鍚敤
+        public byte byUploadCapPic;     //鑱斿姩鎶撴媿鏄惁涓婁紶鍥剧墖锛�0-涓嶄笂浼狅紝1-涓婁紶
+        public byte bySaveCapPic;    //鏄惁淇濆瓨鎶撴媿鍥剧墖锛�0-涓嶄繚瀛橈紝1-淇濆瓨
+        public byte byInputCardNo;  //鏄惁鏄惁鍏佽鎸夐敭杈撳叆鍗″彿锛�0-涓嶅厑璁革紝1-鍏佽
+        public byte byEnableWifiDetect;  //鏄惁鍚姩wifi锛�0-涓嶅惎鍔紝1-鍚姩
+        public byte byEnable3G4G;  //3G4G浣胯兘锛�0-涓嶄娇鑳斤紝1-浣胯兘
+        public byte byProtocol;//璇诲崱鍣ㄩ�氫俊鍗忚绫诲瀷锛�0-绉佹湁鍗忚锛堥粯璁わ級锛�1-OSDP鍗忚
+        public byte[] byRes = new byte[500];
+    }
+
+    /**************
+     * 浼樺寲鎺ュ彛缁撴瀯浣撳畾涔夌粨鏉�
+     ***************************/
+    public static class NET_DVR_UPLOAD_ID_BLOCKLIST_COND extends Structure {
+        public int dwSize;
+        public int dwBlockListNum; //绂佹鍚嶅崟鏁伴噺
+        public byte[] byRes = new byte[128];
+    }
+
+    public static class NET_DVR_UPLOAD_ID_BLOCKLIST_CFG extends Structure {
+        public int dwSize;
+        public NET_DVR_ID_CARD_INFO struIDCardCfg;  //韬唤璇佷俊鎭紙璇ョ粨鏋勪綋涓鍚嶅拰韬唤璇佸彿鐮佷负蹇呭~椤癸紝鍏朵粬瀛楁涓洪�夊~椤癸級
+        public byte byBlockListValid;   //韬唤璇佺姝㈠悕鍗曟槸鍚︽湁鏁堬細0-鏃犳晥锛�1-鏈夋晥锛堢敤浜庢寜韬唤璇佸彿鐮佸垹闄よ韩浠借瘉绂佹鍚嶅崟锛岃瀛楁涓�0鏃朵唬琛ㄥ垹闄わ級
+        public byte[] byRes = new byte[127];  //棰勭暀
+    }
+
+    public static class NET_DVR_UPLOAD_ID_BLOCKLIST_STATUS extends Structure {
+        public int dwSize;
+        public byte[] byIDNum = new byte[MAX_ID_NUM_LEN];   //韬唤璇佸彿鐮�
+        public byte byStatus; //鐘舵�侊細0-鏃犳晥锛�1-澶勭悊涓紝2-涓婁紶澶辫触锛�3-鎴愬姛
+        public byte[] byRes = new byte[63];
+    }
+
+    public static class REMOTECONFIGSTATUS extends Structure {
+        public byte[] byStatus = new byte[4];
+        public byte[] byErrorCode = new byte[4];
+    }
+
+
+    //寮�閿佽褰�
+    public static class NET_DVR_UNLOCK_RECORD_INFO extends Structure {
+        public byte byUnlockType; //寮�閿佹柟寮忥紝鍙傝�僓NLOCK_TYPE_ENUM
+        public byte[] byRes1 = new byte[3]; //淇濈暀
+        public byte[] byControlSrc = new byte[NAME_LEN]; //鎿嶄綔鍙戣捣婧愪俊鎭紝鍒峰崱寮�閿佹椂涓哄崱鍙凤紝钃濈墮寮�閿佹椂涓鸿悿鐭崇殑APP璐﹀彿锛屼簩缁寸爜寮�閿佹椂涓鸿瀹㈢殑鎵嬫満鍙凤紝鍏朵綑鎯呭喌涓嬩负璁惧缂栧彿
+        public int dwPicDataLen; //鍥剧墖鏁版嵁闀垮害
+        public Pointer pImage; //鍥剧墖鎸囬拡
+        public int dwCardUserID; //鎸佸崱浜篒D
+        public short nFloorNumber;//鍒峰崱寮�閿佹椂鏈夋晥锛屼负妤煎眰鍙�
+        public short wRoomNumber; //鎿嶄綔鍙戣捣婧愰檮鍔犱俊鎭紝鍒峰崱寮�閿佹椂鏈夋晥锛屼负鎴块棿鍙凤紝
+        public short wLockID; //锛堝浜庨棬鍙f満锛�0-琛ㄧず鏈満鎺у埗鍣ㄤ笂鎺ョ殑閿併��1-琛ㄧず澶栨帴鎺у埗鍣ㄤ笂鎺ョ殑閿侊級
+        public byte[] byRes2 = new byte[2];
+        public byte[] byLockName = new byte[LOCK_NAME_LEN]; //鍒峰崱寮�閿佹椂鏈夋晥锛岄攣鍚嶇О锛屽搴旈棬鍙傛暟閰嶇疆涓棬鍚嶇О
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛�
+        public byte[] byRes = new byte[136]; //淇濈暀
+    }
+
+    //鍏憡淇℃伅闃呰鍥炴墽
+    public static class NET_DVR_NOTICEDATA_RECEIPT_INFO extends Structure {
+        public byte[] byNoticeNumber = new byte[MAX_NOTICE_NUMBER_LEN]; //鍏憡缂栧彿
+        public byte[] byRes = new byte[224];  //淇濈暀
+    }
+
+    //璁よ瘉璁板綍锛堣澶囨湭瀹炵幇锛�
+    public static class NET_DVR_AUTH_INFO extends Structure {
+        public byte byAuthResult; //璁よ瘉缁撴灉锛�0-鏃犳晥锛�1-璁よ瘉鎴愬姛锛�2-璁よ瘉澶辫触
+        public byte byAuthType; //璁よ瘉鏂瑰紡锛�0-鏃犳晥锛�1-鎸囩汗锛�2-浜鸿劯
+        public byte[] byRes1 = new byte[2]; //淇濈暀
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN/*32*/]; //鍗″彿
+        public int dwPicDataLen; //鍥剧墖鏁版嵁闀垮害锛堝綋璁よ瘉鏂瑰紡byAuthType涓轰汉鑴告椂鏈夋晥锛�
+        public Pointer pImage; //鍥剧墖鎸囬拡锛堝綋璁よ瘉鏂瑰紡byAuthType涓轰汉鑴告椂鏈夋晥锛�
+        public byte[] byRes = new byte[212];  //淇濈暀
+    }
+
+    //杞︾墝淇℃伅涓婁紶
+    public static class NET_DVR_UPLOAD_PLATE_INFO extends Structure {
+        public byte[] sLicense = new byte[MAX_LICENSE_LEN];        //杞︾墝鍙风爜
+        public byte byColor;                      //杞︾墝棰滆壊锛屽弬鑰冪粨鏋刅CA_PLATE_COLOR
+        public byte[] byRes = new byte[239];  //淇濈暀
+    }
+
+    public static class NET_DVR_SEND_CARD_INFO extends Structure {
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN/*32*/]; //鍗″彿
+        public byte[] byRes = new byte[224];  //淇濈暀
+    }
+
+    //闃插尯鎶ヨ淇℃伅缁撴瀯浣�
+    public static class  NET_DVR_ZONE_ALARM_INFO extends Structure {
+        public byte[]  byZoneName = new byte[NAME_LEN]; //闃插尯鍚嶇О
+        public int dwZonendex;//闃插尯鍙�
+        public byte byZoneType;//闃插尯绫诲瀷 ENUM_ALARM_ZONE_TYPE_MANUAL-绱ф�ュ紑鍏虫姤璀�;ENUM_ALARM_ZONE_TYPE_MAGNETIC-闂ㄧ鎶ヨ;ENUM_ALARM_ZONE_TYPE_SMOKE-鐑熸劅鎶ヨ;ENUM_ALARM_ZONE_TYPE_ACTIVE_INFRARED-涓诲姩绾㈠鎶ヨ;ENUM_ALARM_ZONE_TYPE_PASSIVE_INFRARED-琚姩绾㈠鎶ヨ;ENUM_ALARM_ZONE_TYPE_GAS-鐓ゆ皵鎶ヨ
+        public byte[] byRes = new byte[219]; //淇濈暀,缃负0
+    }
+    //鍙瀵硅鎶ヨ淇℃伅鑱斿悎浣�
+    public static class NET_DVR_VIDEO_INTERCOM_ALARM_INFO_UNION extends Union {
+        public byte[] byLen = new byte[256]; //鑱斿悎浣撳ぇ灏�
+        public  NET_DVR_ZONE_ALARM_INFO struZoneAlarm = new NET_DVR_ZONE_ALARM_INFO(); //寮�閿佽褰�
+    }
+
+    //鍙瀵硅鎶ヨ淇℃伅缁撴瀯浣�
+    public static class NET_DVR_VIDEO_INTERCOM_ALARM extends Structure {
+        public int dwSize; //缁撴瀯浣撳ぇ灏�
+        public NET_DVR_TIME_EX struTime = new NET_DVR_TIME_EX(); //鏃堕棿
+        public byte[] byDevNumber = new byte[MAX_DEV_NUMBER_LEN]; //璁惧缂栧彿
+        public byte  byAlarmType;//鎶ヨ绫诲瀷锛�1- 闃插尯鎶ヨ锛�2- 闃叉媶鎶ヨ锛�3- 鍔寔鎶ヨ锛�4- 澶氭瀵嗙爜寮�閿佸け璐ユ姤璀︼紝5- 闂ㄦ病寮�锛�6- 闂ㄦ病鍏筹紝7- SOS(鍛兼晳鎶ヨ)锛�8- 閫氳瘽瀵硅锛�9- 鏅鸿兘閿佸姭鎸佹寚绾规姤璀︼紝
+        // 10- 鏅鸿兘閿佸姭鎸佸瘑鐮佹姤璀︼紝11- 鏅鸿兘閿佹挰闂ㄦ姤璀︼紝12- 鏅鸿兘閿侀棬閿侀攣瀹氭姤璀︼紝13- 鏅鸿兘閿佺數閲忎笉瓒虫姤璀�, 14-绂佹鍚嶅崟鎶ヨ, 15-鏅鸿兘閿佹帀绾�, 16-闂ㄧ瀹夊叏妯″潡闃叉媶鎶ヨ
+        public byte[] byRes1 = new byte[3]; //淇濈暀
+        public NET_DVR_VIDEO_INTERCOM_ALARM_INFO_UNION uAlarmInfo = new NET_DVR_VIDEO_INTERCOM_ALARM_INFO_UNION(); //鎶ヨ淇℃伅锛宐yAlarmType涓�1鏃舵湁鏁�
+        public short  wLockID;    //閿両D锛岋紙0-琛ㄧず闂ㄥ彛鏈烘湰鏈烘帶鍒跺櫒涓婃帴鐨勯攣銆�1-琛ㄧず澶栨帴鎺у埗鍣ㄤ笂鎺ョ殑閿侊級锛堟姤璀︾被鍨嬩负5鍜�6鏃舵湁鏁堬級
+        public byte[] byRes2 = new byte[254]; //淇濈暀锛岀疆涓�0
+    }
+
+    //鍙瀵硅浜嬩欢璁板綍淇℃伅鑱斿悎浣�
+    public static class NET_DVR_VIDEO_INTERCOM_EVENT_INFO_UINON extends Union {
+        public byte[] byLen = new byte[256]; //鑱斿悎浣撳ぇ灏�
+        public NET_DVR_UNLOCK_RECORD_INFO struUnlockRecord = new NET_DVR_UNLOCK_RECORD_INFO(); //寮�閿佽褰�
+        public NET_DVR_NOTICEDATA_RECEIPT_INFO struNoticedataReceipt = new NET_DVR_NOTICEDATA_RECEIPT_INFO(); //鍏憡淇℃伅闃呰鍥炴墽
+        public NET_DVR_AUTH_INFO struAuthInfo = new NET_DVR_AUTH_INFO(); //璁よ瘉璁板綍锛堣澶囨湭瀹炵幇锛�
+        public NET_DVR_UPLOAD_PLATE_INFO struUploadPlateInfo = new NET_DVR_UPLOAD_PLATE_INFO(); //杞︾墝淇℃伅涓婁紶
+        public NET_DVR_SEND_CARD_INFO struSendCardInfo = new NET_DVR_SEND_CARD_INFO(); //闂ㄥ彛鏈哄彂鍗�,瀵瑰簲璁惧澶勪簬鍙戝崱鐘舵�侊紝鍒峰崱鏃朵笂浼犺浜嬩欢
+    }
+
+    //鍙瀵硅浜嬩欢璁板綍
+    public static class NET_DVR_VIDEO_INTERCOM_EVENT extends Structure {
+        public int dwSize; //缁撴瀯浣撳ぇ灏�
+        public NET_DVR_TIME_EX struTime = new NET_DVR_TIME_EX(); //鏃堕棿
+        public byte[] byDevNumber = new byte[MAX_DEV_NUMBER_LEN]; //璁惧缂栧彿
+        public byte byEventType; //浜嬩欢淇℃伅绫诲瀷锛�1-寮�閿佽褰曪紝2-鍏憡淇℃伅闃呰鍥炴墽锛�3-璁よ瘉璁板綍锛�4-杞︾墝淇℃伅涓婁紶锛�5闈炴硶鍗″埛鍗′簨浠讹紝6-闂ㄥ彛鏈哄彂鍗¤褰�(闇�瑕佸惎鍔ㄩ棬鍙f満鍙戝崱鍔熻兘锛屽埛鍗℃椂鎵嶄細涓婁紶璇ヤ簨浠�)
+        public byte byPicTransType;        //鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public byte[] byRes1 = new byte[2]; //淇濈暀
+        public NET_DVR_VIDEO_INTERCOM_EVENT_INFO_UINON uEventInfo = new NET_DVR_VIDEO_INTERCOM_EVENT_INFO_UINON(); //浜嬩欢淇℃伅锛屽叿浣撳唴瀹瑰弬鑰僢yEventType鍙栧��
+        public int dwIOTChannelNo;    //IOT閫氶亾鍙�
+        public byte[] byRes2 = new byte[252]; //淇濈暀
+    }
+
+    public static class NET_DVR_VIDEO_CALL_PARAM extends Structure
+    {
+        public int    dwSize;
+        public int   dwCmdType;      //淇′护绫诲瀷  0-璇锋眰鍛煎彨锛�1-鍙栨秷鏈鍛煎彨锛�2-鎺ュ惉鏈鍛煎彨 3-鎷掔粷鏈湴鏉ョ數鍛煎彨 4-琚彨鍝嶉搩瓒呮椂 5-缁撴潫鏈閫氳瘽锛�6-璁惧姝e湪閫氳瘽涓紝7-瀹㈡埛绔鍦ㄩ�氳瘽涓紝8瀹ゅ唴鏈轰笉鍦ㄧ嚎
+        public short wPeriod;  //鏈熷彿, 鑼冨洿[0,9]
+        public short wBuildingNumber; //妤煎彿
+        public short wUnitNumber;  //鍗曞厓鍙�
+        public short wFloorNumber;  //灞傚彿
+        public short  wRoomNumber;    //鎴块棿鍙�
+        public short  wDevIndex; //璁惧缂栧彿
+        public byte    byUnitType; //璁惧绫诲瀷锛�1-闂ㄥ彛鏈猴紝2-绠$悊鏈猴紝3-瀹ゅ唴鏈猴紝4-鍥村鏈猴紝5-鍒闂ㄥ彛鏈猴紝6-浜屾纭鏈猴紝7-8700瀹㈡埛绔紝8-4200瀹㈡埛绔紝9-APP
+        public byte[]    byRes=new byte[115];     //淇濈暀
+    }
+
+    public static class NET_DVR_CONTROL_GATEWAY extends Structure {
+        public int dwSize; //缁撴瀯浣撳ぇ灏�
+        public int dwGatewayIndex; //闂ㄧ搴忓彿锛屼粠1寮�濮�
+        public byte byCommand; //鎿嶄綔鍛戒护锛�0-鍏抽棴锛�1-鎵撳紑锛�2-甯稿紑锛堥�氶亾鐘舵�侊級锛�3-鎭㈠锛堟櫘閫氱姸鎬侊級
+        public byte byLockType; //閿佺被鍨嬶紝0-鏅�氾紙浠ュ墠榛樿閮戒负0锛�,1-鏅鸿兘閿�
+        public short wLockID; //閿両D锛屼粠1寮�濮嬶紙杩滅▼寮�闂ㄥ彛鏈洪攣鏃讹紝0琛ㄧず闂ㄥ彛鏈烘湰鏈烘帶鍒跺櫒涓婃帴鐨勯攣銆�1琛ㄧず澶栨帴鎺у埗鍣ㄤ笂鎺ョ殑閿侊級
+        public byte[] byControlSrc = new byte[NAME_LEN]; //鎿嶄綔鍙戣捣婧愪俊鎭�
+        public byte byControlType; //寮�閿佺被鍨嬶紝1-甯冮槻锛�2-閫氳瘽
+        public byte[] byRes3 = new byte[3];
+        public byte[] byPassword = new byte[PASSWD_LEN];       //閿佸瘑鐮侊紝褰揵yLockType涓烘櫤鑳介攣鏃舵湁鏁�
+        public byte[] byRes2 = new byte[108]; //淇濈暀
+    }
+
+
+    //鍏憡鍥剧墖淇℃伅缁撴瀯浣�
+    public static class NET_DVR_NOTICE_PIC extends Structure {
+        public Pointer pPicData; //鍥剧墖鎸囬拡
+        public int dwPicDataLen; //鍥剧墖鏁版嵁闀垮害
+        public byte[] byRes = new byte[32]; //淇濈暀
+    }
+
+    //鍏憡鏁版嵁
+    public static class NET_DVR_NOTICE_DATA extends Structure {
+        public int dwSize; //缁撴瀯浣撳ぇ灏�
+        public NET_DVR_TIME_EX struTime = new NET_DVR_TIME_EX(); //鍏憡鏃堕棿
+        public byte[] byNoticeNumber = new byte[MAX_NOTICE_NUMBER_LEN]; //鍏憡缂栧彿
+        public byte[] byNoticeTheme = new byte[MAX_NOTICE_THEME_LEN];//鍏憡涓婚
+        public byte[] byNoticeDetail = new byte[MAX_NOTICE_DETAIL_LEN]; //鍏憡璇︽儏
+        public byte byLevel; //鍏憡绛夌骇锛�1-骞垮憡绫讳俊鎭紱2-鐗╀笟淇℃伅锛�3-鎶ヨ绫讳俊鎭�;4-閫氱煡绫讳俊鎭�
+        public byte byPicNum; //鍏憡鍥剧墖鏁伴噺
+        public byte[] byRes1 = new byte[2]; //淇濈暀
+        public NET_DVR_NOTICE_PIC[] struNoticePic = new NET_DVR_NOTICE_PIC[MAX_NOTICE_PIC_NUM]; //鍏憡鍥剧墖
+        public byte[] byRes2 = new byte[128]; //淇濈暀
+    }
+
+    public static class NET_DVR_DATE extends Structure {
+        public short wYear;        //骞�
+        public byte byMonth;        //鏈�
+        public byte byDay;        //鏃�
+    }
+
+    //韬唤璇佷俊鎭�
+    public static class NET_DVR_ID_CARD_INFO extends Structure {
+        public int dwSize;        //缁撴瀯闀垮害
+        public byte[] byName = new byte[MAX_ID_NAME_LEN];   //濮撳悕
+        public NET_DVR_DATE struBirth; //鍑虹敓鏃ユ湡
+        public byte[] byAddr = new byte[MAX_ID_ADDR_LEN];  //浣忓潃
+        public byte[] byIDNum = new byte[MAX_ID_NUM_LEN];   //韬唤璇佸彿鐮�
+        public byte[] byIssuingAuthority = new byte[MAX_ID_ISSUING_AUTHORITY_LEN];  //绛惧彂鏈哄叧
+        public NET_DVR_DATE struStartDate;  //鏈夋晥寮�濮嬫棩鏈�
+        public NET_DVR_DATE struEndDate;  //鏈夋晥鎴鏃ユ湡
+        public byte byTermOfValidity;  //鏄惁闀挎湡鏈夋晥锛� 0-鍚︼紝1-鏄紙鏈夋晥鎴鏃ユ湡鏃犳晥锛�
+        public byte bySex;  //鎬у埆锛�1-鐢凤紝2-濂�
+        public byte byNation; //
+        public byte[] byRes = new byte[101];
+    }
+
+    public static class NET_DVR_ACS_EVENT_INFO_EXTEND_V20 extends Structure {
+        public byte byRemoteCheck; //鏄惁闇�瑕佽繙绋嬫牳楠岋紙0-鏃犳晥锛�1-涓嶉渶瑕侊紙榛樿锛夛紝2-闇�瑕侊級
+        public byte byThermometryUnit; //娴嬫俯鍗曚綅锛�0-鎽勬皬搴︼紙榛樿锛夛紝1-鍗庢皬搴︼紝2-寮�灏旀枃锛�
+        public byte byIsAbnomalTemperature; //鐗瑰緛鎶撴媿娴嬫俯鏄惁娓╁害寮傚父锛�1-鏄紝0-鍚�
+        public byte byRes2;
+        public float fCurrTemperature; //浜鸿劯娓╁害锛堢簿纭埌灏忔暟鐐瑰悗涓�浣嶏級
+        public NET_VCA_POINT struRegionCoordinates = new NET_VCA_POINT(); //浜鸿劯娓╁害鍧愭爣
+        public int dwQRCodeInfoLen; //浜岀淮鐮佷俊鎭暱搴︼紝涓嶄负0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public int dwVisibleLightDataLen; //鐑垚鍍忕浉鏈哄彲瑙佸厜鍥剧墖闀垮害锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public int dwThermalDataLen; //鐑垚鍍忓浘鐗囬暱搴︼紝涓嶄负0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pQRCodeInfo; //浜岀淮鐮佷俊鎭寚閽�
+        public Pointer pVisibleLightData; //鐑垚鍍忕浉鏈哄彲瑙佸厜鍥剧墖鎸囬拡
+        public Pointer pThermalData; //鐑垚鍍忓浘鐗囨寚閽�
+        public byte[] byRes = new byte[1024];
+
+
+    }
+
+    //闂ㄧ涓绘満鎶ヨ淇℃伅缁撴瀯浣�
+    public static class NET_DVR_ACS_ALARM_INFO extends Structure {
+        public int dwSize;
+        public int dwMajor; //鎶ヨ涓荤被鍨嬶紝鍙傝�冨畯瀹氫箟
+        public int dwMinor; //鎶ヨ娆$被鍨嬶紝鍙傝�冨畯瀹氫箟
+        public NET_DVR_TIME struTime = new NET_DVR_TIME(); //鏃堕棿
+        public byte[] sNetUser = new byte[MAX_NAMELEN];//缃戠粶鎿嶄綔鐨勭敤鎴峰悕
+        public NET_DVR_IPADDR struRemoteHostAddr = new NET_DVR_IPADDR();//杩滅▼涓绘満鍦板潃
+        public NET_DVR_ACS_EVENT_INFO struAcsEventInfo = new NET_DVR_ACS_EVENT_INFO(); //璇︾粏鍙傛暟
+        public int dwPicDataLen;   //鍥剧墖鏁版嵁澶у皬锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pPicData;
+        public short wInductiveEventType; //褰掔撼浜嬩欢绫诲瀷锛�0-鏃犳晥锛屽鎴风鍒ゆ柇璇ュ�间负闈�0鍊煎悗锛屾姤璀︾被鍨嬮�氳繃褰掔撼浜嬩欢绫诲瀷鍖哄垎锛屽惁鍒欓�氳繃鍘熸湁鎶ヨ涓绘绫诲瀷锛坉wMajor銆乨wMinor锛夊尯鍒�
+        public byte byPicTransType;        //鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public byte byRes1;             //淇濈暀瀛楄妭
+        public int dwIOTChannelNo;    //IOT閫氶亾鍙�
+        public Pointer pAcsEventInfoExtend;    //byAcsEventInfoExtend涓�1鏃讹紝琛ㄧず鎸囧悜涓�涓狽ET_DVR_ACS_EVENT_INFO_EXTEND缁撴瀯浣�
+        public byte byAcsEventInfoExtend;    //pAcsEventInfoExtend鏄惁鏈夋晥锛�0-鏃犳晥锛�1-鏈夋晥
+        public byte byTimeType; //鏃堕棿绫诲瀷锛�0-璁惧鏈湴鏃堕棿锛�1-UTC鏃堕棿锛坰truTime鐨勬椂闂达級
+        public byte byRes2;             //淇濈暀瀛楄妭
+        public byte byAcsEventInfoExtendV20;    //pAcsEventInfoExtendV20鏄惁鏈夋晥锛�0-鏃犳晥锛�1-鏈夋晥
+        public Pointer pAcsEventInfoExtendV20;    //byAcsEventInfoExtendV20涓�1鏃讹紝琛ㄧず鎸囧悜涓�涓狽ET_DVR_ACS_EVENT_INFO_EXTEND_V20缁撴瀯浣�
+        public byte[] byRes = new byte[4];
+    }
+
+    //闂ㄧ涓绘満浜嬩欢淇℃伅
+    public static class NET_DVR_ACS_EVENT_INFO extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[32];
+        public byte byCardType;
+        public byte byAllowListNo;
+        public byte byReportChannel;
+        public byte byCardReaderKind;
+        public int dwCardReaderNo;
+        public int dwDoorNo;
+        public int dwVerifyNo;
+        public int dwAlarmInNo;
+        public int dwAlarmOutNo;
+        public int dwCaseSensorNo;
+        public int dwRs485No;
+        public int dwMultiCardGroupNo;
+        public short wAccessChannel;
+        public byte byDeviceNo;
+        public byte byDistractControlNo;
+        public int dwEmployeeNo;
+        public short wLocalControllerID;
+        public byte byInternetAccess;
+        public byte byType;
+        public byte[] byMACAddr = new byte[MACADDR_LEN]; //鐗╃悊鍦板潃锛屼负0鏃犳晥
+        public byte bySwipeCardType;//鍒峰崱绫诲瀷锛�0-鏃犳晥锛�1-浜岀淮鐮�
+        public byte byMask; //鏄惁甯﹀彛缃╋細0-淇濈暀锛�1-鏈煡锛�2-涓嶆埓鍙g僵锛�3-鎴村彛缃�
+        public int dwSerialNo; //浜嬩欢娴佹按鍙凤紝涓�0鏃犳晥
+        public byte byChannelControllerID; //閫氶亾鎺у埗鍣↖D锛屼负0鏃犳晥锛�1-涓婚�氶亾鎺у埗鍣紝2-浠庨�氶亾鎺у埗鍣�
+        public byte byChannelControllerLampID; //閫氶亾鎺у埗鍣ㄧ伅鏉縄D锛屼负0鏃犳晥锛堟湁鏁堣寖鍥�1-255锛�
+        public byte byChannelControllerIRAdaptorID; //閫氶亾鎺у埗鍣ㄧ孩澶栬浆鎺ユ澘ID锛屼负0鏃犳晥锛堟湁鏁堣寖鍥�1-255锛�
+        public byte byChannelControllerIREmitterID; //閫氶亾鎺у埗鍣ㄧ孩澶栧灏処D锛屼负0鏃犳晥锛堟湁鏁堣寖鍥�1-255锛�
+        public byte byHelmet;//鍙�夛紝鏄惁鎴村畨鍏ㄥ附锛�0-淇濈暀锛�1-鏈煡锛�2-涓嶆埓瀹夊叏, 3-鎴村畨鍏ㄥ附
+        public byte[] byRes = new byte[3];
+    }
+
+    public static final int NET_DEV_NAME_LEN = 64;
+
+    public static class NET_DVR_ACS_EVENT_INFO_EXTEND extends Structure {
+        public int dwFrontSerialNo; //浜嬩欢娴佹按鍙凤紝涓�0鏃犳晥锛堣嫢璇ュ瓧娈典负0锛屽钩鍙版牴鎹甦wSerialNo鍒ゆ柇鏄惁涓㈠け浜嬩欢锛涜嫢璇ュ瓧娈典笉涓�0锛屽钩鍙版牴鎹瀛楁鍜宒wSerialNo瀛楁鍏卞悓鍒ゆ柇鏄惁涓㈠け浜嬩欢锛夛紙涓昏鐢ㄤ簬瑙e喅鎶ヨ璁㈤槄鍚庡鑷磀wSerialNo涓嶈繛缁殑鎯呭喌锛�
+        public byte byUserType; //浜哄憳绫诲瀷锛�0-鏃犳晥锛�1-鏅�氫汉锛堜富浜猴級锛�2-鏉ュ锛堣瀹級锛�3-绂佹鍚嶅崟浜猴紝4-绠$悊鍛�
+        public byte byCurrentVerifyMode; //璇诲崱鍣ㄥ綋鍓嶉獙璇佹柟寮忥細0-鏃犳晥锛�1-浼戠湢锛�2-鍒峰崱+瀵嗙爜锛�3-鍒峰崱锛�4-鍒峰崱鎴栧瘑鐮侊紝5-鎸囩汗锛�6-鎸囩汗+瀵嗙爜锛�7-鎸囩汗鎴栧埛鍗★紝8-鎸囩汗+鍒峰崱锛�9-鎸囩汗+鍒峰崱+瀵嗙爜锛�10-浜鸿劯鎴栨寚绾规垨鍒峰崱鎴栧瘑鐮侊紝11-浜鸿劯+鎸囩汗锛�12-浜鸿劯+瀵嗙爜锛�13-浜鸿劯+鍒峰崱锛�14-浜鸿劯锛�15-宸ュ彿+瀵嗙爜锛�16-鎸囩汗鎴栧瘑鐮侊紝17-宸ュ彿+鎸囩汗锛�18-宸ュ彿+鎸囩汗+瀵嗙爜锛�19-浜鸿劯+鎸囩汗+鍒峰崱锛�20-浜鸿劯+瀵嗙爜+鎸囩汗锛�21-宸ュ彿+浜鸿劯锛�22-浜鸿劯鎴栦汉鑴�+鍒峰崱锛�23-鎸囩汗鎴栦汉鑴革紝24-鍒峰崱鎴栦汉鑴告垨瀵嗙爜锛�25-鍒峰崱鎴栦汉鑴革紝26-鍒峰崱鎴栦汉鑴告垨鎸囩汗锛�27-鍒峰崱鎴栨寚绾规垨瀵嗙爜
+        public byte byCurrentEvent; //鏄惁涓哄疄鏃朵簨浠讹細0-鏃犳晥锛�1-鏄紙瀹炴椂浜嬩欢锛夛紝2-鍚︼紙绂荤嚎浜嬩欢锛�
+        public byte byPurePwdVerifyEnable; //璁惧鏄惁鏀寔绾瘑鐮佽璇侊紝 0-涓嶆敮鎸侊紝1-鏀寔
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛夛紙瀵逛簬璁惧鏉ヨ锛屽鏋滀娇鐢ㄤ簡宸ュ彿锛堜汉鍛業D锛夊瓧娈碉紝byEmployeeNo涓�瀹氳浼犻�掞紝濡傛灉byEmployeeNo鍙浆鎹负dwEmployeeNo锛岄偅涔堣瀛楁涔熻浼犻�掞紱瀵逛簬涓婂眰骞冲彴鎴栧鎴风鏉ヨ锛屼紭鍏堣В鏋恇yEmployeeNo瀛楁锛屽璇ュ瓧娈典负绌猴紝鍐嶈�冭檻瑙f瀽dwEmployeeNo瀛楁锛�
+        public byte byAttendanceStatus; //鑰冨嫟鐘舵�侊細0-鏈畾涔�,1-涓婄彮锛�2-涓嬬彮锛�3-寮�濮嬩紤鎭紝4-缁撴潫浼戞伅锛�5-寮�濮嬪姞鐝紝6-缁撴潫鍔犵彮
+        public byte byStatusValue; //鑰冨嫟鐘舵�佸��
+        public byte[] byRes2 = new byte[2];
+        public byte[] byUUID = new byte[NET_SDK_UUID_LEN/*36*/]; //UUID锛堣瀛楁浠呭湪瀵规帴钀ょ煶骞冲彴杩囩▼涓墠浼氫娇鐢級
+        public byte[] byDeviceName = new byte[NET_DEV_NAME_LEN/*64*/];   //璁惧搴忓垪鍙�
+        public byte[] byRes = new byte[24];
+
+    }
+
+    /*
+    闂ㄧ涓绘満鎶ヨ浜嬩欢缁嗚妭缁撴瀯浣�
+     */
+    public static class NET_DVR_ACS_EVENT_DETAIL extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鍗″彿锛坢ac鍦板潃锛夛紝涓�0鏃犳晥
+        public byte byCardType; //鍗$被鍨嬶紝1-鏅�氬崱锛�3-绂佹鍚嶅崟鍗★紝4-宸℃洿鍗★紝5-鑳佽揩鍗★紝6-瓒呯骇鍗★紝7-鏉ュ鍗★紝8-瑙i櫎鍗★紝涓�0鏃犳晥
+        public byte byAllowListNo; //鍏佽鍚嶅崟鍗曞彿,1-8锛屼负0鏃犳晥
+        public byte byReportChannel; //鎶ュ憡涓婁紶閫氶亾锛�1-甯冮槻涓婁紶锛�2-涓績缁�1涓婁紶锛�3-涓績缁�2涓婁紶锛屼负0鏃犳晥
+        public byte byCardReaderKind; //璇诲崱鍣ㄥ睘浜庡摢涓�绫伙紝0-鏃犳晥锛�1-IC璇诲崱鍣紝2-韬唤璇佽鍗″櫒锛�3-浜岀淮鐮佽鍗″櫒,4-鎸囩汗澶�
+        public int dwCardReaderNo; //璇诲崱鍣ㄧ紪鍙凤紝涓�0鏃犳晥
+        public int dwDoorNo; //闂ㄧ紪鍙凤紙妤煎眰缂栧彿锛夛紝涓�0鏃犳晥
+        public int dwVerifyNo; //澶氶噸鍗¤璇佸簭鍙凤紝涓�0鏃犳晥
+        public int dwAlarmInNo;  //鎶ヨ杈撳叆鍙凤紝涓�0鏃犳晥
+        public int dwAlarmOutNo; //鎶ヨ杈撳嚭鍙凤紝涓�0鏃犳晥
+        public int dwCaseSensorNo; //浜嬩欢瑙﹀彂鍣ㄧ紪鍙�
+        public int dwRs485No;    //RS485閫氶亾鍙凤紝涓�0鏃犳晥
+        public int dwMultiCardGroupNo; //缇ょ粍缂栧彿
+        public short wAccessChannel;    //浜哄憳閫氶亾鍙�
+        public byte byDeviceNo; //璁惧缂栧彿锛屼负0鏃犳晥锛堟湁鏁堣寖鍥�1-255锛�
+        public byte byDistractControlNo;//鍒嗘帶鍣ㄧ紪鍙凤紝涓�0鏃犳晥
+        public int dwEmployeeNo; //宸ュ彿锛屼负0鏃犳晥
+        public short wLocalControllerID; //灏卞湴鎺у埗鍣ㄧ紪鍙凤紝0-闂ㄧ涓绘満锛�1-64浠h〃灏卞湴鎺у埗鍣�
+        public byte byInternetAccess; //缃戝彛ID锛氾紙1-涓婅缃戝彛1,2-涓婅缃戝彛2,3-涓嬭缃戝彛1锛�
+        public byte byType;     //闃插尯绫诲瀷锛�0:鍗虫椂闃插尯,1-24灏忔椂闃插尯,2-寤舵椂闃插尯 ,3-鍐呴儴闃插尯锛�4-閽ュ寵闃插尯 5-鐏闃插尯 6-鍛ㄧ晫闃插尯 7-24灏忔椂鏃犲0闃插尯  8-24灏忔椂杈呭姪闃插尯锛�9-24灏忔椂闇囧姩闃插尯,10-闂ㄧ绱ф�ュ紑闂ㄩ槻鍖猴紝11-闂ㄧ绱ф�ュ叧闂ㄩ槻鍖� 0xff-鏃�
+        public byte[] byMACAddr = new byte[MACADDR_LEN]; //鐗╃悊鍦板潃锛屼负0鏃犳晥
+        public byte bySwipeCardType;//鍒峰崱绫诲瀷锛�0-鏃犳晥锛�1-浜岀淮鐮�
+        public byte byEventAttribute; //浜嬩欢灞炴�э細0-鏈畾涔夛紝1-鍚堟硶璁よ瘉锛�2-鍏跺畠
+        public int dwSerialNo; //浜嬩欢娴佹按鍙凤紝涓�0鏃犳晥
+        public byte byChannelControllerID; //閫氶亾鎺у埗鍣↖D锛屼负0鏃犳晥锛�1-涓婚�氶亾鎺у埗鍣紝2-浠庨�氶亾鎺у埗鍣�
+        public byte byChannelControllerLampID; //閫氶亾鎺у埗鍣ㄧ伅鏉縄D锛屼负0鏃犳晥锛堟湁鏁堣寖鍥�1-255锛�
+        public byte byChannelControllerIRAdaptorID; //閫氶亾鎺у埗鍣ㄧ孩澶栬浆鎺ユ澘ID锛屼负0鏃犳晥锛堟湁鏁堣寖鍥�1-255锛�
+        public byte byChannelControllerIREmitterID; //閫氶亾鎺у埗鍣ㄧ孩澶栧灏処D锛屼负0鏃犳晥锛堟湁鏁堣寖鍥�1-255锛�
+        public int dwRecordChannelNum; //褰曞儚閫氶亾鏁扮洰
+        public Pointer pRecordChannelData;//褰曞儚閫氶亾锛屽ぇ灏忎负sizeof(DWORD)* dwRecordChannelNum
+        public byte byUserType; //浜哄憳绫诲瀷锛�0-鏃犳晥锛�1-鏅�氫汉锛堜富浜猴級锛�2-鏉ュ锛堣瀹級锛�3-绂佹鍚嶅崟浜猴紝4-绠$悊鍛�
+        public byte byCurrentVerifyMode; //璇诲崱鍣ㄥ綋鍓嶉獙璇佹柟寮忥細0-鏃犳晥锛�1-浼戠湢锛�2-鍒峰崱+瀵嗙爜锛�3-鍒峰崱锛�4-鍒峰崱鎴栧瘑鐮侊紝5-鎸囩汗锛�6-鎸囩汗+瀵嗙爜锛�7-鎸囩汗鎴栧埛鍗★紝8-鎸囩汗+鍒峰崱锛�9-鎸囩汗+鍒峰崱+瀵嗙爜锛�10-浜鸿劯鎴栨寚绾规垨鍒峰崱鎴栧瘑鐮侊紝11-浜鸿劯+鎸囩汗锛�12-浜鸿劯+瀵嗙爜锛�
+        //13-浜鸿劯+鍒峰崱锛�14-浜鸿劯锛�15-宸ュ彿+瀵嗙爜锛�16-鎸囩汗鎴栧瘑鐮侊紝17-宸ュ彿+鎸囩汗锛�18-宸ュ彿+鎸囩汗+瀵嗙爜锛�19-浜鸿劯+鎸囩汗+鍒峰崱锛�20-浜鸿劯+瀵嗙爜+鎸囩汗锛�21-宸ュ彿+浜鸿劯锛�22-浜鸿劯鎴栦汉鑴�+鍒峰崱锛�23-鎸囩汗鎴栦汉鑴革紝24-鍒峰崱鎴栦汉鑴告垨瀵嗙爜锛�25-鍒峰崱鎴栦汉鑴革紝26-鍒峰崱鎴栦汉鑴告垨鎸囩汗锛�27-鍒峰崱鎴栨寚绾规垨瀵嗙爜
+        public byte byAttendanceStatus;  //鑰冨嫟鐘舵�侊細0-鏈畾涔�,1-涓婄彮锛�2-涓嬬彮锛�3-寮�濮嬩紤鎭紝4-缁撴潫浼戞伅锛�5-寮�濮嬪姞鐝紝6-缁撴潫鍔犵彮
+        public byte byStatusValue;  //鑰冨嫟鐘舵�佸��
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛夛紙瀵逛簬璁惧鏉ヨ锛屽鏋滀娇鐢ㄤ簡宸ュ彿锛堜汉鍛業D锛夊瓧娈碉紝byEmployeeNo涓�瀹氳浼犻�掞紝濡傛灉byEmployeeNo鍙浆鎹负dwEmployeeNo锛岄偅涔堣瀛楁涔熻浼犻�掞紱瀵逛簬涓婂眰骞冲彴鎴栧鎴风鏉ヨ锛屼紭鍏堣В鏋恇yEmployeeNo瀛楁锛屽璇ュ瓧娈典负绌猴紝鍐嶈�冭檻瑙f瀽dwEmployeeNo瀛楁锛�
+        public byte byRes1; //淇濈暀
+        public byte byMask; //鏄惁甯﹀彛缃╋細0-淇濈暀锛�1-鏈煡锛�2-涓嶆埓鍙g僵锛�3-鎴村彛缃�
+        public byte byThermometryUnit; //娴嬫俯鍗曚綅锛�0-鎽勬皬搴︼紙榛樿锛夛紝1-鍗庢皬搴︼紝2-寮�灏旀枃锛�
+        public byte byIsAbnomalTemperature; //鐗瑰緛鎶撴媿娴嬫俯鏄惁娓╁害寮傚父锛�1-鏄紝0-鍚�
+        public float fCurrTemperature; //浜鸿劯娓╁害锛堢簿纭埌灏忔暟鐐瑰悗涓�浣嶏級
+        public NET_VCA_POINT struRegionCoordinates; //浜鸿劯娓╁害鍧愭爣
+        public byte[] byRes = new byte[48];
+    }
+
+    /*
+    闂ㄧ涓绘満鎶ヨ浜嬩欢閰嶇疆缁撴瀯浣�
+     */
+    public static class NET_DVR_ACS_EVENT_CFG extends Structure {
+        public int dwSize;
+        public int dwMajor; //鎶ヨ涓荤被鍨嬶紝鍙傝�冨畯瀹氫箟
+        public int dwMinor; //鎶ヨ娆$被鍨嬶紝鍙傝�冨畯瀹氫箟
+        public NET_DVR_TIME struTime = new NET_DVR_TIME(); //鏃堕棿
+        public byte[] sNetUser = new byte[MAX_NAMELEN];//缃戠粶鎿嶄綔鐨勭敤鎴峰悕
+        public NET_DVR_IPADDR struRemoteHostAddr;//杩滅▼涓绘満鍦板潃
+        public NET_DVR_ACS_EVENT_DETAIL struAcsEventInfo; //璇︾粏鍙傛暟
+        public int dwPicDataLen;   //鍥剧墖鏁版嵁澶у皬锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pPicData;
+        public short wInductiveEventType; //褰掔撼浜嬩欢绫诲瀷锛�0-鏃犳晥锛屽叾浠栧�煎弬瑙�2.2绔犺妭锛屽鎴风鍒ゆ柇璇ュ�间负闈�0鍊煎悗锛屾姤璀︾被鍨嬮�氳繃褰掔撼浜嬩欢绫诲瀷鍖哄垎锛屽惁鍒欓�氳繃鍘熸湁鎶ヨ涓绘绫诲瀷锛坉wMajor銆乨wMinor锛夊尯鍒�
+        public byte byTimeType; //鏃堕棿绫诲瀷锛�0-璁惧鏈湴鏃堕棿锛堥粯璁わ級锛�1-UTC鏃堕棿锛坰truTime鐨勬椂闂达級
+        public byte byRes1;
+        public int dwQRCodeInfoLen; //浜岀淮鐮佷俊鎭暱搴︼紝涓嶄负0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public int dwVisibleLightDataLen; //鐑垚鍍忕浉鏈哄彲瑙佸厜鍥剧墖闀垮害锛屼笉涓�0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public int dwThermalDataLen; //鐑垚鍍忓浘鐗囬暱搴︼紝涓嶄负0鏄〃绀哄悗闈㈠甫鏁版嵁
+        public Pointer pQRCodeInfo; //浜岀淮鐮佷俊鎭寚閽�
+        public Pointer pVisibleLightData; //鐑垚鍍忕浉鏈哄彲瑙佸厜鍥剧墖鎸囬拡
+        public Pointer pThermalData; //鐑垚鍍忓浘鐗囨寚閽�
+        public byte[] byRes = new byte[36];
+    }
+
+    public static final int NET_SDK_MONITOR_ID_LEN = 64;
+
+    public static class NET_DVR_ACS_EVENT_COND extends Structure {
+        public int dwSize;
+        public int dwMajor; //鎶ヨ涓荤被鍨嬶紝鍙傝�冧簨浠朵笂浼犲畯瀹氫箟锛�0-鍏ㄩ儴
+        public int dwMinor; //鎶ヨ娆$被鍨嬶紝鍙傝�冧簨浠朵笂浼犲畯瀹氫箟锛�0-鍏ㄩ儴
+        public NET_DVR_TIME struStartTime; //寮�濮嬫椂闂�
+        public NET_DVR_TIME struEndTime; //缁撴潫鏃堕棿
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鍗″彿
+        public byte[] byName = new byte[NAME_LEN]; //鎸佸崱浜哄鍚�
+        public byte byPicEnable; //鏄惁甯﹀浘鐗囷紝0-涓嶅甫鍥剧墖锛�1-甯﹀浘鐗�
+        public byte byTimeType; //鏃堕棿绫诲瀷锛�0-璁惧鏈湴鏃堕棿锛堥粯璁わ級锛�1-UTC鏃堕棿锛坰truStartTime鍜宻truEndTime鐨勬椂闂达級
+        public byte[] byRes2 = new byte[2]; //淇濈暀
+        public int dwBeginSerialNo; //璧峰娴佹按鍙凤紙涓�0鏃堕粯璁ゅ叏閮級
+        public int dwEndSerialNo; //缁撴潫娴佹按鍙凤紙涓�0鏃堕粯璁ゅ叏閮級
+        public int dwIOTChannelNo; //IOT閫氶亾鍙凤紝0-鏃犳晥
+        public short wInductiveEventType; //褰掔撼浜嬩欢绫诲瀷锛�0-鏃犳晥锛屽叾浠栧�煎弬瑙�2.2绔犺妭锛屽鎴风鍒ゆ柇璇ュ�间负闈�0鍊煎悗锛屾姤璀︾被鍨嬮�氳繃褰掔撼浜嬩欢绫诲瀷鍖哄垎锛屽惁鍒欓�氳繃鍘熸湁鎶ヨ涓绘绫诲瀷锛坉wMajor銆乨wMinor锛夊尯鍒�
+        public byte bySearchType;      //鎼滅储鏂瑰紡锛�0-淇濈暀锛�1-鎸変簨浠舵簮鎼滅储锛堟鏃堕�氶亾鍙蜂负闈炶棰戦�氶亾鍙凤級锛�2-鎸夊竷闃茬偣ID鎼滅储
+        public byte byEventAttribute; //浜嬩欢灞炴�э細0-鏈畾涔夛紝1-鍚堟硶浜嬩欢锛�2-鍏跺畠
+        public byte[] szMonitorID = new byte[NET_SDK_MONITOR_ID_LEN/*64*/];          //甯冮槻鐐笽D锛堢敱璁惧搴忓垪鍙枫�侀�氶亾绫诲瀷銆佺紪鍙风粍鎴愶紝渚嬪闂ㄧ鐐癸細璁惧搴忓垪鍙�+鈥淒OOR鈥�+闂ㄧ紪鍙凤級
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛�
+        public byte[] byRes = new byte[140]; //淇濈暀
+    }
+
+    public static class NET_DVR_ACS_WORK_STATUS_V50 extends Structure {
+        public int dwSize;
+        public byte[] byDoorLockStatus = new byte[MAX_DOOR_NUM_256]; //闂ㄩ攣鐘舵��(缁х數鍣ㄥ紑鍚堢姸鎬�)锛�0-姝e父鍏筹紝1-姝e父寮�锛�2-鐭矾鎶ヨ锛�3-鏂矾鎶ヨ锛�4-寮傚父鎶ヨ
+        public byte[] byDoorStatus = new byte[MAX_DOOR_NUM_256]; //闂ㄧ姸鎬�(妤煎眰鐘舵��)锛�1-浼戠湢锛�2-甯稿紑鐘舵��(鑷敱)锛�3-甯搁棴鐘舵��(绂佺敤)锛�4-鏅�氱姸鎬�(鍙楁帶)
+        public byte[] byMagneticStatus = new byte[MAX_DOOR_NUM_256]; //闂ㄧ鐘舵�侊紝0-姝e父鍏筹紝1-姝e父寮�锛�2-鐭矾鎶ヨ锛�3-鏂矾鎶ヨ锛�4-寮傚父鎶ヨ
+        public byte[] byCaseStatus = new byte[MAX_CASE_SENSOR_NUM]; //浜嬩欢瑙﹀彂鍣ㄧ姸鎬侊紝0-鏃犺緭鍏ワ紝1-鏈夎緭鍏�
+        public short wBatteryVoltage; //钃勭數姹犵數鍘嬪�硷紝瀹為檯鍊间箻10锛屽崟浣嶏細浼忕壒
+        public byte byBatteryLowVoltage; //钃勭數姹犳槸鍚﹀浜庝綆鍘嬬姸鎬侊紝0-鍚︼紝1-鏄�
+        public byte byPowerSupplyStatus; //璁惧渚涚數鐘舵�侊紝1-浜ゆ祦鐢典緵鐢碉紝2-钃勭數姹犱緵鐢�
+        public byte byMultiDoorInterlockStatus; //澶氶棬浜掗攣鐘舵�侊紝0-鍏抽棴锛�1-寮�鍚�
+        public byte byAntiSneakStatus; //鍙嶆綔鍥炵姸鎬侊紝0-鍏抽棴锛�1-寮�鍚�
+        public byte byHostAntiDismantleStatus; //涓绘満闃叉媶鐘舵�侊紝0-鍏抽棴锛�1-寮�鍚�
+        public byte byIndicatorLightStatus; //鎸囩ず鐏姸鎬侊紝0-鎺夌嚎锛�1-鍦ㄧ嚎
+        public byte[] byCardReaderOnlineStatus = new byte[MAX_CARD_READER_NUM_512]; //璇诲崱鍣ㄥ湪绾跨姸鎬侊紝0-涓嶅湪绾匡紝1-鍦ㄧ嚎
+        public byte[] byCardReaderAntiDismantleStatus = new byte[MAX_CARD_READER_NUM_512]; //璇诲崱鍣ㄩ槻鎷嗙姸鎬侊紝0-鍏抽棴锛�1-寮�鍚�
+        public byte[] byCardReaderVerifyMode = new byte[MAX_CARD_READER_NUM_512]; //璇诲崱鍣ㄥ綋鍓嶉獙璇佹柟寮忥紝1-浼戠湢锛�2-鍒峰崱+瀵嗙爜锛�3-鍒峰崱锛�4-鍒峰崱鎴栧瘑鐮�
+        public byte[] bySetupAlarmStatus = new byte[MAX_ALARMHOST_ALARMIN_NUM];//鎶ヨ杈撳叆鍙e竷闃茬姸鎬侊紝0-瀵瑰簲鎶ヨ杈撳叆鍙e浜庢挙闃茬姸鎬侊紝1-瀵瑰簲鎶ヨ杈撳叆鍙e浜庡竷闃茬姸鎬�
+        public byte[] byAlarmInStatus = new byte[MAX_ALARMHOST_ALARMIN_NUM]; //鎸変綅琛ㄧず鎶ヨ杈撳叆鍙f姤璀︾姸鎬侊紝0-瀵瑰簲鎶ヨ杈撳叆鍙e綋鍓嶆棤鎶ヨ锛�1-瀵瑰簲鎶ヨ杈撳叆鍙e綋鍓嶆湁鎶ヨ
+        public byte[] byAlarmOutStatus = new byte[MAX_ALARMHOST_ALARMOUT_NUM]; //鎸変綅琛ㄧず鎶ヨ杈撳嚭鍙g姸鎬侊紝0-瀵瑰簲鎶ヨ杈撳嚭鍙f棤鎶ヨ锛�1-瀵瑰簲鎶ヨ杈撳嚭鍙f湁鎶ヨ
+        public int dwCardNum; //宸叉坊鍔犵殑鍗℃暟閲�
+        public byte byFireAlarmStatus; //娑堥槻鎶ヨ鐘舵�佹樉绀猴細0-姝e父銆�1-鐭矾鎶ヨ銆�2-鏂紑鎶ヨ
+        public byte byBatteryChargeStatus; //鐢垫睜鍏呯數鐘舵�侊細0-鏃犳晥锛�1-鍏呯數涓紱2-鏈厖鐢�
+        public byte byMasterChannelControllerStatus; //涓婚�氶亾鎺у埗鍣ㄥ湪绾跨姸鎬侊細0-鏃犳晥锛�1-涓嶅湪绾匡紱2-鍦ㄧ嚎
+        public byte bySlaveChannelControllerStatus; //浠庨�氶亾鎺у埗鍣ㄥ湪绾跨姸鎬侊細0-鏃犳晥锛�1-涓嶅湪绾匡紱2-鍦ㄧ嚎
+        public byte byAntiSneakServerStatus; //鍙嶆綔鍥炴湇鍔″櫒鐘舵�侊細0-鏃犳晥锛�1-鏈惎鐢紝2-姝e父锛�3-鏂紑
+        public byte[] byRes3 = new byte[3];
+        public int dwAllowFaceNum; //宸叉坊鍔犵殑鍏佽鍚嶅崟浜鸿劯鏁伴噺锛堥�氳繃鑳藉姏闆嗗垽鏂級
+        public int dwBlockFaceNum; //宸叉坊鍔犵殑绂佹鍚嶅崟浜鸿劯鏁伴噺锛堥�氳繃鑳藉姏闆嗗垽鏂級
+        public byte[] byRes2 = new byte[108];
+    }
+
+    public static final int ACS_PARAM_DOOR_STATUS_WEEK_PLAN = 0x00000001;//闂ㄧ姸鎬佸懆璁″垝鍙傛暟
+    public static final int ACS_PARAM_VERIFY_WEEK_PALN = 0x00000002; //璇诲崱鍣ㄥ懆璁″垝鍙傛暟
+    public static final int ACS_PARAM_CARD_RIGHT_WEEK_PLAN = 0x00000004; //鍗℃潈闄愬懆璁″垝鍙傛暟
+    public static final int ACS_PARAM_DOOR_STATUS_HOLIDAY_PLAN = 0x00000008; //闂ㄧ姸鎬佸亣鏃ヨ鍒掑弬鏁�
+    public static final int ACS_PARAM_VERIFY_HOLIDAY_PALN = 0x00000010; //璇诲崱鍣ㄥ亣鏃ヨ鍒掑弬鏁�
+    public static final int ACS_PARAM_CARD_RIGHT_HOLIDAY_PLAN = 0x00000020; //鍗℃潈闄愬亣鏃ヨ鍒掑弬鏁�
+    public static final int ACS_PARAM_DOOR_STATUS_HOLIDAY_GROUP = 0x00000040; //闂ㄧ姸鎬佸亣鏃ョ粍鍙傛暟
+    public static final int ACS_PARAM_VERIFY_HOLIDAY_GROUP = 0x00000080;//璇诲崱鍣ㄩ獙璇佹柟寮忓亣鏃ョ粍鍙傛暟
+    public static final int ACS_PARAM_CARD_RIGHT_HOLIDAY_GROUP = 0x00000100; //鍗℃潈闄愬亣鏃ョ粍鍙傛暟
+    public static final int ACS_PARAM_DOOR_STATUS_PLAN_TEMPLATE = 0x00000200;//闂ㄧ姸鎬佽鍒掓ā鏉垮弬鏁�
+    public static final int ACS_PARAM_VERIFY_PALN_TEMPLATE = 0x00000400; //璇诲崱鍣ㄩ獙璇佹柟寮忚鍒掓ā鏉垮弬鏁�
+    public static final int ACS_PARAM_CARD_RIGHT_PALN_TEMPLATE = 0x00000800; //鍗℃潈闄愯鍒掓ā鏉垮弬鏁�
+    public static final int ACS_PARAM_CARD = 0x00001000; //鍗″弬鏁�
+    public static final int ACS_PARAM_GROUP = 0x00002000; //缇ょ粍鍙傛暟
+    public static final int ACS_PARAM_ANTI_SNEAK_CFG = 0x00004000; //鍙嶆綔鍥炲弬鏁�
+    public static final int ACS_PAPAM_EVENT_CARD_LINKAGE = 0x00008000; //浜嬩欢鍙婂崱鍙疯仈鍔ㄥ弬鏁�
+    public static final int ACS_PAPAM_CARD_PASSWD_CFG = 0x00010000; //瀵嗙爜寮�闂ㄤ娇鑳藉弬鏁�
+    public static final int ACS_PARAM_PERSON_STATISTICS_CFG = 0x00020000; //浜烘暟缁熻鍙傛暟
+    public static final int ACS_PARAM_BLOCKLIST_PICTURE = 0x00040000; //绂佹鍚嶅崟鍥剧墖鍙傛暟
+    public static final int ACS_PARAM_ID_BLOCKLIST = 0x00080000; //韬唤璇佺姝㈠悕鍗曞弬鏁�
+    public static final int ACS_PARAM_EXAM_INFO = 0x00100000; //鑰冭瘯淇℃伅鍙傛暟
+    public static final int ACS_PARAM_EXAMINEE_INFO = 0x00200000; //鑰冪敓淇℃伅鍙傛暟
+    public static final int ACS_PARAM_FAILED_FACE_INFO = 0x00400000; //鍗囩骇璁惧浜鸿劯寤烘ā澶辫触璁板綍
+
+    public static class NET_DVR_ACS_PARAM_TYPE extends Structure {
+        public int dwSize;
+        public int dwParamType; //鍙傛暟绫诲瀷锛屾寜浣嶈〃绀�
+
+        public short wLocalControllerID; //灏卞湴鎺у埗鍣ㄥ簭鍙穂1,64],0浠h〃闂ㄧ涓绘満
+        public byte[] byRes = new byte[30];
+    }
+
+
+    public static class NET_DVR_FACE_PARAM_COND extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];    //浜鸿劯鍏宠仈鐨勫崱鍙�
+        public byte[] byEnableCardReader = new byte[MAX_CARD_READER_NUM_512];  //浜鸿劯鐨勮鍗″櫒鏄惁鏈夋晥锛�0-鏃犳晥锛�1-鏈夋晥
+        public int dwFaceNum;    //璁剧疆鎴栬幏鍙栦汉鑴告暟閲忥紝鑾峰彇鏃剁疆涓�0xffffffff琛ㄧず鑾峰彇鎵�鏈変汉鑴镐俊鎭�
+        public byte byFaceID;     //浜鸿劯缂栧彿锛屾湁鏁堝�艰寖鍥翠负1-2   0xff琛ㄧず璇ュ崱鎵�鏈変汉鑴�
+        public byte[] byRes = new byte[127];   //淇濈暀
+    }
+
+    public static class NET_DVR_FACE_PARAM_CFG extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN];    //浜鸿劯鍏宠仈鐨勫崱鍙�
+        public int dwFaceLen;    //浜鸿劯鏁版嵁闀垮害<DES鍔犲瘑澶勭悊>锛岃澶囩杩斿洖鐨勫嵆鍔犲瘑鍚庣殑鏁版嵁
+        public Pointer pFaceBuffer;  //浜鸿劯鏁版嵁鎸囬拡
+        public byte[] byEnableCardReader = new byte[MAX_CARD_READER_NUM_512];  //闇�瑕佷笅鍙戜汉鑴哥殑璇诲崱鍣紝鎸夋暟缁勮〃绀猴紝浠庝綆浣嶅埌楂樹綅琛ㄧず锛�0-涓嶄笅鍙戣璇诲崱鍣紝1-涓嬪彂鍒拌璇诲崱鍣�
+        public byte byFaceID;     //浜鸿劯缂栧彿锛屾湁鏁堝�艰寖鍥翠负1-2
+        public byte byFaceDataType;   //浜鸿劯鏁版嵁绫诲瀷锛�0-妯℃澘锛堥粯璁わ級锛�1-鍥剧墖
+        public byte[] byRes = new byte[126];
+    }
+
+    public static class NET_DVR_FACE_PARAM_STATUS extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //浜鸿劯鍏宠仈鐨勫崱鍙�
+        public byte[] byCardReaderRecvStatus = new byte[MAX_CARD_READER_NUM_512];  //浜鸿劯璇诲崱鍣ㄧ姸鎬侊紝鎸夊瓧鑺傝〃绀猴紝0-澶辫触锛�1-鎴愬姛锛�2-閲嶈瘯鎴栦汉鑴歌川閲忓樊锛�3-鍐呭瓨宸叉弧锛�4-宸插瓨鍦ㄨ浜鸿劯锛�5-闈炴硶浜鸿劯ID
+        public byte[] byErrorMsg = new byte[ERROR_MSG_LEN]; //涓嬪彂閿欒淇℃伅锛屽綋byCardReaderRecvStatus涓�4鏃讹紝琛ㄧず宸插瓨鍦ㄤ汉鑴稿搴旂殑鍗″彿
+        public int dwCardReaderNo;  //绾硅鍗″櫒缂栧彿锛屽彲鐢ㄤ簬涓嬪彂閿欒杩斿洖
+        public byte byTotalStatus;  //涓嬪彂鎬荤殑鐘舵�侊紝0-褰撳墠浜鸿劯鏈笅瀹屾墍鏈夎鍗″櫒锛�1-宸蹭笅瀹屾墍鏈夎鍗″櫒(杩欓噷鐨勬墍鏈夋寚鐨勬槸闂ㄧ涓绘満寰�鎵�鏈夌殑璇诲崱鍣ㄤ笅鍙戜簡锛屼笉绠℃垚鍔熶笌鍚�)
+        public byte byFaceID;     //浜鸿劯缂栧彿锛屾湁鏁堝�艰寖鍥翠负1-2
+        public byte[] byRes = new byte[130];
+    }
+
+    public static class NET_DVR_FACE_PARAM_BYCARD extends Structure {
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //浜鸿劯鍏宠仈鐨勫崱鍙�
+        public byte[] byEnableCardReader = new byte[MAX_CARD_READER_NUM_512];  //浜鸿劯鐨勮鍗″櫒淇℃伅锛屾寜鏁扮粍琛ㄧず
+        public byte[] byFaceID = new byte[MAX_FACE_NUM];        //闇�瑕佸垹闄ょ殑浜鸿劯缂栧彿锛屾寜鏁扮粍涓嬫爣锛屽�艰〃绀�0-涓嶅垹闄わ紝1-鍒犻櫎璇ヤ汉鑴�
+        public byte[] byRes1 = new byte[42];          //淇濈暀
+    }
+
+    public static class NET_DVR_FACE_PARAM_BYREADER extends Structure {
+        public int dwCardReaderNo;  //鎸夊�艰〃绀猴紝浜鸿劯璇诲崱鍣ㄧ紪鍙�
+        public byte byClearAllCard;  //鏄惁鍒犻櫎鎵�鏈夊崱鐨勪汉鑴镐俊鎭紝0-鎸夊崱鍙峰垹闄や汉鑴镐俊鎭紝1-鍒犻櫎鎵�鏈夊崱鐨勪汉鑴镐俊鎭�
+        public byte[] byRes1 = new byte[3];       //淇濈暀
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //浜鸿劯鍏宠仈鐨勫崱鍙�
+        public byte[] byRes = new byte[548];          //淇濈暀
+    }
+
+    public static class NET_DVR_DEL_FACE_PARAM_MODE extends Union {
+        public byte[] uLen = new byte[588];   //鑱斿悎浣撻暱搴�
+        public NET_DVR_FACE_PARAM_BYCARD struByCard;     //鎸夊崱鍙风殑鏂瑰紡鍒犻櫎
+        public NET_DVR_FACE_PARAM_BYREADER struByReader;   //鎸夎鍗″櫒鐨勬柟寮忓垹闄�
+    }
+
+    public static class NET_DVR_CHECK_FACE_PICTURE_COND extends Structure {
+        public int dwSize;
+        public int dwPictureNum; //鍥剧墖鏁伴噺
+        public byte byCheckTemplate; //0-鏍¢獙鍥剧墖鏄惁鍚堟硶锛堥粯璁わ級锛�1-鏍¢獙鍥剧墖鍜屽缓妯℃暟鎹槸鍚﹀尮閰�
+        public byte[] byRes = new byte[127];
+    }
+
+    public static class NET_DVR_CHECK_FACE_PICTURE_CFG extends Structure {
+        public int dwSize;
+        public int dwPictureNo; //鍥剧墖缂栧彿
+        public int dwPictureLen; //鍥剧墖闀垮害锛堝浘鐗囧ぇ灏忎笉瓒呰繃200k锛�
+        public Pointer pPictureBuffer; //鍥剧墖鎸囬拡
+        public int dwFaceTemplateLen;  //浜鸿劯寤烘ā鏁版嵁闀垮害
+        public Pointer pFaceTemplateBuffer;   //浜鸿劯寤烘ā鏁版嵁鎸囬拡
+        public byte[] byRes = new byte[248];
+    }
+
+    public static class NET_DVR_CHECK_FACE_PICTURE_STATUS extends Structure {
+        public int dwSize;
+        public int dwPictureNo; //鍥剧墖缂栧彿
+        public byte byCheckStatus; //鏍¢獙缁撴灉锛�0-鏃犳晥锛�1-寤烘ā鎴愬姛锛�2-寤烘ā澶辫触锛�3-浜鸿劯妯″潡閫氳寮傚父锛�4-鍥惧儚鏃犱汉鑴革紝5-浜鸿劯鏈濅笂锛�6-浜鸿劯鏈濅笅锛�7-浜鸿劯鍋忓乏锛�8-浜鸿劯鍋忓彸锛�9-浜鸿劯椤烘椂鏃嬭浆锛�
+        //10 - 浜鸿劯閫嗘椂鏃嬭浆锛�11-浜虹溂闂磋窛灏忥紝12-浜鸿劯鍜屾ā鏉垮尮閰嶏紝13-浜鸿劯鍜屾ā鏉夸笉鍖归厤,14-浼犺緭鏁版嵁鏈夎
+        public byte[] byRes = new byte[127];
+    }
+
+    public static class NET_DVR_FINGER_PRINT_CFG_V50 extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鎸囩汗鍏宠仈鐨勫崱鍙�
+        public int dwFingerPrintLen;    //鎸囩汗鏁版嵁闀垮害
+        public byte[] byEnableCardReader = new byte[MAX_CARD_READER_NUM_512];  //闇�瑕佷笅鍙戞寚绾圭殑璇诲崱鍣紝鎸夋暟缁勮〃绀猴紝浠庝綆浣嶅埌楂樹綅琛ㄧず锛�0-涓嶄笅鍙戣璇诲崱鍣紝1-涓嬪彂鍒拌璇诲崱鍣�
+        public byte byFingerPrintID;     //鎵嬫寚缂栧彿锛屾湁鏁堝�艰寖鍥翠负1-10
+        public byte byFingerType;       //鎸囩汗绫诲瀷  0-鏅�氭寚绾癸紝1-鑳佽揩鎸囩汗锛�2-宸℃洿鎸囩汗锛�3-瓒呯骇鎸囩汗锛�4-瑙i櫎鎸囩汗
+        public byte[] byRes1 = new byte[30];
+        public byte[] byFingerData = new byte[MAX_FINGER_PRINT_LEN];        //鎸囩汗鏁版嵁鍐呭
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛�
+        public byte[] byLeaderFP = new byte[MAX_DOOR_NUM_256]; //瀵归棬鏄惁鏈夐娆¤璇佸姛鑳斤紙鎸夊瓧鑺傝〃绀猴級锛�0-鏃犻娆¤璇佸姛鑳斤紝1-鏈夐娆¤璇佸姛鑳�
+        public byte[] byRes = new byte[128];
+    }
+
+    public static class NET_DVR_FINGER_PRINT_STATUS_V50 extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鎸囩汗鍏宠仈鐨勫崱鍙�
+        public byte[] byCardReaderRecvStatus = new byte[MAX_CARD_READER_NUM_512];  //鎸囩汗璇诲崱鍣ㄧ姸鎬侊紝鎸夊瓧鑺傝〃绀猴紝0-澶辫触锛�1-鎴愬姛锛�2-璇ユ寚绾规ā缁勪笉鍦ㄧ嚎锛�3-閲嶈瘯鎴栨寚绾硅川閲忓樊锛�4-鍐呭瓨宸叉弧锛�5-宸插瓨鍦ㄨ鎸囩汗锛�6-宸插瓨鍦ㄨ鎸囩汗ID锛�7-闈炴硶鎸囩汗ID锛�8-璇ユ寚绾规ā缁勬棤闇�閰嶇疆锛�10-鎸囩汗璇诲崱鍣ㄧ増鏈繃浣庯紙鏃犳硶鏀寔宸ュ彿锛�
+        public byte byFingerPrintID;     //鎵嬫寚缂栧彿锛屾湁鏁堝�艰寖鍥翠负1-10
+        public byte byFingerType;       //鎸囩汗绫诲瀷  0-鏅�氭寚绾癸紝1-鑳佽揩鎸囩汗锛�2-宸℃洿鎸囩汗锛�3-瓒呯骇鎸囩汗锛�4-瑙i櫎鎸囩汗
+        public byte byTotalStatus;  //涓嬪彂鎬荤殑鐘舵�侊紝0-褰撳墠鎸囩汗鏈笅瀹屾墍鏈夎鍗″櫒锛�1-宸蹭笅瀹屾墍鏈夎鍗″櫒(杩欓噷鐨勬墍鏈夋寚鐨勬槸闂ㄧ涓绘満寰�鎵�鏈夌殑璇诲崱鍣ㄤ笅鍙戜簡锛屼笉绠℃垚鍔熶笌鍚�)
+        public byte byRecvStatus;    //涓绘満閿欒鐘舵�侊細0-鎴愬姛锛�1-鎵嬫寚缂栧彿閿欒锛�2-鎸囩汗绫诲瀷閿欒锛�3-鍗″彿閿欒锛堝崱鍙疯鏍间笉绗﹀悎璁惧瑕佹眰锛夛紝4-鎸囩汗鏈叧鑱斿伐鍙锋垨鍗″彿锛堝伐鍙锋垨鍗″彿瀛楁涓虹┖锛夛紝5-宸ュ彿涓嶅瓨鍦紝6-鎸囩汗鏁版嵁闀垮害涓�0锛�7-璇诲崱鍣ㄧ紪鍙烽敊璇紝8-宸ュ彿閿欒
+        public byte[] byErrorMsg = new byte[ERROR_MSG_LEN]; //涓嬪彂閿欒淇℃伅锛屽綋byCardReaderRecvStatus涓�5鏃讹紝琛ㄧず宸插瓨鍦ㄦ寚绾瑰搴旂殑鍗″彿
+        public int dwCardReaderNo;  //褰揵yCardReaderRecvStatus涓�5鏃讹紝琛ㄧず宸插瓨鍦ㄦ寚绾瑰搴旂殑鎸囩汗璇诲崱鍣ㄧ紪鍙凤紝鍙敤浜庝笅鍙戦敊璇繑鍥炪��0鏃惰〃绀烘棤閿欒淇℃伅
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛�
+        public byte[] byErrorEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //涓嬪彂閿欒淇℃伅锛屽綋byCardReaderRecvStatus涓�5鏃讹紝琛ㄧず宸插瓨鍦ㄦ寚绾瑰搴旂殑宸ュ彿锛堜汉鍛業D锛�
+        public byte[] byRes = new byte[128];
+    }
+
+    public static class NET_DVR_FINGER_PRINT_INFO_COND_V50 extends Structure {
+        public int dwSize;
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鎸囩汗鍏宠仈鐨勫崱鍙凤紙璇ュ瓧娈佃幏鍙栨椂鏈夋晥锛岃缃椂鏃犳晥锛�
+        public byte[] byEnableCardReader = new byte[MAX_CARD_READER_NUM_512];  //鎸囩汗鐨勮鍗″櫒鏄惁鏈夋晥锛�0-鏃犳晥锛�1-鏈夋晥
+        public int dwFingerPrintNum; //璁剧疆鎴栬幏鎸囩汗鏁伴噺锛岃幏鍙栨椂缃负0xffffffff琛ㄧず鑾峰彇鎵�鏈夋寚绾逛俊鎭�
+        public byte byFingerPrintID;     //鎵嬫寚缂栧彿锛屾湁鏁堝�艰寖鍥翠负1-10   0xff琛ㄧず璇ュ崱鎵�鏈夋寚绾�
+        public byte byCallBackMode;     //璁惧鍥炶皟鏂瑰紡锛�0-璁惧鎵�鏈夎鍗″櫒涓嬪畬浜嗚繑鍥烇紝1-鍦ㄦ椂闂存鍐呬笅浜嗛儴鍒嗕篃杩斿洖
+        public byte[] byRes2 = new byte[2];          //淇濈暀
+        public byte[] byEmployeeNo = new byte[NET_SDK_EMPLOYEE_NO_LEN]; //宸ュ彿锛堜汉鍛業D锛�
+        public byte[] byRes1 = new byte[128];          //淇濈暀
+    }
+
+    public static class NET_DVR_GROUP_CFG extends Structure {
+        public int dwSize;
+        public byte byEnable; //鏄惁鍚敤锛�0-涓嶅惎鐢紝1-鍚敤
+        public byte[] byRes1 = new byte[3];
+        public NET_DVR_VALID_PERIOD_CFG struValidPeriodCfg = new NET_DVR_VALID_PERIOD_CFG(); //缇ょ粍鏈夋晥鏈熷弬鏁�
+        public byte[] byGroupName = new byte[32]; //缇ょ粍鍚嶇О
+        public byte[] byRes2 = new byte[32];
+    }
+
+    public static class NET_DVR_MULTI_CARD_CFG_V50 extends Structure {
+        public int dwSize;
+        public byte byEnable;
+        public byte bySwipeIntervalTimeout;
+        public byte[] byRes1 = new byte[2];
+        public NET_DVR_MULTI_CARD_GROUP_CFG_V50[] struGroupCfg = (NET_DVR_MULTI_CARD_GROUP_CFG_V50[]) new NET_DVR_MULTI_CARD_GROUP_CFG_V50().toArray(20);
+        public byte[] byRes2 = new byte[32];
+    }
+
+    public static class NET_DVR_MULTI_CARD_GROUP_CFG_V50 extends Structure {
+        public byte byEnable;
+        public byte byEnableOfflineVerifyMode;
+        public byte[] byRes1 = new byte[2];
+        public int dwTemplateNo;
+        public NET_DVR_GROUP_COMBINATION_INFO_V50[] struGroupCombination = (NET_DVR_GROUP_COMBINATION_INFO_V50[]) new NET_DVR_GROUP_COMBINATION_INFO_V50().toArray(8);
+    }
+
+    public static class NET_DVR_GROUP_COMBINATION_INFO_V50 extends Structure {
+        public byte byEnable;
+        public byte byMemberNum;
+        public byte bySequenceNo;
+        public byte byRes;
+        public int dwGroupNo;
+    }
+
+
+    //鑷畾涔夌粨鏋勪綋锛岀敤浜庝簩缁存暟缁勮浆鎹�
+    public static class NET_DVR_SINGLE_PLAN_SEGMENT_WEEK extends Structure {
+        public NET_DVR_SINGLE_PLAN_SEGMENT[] struPlanCfgDay = new NET_DVR_SINGLE_PLAN_SEGMENT[MAX_TIMESEGMENT_V30]; //涓�澶╃殑璁″垝鍙傛暟
+    }
+
+    public static class NET_DVR_WEEK_PLAN_CFG extends Structure {
+        public int dwSize;
+        public byte byEnable;  //鏄惁浣胯兘锛�1-浣胯兘锛�0-涓嶄娇鑳�
+        public byte[] byRes1 = new byte[3];
+        public NET_DVR_SINGLE_PLAN_SEGMENT_WEEK[] struPlanCfg = new NET_DVR_SINGLE_PLAN_SEGMENT_WEEK[MAX_DAYS]; //鍛ㄨ鍒掑弬鏁�
+        public byte[] byRes2 = new byte[16];
+    }
+
+    public static class NET_DVR_SINGLE_PLAN_SEGMENT extends Structure {
+        public byte byEnable; //鏄惁浣胯兘锛�1-浣胯兘锛�0-涓嶄娇鑳�
+        public byte byDoorStatus; //闂ㄧ姸鎬佹ā寮忥紙姊帶妯″紡锛夛紝0-鏃犳晥锛�1-甯稿紑鐘舵�侊紙鑷敱锛夛紝2-甯搁棴鐘舵�侊紙绂佺敤锛夛紝3-鏅�氱姸鎬侊紙闂ㄧ姸鎬佽鍒掍娇鐢級
+        public byte byVerifyMode; //楠岃瘉鏂瑰紡锛�0-鏃犳晥锛�1-鍒峰崱锛�2-鍒峰崱+瀵嗙爜(璇诲崱鍣ㄩ獙璇佹柟寮忚鍒掍娇鐢�)锛�3-鍒峰崱,4-鍒峰崱鎴栧瘑鐮�(璇诲崱鍣ㄩ獙璇佹柟寮忚鍒掍娇鐢�), 5-鎸囩汗锛�6-鎸囩汗+瀵嗙爜锛�7-鎸囩汗鎴栧埛鍗★紝8-鎸囩汗+鍒峰崱锛�9-鎸囩汗+鍒峰崱+瀵嗙爜锛堟棤鍏堝悗椤哄簭锛夛紝10-浜鸿劯鎴栨寚绾规垨鍒峰崱鎴栧瘑鐮侊紝11-浜鸿劯+鎸囩汗锛�12-浜鸿劯+瀵嗙爜锛�
+        //13-浜鸿劯+鍒峰崱锛�14-浜鸿劯锛�15-宸ュ彿+瀵嗙爜锛�16-鎸囩汗鎴栧瘑鐮侊紝17-宸ュ彿+鎸囩汗锛�18-宸ュ彿+鎸囩汗+瀵嗙爜锛�19-浜鸿劯+鎸囩汗+鍒峰崱锛�20-浜鸿劯+瀵嗙爜+鎸囩汗锛�21-宸ュ彿+浜鸿劯锛�22-浜鸿劯鎴栦汉鑴�+鍒峰崱
+        public byte[] byRes = new byte[5];
+        public NET_DVR_TIME_SEGMENT struTimeSegment; //鏃堕棿娈靛弬鏁�
+    }
+
+
+    public static class NET_DVR_TIME_SEGMENT extends Structure {
+        public NET_DVR_SIMPLE_DAYTIME struBeginTime; //寮�濮嬫椂闂寸偣
+        public NET_DVR_SIMPLE_DAYTIME struEndTime;   //缁撴潫鏃堕棿鐐�
+    }
+
+    public static class NET_DVR_SIMPLE_DAYTIME extends Structure {
+        public byte byHour; //鏃�
+        public byte byMinute; //鍒�
+        public byte bySecond; //绉�
+        public byte byRes;
+    }
+
+    public static class NET_DVR_WEEK_PLAN_COND extends Structure {
+        public int dwSize;
+        public int dwWeekPlanNumber; //鍛ㄨ鍒掔紪鍙�
+        public short wLocalControllerID; //灏卞湴鎺у埗鍣ㄥ簭鍙穂1,64]
+        public byte[] byRes = new byte[106];
+    }
+
+    public static final int TEMPLATE_NAME_LEN = 32;      //璁″垝妯℃澘鍚嶇О闀垮害
+    public static final int MAX_HOLIDAY_GROUP_NUM = 16;  //璁″垝妯℃澘鏈�澶у亣鏃ョ粍鏁�
+
+    public static class NET_DVR_PLAN_TEMPLATE extends Structure {
+        public int dwSize;
+        public byte byEnable; //鏄惁鍚敤锛�1-鍚敤锛�0-涓嶅惎鐢�
+        public byte[] byRes1 = new byte[3];
+        public byte[] byTemplateName = new byte[TEMPLATE_NAME_LEN]; //妯℃澘鍚嶇О
+        public int dwWeekPlanNo; //鍛ㄨ鍒掔紪鍙凤紝0涓烘棤鏁�
+        public int[] dwHolidayGroupNo = new int[MAX_HOLIDAY_GROUP_NUM]; //鍋囨棩缁勭紪鍙凤紝灏卞墠濉厖锛岄亣0鏃犳晥
+        public byte[] byRes2 = new byte[32];
+    }
+
+    public static class NET_DVR_PLAN_TEMPLATE_COND extends Structure {
+        public int dwSize;
+        public int dwPlanTemplateNumber; //璁″垝妯℃澘缂栧彿锛屼粠1寮�濮嬶紝鏈�澶у�间粠闂ㄧ鑳藉姏闆嗚幏鍙�
+        public short wLocalControllerID; //灏卞湴鎺у埗鍣ㄥ簭鍙穂1,64]锛�0鏃犳晥
+        public byte[] byRes = new byte[106];
+    }
+
+    public static class NET_DVR_CAPTURE_FACE_COND extends Structure {
+        public int dwSize;
+        public byte[] byRes = new byte[128];
+    }
+
+    public static class NET_DVR_FACE_FEATURE extends Structure {
+        public NET_VCA_RECT struFace; //浜鸿劯瀛愬浘鍖哄煙
+        public NET_VCA_POINT struLeftEye;    // 宸︾溂鍧愭爣
+        public NET_VCA_POINT struRightEye;   // 鍙崇溂鍧愭爣
+        public NET_VCA_POINT struLeftMouth;  // 鍢村乏杈瑰潗鏍�
+        public NET_VCA_POINT struRightMouth; // 鍢村彸杈瑰潗鏍�
+        public NET_VCA_POINT struNoseTip;   // 榧诲瓙鍧愭爣
+    }
+
+    public static class NET_DVR_CAPTURE_FACE_CFG extends Structure {
+        public int dwSize;
+        public int dwFaceTemplate1Size;  //浜鸿劯妯℃澘1鏁版嵁澶у皬锛岀瓑浜�0鏃讹紝浠h〃鏃犱汉鑴告ā鏉�1鏁版嵁
+        public Pointer pFaceTemplate1Buffer; //浜鸿劯妯℃澘1鏁版嵁缂撳瓨锛堜笉澶т簬2.5k锛�
+        public int dwFaceTemplate2Size;  //浜鸿劯妯℃澘2鏁版嵁澶у皬锛岀瓑浜�0鏃讹紝浠h〃鏃犱汉鑴告ā鏉�2鏁版嵁
+        public Pointer pFaceTemplate2Buffer; //浜鸿劯妯℃澘2鏁版嵁缂撳瓨锛堜笉澶т簬2.5K锛�
+        public int dwFacePicSize;        //浜鸿劯鍥剧墖鏁版嵁澶у皬锛岀瓑浜�0鏃讹紝浠h〃鏃犱汉鑴稿浘鐗囨暟鎹�
+        public Pointer pFacePicBuffer;       //浜鸿劯鍥剧墖鏁版嵁缂撳瓨
+        public byte byFaceQuality1;        //浜鸿劯璐ㄩ噺锛岃寖鍥�1-100
+        public byte byFaceQuality2;        //浜鸿劯璐ㄩ噺锛岃寖鍥�1-100
+        public byte byCaptureProgress;    //閲囬泦杩涘害锛岀洰鍓嶅彧鏈変袱绉嶈繘搴﹀�硷細0-鏈噰闆嗗埌浜鸿劯锛�100-閲囬泦鍒颁汉鑴革紙鍙湁鍦ㄨ繘搴︿负100鏃讹紝鎵嶈В鏋愪汉鑴镐俊鎭級
+        public byte byFacePicQuality;  //浜鸿劯鍥剧墖涓汉鑴歌川閲�
+        public int dwInfraredFacePicSize;   //绾㈠浜鸿劯鍥剧墖鏁版嵁澶у皬锛岀瓑浜�0鏃讹紝浠h〃鏃犱汉鑴稿浘鐗囨暟鎹�
+        public Pointer pInfraredFacePicBuffer;      //绾㈠浜鸿劯鍥剧墖鏁版嵁缂撳瓨
+        public byte byInfraredFacePicQuality;  //绾㈠浜鸿劯鍥剧墖涓汉鑴歌川閲�
+        public byte[] byRes1 = new byte[3];
+        public NET_DVR_FACE_FEATURE struFeature = new NET_DVR_FACE_FEATURE(); //浜鸿劯鎶犲浘鐗瑰緛淇℃伅
+        public byte[] byRes = new byte[56];
+    }
+
+    public static class NET_DVR_XML_CONFIG_INPUT extends Structure {
+        public int dwSize;
+        public Pointer lpRequestUrl;
+        public int dwRequestUrlLen;
+        public Pointer lpInBuffer;
+        public int dwInBufferSize;
+        public int dwRecvTimeOut;
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_STRING_POINTER extends Structure {
+        public byte[] byString;
+
+        public NET_DVR_STRING_POINTER(int iLen) {
+            byString = new byte[iLen];
+        }
+    }
+
+    public static class NET_DVR_XML_CONFIG_OUTPUT extends Structure {
+        public int dwSize;
+        public Pointer lpOutBuffer;
+        public int dwOutBufferSize;
+        public int dwReturnedXMLSize;
+        public Pointer lpStatusBuffer;
+        public int dwStatusSize;
+        public byte[] byRes = new byte[32];
+    }
+
+    //鎶ヨ鍦烘櫙淇℃伅
+    public static class NET_DVR_SCENE_INFO extends Structure {
+        public int dwSceneID;              //鍦烘櫙ID, 0 - 琛ㄧず璇ュ満鏅棤鏁�
+        public byte[] bySceneName = new byte[NAME_LEN];  //鍦烘櫙鍚嶇О
+        public byte byDirection;            //鐩戞祴鏂瑰悜 1-涓婅锛�2-涓嬭锛�3-鍙屽悜锛�4-鐢变笢鍚戣タ锛�5-鐢卞崡鍚戝寳锛�6-鐢辫タ鍚戜笢锛�7-鐢卞寳鍚戝崡锛�8-鍏跺畠
+        public byte[] byRes1 = new byte[3];              //淇濈暀
+        public NET_DVR_PTZPOS struPtzPos;             //Ptz 鍧愭爣
+        public byte[] byRes2 = new byte[64];            //淇濈暀
+    }
+
+    // 鏂瑰悜缁撴瀯浣�
+    public static class NET_DVR_DIRECTION extends Structure {
+        public NET_VCA_POINT struStartPoint = new NET_VCA_POINT();   // 鏂瑰悜璧峰鐐�
+        public NET_VCA_POINT struEndPoint = new NET_VCA_POINT();     // 鏂瑰悜缁撴潫鐐�
+    }
+
+    // 浜ら�氫簨浠朵俊鎭�
+    public static class NET_DVR_AID_INFO extends Structure {
+        public byte byRuleID;   // 瑙勫垯搴忓彿锛屼负瑙勫垯閰嶇疆缁撴瀯涓嬫爣锛�0-16
+        public byte[] byRes1 = new byte[3];
+        public byte[] byRuleName = new byte[NAME_LEN]; //  瑙勫垯鍚嶇О
+        public int dwAIDType;  // 鎶ヨ浜嬩欢绫诲瀷
+        public NET_DVR_DIRECTION struDirect = new NET_DVR_DIRECTION(); // 鎶ヨ鎸囧悜鍖哄煙
+        public byte bySpeedLimit; //闄愰�熷�硷紝鍗曚綅km/h[0,255]
+        public byte byCurrentSpeed; //褰撳墠閫熷害鍊硷紝鍗曚綅km/h[0,255]
+        public byte byVehicleEnterState; //杞﹁締鍑哄叆鐘舵�侊細0- 鏃犳晥锛�1- 椹跺叆锛�2- 椹跺嚭
+        public byte byState; //0-鍙樺寲涓婁紶锛�1-杞贰涓婁紶
+        public byte[] byParkingID = new byte[16]; //鍋滆溅浣嶇紪鍙�
+        public int dwAIDTypeEx;  // 鎶ヨ浜嬩欢绫诲瀷鎵╁睍,鍙傝�僒RAFFIC_AID_TYPE_EX
+        public byte[] byRes2 = new byte[16];  // 淇濈暀瀛楄妭
+    }
+
+    public int ILLEGAL_LEN = 32; //杩濇硶浠g爜闀垮害
+    public int MONITORSITE_ID_LEN = 48;//鐩戞祴鐐圭紪鍙烽暱搴�
+    public int DEVICE_ID_LEN = 48;
+
+    //浜ら�氬彇璇佹姤璀�
+    public static class NET_DVR_TFS_ALARM extends Structure {
+        public int dwSize;                //缁撴瀯浣撳ぇ灏�
+        public int dwRelativeTime;        //鐩稿鏃舵爣
+        public int dwAbsTime;               //缁濆鏃舵爣
+        public int dwIllegalType;         //杩濈珷绫诲瀷锛岄噰鐢ㄥ浗鏍囧畾涔夛紝褰揹wIllegalType鍊间负0xffffffff鏃朵娇鐢╞yIllegalCode
+        public int dwIllegalDuration;     //杩濇硶鎸佺画鏃堕棿锛堝崟浣嶏細绉掞級 = 鎶撴媿鏈�鍚庝竴寮犲浘鐗囩殑鏃堕棿 - 鎶撴媿绗竴寮犲浘鐗囩殑鏃堕棿
+        public byte[] byMonitoringSiteID = new byte[MONITORSITE_ID_LEN];//鐩戞祴鐐圭紪鍙凤紙璺彛缂栧彿銆佸唴閮ㄧ紪鍙凤級
+        public byte[] byDeviceID = new byte[DEVICE_ID_LEN];             //璁惧缂栧彿
+        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();           //鍓嶇璁惧淇℃伅
+        public NET_DVR_SCENE_INFO struSceneInfo = new NET_DVR_SCENE_INFO();         //鍦烘櫙淇℃伅
+        public NET_DVR_TIME_EX struBeginRecTime = new NET_DVR_TIME_EX();      //褰曞儚寮�濮嬫椂闂�
+        public NET_DVR_TIME_EX struEndRecTime = new NET_DVR_TIME_EX();        //褰曞儚缁撴潫鏃堕棿
+        public NET_DVR_AID_INFO struAIDInfo = new NET_DVR_AID_INFO();           //浜ら�氫簨浠朵俊鎭�
+        public NET_DVR_PLATE_INFO struPlateInfo = new NET_DVR_PLATE_INFO();         //杞︾墝淇℃伅
+        public NET_DVR_VEHICLE_INFO struVehicleInfo = new NET_DVR_VEHICLE_INFO();       //杞﹁締淇℃伅
+        public int dwPicNum; //鍥剧墖鏁伴噺
+        public NET_ITS_PICTURE_INFO[] struPicInfo = new NET_ITS_PICTURE_INFO[8];        //鍥剧墖淇℃伅锛屾渶澶�8寮�
+        public byte bySpecificVehicleType;     //鍏蜂綋杞﹁締绉嶇被  鍙傝�冭瘑鍒粨鏋滅被鍨媀TR_RESULT
+        public byte byLaneNo;  //鍏宠仈杞﹂亾鍙�
+        public byte[] byRes1 = new byte[2]; //淇濈暀
+        public NET_DVR_TIME_V30 struTime = new NET_DVR_TIME_V30();//鎵嬪姩瀹氫綅锛屽綋鍓嶆椂闂淬��
+        public int dwSerialNo;//搴忓彿锛�
+        public byte byVehicleAttribute;//杞﹁締灞炴�э紝鎸変綅琛ㄧず锛�0- 鏃犻檮鍔犲睘鎬�(鏅�氳溅)锛宐it1- 榛勬爣杞�(绫讳技骞存鐨勬爣蹇�)锛宐it2- 鍗遍櫓鍝佽溅杈嗭紝鍊硷細0- 鍚︼紝1- 鏄�
+        public byte byPilotSafebelt;//0-琛ㄧず鏈煡,1-绯诲畨鍏ㄥ甫,2-涓嶇郴瀹夊叏甯�
+        public byte byCopilotSafebelt;//0-琛ㄧず鏈煡,1-绯诲畨鍏ㄥ甫,2-涓嶇郴瀹夊叏甯�
+        public byte byPilotSunVisor;//0-琛ㄧず鏈煡,1-涓嶆墦寮�閬槼鏉�,2-鎵撳紑閬槼鏉�
+        public byte byCopilotSunVisor;//0-琛ㄧず鏈煡, 1-涓嶆墦寮�閬槼鏉�,2-鎵撳紑閬槼鏉�
+        public byte byPilotCall;// 0-琛ㄧず鏈煡, 1-涓嶆墦鐢佃瘽,2-鎵撶數璇�
+        public byte[] byRes2 = new byte[2]; //淇濈暀
+        public byte[] byIllegalCode = new byte[ILLEGAL_LEN/*32*/];//杩濇硶浠g爜鎵╁睍锛屽綋dwIllegalType鍊间负0xffffffff锛涗娇鐢ㄨ繖涓��
+        public short wCountry; // 鍥藉绱㈠紩鍊�,鍙傜収鏋氫妇COUNTRY_INDEX
+        public byte byRegion; //鍖哄煙绱㈠紩鍊�,0-淇濈暀锛�1-娆ф床(Europe Region)锛岋紝3-娆ф床&(EU&CIS) , 4-涓笢锛圡iddle East锛夛紝0xff-鎵�鏈�
+        public byte byCrossLine;//鏄惁鍘嬬嚎鍋滆溅锛堜晶鏂瑰仠杞︼級锛�0-琛ㄧず鏈煡锛�1-涓嶅帇绾匡紝2-鍘嬬嚎
+        public byte[] byParkingSerialNO = new byte[16];//娉婅溅浣嶇紪鍙�
+        public byte byCrossSpaces;//鏄惁璺ㄦ硦杞︿綅鍋滆溅锛堜晶鏂瑰仠杞︼級锛�0-琛ㄧず鏈煡锛�1-鏈法娉婅溅浣嶅仠杞︼紝2-璺ㄦ硦杞︿綅鍋滆溅
+        public byte byAngledParking;//鏄惁鍊炬枩鍋滆溅锛堜晶鏂瑰仠杞︼級, 0-琛ㄧず鏈煡锛�1-鏈�炬枩鍋滆溅锛�2-鍊炬枩鍋滆溅
+        public byte byAlarmValidity;//鎶ヨ缃俊搴︼紝鍙互杈撳嚭椹跺叆椹跺嚭鐨勭疆淇″害锛岃寖鍥�0-100锛涚疆淇″害瓒婇珮锛屼簨浠剁湡瀹炴�ц秺楂�
+        public byte byDoorsStatus;//杞﹂棬鐘舵�� 0-杞﹂棬鍏抽棴 1-杞﹂棬寮�鍚�
+        public int dwXmlLen;//XML鎶ヨ淇℃伅闀垮害
+        public Pointer pXmlBuf; // XML鎶ヨ淇℃伅鎸囬拡,鍏禭ML瀵瑰簲鍒癊ventNotificationAlert XML Block
+        public byte byVehicleHeadTailStatus;//杞﹀ご杞﹀熬鐘舵�� 0-淇濈暀 1-杞﹀ご 2-杞﹀熬
+        public byte byBrokenNetHttp;        //鏂綉缁紶鏍囧織浣嶏紝0-涓嶉噸浼犳暟鎹紝1-閲嶄紶鏁版嵁
+        public byte[] byRes = new byte[30]; //淇濈暀
+    }
+
+    public static class NET_ITS_OVERLAPCFG_COND extends Structure {
+        public int dwSize;
+        public int dwChannel;
+        public int dwConfigMode; //閰嶇疆妯″紡锛�0-缁堢锛�1-鍓嶇(鐩磋繛鍓嶇鎴栫粓绔帴鍓嶇)
+        public byte byPicModeType;//0-琛ㄧず灏忓浘(鐙珛鍥�)锛�1-琛ㄧず澶у浘(鍚堟垚鍥�)
+        /*
+          0琛ㄧず鍏宠仈 鎶撴媿MPR妯″紡锛堝甯цЕ鍙戞姄鎷� IPC浣跨敤锛�
+          1 琛ㄧず鍏宠仈 鎶撴媿 HVT 妯″紡锛堟贩鍗PC浣跨敤锛�
+        */
+        public byte byRelateType;
+        public byte[] byRes = new byte[14];
+
+    }
+
+    //瀛楃鍙犲姞姣忎竴鏉′俊鎭粨鏋勪綋
+    public static class NET_ITS_OVERLAP_SINGLE_ITEM_PARAM_V50 extends Structure {
+        public byte[] byRes1 = new byte[2];                   // 淇濈暀
+        public byte byItemType;       //绫诲瀷锛岃瑙丱VERLAP_ITEM_TYPE
+        public byte byChangeLineNum; //鍙犲姞椤瑰悗鐨勬崲琛屾暟[0-10](榛樿0)
+        public byte bySpaceNum;      //鍙犲姞椤瑰悗鐨勭┖鏍兼暟[0-255](榛樿0)
+        public byte[] byRes2 = new byte[2];
+        public byte byEnablePos;  //鏄惁鍚敤鍧愭爣鏄剧ず
+        public short wStartPosTop;    //璧峰涓婂潗鏍�,鍙鍥剧墖鍐呴儴鍙犲姞鏈夋晥[0~2448](榛樿0)
+        public short wStartPosLeft;    //璧峰宸﹀潗鏍�,鍙鍥剧墖鍐呴儴鍙犲姞鏈夋晥[0~2448](榛樿0)
+        //鑷畾涔夌被鍨嬶紱涓巄yItemType鍙傛暟瀵瑰簲銆傚彲灏哹yItemType鍙傛暟绫诲瀷鑷畾涔夊悕绉般�傝嫢鑷畾涔夊唴瀹逛负绌猴紝渚块粯璁や互byItemType鍙傛暟涓殑绫诲瀷鍛藉悕銆�
+        public byte[] byItemTypeCustom = new byte[32];
+        public byte[] byRes = new byte[8];
+
+    }
+
+    public int MAX_OVERLAP_ITEM_NUM = 50; //鏈�澶у瓧绗﹀彔鍔犵鏁�
+
+    public static class NET_ITS_OVERLAP_ITEM_PARAM_V50 extends Structure {
+        public NET_ITS_OVERLAP_SINGLE_ITEM_PARAM_V50[] struSingleItem = new NET_ITS_OVERLAP_SINGLE_ITEM_PARAM_V50[MAX_OVERLAP_ITEM_NUM]; //鍗曟潯瀛楃鍙傛暟
+        public int dwLinePercent;  //鍙犲姞琛岀櫨鍒嗘瘮(0-100),(榛樿100)
+        public int dwItemsStlye;   //鍙犲姞鏂瑰紡锛�0-妯帓,1-绔栨帓(榛樿妯帓)
+        public short wStartPosTop;    //璧峰涓婂潗鏍�,鍙鍥剧墖鍐呴儴鍙犲姞鏈夋晥[0~2448](榛樿0)
+        public short wStartPosLeft;    //璧峰宸﹀潗鏍�,鍙鍥剧墖鍐呴儴鍙犲姞鏈夋晥[0~2448](榛樿0)
+        public short wCharStyle;    //瀛椾綋绫诲瀷,0-瀹嬩綋1-榄忎綋(榛樿)
+        public short wCharSize;    //瀛楃澶у皬,0--16x16,1--32x32,2-48x48,3--64x64 (榛樿),8x128(Ver3.7)
+        public short wCharInterval;    //瀛楃闂磋窛锛孾0锝�16]锛屽彲璁惧崟浣嶏細鍍忕礌(榛樿)
+        public byte[] byRes1 = new byte[2];
+        public int dwForeClorRGB;      //鍓嶆櫙鑹茬殑RGB鍊糱it0-1:(B) bit2-3:(G) bit4-5:(G) (榛樿x00FFFFFF-鐧�)
+        public int dwBackClorRGB; //鑳屾櫙鑹茬殑RGB鍊�,鍙鍥剧墖澶栧彔鍔犳湁鏁坆it0-1:(B) bit2-3:(G) bit4-5:(G) (榛樿x00000000-榛�)
+        public byte byColorAdapt;    //棰滆壊鏄惁鑷�傚簲0-鍚�1-鏄�
+        //(Ver3.7 鏂板)
+        // 鍙傛暟琛ラ浂浣胯兘 0-琛ラ浂, 1-涓嶈ˉ闆讹紙璇︾粏娉ㄩ噴锛夐�熷害,闄愰�熷�� 涓嶈冻3浣嶈ˉ0
+        public byte byParamFillZeroEnble;
+        public byte byPlateLeftCornerEnable;// 杞︾墝灏忓浘鍙犲姞宸︿笂瑙掍娇鑳� 0-涓嶅彔鍔�, 1-鍙犲姞
+        public byte byRes2;
+        public short wStartSPicPosTop; //璧峰涓婂潗鏍�,鍙鍥剧墖鍐呴儴鍙犲姞鏈夋晥[0~2448](榛樿0)
+        public short wStartSPicPosLeft; //璧峰宸﹀潗鏍�,鍙鍥剧墖鍐呴儴鍙犲姞鏈夋晥[0~2448](榛樿0)
+        //OSD鍙犲姞浣嶇疆  0-鍥剧墖鍐�,1-鍥剧墖涓婅竟缂�,2-鍥剧墖涓嬭竟缂橈紙鍚堟垚鍥句笓鐢ㄧ殑鏄笂杈圭紭澶栵級锛圴3.7锛�
+        public byte byOsdLocate;
+        public byte[] byRes = new byte[63];
+
+    }
+
+    //鍙犲姞椤瑰叿浣撲俊鎭�
+    public static class NET_ITS_OVERLAP_INFO_PARAM extends Structure {
+        public byte[] bySite = new byte[128];           //鍦扮偣鎻忚堪
+        public byte[] byRoadNum = new byte[32];  //璺彛缂栧彿
+        public byte[] byInstrumentNum = new byte[32];                //璁惧缂栧彿
+        public byte[] byDirection = new byte[32];        //鏂瑰悜缂栧彿
+        public byte[] byDirectionDesc = new byte[32];    //鏂瑰悜鎻忚堪
+        public byte[] byLaneDes = new byte[32];        //杞﹂亾鎻忚堪
+        public byte[] byRes1 = new byte[32];     //淇濈暀
+        public byte[] byMonitoringSite1 = new byte[44];        //鐩戞祴鐐�1淇℃伅
+        public byte[] byMonitoringSite2 = new byte[32];        //鐩戞祴鐐�2淇℃伅
+        public byte[] byRes = new byte[64];        //淇濈暀
+    }
+
+    public static class NET_ITS_OVERLAP_CFG_V50 extends Structure {
+        public int dwSize;
+        public byte byEnable; //鏄惁鍚敤锛�0-涓嶅惎鐢紝1-鍚敤
+        public byte[] byRes1 = new byte[3];
+        public NET_ITS_OVERLAP_ITEM_PARAM_V50 struOverLapItemV50 = new NET_ITS_OVERLAP_ITEM_PARAM_V50(); //瀛楃涓插弬鏁�
+        public NET_ITS_OVERLAP_INFO_PARAM struOverLapInfo = new NET_ITS_OVERLAP_INFO_PARAM();  //瀛楃涓插唴瀹逛俊鎭�
+        public byte[] byRes = new byte[120];
+
+    }
+
+    //浜轰綋鐗瑰緛璇嗗埆缁撴灉缁撴瀯浣�
+    public static class NET_VCA_HUMAN_FEATURE extends Structure {
+        public byte byRes3;
+        public byte bySex;         //鎬у埆, 0-琛ㄧず鈥滄湭鐭モ�濓紙绠楁硶涓嶆敮鎸侊級,1 鈥� 鐢� , 2 鈥� 濂�, 0xff-绠楁硶鏀寔锛屼絾鏄病鏈夎瘑鍒嚭鏉�
+        public byte byEyeGlass;    //鏄惁鎴寸溂闀� 0-琛ㄧず鈥滄湭鐭モ�濓紙绠楁硶涓嶆敮鎸侊級,1 鈥� 涓嶆埓, 2 鈥� 鎴�,0xff-绠楁硶鏀寔锛屼絾鏄病鏈夎瘑鍒嚭鏉�
+        //鎶撴媿鍥剧墖浜鸿劯骞撮緞鐨勪娇鐢ㄦ柟寮忥紝濡俠yAge涓�15,byAgeDeviation涓�1,琛ㄧず锛屽疄闄呬汉鑴稿浘鐗囧勾榫勭殑涓�14-16涔嬮棿
+        public byte byRes4;// 0-琛ㄧず鈥滄湭鐭モ�濓紙绠楁硶涓嶆敮鎸侊級,0xff-绠楁硶鏀寔锛屼絾鏄病鏈夎瘑鍒嚭鏉�
+        public byte byDeviation;//璇樊鍊�
+        public byte byRes0;   //瀛楁棰勭暀
+        public byte byMask;       //鏄惁鎴村彛缃� 0-琛ㄧず鈥滄湭鐭モ�濓紙绠楁硶涓嶆敮鎸侊級,1 鈥� 涓嶆埓, 2 鈥� 鎴�, 0xff-绠楁硶鏀寔锛屼絾鏄病鏈夎瘑鍒嚭鏉�
+        public byte bySmile;      //鏄惁寰瑧 0-琛ㄧず鈥滄湭鐭モ�濓紙绠楁硶涓嶆敮鎸侊級,1 鈥� 涓嶅井绗�, 2 鈥� 寰瑧, 0xff-绠楁硶鏀寔锛屼絾鏄病鏈夎瘑鍒嚭鏉�
+        public byte byFaceExpression;    /* 琛ㄦ儏,鍙傝FACE_EXPRESSION_GROUP_ENUM*/
+        public byte byRes1;
+        public byte byRes2;
+        public byte byHat; // 甯藉瓙, 0-涓嶆敮鎸�,1-涓嶆埓甯藉瓙,2-鎴村附瀛�,0xff-unknow琛ㄧず鏈煡,绠楁硶鏀寔鏈鍑�
+        public byte[] byRes = new byte[4];    //淇濈暀
+    }
+
+    //鐗瑰緛鎶撴媿闄勫姞淇℃伅缁撴瀯浣�
+    public static class NET_VCA_FACESNAP_ADDINFO extends Structure {
+        //浜鸿劯鐭╁舰妗�,璇ュ潗鏍囦负浜鸿劯灏忓浘(澶磋偐鐓�)涓汉鑴哥殑鍧愭爣
+        public NET_VCA_RECT struFacePicRect = new NET_VCA_RECT();
+        public int iSwingAngle;//鏃嬭浆瑙�, -90~90搴�
+        public int iTiltAngle;//淇话瑙�, -90~90搴�
+        public int dwPupilDistance;//鐬宠窛,鑼冨洿涓猴細鏈�灏忓�间负10鍍忕礌,鏈�澶у�间负褰撳墠鍒嗚鲸鐜囧搴�/1.6
+        public byte byBlockingState;//鐩爣閬尅鐘舵�侊紝 0-琛ㄧず鈥滄湭鐭モ�濓紙绠楁硶涓嶆敮鎸侊級,1~鏃犻伄鎸�,2~鐬椂杞诲害閬尅锛�3~鎸佺画杞诲害閬尅锛�4~涓ラ噸閬尅
+        public byte byFaceSnapThermometryEnabled;//鐗瑰緛鎶撴媿娴嬫俯浣胯兘 1-寮�鍚� 0-鍏抽棴
+        public byte byIsAbnomalTemperature;//鐗瑰緛鎶撴媿娴嬫俯鏄惁娓╁害寮傚父 1-鏄� 0-鍚�
+        public byte byThermometryUnit;//娴嬫俯鍗曚綅: 0-鎽勬皬搴︼紙鈩冿級锛�1-鍗庢皬搴︼紙鈩夛級锛�2-寮�灏旀枃(K)
+        public NET_DVR_TIME_EX struEnterTime = new NET_DVR_TIME_EX();   // 鏈�浣虫姄鎷嶄笅杩涘叆鏃堕棿
+        public NET_DVR_TIME_EX struExitTime = new NET_DVR_TIME_EX();    // 鏈�浣虫姄鎷嶄笅绂诲紑鏃堕棿
+        public float fFaceTemperature; // 浜鸿劯娓╁害锛� - 20.0鈩儈150.0鈩冿紝绮剧‘鍒板皬鏁扮偣鍚�1浣嶏級
+        public float fAlarmTemperature;// 娴嬫俯鎶ヨ璀﹂槇鍊硷紙绮剧‘鍒板皬鏁扮偣鍚�1浣嶏級
+        public byte[] byRes = new byte[472];// 淇濈暀瀛楄妭
+    }
+
+    //鐗瑰緛鎶撴媿缁撴灉
+    public static class NET_VCA_FACESNAP_RESULT extends Structure {
+        public int dwSize;             // 缁撴瀯澶у皬
+        public int dwRelativeTime;     // 鐩稿鏃舵爣
+        public int dwAbsTime;            // 缁濆鏃舵爣
+        public int dwFacePicID;       //浜鸿劯鍥綢D
+        public int dwFaceScore;        //浜鸿劯璇勫垎,0-100
+        public NET_VCA_TARGET_INFO struTargetInfo = new NET_VCA_TARGET_INFO();//鎶ヨ鐩爣淇℃伅
+        public NET_VCA_RECT struRect = new NET_VCA_RECT();      //浜鸿劯瀛愬浘鍖哄煙
+        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();    //鍓嶇璁惧淇℃伅
+        public int dwFacePicLen;        //浜鸿劯瀛愬浘鐨勯暱搴︼紝涓�0琛ㄧず娌℃湁鍥剧墖锛屽ぇ浜�0琛ㄧず鏈夊浘鐗�
+        public int dwBackgroundPicLen; //鑳屾櫙鍥剧殑闀垮害锛屼负0琛ㄧず娌℃湁鍥剧墖锛屽ぇ浜�0琛ㄧず鏈夊浘鐗�(淇濈暀)
+        public byte bySmart;            //IDS璁惧杩斿洖0(榛樿鍊�)锛孲mart Functiom Return 1
+        public byte byAlarmEndMark;//鎶ヨ缁撴潫鏍囪0-淇濈暀锛�1-缁撴潫鏍囪锛堣瀛楁缁撳悎浜鸿劯ID瀛楁浣跨敤锛岃〃绀鸿ID瀵瑰簲鐨勪笅鎶ヨ缁撴潫锛屼富瑕佹彁渚涚粰NVR浣跨敤锛岀敤浜庡垽鏂姤璀︾粨鏉燂紝鎻愬彇璇嗗埆鍥剧墖鏁版嵁涓紝娓呮櫚搴︽渶楂樼殑鍥剧墖锛�
+        public byte byRepeatTimes;   //閲嶅鎶ヨ娆℃暟锛�0-鏃犳剰涔�
+        public byte byUploadEventDataType;//浜鸿劯鍥剧墖鏁版嵁闀夸紶鏂瑰紡锛�0-浜岃繘鍒舵暟鎹紝1-URL
+        public NET_VCA_HUMAN_FEATURE struFeature = new NET_VCA_HUMAN_FEATURE();  //浜轰綋灞炴��
+        public float fStayDuration;  //鍋滅暀鐢婚潰涓椂闂�(鍗曚綅: 绉�)
+        public byte[] sStorageIP = new byte[16];        //瀛樺偍鏈嶅姟IP鍦板潃
+        public short wStoragePort;            //瀛樺偍鏈嶅姟绔彛鍙�
+        public short wDevInfoIvmsChannelEx;     //涓嶯ET_VCA_DEV_INFO閲岀殑byIvmsChannel鍚箟鐩稿悓锛岃兘琛ㄧず鏇村ぇ鐨勫�笺�傝�佸鎴风鐢╞yIvmsChannel鑳界户缁吋瀹癸紝浣嗘槸鏈�澶у埌255銆傛柊瀹㈡埛绔増鏈浣跨敤wDevInfoIvmsChannelEx銆�
+        public byte byFacePicQuality;
+        public byte byUIDLen;     // 涓婁紶鎶ヨ鐨勬爣璇嗛暱搴�
+        public byte byLivenessDetectionStatus;// 娲讳綋妫�娴嬬姸鎬侊細0-淇濈暀锛�1-鏈煡(妫�娴嬪け璐�)锛�2-闈炵湡浜轰汉鑴革紝3-鐪熶汉浜鸿劯锛�4-鏈紑鍚椿浣撴娴�
+        /*闄勫姞淇℃伅鏍囪瘑浣嶏紙鍗虫槸鍚︽湁NET_VCA_FACESNAP_ADDINFO缁撴瀯浣擄級,0-鏃犻檮鍔犱俊鎭�, 1-鏈夐檮鍔犱俊鎭��*/
+        public byte byAddInfo;
+        public Pointer pUIDBuffer;  //鏍囪瘑鎸囬拡
+        //闄勫姞淇℃伅鎸囬拡,鎸囧悜NET_VCA_FACESNAP_ADDINFO缁撴瀯浣�
+        public Pointer pAddInfoBuffer;
+        public byte byTimeDiffFlag;      /*鏃跺樊瀛楁鏄惁鏈夋晥  0-鏃跺樊鏃犳晥锛� 1-鏃跺樊鏈夋晥 */
+        public byte cTimeDifferenceH;         /*涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛� +琛ㄧず涓滃尯,锛宐yTimeDiffFlag涓�1鏃舵湁鏁�*/
+        public byte cTimeDifferenceM;        /*涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 30, 45锛� +琛ㄧず涓滃尯锛宐yTimeDiffFlag涓�1鏃舵湁鏁�*/
+        public byte byBrokenNetHttp;     //鏂綉缁紶鏍囧織浣嶏紝0-涓嶆槸閲嶄紶鏁版嵁锛�1-閲嶄紶鏁版嵁
+        public Pointer pBuffer1;  //浜鸿劯瀛愬浘鐨勫浘鐗囨暟鎹�
+        public Pointer pBuffer2;  //鑳屾櫙鍥剧殑鍥剧墖鏁版嵁锛堜繚鐣欙紝閫氳繃鏌ユ壘鑳屾櫙鍥炬帴鍙e彲浠ヨ幏鍙栬儗鏅浘锛�
+    }
+
+    //鐗瑰緛鎶撴媿淇℃伅
+    public static class NET_VCA_FACESNAP_INFO_ALARM extends Structure {
+        public int dwRelativeTime;     // 鐩稿鏃舵爣
+        public int dwAbsTime;            // 缁濆鏃舵爣
+        public int dwSnapFacePicID;       //鎶撴媿浜鸿劯鍥綢D
+        public int dwSnapFacePicLen;        //鎶撴媿浜鸿劯瀛愬浘鐨勯暱搴︼紝涓�0琛ㄧず娌℃湁鍥剧墖锛屽ぇ浜�0琛ㄧず鏈夊浘鐗�
+        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();        //鍓嶇璁惧淇℃伅
+        public byte byFaceScore;        //浜鸿劯璇勫垎锛屾寚浜鸿劯瀛愬浘鐨勮川閲忕殑璇勫垎,0-100
+        public byte bySex;//鎬у埆锛�0-鏈煡锛�1-鐢凤紝2-濂�
+        public byte byGlasses;//鏄惁甯︾溂闀滐紝0-鏈煡锛�1-鏄紝2-鍚�
+        //鎶撴媿鍥剧墖浜鸿劯骞撮緞鐨勪娇鐢ㄦ柟寮忥紝濡俠yAge涓�15,byAgeDeviation涓�1,琛ㄧず锛屽疄闄呬汉鑴稿浘鐗囧勾榫勭殑涓�14-16涔嬮棿
+        public byte byRes2;//
+        public byte byDeviation;//璇樊鍊�
+        public byte byGroup;//娈碉紝璇﹁HUMAN_GROUP_ENUM锛岃嫢浼犲叆0xff琛ㄧず鏈煡
+        public byte byFacePicQuality;
+        public byte byRes1;              // 淇濈暀瀛楄妭
+        public int dwUIDLen; // 涓婁紶鎶ヨ鐨勬爣璇嗛暱搴�
+        public Pointer pUIDBuffer;  //鏍囪瘑鎸囬拡
+        public float fStayDuration;  //鍋滅暀鐢婚潰涓椂闂�(鍗曚綅: 绉�)
+        public Pointer pBuffer1;  //鎶撴媿浜鸿劯瀛愬浘鐨勫浘鐗囨暟鎹�
+    }
+
+    //绫嶈疮鍙傛暟
+    public static class NET_DVR_AREAINFOCFG extends Structure {
+        public short wNationalityID; //鍥界睄
+        public short wProvinceID; //鐪�
+        public short wCityID; //甯�
+        public short wCountyID; //鍘�
+        public int dwCode; //鍥藉鏍囧噯鐨勭渷浠姐�佸煄甯傘�佸幙绾т唬鐮侊紝褰撹繖涓瓧娈典笉涓�0鐨勬椂鍊欙紝浣跨敤杩欎釜鍊硷紝鏂拌澶囦笂浼犺繖涓�艰〃绀虹睄璐弬鏁帮紝鑰佽澶囪繖涓�间负0
+    }
+
+    //浜哄憳淇℃伅
+    public int MAX_HUMAN_BIRTHDATE_LEN = 10;
+
+    public static class NET_VCA_HUMAN_ATTRIBUTE extends Structure {
+        public byte bySex; //鎬у埆锛�0-鐢凤紝1-濂�
+        public byte byCertificateType; //璇佷欢绫诲瀷锛�0-韬唤璇侊紝1-璀﹀畼璇�
+        public byte[] byBirthDate = new byte[MAX_HUMAN_BIRTHDATE_LEN]; //鍑虹敓骞存湀锛屽锛�201106
+        public byte[] byName = new byte[NAME_LEN]; //濮撳悕
+        public NET_DVR_AREAINFOCFG struNativePlace = new NET_DVR_AREAINFOCFG(); //绫嶈疮鍙傛暟
+        public byte[] byCertificateNumber = new byte[NAME_LEN];  //璇佷欢鍙�
+        public int dwPersonInfoExtendLen;// 浜哄憳鏍囩淇℃伅鎵╁睍闀垮害
+        public Pointer pPersonInfoExtend;  //浜哄憳鏍囩淇℃伅鎵╁睍淇℃伅
+        public byte byGroup;//娈碉紝锛屽浼犲叆0xff琛ㄧず鏈煡
+        public byte[] byRes2 = new byte[11];
+    }
+
+
+    //绂佹鍚嶅崟鎶ヨ淇℃伅
+    public static class NET_VCA_BLOCKLIST_INFO_ALARM extends Structure {
+        public NET_VCA_BLOCKLIST_INFO struBlockListInfo = new NET_VCA_BLOCKLIST_INFO(); //绂佹鍚嶅崟鍩烘湰淇℃伅
+        public int dwBlockListPicLen;       //绂佹鍚嶅崟浜鸿劯瀛愬浘鐨勯暱搴︼紝涓�0琛ㄧず娌℃湁鍥剧墖锛屽ぇ浜�0琛ㄧず鏈夊浘鐗�
+        public int dwFDIDLen;// 浜鸿劯搴揑D闀垮害
+        public Pointer pFDID;  //浜鸿劯搴揑d鎸囬拡
+        public int dwPIDLen;// 浜鸿劯搴撳浘鐗嘔D闀垮害
+        public Pointer pPID;  //浜鸿劯搴撳浘鐗嘔D鎸囬拡
+        public short wThresholdValue; //浜鸿劯搴撻槇鍊糩0,100]
+        public byte[] byRes = new byte[2];              // 淇濈暀瀛楄妭
+        public Pointer pBuffer1;  //绂佹鍚嶅崟浜鸿劯瀛愬浘鐨勫浘鐗囨暟鎹�
+    }
+
+    //绂佹鍚嶅崟淇℃伅
+    public static class NET_VCA_BLOCKLIST_INFO extends Structure {
+        public int dwSize;   //缁撴瀯澶у皬
+        public int dwRegisterID;  //鍚嶅崟娉ㄥ唽ID鍙凤紙鍙锛�
+        public int dwGroupNo; //鍒嗙粍鍙�
+        public byte byType; //绂佹/杩愯鍏佽鍚嶅崟鏍囧織锛�0-鍏ㄩ儴锛�1-鍏佽鍚嶅崟锛�2-绂佹鍚嶅崟
+        public byte byLevel; //绂佹鍚嶅崟绛夌骇锛�0-鍏ㄩ儴锛�1-浣庯紝2-涓紝3-楂�
+        public byte[] byRes1 = new byte[2];  //淇濈暀
+        public NET_VCA_HUMAN_ATTRIBUTE struAttribute = new NET_VCA_HUMAN_ATTRIBUTE();  //浜哄憳淇℃伅
+        public byte[] byRemark = new byte[NAME_LEN]; //澶囨敞淇℃伅
+        public int dwFDDescriptionLen;//浜鸿劯搴撴弿杩版暟鎹暱搴�
+        public Pointer pFDDescriptionBuffer;//浜鸿劯搴撴弿杩版暟鎹寚閽�
+        public int dwFCAdditionInfoLen;//鎶撴媿搴撻檮鍔犱俊鎭暱搴�
+        public Pointer pFCAdditionInfoBuffer;//鎶撴媿搴撻檮鍔犱俊鎭暟鎹寚閽堬紙FCAdditionInfo涓寘鍚浉鏈篜TZ鍧愭爣锛�
+        public byte[] byRes2 = new byte[4];
+    }
+
+
+    //绂佹鍚嶅崟姣斿缁撴灉鎶ヨ涓婁紶
+    public static class NET_VCA_FACESNAP_MATCH_ALARM extends Structure {
+        public int dwSize;             // 缁撴瀯澶у皬
+        public float fSimilarity; //鐩镐技搴︼紝[0.001,1]
+        public NET_VCA_FACESNAP_INFO_ALARM struSnapInfo = new NET_VCA_FACESNAP_INFO_ALARM(); //鎶撴媿淇℃伅
+        public NET_VCA_BLOCKLIST_INFO_ALARM struBlockListInfo = new NET_VCA_BLOCKLIST_INFO_ALARM(); //绂佹鍚嶅崟淇℃伅
+        public byte[] sStorageIP = new byte[16];        //瀛樺偍鏈嶅姟IP鍦板潃
+        public short wStoragePort;            //瀛樺偍鏈嶅姟绔彛鍙�
+        public byte byMatchPicNum; //鍖归厤鍥剧墖鐨勬暟閲忥紝0-淇濈暀锛堣�佽澶囪繖涓�奸粯璁�0锛屾柊璁惧杩欎釜鍊间负0鏃惰〃绀哄悗缁病鏈夊尮閰嶇殑鍥剧墖淇℃伅锛�
+        public byte byPicTransType;//鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public int dwSnapPicLen;//璁惧璇嗗埆鎶撴媿鍥剧墖闀垮害
+        public Pointer pSnapPicBuffer;//璁惧璇嗗埆鎶撴媿鍥剧墖鎸囬拡
+        public NET_VCA_RECT struRegion = new NET_VCA_RECT();//鐩爣杈圭晫妗嗭紝璁惧璇嗗埆鎶撴媿鍥剧墖涓紝浜鸿劯瀛愬浘鍧愭爣
+        public int dwModelDataLen;//寤烘ā鏁版嵁闀垮害
+        public Pointer pModelDataBuffer;// 寤烘ā鏁版嵁鎸囬拡
+        public byte byModelingStatus;// 寤烘ā鐘舵��
+        public byte byLivenessDetectionStatus;//娲讳綋妫�娴嬬姸鎬侊細0-淇濈暀锛�1-鏈煡锛堟娴嬪け璐ワ級锛�2-闈炵湡浜轰汉鑴革紝3-鐪熶汉浜鸿劯锛�4-鏈紑鍚椿浣撴娴�
+        public byte cTimeDifferenceH;         /*涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛� +琛ㄧず涓滃尯,0xff鏃犳晥*/
+        public byte cTimeDifferenceM;      	/*涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 30, 45锛� +琛ㄧず涓滃尯锛�0xff鏃犳晥*/
+        public byte byMask;                //鎶撴媿鍥炬槸鍚︽埓鍙g僵锛�0-淇濈暀锛�1-鏈煡锛�2-涓嶆埓鍙g僵锛�3-鎴村彛缃�
+        public byte bySmile;               //鎶撴媿鍥炬槸鍚﹀井绗戯紝0-淇濈暀锛�1-鏈煡锛�2-涓嶅井绗戯紝3-寰瑧
+        public byte byContrastStatus;      //姣斿缁撴灉锛�0-淇濈暀锛�1-姣斿鎴愬姛锛�2-姣斿澶辫触
+        public byte byBrokenNetHttp;     //鏂綉缁紶鏍囧織浣嶏紝0-涓嶆槸閲嶄紶鏁版嵁锛�1-閲嶄紶鏁版嵁
+    }
+
+    //浜ら�氫簨浠舵姤璀�(鎵╁睍)
+    public static class NET_DVR_AID_ALARM_V41 extends Structure {
+        public int dwSize;              //缁撴瀯闀垮害
+        public int dwRelativeTime;        //鐩稿鏃舵爣
+        public int dwAbsTime;            //缁濆鏃舵爣
+        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();            //鍓嶇璁惧淇℃伅
+        public NET_DVR_AID_INFO struAIDInfo = new NET_DVR_AID_INFO();         //浜ら�氫簨浠朵俊鎭�
+        public NET_DVR_SCENE_INFO struSceneInfo = new NET_DVR_SCENE_INFO();       //鍦烘櫙淇℃伅
+        public int dwPicDataLen;        //鍥剧墖闀垮害
+        public Pointer pImage;             //鎸囧悜鍥剧墖鐨勬寚閽�
+        // 0-鏁版嵁鐩存帴涓婁紶; 1-浜戝瓨鍌ㄦ湇鍔″櫒URL(3.7Ver)鍘熷厛鐨勫浘鐗囨暟鎹彉鎴怳RL鏁版嵁锛屽浘鐗囬暱搴﹀彉鎴怳RL闀垮害
+        public byte byDataType;
+        public byte byLaneNo;  //鍏宠仈杞﹂亾鍙�
+        public short wMilliSecond;        //鏃舵爣姣
+        //鐩戞祴鐐圭紪鍙凤紙璺彛缂栧彿銆佸唴閮ㄧ紪鍙凤級
+        public byte[] byMonitoringSiteID = new byte[MONITORSITE_ID_LEN/*48*/];
+        public byte[] byDeviceID = new byte[DEVICE_ID_LEN/*48*/];//璁惧缂栧彿
+        public int dwXmlLen;//XML鎶ヨ淇℃伅闀垮害
+        public Pointer pXmlBuf;// XML鎶ヨ淇℃伅鎸囬拡,鍏禭ML瀵瑰簲鍒癊ventNotificationAlert XML Block
+        public byte byTargetType;// 妫�娴嬬殑鐩爣绫诲瀷锛�0~鏈煡锛�1~琛屼汉銆�2~浜岃疆杞︺��3~涓夎疆杞�(琛屼汉妫�娴嬩腑杩斿洖)
+        public byte byRuleID;//瑙勫垯ID,1-4,褰揷ongestion浜嬩欢閰嶇疆浜嗚鍒欏尯鍩熸椂杩斿洖
+        public short wDevInfoIvmsChannelEx;     //涓嶯ET_VCA_DEV_INFO閲岀殑byIvmsChannel鍚箟鐩稿悓锛岃兘琛ㄧず鏇村ぇ鐨勫�笺�傝�佸鎴风鐢╞yIvmsChannel鑳界户缁吋瀹癸紝浣嗘槸鏈�澶у埌255銆傛柊瀹㈡埛绔増鏈浣跨敤wDevInfoIvmsChannelEx銆�
+        public byte byBrokenNetHttp; // 鏂綉缁紶鏍囧織浣嶏紝0-涓嶉噸浼犳暟鎹紝1-閲嶄紶鏁版嵁
+        public byte[] byRes = new byte[3]; // 淇濈暀瀛楄妭
+        public int dwPlateSmallPicDataLen;      //杞︾墝灏忓浘鍥剧墖闀垮害
+        public Pointer pPlateSmallImage;  // //鎸囧悜杞︾墝灏忓浘鐨勬寚閽�
+    }
+
+
+    //浜ら�氱粺璁′俊鎭姤璀�(鎵╁睍)
+    public static class NET_DVR_TPS_ALARM_V41 extends Structure {
+        public int dwSize;          // 缁撴瀯浣撳ぇ灏�
+        public int dwRelativeTime;  // 鐩稿鏃舵爣
+        public int dwAbsTime;       // 缁濆鏃舵爣
+        public NET_VCA_DEV_INFO struDevInfo;     // 鍓嶇璁惧淇℃伅
+        public NET_DVR_TPS_INFO_V41 struTPSInfo;     // 浜ら�氬弬鏁扮粺璁′俊鎭�
+        //鐩戞祴鐐圭紪鍙凤紙璺彛缂栧彿銆佸唴閮ㄧ紪鍙凤級
+        public byte[] byMonitoringSiteID = new byte[MONITORSITE_ID_LEN/*48*/];
+        public byte[] byDeviceID = new byte[DEVICE_ID_LEN/*48*/];//璁惧缂栧彿
+        public int dwStartTime;  // 寮�濮嬬粺璁℃椂闂�
+        public int dwStopTime;    // 缁撴潫缁熻鏃堕棿
+        public byte[] byRes = new byte[24];      // 淇濈暀
+    }
+
+    public static class NET_DVR_LANE_PARAM_V41 extends Structure {
+        public byte[] byRuleName = new byte[NAME_LEN]; // 杞﹂亾瑙勫垯鍚嶇О
+        public byte byRuleID;             // 瑙勫垯搴忓彿锛屼负瑙勫垯閰嶇疆缁撴瀯涓嬫爣锛�0-7
+        public byte byLaneType;             // 杞﹂亾涓婅鎴栦笅琛�
+        public byte byTrafficState;       // 杞﹂亾鐨勪氦閫氱姸鎬侊紝0-鏃犳晥锛�1-鐣呴�氾紝2-鎷ユ尋锛�3-鍫靛
+        public byte byLaneNo;            //杞﹂亾鍙�
+        public int dwVaryType;           // 杞﹂亾浜ら�氬弬鏁板彉鍖栫被鍨嬪弬鐓�  TRAFFIC_DATA_VARY_TYPE_EX_ENUM锛屾寜浣嶅尯鍒�
+        public int dwTpsType;            // 鏁版嵁鍙樺寲绫诲瀷鏍囧織锛岃〃绀哄綋鍓嶄笂浼犵殑缁熻鍙傛暟涓紝鍝簺鏁版嵁鏈夋晥锛屽弬鐓TS_TPS_TYPE,鎸変綅鍖哄垎
+        public int dwLaneVolume;         // 杞﹂亾娴侀噺锛岀粺璁℃湁澶氬皯杞﹀瓙閫氳繃
+        public int dwLaneVelocity;       // 杞﹂亾閫熷害锛屽叕閲岃绠�
+        public int dwTimeHeadway;       // 杞﹀ご鏃惰窛锛屼互绉掕绠�
+        public int dwSpaceHeadway;       // 杞﹀ご闂磋窛锛屼互绫虫潵璁$畻
+        public float fSpaceOccupyRation;   // 杞﹂亾鍗犳湁鐜囷紝鐧惧垎姣旇绠楋紙绌洪棿涓�)
+        public float fTimeOccupyRation;    // 鏃堕棿鍗犳湁鐜囷紝鐧惧垎姣旇绠�
+        public int dwLightVehicle;       // 灏忓瀷杞︽暟閲�
+        public int dwMidVehicle;         // 涓瀷杞︽暟閲�
+        public int dwHeavyVehicle;       // 閲嶅瀷杞︽暟閲�
+        public NET_DVR_LANE_QUEUE struLaneQueue;        // 杞﹂亾闃熷垪闀垮害
+        public NET_VCA_POINT struRuleLocation;     // 瑙勫垯浣嶇疆铏氭嫙绾垮湀鐨勪腑蹇�
+        public int dwOversizeVehicle;    // 澶у瀷杞︽暟閲�
+        public byte[] byRes2 = new byte[60];           // 淇濈暀
+    }
+
+    public int MAX_TPS_RULE = 8;     // 鏈�澶у弬鏁拌鍒欐暟鐩�
+
+    public static class NET_DVR_TPS_INFO_V41 extends Structure {
+        public int dwLanNum;          // 浜ら�氬弬鏁扮殑杞﹂亾鏁扮洰
+        public NET_DVR_LANE_PARAM_V41[] struLaneParam = new NET_DVR_LANE_PARAM_V41[MAX_TPS_RULE];
+        public int dwSceneID;//鍦烘櫙ID
+        public byte[] byRes = new byte[28];         //淇濈暀
+    }
+
+    // 杞﹂亾闃熷垪缁撴瀯浣�
+    public static class NET_DVR_LANE_QUEUE extends Structure {
+        public NET_VCA_POINT struHead;       //闃熷垪澶�
+        public NET_VCA_POINT struTail;       //闃熷垪灏�
+        public int dwLength;      //瀹為檯闃熷垪闀垮害 鍗曚綅涓虹背 [0-500]
+    }
+
+    //TPS缁熻杩囪溅鏁版嵁涓婁紶
+    public static class NET_DVR_TPS_STATISTICS_INFO extends Structure {
+        public int dwSize;          // 缁撴瀯浣撳ぇ灏�
+        public int dwChan;//閫氶亾鍙�
+        public NET_DVR_TPS_STATISTICS_PARAM struTPSStatisticsInfo;// 浜ら�氬弬鏁扮粺璁′俊鎭�
+        public byte[] byRes = new byte[128];      // 淇濈暀
+    }
+
+
+    // 浜ら�氬弬鏁扮粺璁′俊鎭�
+    public static class NET_DVR_TPS_STATISTICS_PARAM extends Structure {
+        public byte byStart;          // 寮�濮嬬爜
+        public byte byCMD;         // 鍛戒护鍙凤紝 08-瀹氭椂鎴愮粍鏁版嵁鎸囦护
+        public byte[] byRes = new byte[2];        // 棰勭暀瀛楄妭
+        public short wDeviceID;      // 璁惧ID
+        public short wDataLen;       // 鏁版嵁闀垮害
+        public byte byTotalLaneNum;  // 鏈夋晥杞﹂亾鎬绘暟
+        public byte[] byRes1 = new byte[15];
+        public NET_DVR_TIME_V30 struStartTime;    //缁熻寮�濮嬫椂闂�
+        public int dwSamplePeriod;    //缁熻鏃堕棿,鍗曚綅绉�
+        public NET_DVR_TPS_LANE_PARAM[] struLaneParam = new NET_DVR_TPS_LANE_PARAM[8];
+    }
+
+    //缁熻淇℃伅
+    public static class NET_DVR_TPS_LANE_PARAM extends Structure {
+        public byte byLane;             // 瀵瑰簲杞﹂亾鍙�
+        public byte bySpeed;             // 杞﹂亾杩囪溅骞冲潎閫熷害
+        public byte[] byRes = new byte[2];             // 淇濈暀
+        public int dwLightVehicle;      // 灏忓瀷杞︽暟閲�
+        public int dwMidVehicle;        // 涓瀷杞︽暟閲�
+        public int dwHeavyVehicle;      // 閲嶅瀷杞︽暟閲�
+        public int dwTimeHeadway;      // 杞﹀ご鏃惰窛锛屼互绉掕绠�
+        public int dwSpaceHeadway;     // 杞﹀ご闂磋窛锛屼互绫虫潵璁$畻
+        public float fSpaceOccupyRation; // 绌洪棿鍗犳湁鐜囷紝鐧惧垎姣旇绠�,娴偣鏁�*1000
+        public float fTimeOccupyRation;  // 鏃堕棿鍗犳湁鐜囷紝鐧惧垎姣旇绠�,娴偣鏁�*1000
+        public byte[] byRes1 = new byte[16];               // 淇濈暀
+    }
+
+    //TPS瀹炴椂杩囪溅鏁版嵁涓婁紶
+    public static class NET_DVR_TPS_REAL_TIME_INFO extends Structure {
+        public int dwSize;          // 缁撴瀯浣撳ぇ灏�
+        public int dwChan;//閫氶亾鍙�
+        public NET_DVR_TIME_V30 struTime;    //妫�娴嬫椂闂�
+        public NET_DVR_TPS_PARAM struTPSRealTimeInfo;// 浜ら�氬弬鏁扮粺璁′俊鎭�
+        public Pointer pAddInfoBuffer;
+        /*闄勫姞淇℃伅鏍囪瘑锛堝嵆鏄惁鏈塏ET_DVR_TPS_ADDINFO缁撴瀯浣擄級,0-鏃犻檮鍔犱俊鎭�, 1-鏈夐檮鍔犱俊鎭��*/
+        public byte byAddInfoFlag;
+        public byte[] byRes1 = new byte[3];      // 淇濈暀
+        public int dwDeviceIDEx;   // 璁惧ID鎵╁睍
+        public byte[] byRes = new byte[8];       // 淇濈暀
+    }
+
+    //瀹炴椂淇℃伅
+    public static class NET_DVR_TPS_PARAM extends Structure {
+        public byte byStart;          // 寮�濮嬬爜
+        public byte byCMD;         // 鍛戒护鍙凤紝01-杩涘叆鎸囦护锛�02-绂诲紑鎸囦护锛�03-鎷ュ牭鐘舵�佹寚浠�(涓�03鏃讹紝鍙湁byLaneState鍜宐yQueueLen鏈夋晥)锛�04-澶氱嚎鍦堢姸鎬侊紙涓�04鏃讹紝wLoopState鍜寃StateMask鏈夋晥锛岃〃绀篵yLane杞﹂亾涓婂涓嚎鍦堢殑杩囪溅鐘舵�侊級
+        public short wSpaceHeadway;        //杞﹀ご闂磋窛锛屼互绫虫潵璁$畻
+        public short wDeviceID;      // 璁惧ID
+        public short wDataLen;       // 鏁版嵁闀垮害
+        public byte byLane;         // 瀵瑰簲杞﹂亾鍙�
+        public byte bySpeed;        // 瀵瑰簲杞﹂�燂紙KM/H锛�
+        public byte byLaneState;     // 杞﹂亾鐘舵�侊紱0-鏃犵姸鎬侊紝1-鐣呴�氾紝2-鎷ユ尋锛�3-鍫靛
+        public byte byQueueLen;       // 鍫靛鐘舵�佷笅鎺掗槦闀垮害锛堟瘮濡�50绫筹級
+        public short wLoopState;         //绾垮湀鐘舵�侊紝绗嚑浣嶈〃绀哄嚑鍙风嚎鍦堢姸鎬併�傜姸鎬�1-鍒拌揪锛�0-绂诲紑锛岀嚎鍦堢紪鍙蜂粠闀滃ご鐢辫繎鍒拌繙渚濇澧炲ぇ锛岀敤鎴峰湪瑙f瀽鏃朵紭鍏堣В鏋愯溅閬撳彿锛屽啀瑙f瀽绾垮湀鍙凤紝鍗曚釜杞﹂亾鐨勭嚎鍦堝彿鏄敮涓�鐨勩��
+        public short wStateMask;         //绾垮湀鐘舵�佹帺鐮侊紝鎺╃爜浣嶄负1瀵瑰簲wLoopState鐘舵�佷綅鏈夋晥锛屼负0琛ㄧず鏃犳晥
+        public int dwDownwardFlow;     //褰撳墠杞﹂亾 浠庝笂鍒颁笅杞︽祦閲�
+        public int dwUpwardFlow;       //褰撳墠杞﹂亾 浠庝笅鍒颁笂杞︽祦閲�
+        public byte byJamLevel;         //鎷ュ牭绛夌骇锛屽綋byLaneState涓�3鏃舵湁鏁堬紝1-杞诲害锛�2-涓害锛�3-閲嶅害
+        public byte byVehicleDirection; //0-鏈煡锛�1-鐢变笂鑰屼笅锛�2-鐢变笅鑰屼笂
+        public byte byJamFlow;          //鎷ュ牭鏂板娴侀噺锛屾瘡鏂板涓�杈嗚溅灏变笂鎶ヤ竴娆$疮璁¤溅杈嗙殑淇℃伅
+        public byte byChannelizationLane;         //娓犲寲杞﹂亾鍙凤紙娓犲寲琛ㄧず锛岃溅閬撴暟閲忓彉鍖栫殑鎯呭喌锛屼竴鑸负璺彛杞﹂亾鐨勬暟鐩級
+        public byte byVehicleType; //杞﹀瀷璇嗗埆锛�0- 鏈煡锛�1- 瀹㈣溅(澶у瀷)锛�2- 璐ц溅(澶у瀷)锛�3- 杞胯溅(灏忓瀷)锛�4- 闈炴満鍔ㄨ溅
+        public byte[] byRes1 = new byte[5];        //淇濈暀
+        public short wTimeHeadway;        // 杞﹀ご鏃惰窛锛屼互绉掕绠�
+    }
+
+    public static class NET_DVR_TIME_SEARCH_COND extends Structure {
+        public short wYear; //骞�
+        public byte byMonth; //鏈�
+        public byte byDay; //鏃�
+        public byte byHour; //鏃�
+        public byte byMinute; //鍒�
+        public byte bySecond; //绉�
+        public byte byLocalOrUTC; //0-鏃跺樊鏃犳晥锛岃澶囨湰鍦版椂闂达紝鍗宠澶嘜SD鏃堕棿  1-鏃跺樊鏈夋晥
+        public short wMillisecond;       //姣锛岀簿搴︿笉澶燂紝榛樿涓�0
+        public byte cTimeDifferenceH;   //涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛�+琛ㄧず涓滃尯锛宐yLocalOrUTC涓�1鏃舵湁鏁�
+        public byte cTimeDifferenceM;   //涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 0, 30, 45锛�+琛ㄧず涓滃尯锛宐yLocalOrUTC涓�1鏃舵湁鏁�
+    }
+
+    //浜嬩欢鎼滅储鏉′欢
+    public static class NET_DVR_SEARCH_EVENT_PARAM extends Structure {
+        public short wMajorType;        //0-绉诲姩渚︽祴锛�1-鎶ヨ杈撳叆, 2-鏅鸿兘浜嬩欢 5-pos褰曞儚 7-闂ㄧ浜嬩欢, 8-闈炶棰戣仈鍔ㄤ簨浠�
+        public short wMinorType;       //鎼滅储娆$被鍨�- 鏍规嵁涓荤被鍨嬪彉鍖栵紝0xffff琛ㄧず鍏ㄩ儴
+        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();    //鎼滅储鐨勫紑濮嬫椂闂达紝鍋滄鏃堕棿: 鍚屾椂涓�(0, 0) 琛ㄧず浠庢渶鏃╃殑鏃堕棿寮�濮嬶紝鍒版渶鍚庯紝鏈�鍓嶉潰鐨�4000涓簨浠�
+        public NET_DVR_TIME struEndTime = new NET_DVR_TIME();    //鎼滅储鐨勭粨鏉熸椂闂�
+        public byte byLockType;      // 0xff-鍏ㄩ儴锛�0-鏈攣锛�1-閿佸畾
+        public byte byValue;        //0-鎸変綅琛ㄧず锛�1-鎸夊�艰〃绀�
+        public byte[] byRes = new byte[130];        // 淇濈暀
+        public UNION_EVENT_PARAM uSeniorParam = new UNION_EVENT_PARAM();
+    }
+
+    public static class UNION_EVENT_PARAM extends Union {
+        public byte[] byLen = new byte[SEARCH_EVENT_INFO_LEN];
+        public EVENT_INQUESTPARAM struInquestParam = new EVENT_INQUESTPARAM();
+    }
+
+    //瀹¤浜嬩欢鎼滅储鏉′欢
+    public static class EVENT_INQUESTPARAM extends Structure {
+        public byte byRoomIndex;    //瀹¤瀹ょ紪鍙�,鎸夊�艰〃绀猴紝浠�1寮�濮�
+        public byte[] byRes1 = new byte[3];
+        public byte[] sInquestInfo = new byte[INQUEST_CASE_LEN];
+        public byte[] byRes2 = new byte[232];     //淇濈暀
+    }
+
+    //浜嬩欢鎼滅储鏉′欢
+    public static class NET_DVR_SEARCH_EVENT_PARAM_V50 extends Structure {
+        public short wMajorType;            //0-绉诲姩渚︽祴锛�1-鎶ヨ杈撳叆, 2-鏅鸿兘浜嬩欢 5-pos褰曞儚 7-闂ㄧ浜嬩欢, 8-闈炶棰戣仈鍔ㄤ簨浠�
+        public short wMinorType;            //鎼滅储娆$被鍨�- 鏍规嵁涓荤被鍨嬪彉鍖栵紝0xffff琛ㄧず鍏ㄩ儴
+        public NET_DVR_TIME_SEARCH_COND struStartTime = new NET_DVR_TIME_SEARCH_COND();    //鎼滅储鐨勫紑濮嬫椂闂达紝鍋滄鏃堕棿: 鍚屾椂涓�(0, 0) 琛ㄧず浠庢渶鏃╃殑鏃堕棿寮�濮嬶紝鍒版渶鍚庯紝鏈�鍓嶉潰鐨�4000涓簨浠�
+        public NET_DVR_TIME_SEARCH_COND struEndTime = new NET_DVR_TIME_SEARCH_COND();    //鎼滅储鐨勭粨鏉熸椂闂�
+        public byte byLockType;        // 0xff-鍏ㄩ儴锛�0-鏈攣锛�1-閿佸畾
+        public byte byQuickSearch;        // 鏄惁鍚敤蹇�熸煡璇紝0-涓嶅惎鐢紝1-鍚敤锛堝揩閫熸煡璇笉浼氳繑鍥炴枃浠跺ぇ灏忥紝浠呭璁惧鏁版嵁搴撹繘琛屾煡璇紝閬垮厤棰戠箒鍞ら啋纭洏锛�
+        public byte[] byRes = new byte[254];        // 淇濈暀
+        public UNION_EVENT_PARAM_V50 uSeniorParam = new UNION_EVENT_PARAM_V50();
+    }
+
+    public static class UNION_EVENT_PARAM_V50 extends Union {
+        public byte[] byLen = new byte[SEARCH_EVENT_INFO_LEN_V40/*800*/];
+        public EVENT_ALARMPARAM_V50 struAlarmParam = new EVENT_ALARMPARAM_V50();
+        public EVENT_MOTIONPARAM_V50 struMotionParam = new EVENT_MOTIONPARAM_V50();
+        public EVENT_VCAPARAM_V50 struVcaParam = new EVENT_VCAPARAM_V50();
+        public EVENT_INQUESTPARAM_V50 struInquestParam = new EVENT_INQUESTPARAM_V50();
+        public EVENT_VCADETECTPARAM_V50 struVCADetect = new EVENT_VCADETECTPARAM_V50();
+        public EVENT_STREAMIDPARAM_V50 struStreamIDParam = new EVENT_STREAMIDPARAM_V50();
+        public EVENT_POSPARAM_V50 struPosAlarm = new EVENT_POSPARAM_V50();
+        public EVENT_TRIALPARAM_V50 struTrialParam = new EVENT_TRIALPARAM_V50();
+        public EVENT_ACSPARAM_V50 struACSAlarm = new EVENT_ACSPARAM_V50();
+        public EVENT_IOTPARAM_V50 struIOTAlarm = new EVENT_IOTPARAM_V50();
+    }
+
+    public static class EVENT_ALARMPARAM_V50 extends Structure {
+        /*鎶ヨ杈撳叆鍙凤紝鎸夊�艰〃绀�,閲囩敤绱у噾鍨嬫帓鍒楋紝0xffff琛ㄧず鍚庣画鏃犳晥*/
+        public short[] wAlarmInNo = new short[128];
+        public byte[] byRes = new byte[544]; //淇濈暀
+    }
+
+    //绉诲姩渚︽祴
+    public static class EVENT_MOTIONPARAM_V50 extends Structure {
+        /* 绉诲姩渚︽祴閫氶亾锛屾寜鍊艰〃绀� ,閲囩敤绱у噾鍨嬫帓鍒楋紝0xffff琛ㄧず鍚庣画鏃犳晥*/
+        public short[] wMotDetChanNo = new short[MAX_CHANNUM_V30];
+        public byte[] byRes = new byte[672];                /*淇濈暀*/
+    }
+
+    //寮傚父琛屼负妫�娴�
+    public static class EVENT_VCAPARAM_V50 extends Structure {
+        //寮傚父琛屼负妫�娴嬪搴旂殑閫氶亾锛屾寜鍊艰〃绀�,閲囩敤绱у噾鍨嬫帓鍒楋紝0xffff琛ㄧず鍚庣画鏃犳晥
+        public short[] wChanNo = new short[MAX_CHANNUM_V30];
+        public byte byRuleID;      //寮傚父琛屼负妫�娴嬬被鍨嬶紝瑙勫垯0xff琛ㄧず鍏ㄩ儴锛屼粠0寮�濮�
+        public byte byDriverBehaviortType;  //鍙告満椹鹃┒琛屼负绫诲瀷锛�0-淇濈暀銆�1-鎶界儫銆�2-鎺ユ墦鐢佃瘽銆�3-鐤插姵椹鹃┒銆�4-鍒嗙鎻愰啋銆�5-椹鹃┒鍛樺紓甯搞��6-鏈郴瀹夊叏甯︺��7-绾㈠闃绘柇澧ㄩ暅
+        public byte byADASType;  //楂樼骇杈呭姪椹鹃┒绫诲瀷锛�0-淇濈暀銆�1-鍓嶅悜纰版挒銆�2-杞﹂亾鍋忕銆�3-鐩插尯妫�娴嬨��4-杞﹁窛妫�娴嬨��5-琛屼汉闃叉挒銆�6-鎬ュ姞閫熴��7-鎬ュ噺閫熴��8-鎬ュ乏杞集銆�9-鎬ュ彸杞集銆�10-杞﹁締缈昏溅銆�11-鏈ぜ璁╄浜�
+        public byte byGSensorType;  // G-Sensor浜嬩欢锛�0-淇濈暀銆�1-鎬ュ姞閫熴��2-鎬ュ噺閫熴��3-鎬ュ乏杞集銆�4-鎬ュ彸杞集銆�5-杞﹁締缈昏溅銆�6-杞﹁締纰版挒
+        public byte bySensorInType;  // Sensor-In琛屼负锛�0-淇濈暀銆�1-鍒硅溅銆�2-宸﹁浆銆�3-鍙宠浆銆�4-鍊掕溅
+        public byte[] byRes = new byte[667];     /*淇濈暀*/
+    }
+
+    //瀹¤浜嬩欢鎼滅储鏉′欢
+    public static class EVENT_INQUESTPARAM_V50 extends Structure {
+        public byte byRoomIndex;    //瀹¤瀹ょ紪鍙�,浠�1寮�濮�
+        public byte[] byRes = new byte[799];     //淇濈暀
+    }
+
+    //鏅鸿兘渚︽祴鏌ユ壘鏉′欢 锛岄�氶亾鍙锋寜鍊艰〃绀�
+    public static class EVENT_VCADETECTPARAM_V50 extends Structure {
+        public byte byAll;  //鏌ユ壘鍏ㄩ儴閫氶亾锛�0-鍚︼紝姝ゆ椂dwChanNo鍙傛暟鏈夋晥锛�
+        //1-鏌ユ壘鍏ㄩ儴閫氶亾锛屾鏃禿wChanNo鍙傛暟鏃犳晥銆�
+        public byte[] byRes1 = new byte[3];
+        public short[] wChanNo = new short[MAX_CHANNUM_V30];// 瑙﹀彂閫氶亾鍙�,鎸夊�艰〃绀猴紝0xffff鏃犳晥锛屼笖鍚庣画鏁版嵁涔熻〃绀烘棤鏁堝��
+        public byte[] byRes = new byte[668];
+    }
+
+    public static class EVENT_STREAMIDPARAM_V50 extends Structure {
+        public NET_DVR_STREAM_INFO struIDInfo = new NET_DVR_STREAM_INFO(); // 娴乮d淇℃伅锛�72瀛楄妭闀�
+        public int dwCmdType;  // 澶栭儴瑙﹀彂绫诲瀷锛孨VR鎺ュ叆浜戝瓨鍌ㄤ娇鐢�
+        public byte byBackupVolumeNum; //瀛樻。鍗峰彿锛孋VR浣跨敤
+        public byte[] byRes1 = new byte[3];
+        public byte[] byArchiveLabel = new byte[64]; //瀛樻。鏍囩锛孋VR浣跨敤
+        public byte[] byRes = new byte[656];
+    }
+
+    //pos褰曞儚
+    public static class EVENT_POSPARAM_V50 extends Structure {
+        public short[] wChannel = new short[MAX_CHANNUM_V30];        //閫氶亾锛屾寜鍊艰〃绀�,绱у噾鍨嬫帓鍒楋紝閬囧埌0xffff鏃惰〃绀烘暟缁勫悗缁�兼棤鏁�
+        public byte byAllChan;        //鏄惁鏌ユ壘鍏ㄩ儴閫氶亾锛�0-鍚︼紝姝ゆ椂wChannel鏈夋晥锛�1-鍏ㄩ儴閫氶亾锛屾鏃秝Channel鏃犳晥
+        public byte byCaseSensitive;      //0-涓嶅尯鍒嗗ぇ灏忓啓锛� 1-鍖哄垎澶у皬鍐�
+        public byte byCombinateMode;  //鍏抽敭瀛楃粍鍚堟柟寮忥紝0-鎴栵紝1-涓�
+        public byte byRes1;              //淇濈暀
+        public byte[] sKeyWord = new byte[MAX_POS_KEYWORDS_NUM * MAX_POS_KEYWORD_LEN];
+        //鍏抽敭瀛楁煡鎵炬椂鐨勬潯浠�
+        public byte[] byRes = new byte[284];          //淇濈暀
+    }
+
+    public static class EVENT_TRIALPARAM_V50 extends Structure {
+        public byte[] byCaseNo = new byte[SEARCH_CASE_NO_LEN];
+        public byte[] byCaseName = new byte[SEARCH_CASE_NAME_LEN];
+        public byte[] byLitigant1 = new byte[SEARCH_LITIGANT_LEN];
+        public byte[] byLitigant2 = new byte[SEARCH_LITIGANT_LEN];
+        public byte[] byChiefJudge = new byte[SEARCH_CHIEF_JUDGE_LEN];
+        public byte byCaseType;
+        public byte[] byRes = new byte[547];
+    }
+
+    //闂ㄧ浜嬩欢鎼滅储鏉′欢
+    public static class EVENT_ACSPARAM_V50 extends Structure {
+        public int dwMajor; //鎶ヨ涓荤被鍨嬶紙涓庝簨浠朵笂浼犱富绫诲瀷涓�鑷达紝0浠h〃鍏ㄩ儴锛�
+        public int dwMinor; //鎶ヨ娆$被鍨嬶紙涓庝簨浠朵笂浼犱富绫诲瀷涓�鑷达紝0浠h〃鍏ㄩ儴锛�
+        public byte[] byCardNo = new byte[ACS_CARD_NO_LEN]; //鍗″彿
+        public byte[] byName = new byte[NAME_LEN/*32*/]; //濮撳悕
+        public byte[] byMACAddr = new byte[MACADDR_LEN]; //鐗╃悊MAC鍦板潃
+        public byte[] byRes = new byte[722];
+    }
+
+    //闈炶棰戣仈鍔ㄤ簨浠舵悳绱㈡潯浠�
+    public static class EVENT_IOTPARAM_V50 extends Structure {
+        public short wDeviceType;            //璁惧绫诲瀷,0-娴峰悍闂ㄧ涓绘満锛�1-娴峰悍鍙瀵硅璁惧, 2-娴峰悍鎶ヨ涓绘満锛堥鐣欙級 3-GJD鎶ヨ涓绘満 4-Luminite鎶ヨ涓绘満, 5-OPTEX鎶ヨ涓绘満,6-cameraDetector妯℃嫙鐩告満浼犳劅鍣ㄨ澶�
+        public short wEventType;            //鎼滅储娆$被鍨�- 鏍规嵁涓荤被鍨嬪彉鍖栵紝0xffff琛ㄧず鍏ㄩ儴
+        public short[] wChannel = new short[MAX_CHANNUM_V30/*64*/];        //閫氶亾鍙凤紝鎸夊�艰〃绀�,绱у噾鍨嬫帓鍒楋紝閬囧埌0xffff鏃惰〃绀烘暟缁勫悗缁�兼棤鏁�
+        public byte byAllChan;        //鏄惁鏌ユ壘鍏ㄩ儴閫氶亾锛�0-鍚︼紝姝ゆ椂wChannel鏈夋晥锛�1-鍏ㄩ儴閫氶亾锛屾鏃秝Channel鏃犳晥
+        public byte byCaseSensitive;      //0-涓嶅尯鍒嗗ぇ灏忓啓锛� 1-鍖哄垎澶у皬鍐�
+        public byte byCombinateMode;  //鍏抽敭瀛楃粍鍚堟柟寮忥紝0-鎴栵紝1-涓�
+        public byte bySearchType;      //鎼滅储鏂瑰紡锛�0-鎸夎棰戞簮鎼滅储锛堟鏃堕�氶亾鍙蜂负瑙嗛閫氶亾鍙凤級
+        public byte[] sKeyWord = new byte[MAX_POS_KEYWORDS_NUM * MAX_POS_KEYWORD_LEN];//鍏抽敭瀛楁煡鎵炬椂鐨勬潯浠�
+        public short wZoneNo;      //闃插尯鍙凤紝浠呭綋璁惧绫诲瀷涓烘捣搴锋姤璀︿富鏈猴紝娆$被鍨嬩负闃插尯锛坵EventType涓�1锛夋椂鏈夋晥
+        public byte[] byRes = new byte[278];   //淇濈暀
+    }
+
+    //鏌ユ壘杩斿洖缁撴灉
+    public static class NET_DVR_SEARCH_EVENT_RET extends Structure {
+        public short wMajorType;            //涓荤被鍨�
+        public short wMinorType;            //娆$被鍨�
+        public NET_DVR_TIME struStartTime = new NET_DVR_TIME();    //浜嬩欢寮�濮嬬殑鏃堕棿
+        public NET_DVR_TIME struEndTime = new NET_DVR_TIME();   //浜嬩欢鍋滄鐨勬椂闂�
+        public byte[] byChan = new byte[MAX_CHANNUM_V30];
+        public byte[] byChanEx = new byte[32];   //鍏宠仈閫氶亾锛屾寜浣嶈〃绀猴紝浣跨敤璇ュ瓧娈靛悗byChan鍙互涓嶄娇鐢�
+        public byte[] byRes = new byte[4];
+        public UNION_EVENT_RET uSeniorRet = new UNION_EVENT_RET();
+    }
+
+    public static class UNION_EVENT_RET extends Union {
+        public byte[] byLen = new byte[304];
+        public EVENT_ALARMSTRET struAlarmRet = new EVENT_ALARMSTRET();
+        public EVENT_INQUESTRET struInquestRet = new EVENT_INQUESTRET();
+    }
+
+    //鎶ヨ杈撳叆缁撴灉
+    public static class EVENT_ALARMSTRET extends Structure {
+
+        public int dwAlarmInNo;     //鎶ヨ杈撳叆鍙�
+        public byte[] byRes = new byte[SEARCH_EVENT_INFO_LEN];
+    }
+
+    //瀹¤浜嬩欢
+    public static class EVENT_INQUESTRET extends Structure {
+        public byte byRoomIndex;     //瀹¤瀹ょ紪鍙�,浠�1寮�濮�
+        public byte byDriveIndex;    //鍒诲綍鏈虹紪鍙�,浠�1寮�濮�
+        public byte[] byRes1 = new byte[6];       //淇濈暀
+        public int dwSegmentNo;     //鏈墖鏂湪鏈瀹¤涓殑搴忓彿,浠�1寮�濮�
+        public short wSegmetSize;     //鏈墖鏂殑澶у皬, 鍗曚綅M
+        public short wSegmentState;   //鏈墖鏂姸鎬� 0 鍒诲綍姝e父锛�1 鍒诲綍寮傚父锛�2 涓嶅埢褰曞璁�
+        public byte[] byRes2 = new byte[288];     //淇濈暀
+
+        @Override
+        protected List<String> getFieldOrder() {
+            return Arrays.asList("byRoomIndex", "byDriveIndex", "byRes1", "dwSegmentNo", "wSegmetSize", "wSegmentState", "byRes2");
+        }
+    }
+
+    //鏌ユ壘杩斿洖缁撴灉
+    public static class NET_DVR_SEARCH_EVENT_RET_V50 extends Structure {
+        public short wMajorType;            //涓荤被鍨�
+        public short wMinorType;            //娆$被鍨�
+        public NET_DVR_TIME_SEARCH struStartTime = new NET_DVR_TIME_SEARCH();    //浜嬩欢寮�濮嬬殑鏃堕棿
+        public NET_DVR_TIME_SEARCH struEndTime = new NET_DVR_TIME_SEARCH();   //浜嬩欢鍋滄鐨勬椂闂达紝鑴夊啿浜嬩欢鏃跺拰寮�濮嬫椂闂翠竴鏍�
+        public NET_DVR_ADDRESS struAddr = new NET_DVR_ADDRESS();  //鐗囨鎵�鍦ㄧ殑鍦板潃淇℃伅锛岄泦缇ゅ洖鏀炬椂鐢ㄥ埌
+        public short[] wChan = new short[MAX_CHANNUM_V40/*512*/];    //瑙﹀彂鐨勯�氶亾鍙凤紝0xffff琛ㄧず鍚庣画鏃犳晥
+        public byte[] byRes = new byte[256];
+        public UNION_EVENT_RET_V50 uSeniorRet = new UNION_EVENT_RET_V50();
+    }
+
+    public static class UNION_EVENT_RET_V50 extends Union {
+        public byte[] byLen = new byte[800];
+        public EVENT_ALARMRET_V50 struAlarmRet = new EVENT_ALARMRET_V50();
+        public EVENT_MOTIONRET_V50 struMotionRet = new EVENT_MOTIONRET_V50();
+        public EVENT_VCARET_V50 struVcaRet = new EVENT_VCARET_V50();
+        public EVENT_INQUESTRET_V50 struInquestRet = new EVENT_INQUESTRET_V50();
+        public EVENT_STREAMIDRET_V50 struStreamIDRet = new EVENT_STREAMIDRET_V50();
+        public EVENT_POSRET_V50 struPosRet = new EVENT_POSRET_V50();
+        public EVENT_TRIALRET_V50 struTrialRet = new EVENT_TRIALRET_V50();
+        public EVENT_IOTRET_V50 struIOTRet = new EVENT_IOTRET_V50();
+    }
+
+    //鎶ヨ杈撳叆缁撴灉
+    public static class EVENT_ALARMRET_V50 extends Structure {
+        public int dwAlarmInNo;     //鎶ヨ杈撳叆鍙�
+        public byte[] byRes = new byte[796];
+    }
+
+    //绉诲姩渚︽祴缁撴灉
+    public static class EVENT_MOTIONRET_V50 extends Structure {
+        public int dwMotDetNo;    //绉诲姩渚︽祴閫氶亾
+        public byte[] byRes = new byte[796];
+    }
+
+    //寮傚父琛屼负妫�娴嬬粨鏋�
+    public static class EVENT_VCARET_V50 extends Structure {
+        public int dwChanNo;                    //瑙﹀彂浜嬩欢鐨勯�氶亾鍙�
+        public byte byRuleID;                    //瑙勫垯ID
+        public byte[] byRes1 = new byte[3];                    //淇濈暀
+        public byte[] byRuleName = new byte[NAME_LEN];        //瑙勫垯鍚嶇О
+        public NET_VCA_EVENT_UNION uEvent = new NET_VCA_EVENT_UNION();     //琛屼负浜嬩欢鍙傛暟
+        public byte[] byRes = new byte[668];                    //淇濈暀
+    }
+
+    //瀹¤浜嬩欢
+    public static class EVENT_INQUESTRET_V50 extends Structure {
+        public byte byRoomIndex;     //瀹¤瀹ょ紪鍙�,浠�1寮�濮�
+        public byte byDriveIndex;    //鍒诲綍鏈虹紪鍙�,浠�1寮�濮�
+        public byte[] byRes1 = new byte[6];       //淇濈暀
+        public int dwSegmentNo;     //鏈墖鏂湪鏈瀹¤涓殑搴忓彿,浠�1寮�濮�
+        public short wSegmetSize;     //鏈墖鏂殑澶у皬, 鍗曚綅M
+        public short wSegmentState;   //鏈墖鏂姸鎬� 0 鍒诲綍姝e父锛�1 鍒诲綍寮傚父锛�2 涓嶅埢褰曞璁�
+        public byte[] byRes2 = new byte[784];     //淇濈暀
+    }
+
+    //娴乮d褰曞儚鏌ヨ缁撴灉
+    public static class EVENT_STREAMIDRET_V50 extends Structure {
+        public int dwRecordType;    //褰曞儚绫诲瀷 0-瀹氭椂褰曞儚 1-绉诲姩渚︽祴 2-鎶ヨ褰曞儚 3-鎶ヨ|绉诲姩渚︽祴 4-鎶ヨ&绉诲姩渚︽祴 5-鍛戒护瑙﹀彂 6-鎵嬪姩褰曞儚 7-闇囧姩鎶ヨ 8-鐜瑙﹀彂 9-鏅鸿兘鎶ヨ 10-鍥炰紶褰曞儚
+        public int dwRecordLength;    //褰曞儚澶у皬
+        public byte byLockFlag;    // 閿佸畾鏍囧織 0锛氭病閿佸畾 1锛氶攣瀹�
+        public byte byDrawFrameType;    // 0锛氶潪鎶藉抚褰曞儚 1锛氭娊甯у綍鍍�
+        public byte byPosition;// 鏂囦欢鎵�鍦ㄥ瓨鍌ㄤ綅缃細0-闃靛垪涓婏紝1-甯﹀簱鏈轰綅涓婏紝鍙互鐩存帴涓嬭浇锛�2-纾佸甫搴撳唴锛岄渶瑕佹妸纾佺洏鍒囨崲鍒版満浣嶄笂锛�3-涓嶅湪纾佸甫搴撲腑锛岄渶瑕佹妸纾佺洏鎻掑埌纾佸甫搴撲腑
+        public byte byRes1;
+        public byte[] byFileName = new byte[NAME_LEN];     //鏂囦欢鍚�
+        public int dwFileIndex;            // 瀛樻。鍗蜂笂鐨勬枃浠剁储寮�
+        public byte[] byTapeIndex = new byte[NET_SDK_MAX_TAPE_INDEX_LEN];  //鏂囦欢鎵�鍦ㄧ甯︾紪鍙�
+        public byte[] byFileNameEx = new byte[NET_SDK_MAX_FILE_LEN/*256*/]; //鏂囦欢鍚嶆墿灞�
+        public byte[] byRes = new byte[464];
+    }
+
+    //POS褰曞儚鏌ヨ缁撴灉
+    public static class EVENT_POSRET_V50 extends Structure {
+        public int dwChanNo;        //瑙﹀彂浜х敓pos浜嬩欢鐨勯�氶亾
+        public byte[] byRes = new byte[796];
+    }
+
+    public static class EVENT_TRIALRET_V50 extends Structure {
+        public byte byRoomIndex;     //瀹¤瀹ょ紪鍙�,浠�1寮�濮�
+        public byte byDriveIndex;    //鍒诲綍鏈虹紪鍙�,浠�1寮�濮�
+        public short wSegmetSize;     //鏈墖鏂殑澶у皬, 鍗曚綅M
+        public int dwSegmentNo;    //鏈墖鏂湪鏈瀹¤涓殑搴忓彿,浠�1寮�濮�
+        public byte bySegmentState;   //鏈墖鏂姸鎬侊紝0-鍒诲綍姝e父锛�1-鍒诲綍寮傚父锛�2-涓嶅埢褰曞璁�
+        public byte byCaseType; //妗堜欢绫诲瀷锛�0-鍏ㄩ儴銆�1-鍒戜簨妗堜欢銆�2-姘戜簨妗堜欢
+        public byte[] byRes = new byte[2];
+        public byte[] byCaseNo = new byte[CASE_NO_RET_LEN];  //妗堜欢缂栧彿
+        public byte[] byCaseName = new byte[CASE_NAME_RET_LEN]; //妗堜欢鍚嶇О锛�
+        public byte[] byLitigant1 = new byte[LITIGANT_RET_LEN]; //褰撲簨浜�1锛�
+        public byte[] byLitigant2 = new byte[LITIGANT_RET_LEN]; //褰撲簨浜�2锛�
+        public byte[] byChiefJudge = new byte[CHIEF_JUDGE_RET_LEN];//瀹″垽闀�
+        public byte[] byRes1 = new byte[600];
+    }
+
+    //闈炶棰戦�氶亾鏌ヨ缁撴灉
+    public static class EVENT_IOTRET_V50 extends Structure {
+        public int dwChanNo;        //瑙﹀彂浜х敓浜嬩欢鐨勯�氶亾鍙凤紙浜嬩欢婧愰�氶亾锛�
+        public byte[] byRes = new byte[796];
+    }
+
+    public static class NET_DVR_INQUEST_RESUME_SEGMENT extends Structure {
+        public NET_DVR_TIME struStartTime = new NET_DVR_TIME(); //浜嬩欢璧峰鏃堕棿
+        public NET_DVR_TIME struStopTime = new NET_DVR_TIME();  //浜嬩欢缁堟鏃堕棿
+        public byte byRoomIndex;         //瀹¤瀹ょ紪鍙�,浠�1寮�濮�
+        public byte byDriveIndex;        //鍒诲綍鏈虹紪鍙�,浠�1寮�濮�
+        public short wSegmetSize;         //鏈墖鏂殑澶у皬, 鍗曚綅M
+        public int dwSegmentNo;         //鏈墖鏂湪鏈瀹¤涓殑搴忓彿,浠�1寮�濮�
+        public byte[] byRes = new byte[24];           //淇濈暀
+    }
+
+    public static class NET_DVR_INQUEST_RESUME_EVENT extends Structure {
+        public int dwResumeNum;       //闇�鎭㈠鐨勪簨浠朵釜鏁�
+        public NET_DVR_INQUEST_RESUME_SEGMENT[] struResumeSegment = new NET_DVR_INQUEST_RESUME_SEGMENT[MAX_RESUME_SEGMENT];
+        public byte byResumeMode;        //鎭㈠妯″紡锛�0-鍗曞厜鐩樻仮澶嶏紝1-鍙屽厜鐩樻仮澶�
+        public byte[] byRes = new byte[199];        //淇濈暀
+    }
+
+    //鎶ヨ淇℃伅鏌ヨ鏉′欢缁撴瀯浣�
+    public static class NET_DVR_ALARM_SEARCH_COND extends Structure {
+        public int dwSize;
+        public NET_DVR_TIME_SEARCH_COND strStartTime; //寮�濮嬫椂闂�,鏃堕棿涓虹┖鍒欎唬琛ㄤ笉閫氳繃鏃堕棿绛涢�夈��
+        public NET_DVR_TIME_SEARCH_COND strStopTime;  //缁撴潫鏃堕棿, 鏃堕棿涓虹┖鍒欎唬琛ㄤ笉閫氳繃鏃堕棿绛涢�夈��
+        /*
+  	鎶ヨ鍛戒护锛岃瀛楁鍊间笌鎶ヨ甯冮槻绫诲瀷鐩稿悓锛岀洰鍓嶆敮鎸侊細
+  	COMM_VCA_ALARM 	0x4993  鏅鸿兘妫�娴嬫姤璀�
+  	COMM_UPLOAD_FACESNAP_RESULT    0x1112  鐗瑰緛璇嗗埆缁撴灉涓婁紶
+  	COMM_SNAP_MATCH_ALAR    0x2902  浜鸿劯姣斿缁撴灉涓婁紶
+	 */
+        public int dwAlarmComm;   //鑻ヨ鍛戒护涓虹┖杩欎唬琛ㄤ笉杩涜鎶ヨ鍛戒护杩囨护銆�
+        public byte[] sAlarmUID = new byte[64];   //UID鏍囪瘑锛堜笂浼犳姤璀︽椂璁惧杩斿洖鐨刄ID鏍囪瘑锛�64瀛楄妭鐨勯暱搴︼紝鍙互浣跨敤鏃堕棿锛堢簿纭埌姣锛夊姞涓婇殢鍗虫暟鐨勬柟寮忕粍鎴愶級,涓虹┖鍒欎唬琛ㄤ笉鍖哄垎UID
+        public byte[] byRes = new byte[128];
+    }
+
+    //鎶ヨ淇℃伅鏌ヨ缁撴灉缁撴瀯浣�
+    public static class NET_DVR_ALARM_SEARCH_RESULT extends Structure {
+        public int dwSize;
+        /*
+  	鎶ヨ鍛戒护锛岃瀛楁鍊间笌鎶ヨ甯冮槻绫诲瀷鐩稿悓锛岀洰鍓嶆敮鎸侊細
+  	COMM_VCA_ALARM 	0x4993    鏅鸿兘妫�娴嬫姤璀�
+  	COMM_UPLOAD_FACESNAP_RESULT    0x1112  鐗瑰緛璇嗗埆缁撴灉涓婁紶
+  	COMM_SNAP_MATCH_ALARM   0x2902 浜鸿劯姣斿缁撴灉涓婁紶
+	 */
+        public int dwAlarmComm;
+        /*
+  	鎶ヨ淇℃伅锛岃瀛楁鍊间笌鎶ヨ淇℃伅鐩稿悓锛岀洰鍓嶆敮鎸侊細
+  	褰揅OMM_VCA_ALARM鏃讹紝璇ユ姤璀︿俊鎭负JSON鎶ユ枃
+  	褰揅OMM_UPLOAD_FACESNAP_RESULT鏃讹紝璇ユ姤璀︿俊鎭负NET_VCA_FACESNAP_RESULT
+  	褰揅OMM_SNAP_MATCH_ALARM聴露锛岃鎶ヨ淇℃伅涓篘ET_VCA_FACESNAP_MATCH_ALARM
+	 */
+        public int dwAlarmLen;//鎶ヨ淇℃伅锛屽嵆pAlarmInfo鎸囬拡鎸囧悜鐨勬暟鎹暱搴�
+        public Pointer pAlarmInfo;
+        public NET_DVR_ALARMER struAlarmer = new NET_DVR_ALARMER();
+        public byte[] byRes = new byte[128];
+    }
+
+    public static class NET_DVR_ALARM_ISAPI_INFO extends Structure {
+        public Pointer pAlarmData;           // 鎶ヨ鏁版嵁锛堝弬瑙佷笅琛級
+        public int dwAlarmDataLen;   // 鎶ヨ鏁版嵁闀垮害
+        public byte byDataType;        // 0-invalid,1-xml,2-json
+        public byte byPicturesNumber;  // 鍥剧墖鏁伴噺
+        public byte[] byRes = new byte[2];
+        public Pointer pPicPackData;         // 鍥剧墖鍙橀暱閮ㄥ垎
+        //锛坆yPicturesNumber涓獅NET_DVR_ALARM_ISAPI_PICDATA}锛涳級
+        public byte[] byRes1 = new byte[32];
+    }
+
+    public static class NET_DVR_LOCAL_GENERAL_CFG extends Structure {
+        public byte byExceptionCbDirectly;    //0-閫氳繃绾跨▼姹犲紓甯稿洖璋冿紝1-鐩存帴寮傚父鍥炶皟缁欎笂灞�
+        public byte byNotSplitRecordFile;     //鍥炴斁鍜岄瑙堜腑淇濆瓨鍒版湰鍦板綍鍍忔枃浠朵笉鍒囩墖 0-榛樿鍒囩墖锛�1-涓嶅垏鐗�
+        public byte byResumeUpgradeEnable;    //鏂綉缁紶鍗囩骇浣胯兘锛�0-鍏抽棴锛堥粯璁わ級锛�1-寮�鍚�
+        public byte byAlarmJsonPictureSeparate;   //鎺у埗JSON閫忎紶鎶ヨ鏁版嵁鍜屽浘鐗囨槸鍚﹀垎绂伙紝0-涓嶅垎绂伙紝1-鍒嗙锛堝垎绂诲悗璧癈OMM_ISAPI_ALARM鍥炶皟杩斿洖锛�
+        public byte[] byRes = new byte[4];      //淇濈暀
+        public long i64FileSize;      //鍗曚綅锛欱yte
+        public int dwResumeUpgradeTimeout;       //鏂綉缁紶閲嶈繛瓒呮椂鏃堕棿锛屽崟浣嶆绉�
+        public byte[] byRes1 = new byte[236];    //棰勭暀
+
+    }
+
+    public static class NET_DVR_LOCAL_TCP_PORT_BIND_CFG extends Structure {
+        public short wLocalBindTcpMinPort;            //鏈湴缁戝畾Tcp鏈�灏忕鍙�
+        public short wLocalBindTcpMaxPort;            //鏈湴缁戝畾Tcp鏈�澶х鍙�
+        public byte[] byRes = new byte[60];                        //淇濈暀
+    }
+
+
+    public static class NET_DVR_LOCAL_CHECK_DEV extends Structure {
+        public int dwCheckOnlineTimeout;     //宸℃鏃堕棿闂撮殧锛屽崟浣峬s  鏈�灏忓�间负30s锛屾渶澶у��120s銆備负0鏃讹紝琛ㄧず鐢ㄩ粯璁ゅ��(120s)
+        public int dwCheckOnlineNetFailMax;  //鐢变簬缃戠粶鍘熷洜澶辫触鐨勬渶澶х疮鍔犳鏁帮紱瓒呰繃璇ュ�糞DK鎵嶅洖璋冪敤鎴峰紓甯革紝涓�0鏃讹紝琛ㄧず浣跨敤榛樿鍊�1
+        public byte[] byRes = new byte[256];
+    }
+
+    public static final int MAX_FILE_PATH_LEN = 256; //鏂囦欢璺緞闀垮害
+
+    public static class NET_DVR_ALARM_ISAPI_PICDATA extends Structure {
+        public int dwPicLen;
+        public byte byPicType;  //鍥剧墖鏍煎紡: 1- jpg
+        public byte[] byRes = new byte[3];
+        public byte[] szFilename = new byte[MAX_FILE_PATH_LEN];
+        public Pointer pPicData; // 鍥剧墖鏁版嵁
+    }
+
+    public static class NET_DVR_FOCUSMODE_CFG extends Structure {
+        public int dwSize;
+        public byte byFocusMode;  /* 鑱氱劍妯″紡锛�0-鑷姩锛�1-鎵嬪姩锛�2-鍗婅嚜鍔� */
+        public byte byAutoFocusMode; /* 鑷姩鑱氱劍妯″紡锛�0-鍏筹紝1-妯″紡A锛�2-妯″紡B锛�3-妯″紡AB锛�4-妯″紡C 鑷姩鑱氱劍妯″紡锛岄渶瑕佸湪鑱氱劍妯″紡涓鸿嚜鍔ㄦ椂鎵嶆樉绀�*/
+        public short wMinFocusDistance; /* 鏈�灏忚仛鐒﹁窛绂伙紝鍗曚綅CM,  0-鑷姩锛�0xffff-鏃犵┓杩� */
+        public byte byZoomSpeedLevel;  /* 鍙樺�嶉�熷害锛屼负瀹為檯鍙栧�硷紝1-3 */
+        public byte byFocusSpeedLevel; /* 鑱氱劍閫熷害锛屼负瀹為檯鍙栧�硷紝1-3 */
+        public byte byOpticalZoom;        /* 鍏夊鍙樺�嶏紝0-255 */
+        public byte byDigtitalZoom;        /* 鏁板瓧鍙樺�嶏紝0-255 */
+        public float fOpticalZoomLevel; /* 鍏夊鍙樺��(鍊嶇巼鍊�) [1,32], 鏈�灏忛棿闅�0.5 锛屽唴閮ㄨ澶囦氦浜掔殑鏃跺��*1000 */
+        public int dwFocusPos;/* dwFocusPos 鏄痜ocus鍊硷紙鑱氱劍鍊硷級锛岃寖鍥翠负[0x1000,0xC000]锛岃繖涓�兼槸sony鍧愭爣鍊硷紝浣跨敤杩欎釜鍊兼槸涓轰簡瀵瑰缁熶竴锛屼繚璇佷笉鍚岀殑闀滃ご瀵瑰focus鍊奸兘杞崲鍦ㄨ繖涓寖鍥村唴 (鎵嬪姩鑱氱劍妯″紡涓嬩笅搴旂敤)*/
+        public byte byFocusDefinitionDisplay;// 鑱氱劍娓呮櫚搴︽樉绀猴紝0~涓嶆樉绀猴紝1~鏄剧ず, 寮�鍚細鍦ㄧ爜娴佷笂鏄剧ず褰撳墠闀滃ご鐩爣鐨勬竻鏅板害鍊硷紝鐢ㄤ簬甯姪瀹㈡埛璋冪劍浣跨浉鏈烘姄鎷嶈兘澶熻揪鍒版渶娓呮櫚鐨勬晥鏋滐紝璇ユ竻鏅板害瓒婂ぇ浠h〃鐫�瓒婃竻鏅帮紝娓呮櫚搴﹁寖鍥翠负锛�0~100.0000
+        public byte byFocusSensitivity; //鑱氱劍鐏垫晱搴︼紝鑼冨洿[0,2]锛岃仛鐒︽ā寮忎负鑷姩銆佸崐鑷姩鏃剁敓鏁�
+        public byte[] byRes1 = new byte[2];
+        public int dwRelativeFocusPos;//鐩稿focus鍊硷紝鍏朵綆16浣嶈〃绀鸿仛鐒﹀�硷紝0~4000锛涢珮16浣嶄唬琛ㄥ綋鍓嶈仛鐒﹀�艰幏鍙栨椂鐨勬俯搴﹀��
+        public byte[] byRes = new byte[48];
+    }
+
+    public static class NET_DVR_SERIALSTART_V40 extends Structure {
+        public int dwSize;         //缁撴瀯浣撳ぇ灏�
+        public int dwSerialType;    //涓插彛鍙凤紙1-232涓插彛锛�2-485涓插彛锛�
+        public byte bySerialNum;   //涓插彛缂栧彿
+        public byte[] byRes = new byte[255];
+
+
+    }
+
+    public static class NET_DVR_PRESET_NAME extends Structure {
+        public int dwSize;
+        public short wPresetNum;   //棰勭疆鐐圭紪鍙�
+        public byte[] byRes1 = new byte[2]; //瀛楄妭瀵归綈
+        public byte[] byName = new byte[NAME_LEN];
+        public short wPanPos;  //姘村钩鍙傛暟 濡傛灉鑾峰彇鍒扮殑鏁版嵁澶т簬360榛樿鍑忓幓360
+        public short wTiltPos; //鍨傜洿鍙傛暟 濡傛灉鑾峰彇鍒扮殑鏁版嵁澶т簬360榛樿鍑忓幓360
+        public short wZoomPos; //鍙樺�嶅弬鏁板鏋滆幏鍙栧埌鐨勬暟鎹ぇ浜�360榛樿鍑忓幓360
+        public byte[] byRes = new byte[58];
+    }
+
+    //Sensor淇℃伅
+    public static class NET_DVR_SENSOR_PARAM extends Structure {
+        public byte bySensorType;//SensorType:0-CCD,1-CMOS
+        public byte[] byRes = new byte[31];
+        public float fHorWidth;//姘村钩瀹藉害 绮剧‘鍒板皬鏁扮偣鍚庝袱浣� *10000
+        public float fVerWidth;//鍨傜洿瀹藉害 绮剧‘鍒板皬鏁扮偣鍚庝袱浣� *10000
+        public float fFold;//zoom=1娌″彉鏃剁殑鐒﹁窛 绮剧‘鍒板皬鏁扮偣鍚庝袱浣� *100
+    }
+
+    //鐞冩満浣嶇疆淇℃伅
+    public static class NET_DVR_PTZPOS_PARAM extends Structure {
+        public float fPanPos;//姘村钩鍙傛暟锛岀簿纭埌灏忔暟鐐瑰悗1浣�
+        public float fTiltPos;//鍨傜洿鍙傛暟锛岀簿纭埌灏忔暟鐐瑰悗1浣�
+        public float fZoomPos;//鍙樺�嶅弬鏁帮紝绮剧‘鍒板皬鏁扮偣鍚�1浣�
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class NET_DVR_LLI_PARAM extends Structure {
+        public float fSec;//绉抂0.000000,60.000000]
+        public byte byDegree;//搴�:绾害[0,90] 缁忓害[0,180]
+        public byte byMinute;//鍒哰0,59]
+        public byte[] byRes = new byte[6];
+    }
+
+    //GIS淇℃伅涓婁紶
+    public static class NET_DVR_GIS_UPLOADINFO extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public int dwRelativeTime; //鐩稿鏃舵爣
+        public int dwAbsTime; //缁濆鏃舵爣
+        public NET_VCA_DEV_INFO struDevInfo = new NET_VCA_DEV_INFO();//鍓嶇璁惧
+        public float fAzimuth;//鐢靛瓙缃楃洏鐨勬柟浣嶄俊鎭紱鏂逛綅瑙抂0.00掳,360.00掳)
+        public byte byLatitudeType;//绾害绫诲瀷锛�0-鍖楃含锛�1-鍗楃含
+        public byte byLongitudeType;// 缁忓害绫诲瀷锛�0-涓滃害锛�1-瑗垮害
+        public byte[] byRes1 = new byte[2];
+        public NET_DVR_LLI_PARAM struLatitude = new NET_DVR_LLI_PARAM();     /*绾害*/
+        public NET_DVR_LLI_PARAM struLongitude = new NET_DVR_LLI_PARAM();   /*缁忓害*/
+        public float fHorizontalValue;//姘村钩瑙嗗満瑙掞紝绮剧‘鍒板皬鏁扮偣鍚庨潰涓や綅
+        public float fVerticalValue;//鍨傜洿瑙嗗満瑙掞紝绮剧‘鍒板皬鏁扮偣鍚庨潰涓や綅
+        public float fVisibleRadius;//褰撳墠鍙鍗婂緞锛岀簿纭埌灏忔暟鐐瑰悗闈袱浣�
+        public float fMaxViewRadius;//鏈�澶у彲瑙嗗崐寰勶紝绮剧‘鍒板皬鏁扮偣鍚庨潰0浣嶏紙棰勭暀澶勭悊锛�
+        public NET_DVR_SENSOR_PARAM struSensorParam;//Sensor淇℃伅
+        public NET_DVR_PTZPOS_PARAM struPtzPos; //ptz鍧愭爣
+        public byte[] byRes = new byte[256];
+    }
+
+    public static class NET_DVR_DAYTIME extends Structure {
+        public byte byHour;//0~24
+        public byte byMinute;//0~60
+        public byte bySecond;//0~60
+        public byte byRes;
+        public short wMilliSecond; //0~1000
+        public byte[] byRes1 = new byte[2];
+    }
+
+    public static class NET_DVR_SCHEDULE_DAYTIME extends Structure {
+        public NET_DVR_DAYTIME struStartTime; //寮�濮嬫椂闂�
+        public NET_DVR_DAYTIME struStopTime; //缁撴潫鏃堕棿
+    }
+
+    public static class NET_DVR_BUILTIN_SUPPLEMENTLIGHT extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public byte byMode;//琛ュ厜鐏ā寮� 0-瀹氭椂锛�1-寮�鍚紝2-鍏抽棴锛�3-鑷姩锛堥潪鍏夋晱锛岀畻娉曠敾闈㈣瘑鍒級
+        public byte byBrightnessLimit;//浜害闄愬埗[0,100]
+        public byte bySupplementLightMode;//琛ュ厜鐏被鍨�,0~鐧藉厜妯″紡,1~娣峰悎妯″紡
+        public byte byMixedLightRegulatMode;//娣峰悎琛ュ厜鐏寒搴﹁皟鑺傛ā寮�,0~鑷姩,1~鎵嬪姩,褰揵ySupplementLightMode = 1鏃剁敓鏁�
+        public byte byLrLightBrightness;//绾㈠浜害鎺у埗[0,100],褰揵yMixedLightRegulatMode = 1鏃剁敓鏁堛��
+        public byte byHighLrLightBrightness;// 杩滃厜绾㈠鍏変寒搴﹂厤缃甗0,100],褰揵yMixedLightRegulatMode = 1鏃剁敓鏁�
+        public byte byHighBrightnessLimit;// 杩滃厜鐧藉厜浜害閰嶇疆[0,100],褰揵yMixedLightRegulatMode = 1鏃剁敓鏁�
+        public byte byLowLrLightBrightness;// 杩戝厜绾㈠鍏変寒搴﹂厤缃甗0,100],褰揵yMixedLightRegulatMode = 1鏃剁敓鏁�
+        public NET_DVR_SCHEDULE_DAYTIME struSchedTime;//瀹氭椂鏃堕棿娈�
+        public byte byLowBrightnessLimit;//杩戝厜鐧藉厜浜害閰嶇疆[0,100],褰揵yMixedLightRegulatMode = 1鏃剁敓鏁�
+        public byte byWhiteLightBrightness;// 鐧藉厜鐏寒搴�
+        public byte[] byRes1 = new byte[254];
+    }
+
+    public static class NET_DVR_HANDLEEXCEPTION_V41 extends Structure {
+        public int dwHandleType;        //寮傚父澶勭悊,寮傚父澶勭悊鏂瑰紡鐨�"鎴�"缁撴灉
+        /*0x00: 鏃犲搷搴�*/
+        /*0x01: 甯冮槻鍣ㄤ笂璀﹀憡*/
+        /*0x02: 澹伴煶璀﹀憡*/
+        /*0x04: 涓婁紶涓績*/
+        /*0x08: 瑙﹀彂鎶ヨ杈撳嚭*/
+        /*0x10: 瑙﹀彂JPRG鎶撳浘骞朵笂浼燛mail*/
+        /*0x20: 鏃犵嚎澹板厜鎶ヨ鍣ㄨ仈鍔�*/
+        /*0x40: 鑱斿姩鐢靛瓙鍦板浘(鐩墠鍙湁PCNVR鏀寔)*/
+        /*0x200: 鎶撳浘骞朵笂浼燜TP*/
+        /*0x400: 铏氫氦渚︽祴 鑱斿姩 鑱氱劍妯″紡锛堟彁渚涘彲閰嶇疆椤癸紝鍘熷厛璁惧鑷姩瀹屾垚锛塈PC5.1.0*/
+        /*0x800: PTZ(鐞冩満鐩爣)*/
+        /*0x4000:鐧藉厜鐏姤璀�*/
+        /*0x10000:鐭俊鎶ヨ*/
+        public int dwMaxRelAlarmOutChanNum; //瑙﹀彂鐨勬姤璀﹁緭鍑洪�氶亾鏁帮紙鍙锛夋渶澶ф敮鎸佹暟
+        public int[] dwRelAlarmOut = new int[MAX_ALARMOUT_V40]; //瑙﹀彂鎶ヨ閫氶亾
+        public byte[] byRes = new byte[64];           //淇濈暀
+    }
+
+    public static class NET_DVR_PRESETCHAN_INFO extends Structure {
+        public int dwEnablePresetChan;    /*鍚敤棰勭疆鐐圭殑閫氶亾, 0xfffffff琛ㄧず涓嶈皟鐢ㄩ缃偣*/
+        public int dwPresetPointNo;        /*璋冪敤棰勭疆鐐归�氶亾瀵瑰簲鐨勯缃偣搴忓彿, 0xfffffff琛ㄧず涓嶈皟鐢ㄩ缃偣銆�*/
+    }
+
+    public static class NET_DVR_CRUISECHAN_INFO extends Structure {
+        public int dwEnableCruiseChan;    /*鍚敤宸¤埅鐨勯�氶亾*/
+        public int dwCruiseNo;        /*宸¤埅閫氶亾瀵瑰簲鐨勫贰鑸紪鍙�, 0xfffffff琛ㄧず鏃犳晥*/
+    }
+
+    public static class NET_DVR_PTZTRACKCHAN_INFO extends Structure {
+        public int dwEnablePtzTrackChan;    /*鍚敤浜戝彴鐨勯�氶亾*/
+        public int dwPtzTrackNo;        /*浜戝彴閫氶亾瀵瑰簲鐨勭紪鍙�, 0xfffffff琛ㄧず鏃犳晥*/
+    }
+
+    public static class NET_DVR_EVENT_TRIGGER extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public NET_DVR_HANDLEEXCEPTION_V41 struHandleException;     //寮傚父澶勭悊鏂瑰紡
+        public int[] dwRelRecordChan = new int[MAX_CHANNUM_V40]; //瀹為檯瑙﹀彂褰曞儚閫氶亾锛屾寜鍊艰〃绀猴紝閲囩敤绱у噾鍨嬫帓鍒楋紝浠庝笅鏍�0寮�濮嬮『搴忚鍙栵紝涓棿閬囧埌0xffffffff鍒欏悗缁棤鏁堛��
+        public NET_DVR_PRESETCHAN_INFO[] struPresetChanInfo = new NET_DVR_PRESETCHAN_INFO[MAX_CHANNUM_V40]; //鍚敤鐨勯缃偣淇℃伅
+        public NET_DVR_CRUISECHAN_INFO[] struCruiseChanInfo = new NET_DVR_CRUISECHAN_INFO[MAX_CHANNUM_V40]; //鍚敤宸¤埅鍔熻兘閫氶亾鐨勪俊鎭�
+        public NET_DVR_PTZTRACKCHAN_INFO[] struPtzTrackInfo = new NET_DVR_PTZTRACKCHAN_INFO[MAX_CHANNUM_V40]; //璋冪敤浜戝彴鐨勯�氶亾淇℃伅
+        public byte byDirection;//瑙﹀彂鏂瑰悜锛�0-淇濈暀锛�1-鍏ㄩ儴锛�2-姝e悜锛�3-鍙嶅悜
+        public byte[] byRes2 = new byte[255];
+    }
+
+    public static class NET_DVR_FACELIB_GUARD_COND extends Structure {
+        public int dwSize;
+        public int dwChannel;  //閫氶亾鍙�
+        public byte[] szFDID = new byte[68];//浜鸿劯搴撶殑ID
+        public byte[] byRes = new byte[128];
+    }
+
+    //瀵煎叆浜鸿劯鏁版嵁鏉′欢
+    public static class NET_DVR_FACELIB_COND extends Structure {
+        public int dwSize;
+        public byte[] szFDID = new byte[NET_SDK_MAX_FDID_LEN/*256*/];//浜鸿劯搴揑D
+        public byte byConcurrent;//璁惧骞跺彂澶勭悊 0-涓嶅紑鍚紝1-寮�濮�
+        public byte byCover;//鏄惁瑕嗙洊寮忓鍏� 0-鍚︼紝1-鏄�
+        public byte byCustomFaceLibID;//FDID鏄惁鏄嚜瀹氫箟锛�0-涓嶆槸锛�1-鏄紱
+        public byte byPictureSaveMode;//涓婁紶鍘熷浘淇濆瓨妯″紡锛�0-淇濆瓨锛�1-涓嶄繚瀛�;
+        public byte[] byIdentityKey = new byte[NET_SDK_MAX_INDENTITY_KEY_LEN/*64*/];//浜や簰鎿嶄綔鍙d护
+        public byte[] byRes = new byte[60];
+    }
+
+    public static class NET_DVR_SEND_PARAM_IN extends Structure {
+        public Pointer pSendData;             //鍙戦�佺殑缂撳啿鍖�,PicURL == 1 鐨勬椂鍊欙紝鍐呭瓨涓瓨鍌ㄧ殑鏄� URL 瀛楃涓�,byUploadModeling == 1 鐨勬椂鍊欙紝鍐呭瓨涓瓨鍌ㄧ殑鏄� 寤烘ābase64鍔犲瘑鏁版嵁
+        public int dwSendDataLen;         //鍙戦�佹暟鎹暱搴�,PicURL == 1 鐨勬椂鍊欙紝琛ㄧず鐨� URL 瀛楃涓茬殑闀垮害,byUploadModeling == 1 鐨勬椂鍊欙紝琛ㄧず涓哄缓妯℃暟鎹産ase64鍚庣殑鍔犲瘑闀垮害
+        public NET_DVR_TIME_V30 struTime = new NET_DVR_TIME_V30();   //鍥剧墖鏃堕棿
+        public byte byPicType;              //鍥剧墖鏍煎紡,1-jpg,2-bmp,3-png,4-SWF,5-GIF
+        public byte byPicURL;               //鍥剧墖鏁版嵁閲囩敤URL鏂瑰紡 0-浜岃繘鍒跺浘鐗囨暟鎹紝1-鍥剧墖鏁版嵁璧癠RL鏂瑰紡
+        /*鏄惁涓婁紶寤烘ā鏁版嵁锛�
+    0-	浜岃繘鍒跺浘鐗囨暟鎹柟寮�(pSendData鎸囧悜浜岃繘鍒跺浘鐗囨暟鎹�, dwPicDataLen涓哄浘鐗囦簩杩涘埗鏁版嵁闀垮害)锛�
+    1-	鐩存帴涓婁紶寤烘ā鏁版嵁(pSendData鎸囧悜寤烘ābase64鍔犲瘑鏁版嵁, dwPicDataLen涓哄缓妯℃暟鎹産ase64鍚庣殑鍔犲瘑闀垮害)銆�
+    娉細寤烘ā鏁版嵁閲囩敤base64鍔犲瘑鏂瑰紡,閫夋嫨涓哄缓妯℃暟鎹笂浼犲悗锛宐yPicURL 鏃犻渶銆�
+    褰撯��/ISAPI/Intelligent/channels/<ID>/faceContrast/capabilities鈥濊兘鍔涗腑杩斿洖isSupportUploadModeling鑳藉姏鑺傜偣鏃讹紝鏀寔涓婁紶寤烘ā鏁版嵁. */
+        public byte byUploadModeling;
+        public byte byRes1;
+        public int dwPicMangeNo;           //鍥剧墖绠$悊鍙�
+        public byte[] sPicName = new byte[NAME_LEN];     //鍥剧墖鍚嶇О
+        public int dwPicDisplayTime;       //鍥剧墖鎾斁鏃堕暱锛屽崟浣嶇
+        public Pointer pSendAppendData;       //鍙戦�佸浘鐗囩殑闄勫姞淇℃伅缂撳啿鍖猴紝瀵瑰簲FaceAppendData 鐨刋ML鎻忚堪锛�
+        public int dwSendAppendDataLen;    //鍙戦�佸浘鐗囩殑闄勫姞淇℃伅鏁版嵁闀垮害  FaceAppendData  XML鐨勯暱搴︼紱
+        public byte[] byRes = new byte[192];
+    }
+
+    public static class NET_DVR_INQUEST_ROOM extends Structure {
+        public byte byRoomIndex;     //瀹¤瀹ょ紪鍙�
+        public byte byFileType;        //0-瀹¤鏂囦欢锛�1-寮�搴笂浼犳枃浠�
+        public byte[] byRes = new byte[22];       //淇濈暀
+    }
+
+    public static class NET_DVR_INQUEST_CDRW_CFG extends Structure {
+        public int dwSize;
+        public int dwNum;                       //鍒诲綍鏈虹殑鏁伴噺
+        public int[] dwRwSelectPara = new int[MAX_CHANNUM_V30];// 鏄惁閫変腑璇ュ厜椹�
+        public int dwModeSelect;                //0琛ㄧず寰幆鍒诲綍妯″紡  1琛ㄧず骞惰鍒诲綍妯″紡(榛樿妯″紡)
+        public byte[] byRes = new byte[24];                   //淇濈暀
+        public int dwStartCDRW;                 //DVR 鏈湴宸茬粡寮�濮嬪埢褰�
+        public int dwHdExcp;                    //纭洏鏈夊紓 甯�
+        public int dwInterval;                  //鏃堕棿闂撮殧锛�10鍒嗛挓(0)銆�20鍒嗛挓(1)銆�30鍒嗛挓(2)
+        public byte[] sLable = new byte[64];                  //鍏夌洏鍚嶇О
+    }
+
+    public static class NET_DVR_INQUEST_CDRW_STATUS extends Structure {
+        /*杩愯鐘舵�侊細0-瀹¤寮�濮嬶紝
+     1-瀹¤杩囩▼涓埢褰曪紝2-瀹¤鍋滄锛�
+     3-鍒诲綍瀹¤鏂囦欢,
+     4-澶囦唤(浜嬪悗澶囦唤鍜屾湰鍦板浠�)
+     5-绌洪棽
+     6-鍒濆鍖栫‖鐩�
+     7-鎭㈠瀹¤*/
+        public int dwType;
+        public NET_DVR_INQUEST_CDRW[] strCDRWNum = new NET_DVR_INQUEST_CDRW[MAX_INQUEST_CDRW_NUM];   //鏁扮粍0琛ㄧず鍒诲綍鏈�1
+        public NET_DVR_TIME_EX struInquestStartTime = new NET_DVR_TIME_EX();        //瀹¤寮�濮嬬殑鏃堕棿鐐�
+        public byte[] byRes = new byte[16];             //淇濈暀
+    }
+
+    public static class NET_DVR_INQUEST_CDRW extends Structure {
+        public int dwEnable;            //鍒诲綍鏈虹姸鎬佹槸鍚︽湁鏁�,0-鏃犳晥,1-鏈夋晥
+        public int dwStatus;            /*褰揹wType=0鏃讹紝 0-鍏夌洏姝e父锛�1-鏃犲厜鐩樻垨鍏夌洏寮傚父,
+                                                            褰揹wType=1鎴�2鏃讹紝0-鍒诲綍姝e父锛�1-鏃犲厜鐩樻垨鍏夌洏寮傚父锛�2-鍏夌洏宸插皝鐩�(81涓嶆敮鎸�)锛�3-鍏夌洏绌洪棿涓嶈冻锛� 4-寮傚父瀵艰嚧瀹¤缁堟(81涓嶆敮鎸�)
+                                                            褰揹wType=3鏃讹紝 0-鍒诲綍姝e父锛�1-鏃犲厜鐩樻垨鍏夌洏寮傚父锛�2-鍏夌洏宸插皝鐩�(81涓嶆敮鎸�)锛�3-鍏夌洏绌洪棿涓嶈冻
+                                                            褰揹wType=4鏃讹紝0-鍒诲綍姝e父锛�1-鏃犲厜鐩樻垨鍏夌洏寮傚父锛�2-鍏夌洏宸插皝鐩�(81涓嶆敮鎸�)锛�3-鍏夌洏绌洪棿涓嶈冻
+                                                            褰揹wType=5鏃�,0-鍏夌洏姝e父锛� 1-鏃犲厜鐩樻垨鍏夌洏寮傚父,2-鍏夌洏宸插皝鐩�(81涓嶆敮鎸�)
+                                                            褰揹wType=6鎴�7鏃�, 0-鍒诲綍姝e父, 1-鏃犲厜鐩樻垨鍏夌洏寮傚父, 2-鍏夌洏宸插皝鐩�(81涓嶆敮鎸�), 3-鍏夌洏绌洪棿涓嶈冻*/
+        public int dwVolumn;      //鍏夌洏瀹归噺,鍗曚綅M
+        public int dwFreeSpace;   //鍏夌洏鍓╀綑瀹归噺,鍗曚綅M
+        public int dwTimeLeft;     // 鍏夌洏鍓╀綑鏃堕棿锛屽崟浣嶇
+        public byte byCDType;         // 鍏夌洏绫诲瀷
+        public byte[] byRes = new byte[3];      //淇濈暀瀛楄妭
+    }
+
+    //瀹炴椂娓╁害妫�娴嬫潯浠跺弬鏁�
+    public static class NET_DVR_REALTIME_THERMOMETRY_COND extends Structure {
+        public int dwSize; /*缁撴瀯浣撳ぇ灏�*/
+        public int dwChan; /*閫氶亾鍙凤紝浠�1寮�濮嬶紝0xffffffff浠h〃鑾峰彇鍏ㄩ儴閫氶亾*/
+        public byte byRuleID;/*瑙勫垯ID锛�0浠h〃鑾峰彇鍏ㄩ儴瑙勫垯锛屽叿浣撹鍒橧D浠�1寮�濮�*/
+        public byte byMode;  //闀胯繛鎺ユā寮忥細0- 淇濈暀锛堝吋瀹逛笉鏀寔璇ュ姛鑳界殑鑰佽澶囷級锛�1- 瀹氭椂妯″紡锛�2- 娓╁樊妯″紡
+        public short wInterval; //涓婁紶闂撮殧锛堜粎娓╁樊妯″紡鏀寔锛夛紝鍙栧�艰寖鍥达細1-3600 绉掞紝濉�0鍒欓粯璁�3600S涓婁紶涓�娆�
+        public byte[] byRes2 = new byte[60];
+    }
+
+    //鐐规祴娓╁疄鏃朵俊鎭�
+    public static class NET_DVR_POINT_THERM_CFG extends Structure {
+        public float fTemperature;
+        public NET_VCA_POINT struPoint;
+        public byte[] byRes = new byte[120];
+    }
+
+    //妗�/绾挎祴娓╁疄鏃朵俊鎭�
+    public static class NET_DVR_LINEPOLYGON_THERM_CFG extends Structure {
+        public float fMaxTemperature;
+        public float fMinTemperature;
+        public float fAverageTemperature;
+        public float fTemperatureDiff;
+        public NET_VCA_POLYGON struRegion;
+        public byte[] byRes = new byte[32];
+    }
+
+    //瀹炴椂娓╁害淇℃伅
+    public static class NET_DVR_THERMOMETRY_UPLOAD extends Structure {
+        public int dwSize; /* 缁撴瀯浣撳ぇ灏� */
+        public int dwRelativeTime;
+        public int dwAbsTime;
+        public byte[] szRuleName = new byte[NAME_LEN];
+        public byte byRuleID;/* 瑙勫垯ID锛�0浠h〃鑾峰彇鍏ㄩ儴瑙勫垯锛屽叿浣撹鍒橧D浠�1寮�濮� */
+        public byte byRuleCalibType;
+        public short wPresetNo;
+        public NET_DVR_POINT_THERM_CFG struPointThermCfg;
+        public NET_DVR_LINEPOLYGON_THERM_CFG struLinePolygonThermCfg;
+        public byte byThermometryUnit;
+        public byte byDataType;
+        public byte byRes1;
+        public byte bySpecialPointThermType;
+        public float fCenterPointTemperature;
+        public float fHighestPointTemperature;
+        public float fLowestPointTemperature;
+        public NET_VCA_POINT struHighestPoint;
+        public NET_VCA_POINT struLowestPoint;
+        public byte byIsFreezedata;
+        public byte[] byRes = new byte[95];
+    }
+
+    public static class NET_PTZ_INFO extends Structure {
+        public float fPan;
+        public float fTilt;
+        public float fZoom;
+        public int dwFocus;// 鑱氱劍鍙傛暟锛岃仛鐒﹁寖鍥达細褰掍竴鍖�0-100000
+        public byte[] byRes = new byte[4];
+    }
+
+    //娴嬫俯妯″紡閰嶇疆
+    public static class NET_DVR_THERMOMETRY_MODE extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public byte byMode;//娴嬫俯妯″紡锛�0~鏅�氭ā寮忥紝1~涓撳妯″紡
+        public byte byThermometryROIEnabled; //娴嬫俯ROI浣胯兘 0-淇濈暀 1-涓嶅紑鍚� 2-寮�鍚紙鍩轰簬浜掓枼鍏煎鑰冭檻锛�
+        public byte[] byRes = new byte[62];
+    }
+
+    public static class NET_DVR_THERMOMETRY_COND extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public int dwChannel;
+        public short wPresetNo;//0-淇濈暀
+        public byte[] byRes = new byte[62];
+    }
+
+    public static class NET_DVR_THERMOMETRY_PRESETINFO_PARAM extends Structure {
+        public byte byEnabled;  //鏄惁浣胯兘锛�0- 鍚︼紝1- 鏄�
+        public byte byRuleID;//瑙勫垯ID 0-琛ㄧず鏃犳晥锛屼粠1寮�濮� 锛坙ist鍐呴儴鍒ゆ柇鏁版嵁鏈夋晥鎬э級
+        public short wDistance;//璺濈(m)[0, 10000]
+        public float fEmissivity;//鍙戝皠鐜�(鍙戝皠鐜� 绮剧‘鍒板皬鏁扮偣鍚庝袱浣�)[0.01, 1.00](鍗筹細鐗╀綋鍚戝杈愬皠鑳介噺鐨勬湰棰�)
+        public byte byDistanceUnit;//璺濈鍗曚綅: 0-绫筹紙m锛夛紝1-鑻卞昂锛坒eet锛�,2-鍘樼背(centimeter)
+        public byte[] byRes = new byte[2];
+        public byte byReflectiveEnabled;//鍙嶅皠娓╁害浣胯兘锛�0- 鍚︼紝1- 鏄�
+        public float fReflectiveTemperature;//鍙嶅皠娓╁害 绮剧‘鍒板皬鏁板悗2浣�
+        public byte[] szRuleName = new byte[NAME_LEN/*32*/];//瑙勫垯鍚嶇О
+        public byte byemissivityMode; //鍙戝皠鐜囬厤缃被鍨� 1-绮楃硻锛�2-杈冪矖绯欙紝3-杈冨厜婊�, 4-鍏夋粦, 0xff-鑷畾涔�
+        public byte[] byRes1 = new byte[62];
+        public byte byRuleCalibType;//瑙勫垯鏍囧畾绫诲瀷 0-鐐癸紝1-妗嗭紝2-绾�
+        public NET_VCA_POINT struPoint = new NET_VCA_POINT();//鐐规祴娓╁潗鏍囷紙褰撹鍒欐爣瀹氱被鍨嬩负"鐐�"鐨勬椂鍊欑敓鏁堬級
+        public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();//鍖哄煙銆佺嚎锛堝綋瑙勫垯鏍囧畾绫诲瀷涓�"妗�"鎴栬��"绾�"鐨勬椂鍊欑敓鏁堬級
+    }
+
+    public static class NET_DVR_THERMOMETRY_PRESETINFO extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public short wPresetNo;//0-淇濈暀
+        public byte[] byRes = new byte[2];
+        public NET_DVR_THERMOMETRY_PRESETINFO_PARAM[] struPresetInfo = new NET_DVR_THERMOMETRY_PRESETINFO_PARAM[40];
+    }
+
+    //娓╁害鎶ヨ锛堟娴嬫俯搴﹀拰閰嶇疆娓╁害姣旇緝鎶ヨ锛�
+    public static class NET_DVR_THERMOMETRY_ALARM extends Structure {
+        public int dwSize;
+        public int dwChannel;//閫氶亾鍙�
+        public byte byRuleID;//瑙勫垯ID
+        public byte byThermometryUnit;//娴嬫俯鍗曚綅: 0-鎽勬皬搴︼紙鈩冿級锛�1-鍗庢皬搴︼紙鈩夛級锛�2-寮�灏旀枃(K)
+        public short wPresetNo; //棰勭疆鐐瑰彿
+        public NET_PTZ_INFO struPtzInfo = new NET_PTZ_INFO();//ptz鍧愭爣淇℃伅
+        public byte byAlarmLevel;//0-棰勮 1-鎶ヨ
+        public byte byAlarmType;/*鎶ヨ绫诲瀷 0-鏈�楂樻俯搴� 1-鏈�浣庢俯搴� 2-骞冲潎娓╁害 3-娓╁樊 4-娓╁害绐佸崌 5-娓╁害绐侀檷*/
+        public byte byAlarmRule;//0-澶т簬锛�1-灏忎簬
+        public byte byRuleCalibType;//瑙勫垯鏍囧畾绫诲瀷 0-鐐癸紝1-妗嗭紝2绾�
+        public NET_VCA_POINT struPoint = new NET_VCA_POINT();//鐐规祴娓╁潗鏍囷紙褰撹鍒欐爣瀹氱被鍨嬩负鐐圭殑鏃跺�欑敓鏁堬級
+        public NET_VCA_POLYGON struRegion = new NET_VCA_POLYGON();//鍖哄煙锛堝綋瑙勫垯鏍囧畾绫诲瀷涓烘鐨勬椂鍊欑敓鏁堬級
+        public float fRuleTemperature;/*閰嶇疆瑙勫垯娓╁害,绮剧‘鍒板皬鏁扮偣鍚庝竴浣�(-40-1000),锛堟诞鐐规暟+100锛� */
+        public float fCurrTemperature;/*褰撳墠娓╁害,绮剧‘鍒板皬鏁扮偣鍚庝竴浣�(-40-1000),锛堟诞鐐规暟+100锛� */
+        public int dwPicLen;//鍙鍏夊浘鐗囬暱搴�
+        public int dwThermalPicLen;//鐑垚鍍忓浘鐗囬暱搴�
+        public int dwThermalInfoLen;//鐑垚鍍忛檮鍔犱俊鎭暱搴�
+        public Pointer pPicBuff; ///鍙鍏夊浘鐗囨寚閽�
+        public Pointer pThermalPicBuff;// 鐑垚鍍忓浘鐗囨寚閽�
+        public Pointer pThermalInfoBuff; //鐑垚鍍忛檮鍔犱俊鎭寚閽�
+        public NET_VCA_POINT struHighestPoint = new NET_VCA_POINT();//绾裤�佹娴嬫俯鏈�楂樻俯搴︿綅缃潗鏍囷紙褰撹鍒欐爣瀹氱被鍨嬩负绾裤�佹鐨勬椂鍊欑敓鏁堬級
+        public float fToleranceTemperature;/* 瀹瑰樊娓╁害,绮剧‘鍒板皬鏁扮偣鍚庝竴浣�(-40-1000),锛堟诞鐐规暟+100锛� */
+        public int dwAlertFilteringTime;//娓╁害棰勮绛夊緟鏃堕棿 鍗曚綅绉� 鑼冨洿涓�0-200绉掞紝榛樿涓�0绉�
+        public int dwAlarmFilteringTime;//娓╁害鎶ヨ绛夊緟鏃堕棿 鍗曚綅绉� 鑼冨洿涓�0-200绉掞紝榛樿涓�0绉�
+        public int dwTemperatureSuddenChangeCycle;//娓╁害绐佸彉璁板綍鍛ㄦ湡锛屽崟浣嶇
+        public float fTemperatureSuddenChangeValue;//娓╁害绐佸彉鍊�,绮剧‘鍒板皬鏁扮偣鍚庝竴浣�(澶т簬0)
+        public byte byPicTransType;        //鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public byte[] byRes = new byte[39];
+    }
+
+    //娓╁樊鎶ヨ
+    public static class NET_DVR_THERMOMETRY_DIFF_ALARM extends Structure {
+        public int dwSize;
+        public int dwChannel;//閫氶亾鍙�
+        public byte byAlarmID1;//瑙勫垯AlarmID1
+        public byte byAlarmID2;//瑙勫垯AlarmID2
+        public short wPresetNo; //棰勭疆鐐瑰彿
+        public byte byAlarmLevel;//0-棰勮 1-鎶ヨ
+        public byte byAlarmType;/*鎶ヨ绫诲瀷 0-鏈�楂樻俯搴� 1-鏈�浣庢俯搴� 2-骞冲潎娓╁害*/
+        public byte byAlarmRule;//0-澶т簬锛�1-灏忎簬
+        public byte byRuleCalibType;//瑙勫垯鏍囧畾绫诲瀷 0-鐐癸紝1-妗嗭紝2绾�
+        public NET_VCA_POINT[] struPoint = (NET_VCA_POINT[]) new NET_VCA_POINT().toArray(2);//鐐规祴娓╁潗鏍囷紙褰撹鍒欐爣瀹氱被鍨嬩负鐐圭殑鏃跺�欑敓鏁堬級鏁扮粍涓嬫爣0浠h〃鐫�AlarmID1锛屾暟缁勪笅鏍�1浠h〃鐫�AlarmID2.
+        public NET_VCA_POLYGON[] struRegion = (NET_VCA_POLYGON[]) new NET_VCA_POLYGON().toArray(2);//鍖哄煙锛堝綋瑙勫垯鏍囧畾绫诲瀷涓烘鐨勬椂鍊欑敓鏁堬級鏁扮粍涓嬫爣0浠h〃鐫�AlarmID1锛屾暟缁勪笅鏍�1浠h〃鐫�AlarmID2.
+        public float fRuleTemperatureDiff;/*閰嶇疆瑙勫垯娓╁樊,绮剧‘鍒板皬鏁扮偣鍚庝竴浣�(-40-1000)锛�*/
+        public float fCurTemperatureDiff;/*褰撳墠娓╁樊,绮剧‘鍒板皬鏁扮偣鍚庝竴浣�(-40-1000),锛堟诞鐐规暟+100锛� */
+        public NET_PTZ_INFO struPtzInfo;//ptz鍧愭爣淇℃伅
+        public int dwPicLen;//鍙鍏夊浘鐗囬暱搴�
+        public int dwThermalPicLen;//鐑垚鍍忓浘鐗囬暱搴�
+        public int dwThermalInfoLen;//鐑垚鍍忛檮鍔犱俊鎭暱搴�
+        public Pointer pPicBuff; ///鍙鍏夊浘鐗囨寚閽�
+        public Pointer pThermalPicBuff;// 鐑垚鍍忓浘鐗囨寚閽�
+        public Pointer pThermalInfoBuff; //鐑垚鍍忛檮鍔犱俊鎭寚閽�
+        public byte byThermometryUnit;//娴嬫俯鍗曚綅: 0-鎽勬皬搴︼紙鈩冿級锛�1-鍗庢皬搴︼紙鈩夛級锛�2-寮�灏旀枃(K)
+        public byte byPicTransType;        //鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public byte[] byRes1 = new byte[2];
+        public float fToleranceTemperature;/*瀹瑰樊娓╁害,绮剧‘鍒板皬鏁扮偣鍚庝竴浣�(-40-1000),锛堟诞鐐规暟+100锛� */
+        public int dwAlarmFilteringTime;//娓╁害鎶ヨ绛夊緟鏃堕棿 鍗曚綅绉� 鑼冨洿涓�0-200绉掞紝榛樿涓�0绉�
+        public int dwVisibleChannel; //鍙鍏夐�氶亾閫氶亾鍙�
+        public byte[] byRes = new byte[48];
+    }
+
+    //鑸瑰彧妫�娴嬫姤璀︿笂浼�
+    public static class NET_DVR_SHIPSDETECTION_ALARM extends Structure {
+        public int dwSize;
+        public NET_VCA_DEV_INFO struDevInfo;   //璁惧淇℃伅
+        public int dwRelativeTime; //鐩稿鏃舵爣
+        public int dwAbsTime; //缁濆鏃舵爣
+        public byte byShipsNum; //鑸瑰彧鏁帮紱(姝h法瓒婃娴嬬嚎鐨勮埞鍙暟)
+        public byte byShipsNumHead;//鑸瑰彧鏁帮紱(鑸瑰ご妫�娴嬭埞鍙暟)
+        public byte byShipsNumEnd; //鑸瑰彧鏁帮紱(鑸瑰熬妫�娴嬭埞鍙暟)
+        public byte byPicTransType;        //鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public NET_DVR_SHIPSINFO[] struShipInfo = (NET_DVR_SHIPSINFO[]) new NET_DVR_SHIPSINFO().toArray(MAX_SHIPS_NUM); /*20*///鑸瑰彧淇℃伅锛涙渶澶ф敮鎸�20鑹�
+        public int dwPicLen;//鍙鍏夊浘鐗囬暱搴�
+        public int dwThermalPicLen;//鐑垚鍍忓浘鐗囬暱搴�
+        public Pointer pPicBuffer;    //鍙鍏夊浘鐗囨暟鎹寚閽�
+        public Pointer pThermalPicBuffer;    //鐑垚鍍忓浘鐗囨暟鎹寚閽�
+        public short wDevInfoIvmsChannelEx;     //涓嶯ET_VCA_DEV_INFO閲岀殑byIvmsChannel鍚箟鐩稿悓锛岃兘琛ㄧず鏇村ぇ鐨勫�笺�傝�佸鎴风鐢╞yIvmsChannel鑳界户缁吋瀹癸紝浣嗘槸鏈�澶у埌255銆傛柊瀹㈡埛绔増鏈浣跨敤wDevInfoIvmsChannelEx銆�
+        public byte byTimeDiffFlag;      /*鏃跺樊瀛楁鏄惁鏈夋晥  0-鏃跺樊鏃犳晥锛� 1-鏃跺樊鏈夋晥 */
+        public byte cTimeDifferenceH;         /*涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛� +琛ㄧず涓滃尯,锛宐yTimeDiffFlag涓�1鏃舵湁鏁�*/
+        public byte cTimeDifferenceM;        /*涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 30, 45锛� +琛ㄧず涓滃尯锛宐yTimeDiffFlag涓�1鏃舵湁鏁�*/
+        public byte bySID;//鍦烘櫙ID
+        public byte[] byRes1 = new byte[2];
+        public byte[] szSceneName = new byte[NAME_LEN];//鍦烘櫙鍚嶇О锛屼笉瓒呰繃32瀛楃
+        public byte[] byRes = new byte[216];
+    }
+
+    public static final int MAX_SHIPS_NUM = 20;   //鑸瑰彧妫�娴嬫渶澶ц埞鍙暟
+
+    //鑸瑰彧淇℃伅
+    public static class NET_DVR_SHIPSINFO extends Structure {
+        public float fShipsLength; //鑸瑰彧闀垮害锛�1~1000.0m锛岀簿纭埌灏忔暟鐐瑰悗涓�浣�
+        public float fShipsHeight; //鑸瑰彧楂樺害锛�1~1000.0m锛岀簿纭埌灏忔暟鐐瑰悗涓�浣�
+        public float fShipsWidth;  //鑸瑰彧瀹藉害锛�1~1000.0m锛岀簿纭埌灏忔暟鐐瑰悗涓�浣�
+        public float fShipsSpeed;  //鑸瑰彧閫熷害锛�1~1000.0m/s锛岀簿纭埌灏忔暟鐐瑰悗涓�浣�
+        public byte byShipsDirection;//鑸瑰彧鏂瑰悜锛�0~up,1~down,2~left,3~right
+        public byte byShipsDetState;//鑸瑰彧妫�娴嬬姸鎬侊紱0~姝h法瓒婃娴嬬嚎锛�1~鑸瑰ご妫�娴嬶紝2~鑸瑰熬妫�娴�
+        public byte byTriggerLineID;//妫�娴嬬嚎ID
+        public byte[] byRes = new byte[61];
+        public NET_VCA_POLYGON struShipsRect; //鑸瑰彧鍖哄煙锛屽綊涓�鍖栧�硷紝鐩稿浜庡ぇ鍥撅紙鍙鍏夊浘銆佺儹鎴愬儚鍥�)鐨勫垎杈ㄧ巼
+    }
+
+    public static class NET_DVR_ARRAY_LIST extends Structure {
+        public int dwSize;     // 缁撴瀯浣撳ぇ灏�
+        public int dwCount;    // 闃靛垪涓暟
+        public NET_DVR_ARRAY_INFO[] struArrayInfo = new NET_DVR_ARRAY_INFO[SUPPORT_ARRAY_NUM];
+    }
+
+    public static class NET_DVR_BGA_INFO extends Structure {
+        public byte byBga;  // 鍚庡彴浠诲姟鍙婄被鍨�
+        public byte byBgaState;           /*鍑芥暟杩斿洖鍊�--鍚庡彴浠诲姟鐘舵��*/
+        public short wBgaPercentage;     /*鍑芥暟杩斿洖鍊�--鍚庡彴浠诲姟鎵ц鐧惧垎姣�*/
+        public byte[] byRes = new byte[4];  // 淇濈暀瀛楄妭
+    }
+
+    // 闃靛垪淇℃伅
+    public static class NET_DVR_ARRAY_INFO extends Structure {
+        public short wArrayID; // 闃靛垪ID
+        public byte byRaidMode; // raid妯″紡  鍙傜収RAID_MODE
+        public byte byStatus;  // 0-鍦ㄧ嚎 1-纾佺洏涓㈠け 2-涓嬬嚎 3-闄嶇骇 4-寮傚父 5-娆℃甯� 6-澶栨潵鐩�  7-宸插垹闄� 8-SMART鐘舵�佸紓甯� 0xff-涓嶅瓨鍦�
+        public int dwHCapacity; // 闃靛垪瀹归噺楂�32浣�
+        public int dwLCapacity; // 闃靛垪瀹归噺浣�32浣�
+        public int dwHFreeSpace;   // 闃靛垪鍓╀綑绌洪棿楂�32浣�
+        public int dwLFreeSpace;   // 闃靛垪鍓╀綑绌洪棿楂�32浣�
+        public byte[] byArrayName = new byte[MAX_NAMELEN]; // 闃靛垪鍚嶇О
+        public byte byPDCount;  // 鐗╃悊纾佺洏鏁扮洰
+        public byte bySpareCount;   // 鐑鏁扮洰
+        public byte[] byRes1 = new byte[2];
+        public short[] wPDSlots = new short[SUPPORT_PD_NUM];    // 鐗╃悊纾佺洏绱㈠紩
+        public short[] wSparePDSlots = new short[SUPPORT_PD_NUM];    // 鐑纾佺洏绱㈠紩
+        public NET_DVR_BGA_INFO struBgaInfo;    // 鍚庡彴浠诲姟杩愯鐘舵��
+        public short[] wPDSlotsPartTwo = new short[SUPPORT_PD_NUM_PARTTWO];  //鐗╃悊纾佺洏绱㈠紩鎵╁睍锛�0琛ㄧず鏃犳晥
+        public short[] wSparePDSlotsPartTwo = new short[SUPPORT_PD_NUM_PARTTWO];    // 鐑纾佺洏绱㈠紩鎵╁睍锛�0琛ㄧず鏃犳晥
+        public byte[] byRes2 = new byte[48]; // 淇濈暀瀛楄妭
+    }
+
+    //鐗╃悊纾佺洏
+    public static class NET_DVR_PHY_DISK_INFO extends Structure {
+        public short wPhySlot;         // 纭洏妲戒綅
+        public byte byType;         // 纭洏淇℃伅锛�0 鏅�氾紝1鍏ㄥ眬鐑锛�2-闃靛垪鐑 3-闃靛垪鐩�
+        public byte byStatus;       // 纭洏鐘舵�侊紱  0-姝e父 1-闄嶇骇 2-宸插垹闄� 3-纾佺洏涓㈠け 4-涓嬬嚎 5-娆℃甯� 6-澶栨潵 7-寮傚父 8-SMART鐘舵�佸紓甯� 9-浼戠湢 10-鏈夊潖鍧� 0xff-涓嶅瓨鍦�
+        public byte[] byMode = new byte[40];   // 纭洏绫诲瀷 瀛楃涓�
+        public int dwHCapacity;    //  纾佺洏鎬婚噺楂�32浣� 鍗曚綅kb
+        public int dwLCapacity;    //  纾佺洏鎬婚噺浣�32浣�
+        public byte[] byArrrayName = new byte[MAX_NAMELEN];
+        public short wArrayID;          // 鎵�灞為樀鍒桰D
+        public byte byArrayInformation;   // 鏄惁鍚湁闃靛垪淇℃伅锛�0 鍚︼紝1鏄�
+        public byte[] byRes = new byte[101];         // 淇濈暀瀛楄妭
+    }
+
+    public static class NET_DVR_WORKSTATE_V40 extends Structure {
+        public int dwSize;            //缁撴瀯浣撳ぇ灏�
+        public int dwDeviceStatic;      //璁惧鐨勭姸鎬�,0-姝e父,1-CPU鍗犵敤鐜囧お楂�,瓒呰繃85%,2-纭欢閿欒,渚嬪涓插彛姝绘帀
+        public NET_DVR_DISKSTATE[] struHardDiskStatic = new NET_DVR_DISKSTATE[MAX_DISKNUM_V30];   //纭洏鐘舵��,涓�娆℃渶澶氬彧鑳借幏鍙�33涓‖鐩樹俊鎭�
+        public NET_DVR_CHANNELSTATE_V30[] struChanStatic = new NET_DVR_CHANNELSTATE_V30[MAX_CHANNUM_V40/*512*/];//閫氶亾鐨勭姸鎬侊紝浠庡墠寰�鍚庨『搴忔帓鍒�
+        public int[] dwHasAlarmInStatic = new int[MAX_ALARMIN_V40]; //鏈夋姤璀︾殑鎶ヨ杈撳叆鍙o紝鎸夊�艰〃绀猴紝鎸変笅鏍囧�奸『搴忔帓鍒楋紝鍊间负0xffffffff鏃跺綋鍓嶅強鍚庣画鍊兼棤鏁�
+        public int[] dwHasAlarmOutStatic = new int[MAX_ALARMOUT_V40]; //鏈夋姤璀﹁緭鍑虹殑鎶ヨ杈撳嚭鍙o紝鎸夊�艰〃绀猴紝鎸変笅鏍囧�奸『搴忔帓鍒楋紝鍊间负0xffffffff鏃跺綋鍓嶅強鍚庣画鍊兼棤鏁�
+        public int dwLocalDisplay;            //鏈湴鏄剧ず鐘舵��,0-姝e父,1-涓嶆甯�
+        public byte[] byAudioInChanStatus = new byte[MAX_AUDIO_V30/*2*/];        //鎸変綅琛ㄧず璇煶閫氶亾鐨勭姸鎬� 0-鏈娇鐢紝1-浣跨敤涓紝绗�0浣嶈〃绀虹1涓闊抽�氶亾
+        public byte[] byRes1 = new byte[2];
+        public float fHumidity;    //浼犳劅鍣ㄨ幏鐭ョ殑婀垮害,鑼冨洿:0.0 ~100.0
+        public float fTemperature;    //浼犳劅鍣ㄨ幏鐭ョ殑娓╁害锛岃寖鍥达細-20.0 ~ 90.0
+        public byte[] byRes = new byte[116];                 //淇濈暀
+    }
+
+    public static class NET_DVR_GETWORKSTATE_COND extends Structure {
+        public int dwSize;  //缁撴瀯浣撻暱搴�
+        public byte byFindHardByCond; /*0-鏌ユ壘鍏ㄩ儴纾佺洏(浣嗕竴娆℃渶澶氬彧鑳芥煡鎵�33涓�)锛屾鏃禿wFindHardStatusNum鏃犳晥*/
+        public byte byFindChanByCond;  /*0-鏌ユ壘鍏ㄩ儴閫氶亾锛屾鏃禿wFindChanNum鏃犳晥*/
+        public byte[] byRes1 = new byte[2];//淇濈暀
+        public int[] dwFindHardStatus = new int[MAX_DISKNUM_V30/*33*/]; /*瑕佹煡鎵剧殑纭洏鍙凤紝鎸夊�艰〃绀猴紝璇ュ�奸噰鐢ㄩ『搴忔帓鍒楋紝 閬囧埌0xffffffff鍒欒涓哄悗缁棤鏁� */
+        public int[] dwFindChanNo = new int[MAX_CHANNUM_V40/*512*/]; /*瑕佹煡鎵剧殑閫氶亾鍙凤紝鎸夊�艰〃绀猴紝璇ュ�奸噰鐢ㄩ『搴忔帓鍒楋紝 閬囧埌0xffffffff鍒欒涓哄悗缁棤鏁� */
+        public byte[] byRes = new byte[64]; //淇濈暀
+    }
+
+    //澶氳竟鍨嬬粨鏋勪綋
+    public static class NET_ITC_POLYGON extends Structure {
+        public int dwPointNum; //鏈夋晥鐐� 澶т簬绛変簬3锛岃嫢鏄�3鐐瑰湪涓�鏉$嚎涓婅涓烘槸鏃犳晥鍖哄煙锛岀嚎浜ゅ弶璁や负鏄棤鏁堝尯鍩�
+        public NET_VCA_POINT[] struPos = new NET_VCA_POINT[ITC_MAX_POLYGON_POINT_NUM]; //澶氳竟褰㈣竟鐣岀偣,鏈�澶�20涓�
+    }
+
+    public static class CUSTOM_uRegion extends Union {
+        public NET_VCA_RECT struRect = new NET_VCA_RECT();
+        public NET_ITC_POLYGON struPolygon = new NET_ITC_POLYGON();
+    }
+
+    public static class NET_ITC_PLATE_RECOG_REGION_PARAM extends Structure {
+        public byte byMode; //鍖哄煙绫诲瀷锛�0-鐭╁舰锛�1-澶氳竟褰�
+        public byte[] byRes1 = new byte[3];
+        public CUSTOM_uRegion uRegion = new CUSTOM_uRegion();
+        public byte[] byRes = new byte[16];    //淇濈暀
+    }
+
+    //鍗曠粍IO娴嬮�熷弬鏁�
+    public static class NET_ITC_SINGLE_IOSPEED_PARAM extends Structure {
+        public byte byEnable; //鏄惁鍚敤锛�0-涓嶅惎鐢紝1-鍚敤
+        public byte byTrigCoil1; //绗竴绾垮湀鍏宠仈IO锛�0-IO1,1-IO2,2-IO3,3-IO4,4-IO5,5-IO6
+        public byte byCoil1IOStatus;//绗竴绾垮湀IO杈撳叆鍙g姸鎬侊紝0-涓嬮檷娌匡紙榛樿锛夛紝1-涓婂崌娌匡紝2-涓婂崌娌垮拰涓嬮檷娌匡紝3-楂樼數骞筹紝4-浣庣數骞�
+        public byte byTrigCoil2; //绗簩绾垮湀鍏宠仈IO锛�0-IO1,1-IO2,2-IO3,3-IO4,4-IO5,5-IO6
+        public byte byCoil2IOStatus;//绗簩绾垮湀IO杈撳叆鍙g姸鎬侊紝0-涓嬮檷娌匡紙榛樿锛夛紝1-涓婂崌娌匡紝2-涓婂崌娌垮拰涓嬮檷娌匡紝3-楂樼數骞筹紝4-浣庣數骞�
+        public byte byRelatedDriveWay;//鍏宠仈鐨勮溅閬撳彿
+        public byte byTimeOut;//瓒呮椂鏃堕棿锛堥粯璁�10锛夛紝鍗曚綅s
+        public byte byRelatedIOOutEx;//绗�0浣嶈〃绀篒O杈撳嚭鍙�1锛屼互姝ょ被鎺紝0-涓嶅叧鑱旓紝1-鍏宠仈 鏀寔鍏宠仈鍒�8涓�(鍏煎byRelatedIOOut瀛楁)
+        public int dwDistance;//绾垮湀璺濈锛堥粯璁�1000锛�,鍗曚綅锛氬帢绫�
+        public byte byCapSpeed;//璧锋媿閫熷害锛堥粯璁�30锛夛紝鍗曚綅km/h
+        public byte bySpeedLimit;//闄愰�熷�硷紙榛樿60锛夛紝鍗曚綅km/h
+        public byte bySpeedCapEn; //鏄惁鍚敤瓒呴�熸姄鎷嶏紝0-鍚︼紝1-鏄�
+        public byte bySnapTimes1; //绾垮湀1鎶撴媿娆℃暟锛堥粯璁や笉鎶撴媿锛夛紝0-涓嶆姄鎷嶏紝闈�0-杩炴媿娆℃暟锛屾渶澶�5娆�
+        public byte bySnapTimes2; //绾垮湀2鎶撴媿娆℃暟锛堥粯璁�1锛夛紝0-涓嶆姄鎷嶏紝闈�0-杩炴媿娆℃暟锛屾渶澶�5娆�
+        public byte byBigCarSpeedLimit; //澶ц溅杞﹂�熼檺鍒跺��
+        public byte byBigCarSignSpeed;//鏍囧織闄愰��(澶ц溅)锛屽崟浣峩m/h(3.7Ver)
+        public byte byIntervalType;    //闂撮殧绫诲瀷锛堥粯璁ゆ寜鏃堕棿锛夛紝0-鏃堕棿璧锋晥,1-璺濈璧锋晥
+        public short[] wInterval1 = new short[MAX_INTERVAL_NUM];//绾垮湀1杩炴媿闂撮殧鏃堕棿锛堝崟浣峬s锛夋垨杩炴媿闂撮殧璺濈锛堝崟浣嶅垎绫筹級锛屽綋byIntervalType涓�0鏃讹紝琛ㄧず闂撮殧鏃堕棿锛屽綋byIntervalType涓�1鏃讹紝琛ㄧず璺濈
+        public short[] wInterval2 = new short[MAX_INTERVAL_NUM];//绾垮湀2杩炴媿闂撮殧鏃堕棿锛堝崟浣峬s锛夋垨杩炴媿闂撮殧璺濈锛堝崟浣嶅垎绫筹級锛屽綋byIntervalType涓�0鏃讹紝琛ㄧず闂撮殧鏃堕棿锛屽綋byIntervalType涓�1鏃讹紝琛ㄧず璺濈
+        public byte[] byRelatedIOOut = new byte[MAX_IOOUT_NUM]; //鍏宠仈鐨処O杈撳嚭鍙�(鍙互鍚屾椂鍏宠仈澶氫釜)锛屾暟缁�0琛ㄧずIO杈撳嚭鍙�1锛屾暟缁�1琛ㄧずIO杈撳嚭鍙�2锛屼互姝ょ被鎺紝0-涓嶅叧鑱旓紝1-鍏宠仈
+        public byte byFlashMode;   //闂厜鐏棯鐑佹ā寮忥紝0-鍚屾椂闂紝1-杞祦闂�
+        public byte byLaneType;   //杞﹂亾绫诲瀷锛�0-鏈厤缃��1-楂橀�熷叕璺��2-鍩庡競蹇�熻矾銆�0xff-鍏朵粬閬撹矾
+        public byte byCarSignSpeed;//鏍囧織闄愰�燂紝鍗曚綅km/h(3.7Ver)
+        public byte byUseageType; //杞﹂亾鐢ㄩ�旂被鍨嬶紝璇﹁ITC_LANE_USEAGE_TYPE
+        public NET_ITC_PLATE_RECOG_REGION_PARAM[] struPlateRecog = new NET_ITC_PLATE_RECOG_REGION_PARAM[MAX_LANEAREA_NUM]; //鐗岃瘑鍙傛暟(鍙敤鐗岃瘑鍖哄煙1涓紝淇濈暀涓�涓�)
+        //鍏宠仈杞﹂亾鏂瑰悜绫诲瀷锛屽弬鑰僆TC_RELA_LANE_DIRECTION_TYPE
+        //璇ュ弬鏁颁负杞﹂亾鏂瑰悜鍙傛暟锛屼笌鍏宠仈杞﹂亾鍙峰搴旓紝纭繚杞﹂亾鍞竴鎬с��
+        public byte byRelaLaneDirectionType;
+        public byte byLowSpeedLimit;                        //灏忚溅闄愬簳閫熷�硷紝鍗曚綅km/h
+        public byte byBigCarLowSpeedLimit;                //澶ц溅闄愬簳閫熷�硷紝鍗曚綅km/h
+        public byte byLowSpeedCapEn;                 //鏄惁鍚敤浣庨�熸姄鎷嶏紝0-鍚︼紝1-鏄�
+        public byte byEmergencyCapEn;                //鏄惁鍚敤搴旀�ヨ溅閬撴姄鎷嶏紝0-鍚︼紝1-鏄�
+        public byte[] byRes = new byte[27];
+    }
+
+    //鐗岃瘑鍙傛暟
+    public static class NET_ITC_PLATE_RECOG_PARAM extends Structure {
+        public byte[] byDefaultCHN = new byte[MAX_CHJC_NUM]; /*璁惧杩愯鐪佷唤鐨勬眽瀛楃畝鍐�*/
+        public byte byEnable; //鏄惁鍚敤璇ュ尯鍩熺墝璇嗭紝0-鍚︼紝1-鏄�
+        public int dwRecogMode;
+        /*璇嗗埆鐨勭被鍨嬶紝
+     bit0-鑳屽悜璇嗗埆锛�0-姝e悜杞︾墝璇嗗埆锛�1-鑳屽悜璇嗗埆(灏剧墝璇嗗埆) 锛�
+     bit1-澶ц溅鐗岃瘑鍒垨灏忚溅鐗岃瘑鍒細0-灏忚溅鐗岃瘑鍒紝1-澶ц溅鐗岃瘑鍒� 锛�
+     bit2-杞﹁韩棰滆壊璇嗗埆锛�0-涓嶉噰鐢ㄨ溅韬鑹茶瘑鍒紝鍦ㄨ儗鍚戣瘑鍒垨灏忚溅鐗岃瘑鍒椂绂佹鍚敤锛�1-杞﹁韩棰滆壊璇嗗埆锛�
+     bit3-鍐滅敤杞﹁瘑鍒細0-涓嶉噰鐢ㄥ啘鐢ㄨ溅璇嗗埆锛�1-鍐滅敤杞﹁瘑鍒紱
+     bit4-妯$硦璇嗗埆锛�0-涓嶉噰鐢ㄦā绯婅瘑鍒紝1-妯$硦璇嗗埆锛�
+     bit5-甯у畾浣嶆垨鍦哄畾浣嶏細0-甯у畾浣嶏紝1-鍦哄畾浣嶏紱
+     bit6-甯ц瘑鍒垨鍦鸿瘑鍒細0-甯ц瘑鍒紝1-鍦鸿瘑鍒紱
+     bit7-鏅氫笂鎴栫櫧澶╋細0-鐧藉ぉ锛�1-鏅氫笂
+     bit8-鎽╂墭杞﹁瘑鍒細0-涓嶉噰鐢ㄦ懇鎵樿溅璇嗗埆锛�1-鎽╂墭杞﹁瘑鍒�;
+     bit9-鍦烘櫙妯″紡锛�0-鐢佃/澶氬抚锛�1-鍗″彛锛�
+     bit10-寰皬杞︾墝锛�0-涓嶅惎鐢紝1-鍚敤寰皬杞︾墝璇嗗埆(鍍忕礌60锝�80)
+     bit11-瀹夊叏甯︽娴嬶細0-涓嶅惎鐢紝1-鍚敤瀹夊叏甯︽娴�
+     bit12-姘戣埅杞︾墝璇嗗埆: 0-涓嶅惎鐢紝1-寮�鍚皯鑸溅鐗岃瘑鍒�
+     bit13-杞︾墝杩囨浮鍊炬枩澶勭悊: 0-涓嶅惎鐢紝1-寮�鍚繃娓″�炬枩澶勭悊锛圥RS锛�
+     bit14-瓒呭ぇ杞︾墝璇嗗埆: 0-涓嶅惎鐢紝1-寮�鍚秴澶ц溅鐗岃瘑鍒紙PRS锛�
+     bit15-閬槼鏉挎娴嬶細0-涓嶅惎鐢紝1-鍚敤閬槼鏉挎娴�
+     bit16-榛勬爣杞︽娴嬶細0-涓嶅惎鐢紝1-鍚敤榛勬爣杞︽娴�
+     bit17-鍗遍櫓鍝佽溅杈嗘娴嬶細0-涓嶅惎鐢紝1-鍚敤鍗遍櫓鍝佽溅杈嗘娴�
+     bit18-浣块杞︾墝璇嗗埆锛�0-涓嶅惎鐢紝1-鍚敤浣块杞︾墝璇嗗埆
+     bit19-杞﹁締瀛愬搧鐗岃瘑鍒細0-涓嶅惎鐢紝1-鍚敤杞﹁締瀛愬搧鐗岃瘑鍒�
+     bit20-鎵撶數璇濊瘑鍒細0-涓嶅惎鐢紝1-鍚敤
+     bit21-杞︾獥鎮寕鐗╄瘑鍒細0-涓嶅惎鐢紝1-鍚敤
+     */
+        public byte byVehicleLogoRecog;//杞︽爣璇嗗埆 0-涓嶅惎鐢紝1-鍚敤
+        /*
+     0-淇濈暀锛�1-婢筹紝2-浜紝3-娓濓紝4-闂斤紝5-鐢橈紝6-绮わ紝7-妗傦紝8-璐碉紝9-鐞硷紝10-鍐�锛�11-璞紝
+     12-榛戯紝13-閯傦紝14-婀橈紝15-鍚夛紝16-鑻忥紝17-璧o紝18-杈斤紝19-钂欙紝20-瀹侊紝21-闈掞紝22-椴侊紝
+     23-鏅嬶紝24-闄曪紝25-娌紝26-宸濓紝27-鍙帮紝28-娲ワ紝29-钘忥紝30-娓紝31-鏂帮紝32-浜戯紝33-娴欙紝
+     34-鐨栵紝0xff-鍏ㄩ儴
+     */
+        public byte byProvince;//鐪佷唤绱㈠紩鍊�
+        public byte byRegion;// 鍖哄煙绱㈠紩鍊� 0-淇濈暀锛�1-娆ф床, 3-娆ф床&(EU&CIS),4-涓笢(Middle East)
+        public byte byCountry;//鍥藉绱㈠紩锛屽弬鐓ф灇涓綜OUNTRY_INDEX(涓嶆敮鎸佲�淐OUNTRY_ALL = 0xff,//ALL 鍏ㄩ儴鈥�)
+        public short wPlatePixelWidthMin;//杞︾墝鍍忕礌璇嗗埆瀹藉害鏈�灏忓�硷紙鍗曚綅鏄儚绱狅級褰撳墠鎺ㄨ崘鑼冨洿[130,500]
+        public short wPlatePixelWidthMax;//杞︾墝鍍忕礌璇嗗埆瀹藉害鏈�澶у�硷紙鍗曚綅鏄儚绱狅級褰撳墠鎺ㄨ崘鑼冨洿[130,500]
+        public byte[] byRes = new byte[24];
+    }
+
+    //鍗″彛IO娴嬮�熷弬鏁�
+    public static class NET_ITC_POST_IOSPEED_PARAM extends Structure {
+        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog; //鐗岃瘑鍙傛暟
+        public NET_ITC_SINGLE_IOSPEED_PARAM[] struSingleIOSpeed = new NET_ITC_SINGLE_IOSPEED_PARAM[MAX_IOSPEED_GROUP_NUM]; //鍗曚釜IO娴嬮�熺粍鍙傛暟
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_GEOGLOCATION extends Structure {
+        public int[] iRes = new int[2]; /*淇濈暀*/
+        public int dwCity; /*鍩庡競锛岃瑙丳ROVINCE_CITY_IDX */
+    }
+
+    public static class NET_ITC_INTERVAL_PARAM extends Structure {
+        public byte byIntervalType;    //闂撮殧绫诲瀷锛堥粯璁ゆ寜鏃堕棿锛夛紝0-鏃堕棿璧锋晥,1-璺濈璧锋晥
+        public byte[] byRes1 = new byte[3];
+        public short[] wInterval = new short[MAX_INTERVAL_NUM];//杩炴媿闂撮殧鏃堕棿锛堝崟浣峬s锛夋垨杩炴媿闂撮殧璺濈锛堝崟浣嶅垎绫筹級锛屽綋byIntervalType涓�0鏃讹紝琛ㄧず闂撮殧鏃堕棿锛屽綋byIntervalType涓�1鏃讹紝琛ㄧず璺濈
+        public byte[] byRes = new byte[8];
+    }
+
+    public static class NET_ITC_VTLANE_PARAM extends Structure {
+        public byte byRelatedDriveWay;//鍏宠仈鐨勮溅閬撳彿
+        public byte bySpeedCapEn; //鏄惁鍚敤瓒呴�熸姄鎷嶏紝0-鍚︼紝1-鏄�
+        public byte bySignSpeed;//鏍囧織闄愰�燂紝鍗曚綅km/h
+        public byte bySpeedLimit;//闄愰�熷�硷紝鍗曚綅km/h
+        public byte bySnapTimes; //鎶撴媿娆℃暟锛堥粯璁�1锛夛紝0-涓嶆姄鎷嶏紝闈�0-杩炴媿娆℃暟锛屾渶澶�5
+        public byte byBigCarSignSpeed;///*澶ц溅鏍囧織闄愰�燂紝鍗曚綅km/h*/
+        public byte byBigCarSpeedLimit;/*澶ц溅闄愰�熷�硷紝鍗曚綅km/h*/
+        public byte byRelatedIOOutEx;//绗�0浣嶈〃绀篒O杈撳嚭鍙�1锛屼互姝ょ被鎺紝0-涓嶅叧鑱旓紝1-鍏宠仈 鏀寔鍏宠仈鍒�8涓�(鍏煎byRelatedIOOut瀛楁)
+        public NET_ITC_INTERVAL_PARAM struInterval = new NET_ITC_INTERVAL_PARAM(); //鎶撴媿闂撮殧鍙傛暟
+        public byte[] byRelatedIOOut = new byte[MAX_IOOUT_NUM]; //鍏宠仈鐨処O杈撳嚭鍙o紝鍙互鍚屾椂鍏宠仈澶氫釜
+        public byte byFlashMode;   //闂厜鐏棯鐑佹ā寮忥紝0-鍚屾椂闂紝1-杞祦闂�
+        public byte byLowSpeedLimit;/*闄愪綆閫燂紝鍗曚綅km/h*/
+        public byte byBigCarLowSpeedLimit; /*澶ц溅闄愪綆閫燂紝鍗曚綅km/h*/
+        //鍏宠仈杞﹂亾鏂瑰悜绫诲瀷锛屽弬鑰僆TC_RELA_LANE_DIRECTION_TYPE
+        //璇ュ弬鏁颁负杞﹂亾鏂瑰悜鍙傛暟锛屼笌鍏宠仈杞﹂亾鍙峰搴旓紝纭繚杞﹂亾鍞竴鎬с��
+        public byte byRelaLaneDirectionType;
+        public NET_ITC_PLATE_RECOG_REGION_PARAM[] struPlateRecog = new NET_ITC_PLATE_RECOG_REGION_PARAM[MAX_LANEAREA_NUM]; //杞﹂亾鐗岃瘑鍙傛暟
+        public NET_VCA_LINE struLine = new NET_VCA_LINE(); //杞﹂亾绾�
+    }
+
+    public static class NET_ITC_VTCOIL_INFO extends Structure {
+        public NET_VCA_RECT struLaneRect = new NET_VCA_RECT();  /*铏氭嫙绾垮湀鍖哄煙*/
+        public byte byTrigFlag; //瑙﹀彂鏍囧織锛�0-杞﹀ご瑙﹀彂锛�1-杞﹀熬瑙﹀彂锛�2-杞﹀ご/杞﹀熬閮借Е鍙�
+        public byte byTrigSensitive;  //瑙﹀彂鐏垫晱搴︼紝1-100
+        public byte[] byRelatedIOOut = new byte[MAX_IOOUT_NUM]; //鍏宠仈鐨処O杈撳嚭鍙�(鍙互鍚屾椂鍏宠仈澶氫釜)锛屾暟缁�0琛ㄧずIO杈撳嚭鍙�1锛屾暟缁�1琛ㄧずIO杈撳嚭鍙�2锛屼互姝ょ被鎺紝0-涓嶅叧鑱旓紝1-鍏宠仈
+        public byte byFlashMode;   //闂厜鐏棯鐑佹ā寮忥紝0-鍚屾椂闂紝1-杞祦闂�
+        public byte byLaneType;   //杞﹂亾绫诲瀷锛�0-鏈厤缃��1-楂橀�熷叕璺��2-鍩庡競蹇�熻矾銆�0xff-鍏朵粬閬撹矾
+        public byte byEnableRadar; //鏄惁鍚敤闆疯揪娴嬮�燂紝0-鍚︼紝1-鏄�
+        public NET_ITC_VTLANE_PARAM struLane = new NET_ITC_VTLANE_PARAM(); //鍏宠仈鐨勮溅閬撳弬鏁�
+        //杞﹂亾鐢ㄩ�旂被鍨嬶紝璇﹁ITC_LANE_USEAGE_TYPE锛屼娇鐢�1鍜�8涓ょ绫诲瀷(3.7Ver)
+        public byte byUseageType;
+        //杞﹁締琛岄┒鏂瑰悜锛岃瑙両TC_LANE_CAR_DRIVE_DIRECT(3.7Ver)
+        public byte byCarDriveDirect;
+        public byte[] byRes = new byte[30];
+    }
+
+    public static class NET_ITC_RADAR_PARAM extends Structure {
+        public byte byRadarType;    //闆疯揪绫诲瀷锛�0-鏃犻浄杈�,1-瀹夐亾闆烽浄杈撅紝2-濂ュ埄缁翠簹锛�3-宸濋�熷井娉�4,闆疯揪鎺O鎵╁睍鐩�(姝ゅ弬鏁板湪鍗″彛铏氭嫙绾垮湀銆佹贩琛屽崱鍙g晫闈腑浣跨敤锛屽崱鍙S485闆疯揪涓嶄娇鐢�),0xff-鍏跺畠绫诲瀷
+        public byte byLevelAngle;   //涓庢按骞崇嚎鎵�鎴愯搴�,榛樿涓�25掳(0鍒�90搴�)
+        public short wRadarSensitivity; //闆疯揪鐏垫晱搴�
+        public short wRadarSpeedValidTime;//闆疯揪閫熷害鏈夋晥鏃堕棿(0~2000] ,0琛ㄧず涓嶆敮鎸�
+        public byte[] byRes1 = new byte[2];
+        public float fLineCorrectParam;//绾挎�х煫姝e弬鏁癧0.0~2.0]
+        public int iConstCorrectParam;//甯搁噺鐭鍙傛暟[-100~100]
+        public byte[] byRes2 = new byte[8];
+    }
+
+    //鍗″彛铏氭嫙绾垮湀瑙﹀彂鍙傛暟
+    public static class NET_ITC_POST_VTCOIL_PARAM extends Structure {
+        public byte byRelatedLaneNum;//鍏宠仈鐨勮溅閬撲釜鏁�
+        public byte byIsDisplay; //瑙嗛涓槸鍚︽樉绀鸿櫄鎷熺嚎鍦堬紝0-涓嶆樉绀猴紝1-鏄剧ず
+        public byte byLoopPos; //鏅氶棿瑙﹀彂绾垮湀鐨勫亸鍚戯紙榛樿10锛�
+        public byte byPolarLenType; /*鍋忔尟闀滅被鍨嬶紝0锛氫笉鍔犲亸鎸暅锛�1锛氬姞鏂借�愬痉鍋忔尟闀溿��*/
+        public byte byDayAuxLightMode; /*鐧藉ぉ杈呭姪鐓ф槑妯″紡锛�0锛氭棤杈呭姪鐓ф槑锛�1锛歀ED鐏収鏄庯紱2锛氶棯鍏夌伅鐓ф槑*/
+        public byte byVideoLaneNO; //瑙嗛鍙傝�冧寒搴︾殑鍙傝�冭溅閬撳彿
+        public byte byVideoLowTh; /*瑙喡嗛鍙傝�冧寒搴︿綆闃堝�煎垵濮嬪寲鍊硷紙榛樿40锛�*/
+        public byte byVideoHighTh; /*瑙嗛鍙傝�冧寒搴﹂珮闃堝�煎垵濮嬪寲鍊硷紙榛樿55锛�*/
+        public byte byRecordMode; //褰曞儚鏍囧織锛�0-涓嶅綍鍍忥紝1-褰曞儚
+        public byte bySnapMode;//鎶撴媿妯″紡锛�0-棰戦棯妯″紡锛�1-鐖嗛棯妯″紡
+        /*娴嬮�熸柟寮忥細0-涓嶆祴閫燂紝0x1-闆疯揪娴嬮�燂紝0x2-瑙嗛娴嬮��*/
+        public byte bySpeedDetector;
+        public byte byRes2;
+        public short wResolutionX;/* 璁惧褰撳墠鍒嗚鲸鐜囧*/
+        public short wResolutionY;/* 璁惧褰撳墠鍒嗚鲸鐜囬珮*/
+        public int dwDayInitExp; /*瑙嗛鐧藉ぉ鏇濆厜鏃堕棿鐨勫垵濮嬪��2000*/
+        public int dwDayMaxExp; /*瑙嗛鐧藉ぉ鏇濆厜鏃堕棿鐨勬渶澶у��20000*/
+        public int dwNightExp; /*鏅氶棿瑙嗛鏇濆厜鏃堕棿鐨勮缃��3000*/
+        public int dwSnapExp; /*鎶撴媿鏇濆厜鏃堕棿*/
+        public byte byDayInitGain; /*瑙嗛鐧藉ぉ澧炵泭鐨勫垵濮嬪��200*/
+        public byte byDayMaxGain; /*瑙嗛鐧藉ぉ澧炵泭鐨勬渶澶у��400*/
+        public byte byNightGain; /*鏅氶棿瑙嗛澧炵泭*/
+        public byte bySnapGain; /*鎶撴媿澧炵泭*/
+        public int dwSceneMode; //鍦烘櫙妯″紡锛� 璇﹁SCENE_MODE
+        public NET_DVR_GEOGLOCATION struGeogLocation = new NET_DVR_GEOGLOCATION(); //鍦板潃浣嶇疆(榛樿娴欐睙)
+        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM(); //鐗岃瘑鍙傛暟
+        public NET_ITC_VTCOIL_INFO[] struVtCoil = new NET_ITC_VTCOIL_INFO[MAX_VL_NUM]; //铏氭嫙绾垮湀鍙傛暟
+        public NET_ITC_RADAR_PARAM struRadar = new NET_ITC_RADAR_PARAM();  //闆疯揪鍙傛暟
+        public NET_VCA_LINE struLine = new NET_VCA_LINE(); //鍙宠溅閬撶嚎
+        //杩濊妫�娴嬬被鍨嬶紝鎸変綅琛ㄧず锛岃瑙両TC_VIOLATION_DETECT_TYPE锛�0-涓嶅惎鐢紝1-鍚敤(3.7Ver)
+        public int dwVioDetectType;
+        public byte byDebugMode; /*璋冭瘯妯″紡锛�0-涓嶅惎鐢紝1-鍚敤*/
+        public byte[] byRes = new byte[11];
+    }
+
+    //杞﹂亾灞炴�у弬鏁扮粨鏋�
+    public static class NET_ITC_LANE_LOGIC_PARAM extends Structure {
+        public byte byUseageType;     //杞﹂亾鐢ㄩ�旂被鍨嬶紝璇﹁ITC_LANE_USEAGE_TYPE
+        public byte byDirectionType;  //杞﹂亾鏂瑰悜绫诲瀷锛岃瑙両TC_LANE_DIRECTION_TYPE
+        public byte byCarDriveDirect; //杞﹁締琛岄┒鏂瑰悜锛岃瑙両TC_LANE_CAR_DRIVE_DIRECT
+        public byte[] byRes = new byte[33];        //淇濈暀
+    }
+
+    //瑙嗛鐢佃绾跨粨鏋�
+    public static class NET_ITC_LINE extends Structure {
+        public NET_VCA_LINE struLine = new NET_VCA_LINE(); //绾垮弬鏁�
+        public byte byLineType; //绾跨被鍨嬶紝璇﹁ITC_LINE_TYPE
+        public byte[] byRes = new byte[7];
+    }
+
+    public static class NET_ITC_SNAPMODE_PARAM extends Structure {
+        public byte byVehicleCapMode;//鏈哄姩杞︽姄鎷嶆ā寮忥紝0-棰戦棯妯″紡锛�1-鐖嗛棯妯″紡
+        public byte byNoVehicleCapMode;//闈炴満鍔ㄨ溅鎶撴媿妯″紡锛�0-棰戦棯妯″紡锛�1-鐖嗛棯妯″紡
+        public byte byPasserCapMode;//琛屼汉鎶撴媿妯″紡锛�0-棰戦棯妯″紡锛�1-鐖嗛棯妯″紡
+        public byte[] byRes = new byte[29];
+    }
+
+    //size = 128
+    public static class NET_ITC_HVT_EC_PARAM extends Structure {
+        public int dwCapShutter;            //鎶撴媿蹇棬0~65535
+        public short wCapGain;            //鎶撴媿澧炵泭0锝�100
+        public byte[] byRes = new byte[2];
+        public int dwDayTimeVideoShutter;    //鐧藉ぉ鏇濆厜鏃堕棿鏈�澶у��
+        public short wDayTimeVideoGain;        //鐧藉ぉ澧炵泭鏈�澶у��
+        public short wNightVideoGain;            //鏅氫笂澧炵泭鏈�澶у��
+        public short wNightVideoShutter;        //鏅氫笂鏇濆厜鏃堕棿鏈�澶у��
+        public byte[] byRes1 = new byte[108];
+    }
+
+    public static class NET_ITC_LANE_HVT_PARAM extends Structure {
+        public byte byLaneNO; //鍏宠仈鐨勮溅閬撳彿 1~255锛堢敤浜庡彔鍔犲拰涓婁紶锛�
+        public byte bySignSpeed;    //鏍囧織闄愰�燂紝鍗曚綅km/h 0锝�255  70
+        public byte bySpeedLimit;    //闄愰�熷�硷紝鍗曚綅km/h 0锝�255    80 瀹為檯璧锋晥
+        public byte byBigCarSignSpeed;///*澶ц溅鏍囧織闄愰�燂紝鍗曚綅km/h*/
+        public byte byBigCarSpeedLimit;/*澶ц溅闄愰�熷�硷紝鍗曚綅km/h*/
+        public byte bySpeedCapEn; //鏄惁鍚敤瓒呴�熸姄鎷嶏紝0-鍚︼紝1-鏄�
+        public byte byCaptureCount;//鎶撴媿寮犳暟1锝�5(姝e父)
+        public byte byRelatedIOOut;    /*鍏宠仈鐨処O杈撳嚭鍙�(鍙互鍚屾椂鍏宠仈澶氫釜)锛屾寜浣嶈〃绀篒O杈撳嚭鍙o紝绗�0浣嶈〃绀篒O杈撳嚭鍙�1锛屼互姝ょ被鎺紝0-涓嶅叧鑱旓紝1-鍏宠仈*/
+        public byte byFlashMode;        /*闂厜鐏棯鐑佹ā寮忥紝0-鍚屾椂闂紝1-杞祦闂�*/
+        public byte byEnableRadar; //鏄惁鍚敤闆疯揪娴嬮�燂紝0-鍚︼紝1-鏄�
+        public byte byChangeLaneEnable;   //杩濈珷鍙橀亾鎶撴媿浣胯兘锛�0-鍏抽棴锛�1-寮�鍚�
+        public byte byChangeLaneCapNo;    //杩濈珷鍙橀亾鎶撴媿寮犳暟2-3
+        public int dwCapTarget;    //鎶撴媿绫诲瀷 bit0 琛ㄧず鏈哄姩杞� bit1 琛ㄧず闈炴満鍔ㄨ溅 bit2 琛ㄧず琛屼汉 0锝炶〃绀轰笉閫夋嫨 1锝炶〃绀洪�夋嫨
+        public NET_ITC_INTERVAL_PARAM struInterval; //鎶撴媿闂撮殧鍙傛暟
+        public byte[] byRes3 = new byte[24];
+        public NET_ITC_LANE_LOGIC_PARAM struLane; //杞﹂亾灞炴�э紝鐢╞yUseageType鍜宐yCarDriveDirect
+        public NET_ITC_LINE struLeftLaneLine;          //宸﹁溅閬撶嚎锛岀嚎绫诲瀷涓鸿櫄绾裤�佸疄绾裤�佸崟榛勭嚎鍜屽弻榛勭嚎
+        public NET_ITC_LINE struRightLaneLine;          //鍙宠溅閬撶嚎锛岀嚎绫诲瀷涓鸿櫄绾裤�佸疄绾裤�佸崟榛勭嚎鍜屽弻榛勭嚎
+        public NET_ITC_POLYGON struPlateRecog;         //鐗岃瘑鍖哄煙鍙傛暟
+        public NET_ITC_POLYGON struTraceArea;          //瑙嗛瑙﹀彂鐒︾偣鍖哄煙
+        public NET_VCA_LINE struForwardTrigLine;      //姝e悜瑙﹀彂绾匡細涓�鏉$嚎娈碉紝鍏冲績绔偣浣嶇疆锛岀洰鍓嶅彧鏀寔姘村钩閰嶇疆锛屾帴鍙f寜绾挎鐨勪袱涓鐐逛繚瀛樸�傦紙涓�鑸厤缃负姝e悜杞﹁締鐨勬渶浣宠Е鍙戜綅缃級
+        public NET_VCA_LINE struBackwardTrigLine;     //鑳屽悜瑙﹀彂绾匡細涓�鏉$嚎娈碉紝鍏冲績绔偣浣嶇疆锛岀洰鍓嶅彧鏀寔姘村钩閰嶇疆锛屾帴鍙f寜绾挎鐨勪袱涓鐐逛繚瀛橈紙涓�鑸厤缃负鑳屽悜杞﹁締鐨勬渶浣宠Е鍙戜綅缃級
+        public NET_VCA_LINE struLeftTrigLine;          //宸﹁竟瑙﹀彂绾匡細涓�鏉$嚎娈碉紝鍏冲績绔偣浣嶇疆锛岀洰鍓嶅彧鏀寔鍨傜洿閰嶇疆锛屾帴鍙f寜绾挎鐨勪袱涓鐐逛繚瀛橈紙涓�鑸厤缃负浠庡乏杈硅繘鍏ヨ溅杈嗙殑鏈�浣宠Е鍙戜綅缃級
+        public NET_VCA_LINE struRightTrigLine;          //鍙宠竟瑙﹀彂绾匡細涓�鏉$嚎娈碉紝鍏冲績绔偣浣嶇疆锛岀洰鍓嶅彧鏀寔鍨傜洿閰嶇疆锛屾帴鍙f寜绾挎鐨勪袱涓鐐逛繚瀛橈紙涓�鑸厤缃负浠庡彸杈硅繘鍏ヨ溅杈嗙殑鏈�浣宠Е鍙戜綅缃級
+        public byte[] byRes4 = new byte[60];
+    }
+
+    public static class NET_ITC_POST_HVT_PARAM extends Structure {
+        public byte byLaneNum;//璇嗗埆鐨勮溅閬撲釜鏁帮紝1-6
+        public byte bySceneMode;//0-鏈煡1-鍩庡尯閬撹矾锛�2-灏忓尯鍑哄叆鍙�
+        public byte byRoadExpBright;//璺潰鏈熸湜浜害锛堣棰戞洕鍏夊弬鏁拌皟鏁寸殑渚濇嵁涔嬩竴銆傚湪鏃犳満鍔ㄨ溅鏃讹紝渚濇嵁姝や寒搴︽湡鏈涘�硷紝璋冩暣瑙嗛鏇濆厜鍙傛暟锛�
+        public byte byPlateExpBright;//杞︾墝鏈熸湜浜害锛堣棰戞洕鍏夊弬鏁拌皟鏁寸殑渚濇嵁涔嬩竴銆傚湪鏈夋満鍔ㄨ溅閫氳繃骞惰瘑鍒埌杞︾墝鏃讹紝渚濇嵁姝や寒搴︽湡鏈涘�硷紝瀵硅棰戞洕鍏夊弬鏁拌皟鏁达級
+        public NET_ITC_POLYGON struDetectArea;                    //瑙嗛妫�娴嬪尯鍩�
+        public NET_ITC_SNAPMODE_PARAM struCapMode = new NET_ITC_SNAPMODE_PARAM();//鎶撴媿妯″紡
+        public NET_ITC_HVT_EC_PARAM struEcParam = new NET_ITC_HVT_EC_PARAM();    //鏇濆厜鎺у埗鍙傛暟
+        public NET_ITC_LANE_HVT_PARAM[] struLaneParam = new NET_ITC_LANE_HVT_PARAM[MAX_ITC_LANE_NUM]; //鍗曡溅閬撳睘鎬�
+        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM();    //鐗岃瘑鍙傛暟
+        public NET_DVR_GEOGLOCATION struGeogLocation = new NET_DVR_GEOGLOCATION();    //鍦板潃浣嶇疆锛堥粯璁ゆ禉姹燂級
+        public byte[] byRes = new byte[324];
+    }
+
+    //鎶撴媿鏈�4.0鏂板
+    public static class NET_ITC_LANE_HVT_PARAM_V50 extends Structure {
+        public byte byLaneNO;        //鍏宠仈鐨勮溅閬撳彿1锝�255(鐢ㄤ簬鍙犲姞鍜屼笂浼�)
+        public byte byFlashMode;    //闂厜鐏棯鐑佹ā寮忥紝0-鍚屾椂闂紝1-杞祦闂�
+        public byte bySignSpeed;    //灏忚溅鏍囧織闄愰珮閫燂紝鍗曚綅km/h
+        public byte bySpeedLimit;    //灏忚溅闄愰珮閫熷�硷紝鍗曚綅km/h
+        public byte bySignLowSpeed;    //灏忚溅鏍囧織闄愬簳閫燂紝鍗曚綅km/h
+        public byte byLowSpeedLimit;    //灏忚溅闄愬簳閫熷�硷紝鍗曚綅km/h
+        public byte byBigCarSignSpeed;    //澶ц溅鏍囧織闄愰珮閫燂紝鍗曚綅km/h锛堟柊浜よ锛�
+        public byte byBigCarSpeedLimit;    //澶ц溅闄愰珮閫熷�硷紝鍗曚綅km/h锛堟柊浜よ锛�
+        public byte byBigCarSignLowSpeed;    //澶ц溅鏍囧織闄愬簳閫燂紝鍗曚綅km/h
+        public byte byBigCarLowSpeedLimit;    //澶ц溅闄愬簳閫熷�硷紝鍗曚綅km/h
+        public byte bySnapTimes;    //鍗″彛鎶撴媿寮犳暟锛�1~3
+        public byte byDriveLineSnapTime;// 鍘嬬嚎鎶撴媿寮犳暟 1~3
+        public byte byHighSpeedSnapTime;// 瓒呴珮閫熸姄鎷嶅紶鏁�1~3
+        public byte byLowSpeedSnapTime;// 瓒呬綆閫熸姄鎷嶅紶鏁�1~3
+        public byte byBanSnapTime;// 杩濆弽绂佷护鎶撴媿寮犳暟  1~3
+        public byte byReverseSnapTime;//閫嗚鎶撴媿寮犳暟  1~3
+        public byte byRelatedDriveWay;                //鍏宠仈杞﹂亾鍙凤紝鐢ㄤ簬鍖归厤杞︽鍣�
+        public byte byLaneType;   //杞﹂亾绫诲瀷锛�0-鏈厤缃��1-楂橀�熷叕璺��2-鍩庡競蹇�熻矾銆�0xff-鍏朵粬閬撹矾
+        //鍏宠仈杞﹂亾鏂瑰悜绫诲瀷锛屽弬鑰僆TC_RELA_LANE_DIRECTION_TYPE
+        //璇ュ弬鏁颁负杞﹂亾鏂瑰悜鍙傛暟锛屼笌鍏宠仈杞﹂亾鍙穊yRelatedDriveWay瀵瑰簲锛岀‘淇濊溅閬撳敮涓�鎬с��
+        public byte byRelaLaneDirectionType;
+        public byte[] byRes1 = new byte[27];
+        public byte byChangeLaneEnable;   //杩濈珷鍙橀亾鎶撴媿浣胯兘锛�0-鍏抽棴锛�1-寮�鍚�
+        public byte byChangeLaneCapNo;    //杩濈珷鍙橀亾鎶撴媿寮犳暟2-3
+        //鐩墠浠呬娇鐢ㄧ涓�涓溅閬撶殑锛屼互鍚庡彲鑳戒細鎵╁睍涓哄杞﹂亾鍒嗗埆閰嶇疆
+        //绫诲瀷, 鎸変綅琛ㄧず,0-涓嶅惎鐢�,1-鍚敤鍙傝�� ITC_VIOLATION_DETECT_TYPE
+        public int dwVioDetectType;
+        public int dwRelatedIOOut;  //鍏宠仈鐨処O杈撳嚭鍙�(鍙互鍚屾椂鍏宠仈澶氫釜)锛屾寜浣嶈〃绀篒O杈撳嚭鍙o紝绗�0浣嶈〃绀篒O杈撳嚭鍙�1锛屼互姝ょ被鎺紝0-涓嶅叧鑱旓紝1-鍏宠仈
+        public NET_ITC_LINE struTrigLine; //瑙﹀彂绾匡紝鐩墠浠呬娇鐢ㄧ涓�涓溅閬撶殑锛屼互鍚庡彲鑳戒細鎵╁睍涓哄杞﹂亾鍒嗗埆閰嶇疆
+        public NET_ITC_LINE struLineLeft;                //宸﹁溅閬撶嚎
+        public NET_ITC_POLYGON struPlateRecog;       //鐗岃瘑鍖哄煙
+        public NET_ITC_LANE_LOGIC_PARAM struLane;   //杞﹂亾灞炴�э紝鐢╞yUseageType鍜宐yCarDriveDirect
+        public NET_ITC_INTERVAL_PARAM struInterval;//鎶撴媿闂撮殧鍙傛暟锛�20byte锛�
+        public byte[] byRes2 = new byte[280];
+    }
+
+    public static class NET_ITC_POST_HVT_PARAM_V50 extends Structure {
+        public byte byLaneNum;    //璇嗗埆鐨勮溅閬撲釜鏁帮紝1-6
+        public byte byCapType;        //鎶撴媿绫诲瀷锛�0-鏈恒�侀潪銆佷汉锛堥粯璁わ級锛�1-鏈哄姩杞�
+        public byte byCapMode;    //鎶撴媿鏂瑰紡锛�0-瑙嗛鎶藉抚锛�1-鎵撴柇鎶撴媿锛�2-娣峰悎妯″紡锛�
+        public byte bySecneMode;    //鍦烘櫙妯″紡锛�0-鍩庡尯閬撹矾锛堥粯璁わ級锛�1-灏忓尯鍑哄叆鍙o紝2-楂橀�熷叕璺�
+        public byte bySpeedMode;  //娴嬮�熸ā寮忥紝0-鏃犳祴閫燂紝1-闆疯揪娴嬮�燂紝2-瑙嗛娴嬮��
+        public byte byLineRuleEffect; //瑙﹀彂瑙勫垯绾挎湁鏁堟��,姣忎竴浣嶄唬琛ㄤ竴鏉¤Е鍙戠嚎,0-鏃犳晥;1-鏈夋晥銆俠it0-宸﹁Е鍙戠嚎;bit1-鍙宠Е鍙戠嚎;bit2-瑙嗛妫�娴嬪尯鍩�
+        public byte[] byRes1 = new byte[78];
+        public NET_ITC_LINE struLeftTrigLine;    //宸﹁Е鍙戠嚎(涓�鏉″瀭鐩寸嚎)
+        public NET_ITC_LINE struRigtTrigLine;    //鍙宠Е鍙戠嚎(涓�鏉″瀭鐩寸嚎)
+        public NET_ITC_LINE struLaneBoundaryLine;        //杞﹂亾杈圭晫绾匡紙鏈�鍙宠竟杞﹂亾鐨勫彸杞﹂亾绾匡級
+        public NET_ITC_POLYGON struDetectArea;    //瑙嗛妫�娴嬪尯鍩�
+        public NET_DVR_GEOGLOCATION struGeogLocation; //鍦扮悊浣嶇疆锛堥粯璁ゆ禉姹熺渷锛夎绠楁椂鍖�
+        public NET_ITC_LANE_HVT_PARAM_V50[] struLaneParam = new NET_ITC_LANE_HVT_PARAM_V50[MAX_ITC_LANE_NUM/*6*/]; //鍗曡溅閬撳睘鎬�
+        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog;    //鐗岃瘑鍙傛暟
+        public byte[] byRes2 = new byte[260];
+    }
+
+
+    public static class NET_ITC_LANE_PARAM extends Structure {
+        public byte byEnable; //鏄惁鍚敤璇ヨ溅閬擄紝0-涓嶅惎鐢紝1-鍚敤
+        public byte byRelatedDriveWay;//鍏宠仈鐨勮溅閬撳彿
+        public short wDistance; //绾垮湀璺濈锛岃绠楅�熷害
+        public short wTrigDelayTime; //瑙﹀彂寤惰繜鏃堕棿锛堥粯璁�200锛夛紝鍗曚綅锛氭绉�
+        public byte byTrigDelayDistance; //瑙﹀彂寤惰繜璺濈锛堥粯璁�0锛夛紝鍗曚綅锛氬垎绫�
+        public byte bySpeedCapEn; //鏄惁鍚敤瓒呴�熸姄鎷嶏紝0-鍚︼紝1-鏄�
+        public byte bySignSpeed;//鏍囧織闄愰�燂紝鍗曚綅km/h
+        public byte bySpeedLimit;//闄愰�熷�硷紝鍗曚綅km/h
+        public byte bySnapTimes; //鎶撴媿娆℃暟锛堥粯璁�1锛夛紝0-涓嶆姄鎷嶏紝闈�0-杩炴媿娆℃暟锛屾渶澶�5
+        public byte byOverlayDriveWay; //OSD鍙犲姞鐨勮溅閬撳彿
+        public NET_ITC_INTERVAL_PARAM struInterval; //鎶撴媿闂撮殧鍙傛暟
+        public byte[] byRelatedIOOut = new byte[MAX_IOOUT_NUM]; //鍏宠仈鐨処O杈撳嚭鍙o紝鍙互鍚屾椂鍏宠仈澶氫釜
+        public byte byFlashMode;   //闂厜鐏棯鐑佹ā寮忥紝0-鍚屾椂闂紝1-杞祦闂�
+        public byte byCartSignSpeed;//鏍囧織闄愰��(澶ц溅)锛屽崟浣峩m/h
+        public byte byCartSpeedLimit;//闄愰�熷�硷紙澶ц溅锛夛紝鍗曚綅km/h
+        public byte byRelatedIOOutEx;//绗�0浣嶈〃绀篒O杈撳嚭鍙�1锛屼互姝ょ被鎺紝0-涓嶅叧鑱旓紝1-鍏宠仈 鏀寔鍏宠仈鍒�8涓�(鍏煎byRelatedIOOut瀛楁)
+        public NET_ITC_PLATE_RECOG_REGION_PARAM[] struPlateRecog = new NET_ITC_PLATE_RECOG_REGION_PARAM[MAX_LANEAREA_NUM]; //杞﹂亾鐗岃瘑鍙傛暟
+        public byte byLaneType;   //杞﹂亾绫诲瀷锛�0-鏈厤缃��1-楂橀�熷叕璺��2-鍩庡競蹇�熻矾銆�0xff-鍏朵粬閬撹矾
+        public byte byUseageType; //杞﹂亾鐢ㄩ�旂被鍨嬶紝璇﹁ITC_LANE_USEAGE_TYPE
+        //鍏宠仈杞﹂亾鏂瑰悜绫诲瀷锛屽弬鑰僆TC_RELA_LANE_DIRECTION_TYPE
+        //璇ュ弬鏁颁负杞﹂亾鏂瑰悜鍙傛暟锛屼笌鍏宠仈杞﹂亾鍙峰搴旓紝纭繚杞﹂亾鍞竴鎬с��
+        public byte byRelaLaneDirectionType;
+        public byte byLowSpeedLimit;                    //灏忚溅闄愬簳閫熷�硷紝鍗曚綅km/h
+        public byte byBigCarLowSpeedLimit;                //澶ц溅闄愬簳閫熷�硷紝鍗曚綅km/h
+        public byte byLowSpeedCapEn;                   //鏄惁鍚敤浣庨�熸姄鎷嶏紝0-鍚︼紝1-鏄�
+        public byte byEmergencyCapEn;                 //鏄惁鍚敤搴旀�ヨ溅閬撴姄鎷嶏紝0-鍚︼紝1-鏄�
+        public byte[] byRes = new byte[9];
+    }
+
+    //鍗″彛RS485杞︽鍣ㄨЕ鍙戝弬鏁�
+    public static class NET_ITC_POST_RS485_PARAM extends Structure {
+        public byte byRelatedLaneNum;//鍏宠仈鐨勮溅閬撲釜鏁�
+        public byte byTriggerSpareMode; //瑙﹀彂澶囩敤妯″紡锛�0-榛樿锛�1-鍗″彛铏氭嫙绾垮湀妯″紡,2-鍗″彛娣峰悎杞﹂亾妯″紡
+        public byte byFaultToleranceTime;//瀹归敊鏃堕棿(鍗曚綅:鍒嗛挓)锛岀敤浜庢娴嬭溅妫�鍣ㄦ槸鍚︽甯哥殑鏈�澶ф椂闂�
+        public byte byRes1;
+        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM(); //鐗岃瘑鍙傛暟
+        public NET_ITC_LANE_PARAM[] struLane = new NET_ITC_LANE_PARAM[MAX_ITC_LANE_NUM]; //鍏宠仈鐨勮溅閬撳弬鏁�
+        public byte[] byRes = new byte[32];
+    }
+
+    //鍗″彛RS485闆疯揪瑙﹀彂鍙傛暟
+    public static class NET_ITC_POST_RS485_RADAR_PARAM extends Structure {
+        public byte byRelatedLaneNum;//鍏宠仈鐨勮溅閬撲釜鏁�
+        public byte[] byRes1 = new byte[3];
+        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog = new NET_ITC_PLATE_RECOG_PARAM(); //鐗岃瘑鍙傛暟
+        public NET_ITC_LANE_PARAM[] struLane = new NET_ITC_LANE_PARAM[MAX_ITC_LANE_NUM]; //鍏宠仈鐨勮溅閬撳弬鏁�
+        public NET_ITC_RADAR_PARAM struRadar = new NET_ITC_RADAR_PARAM();  //闆疯揪鍙傛暟
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_ITC_TRIGGER_PARAM_UNION extends Union {
+        public int[] uLen = new int[1070];            //鍙傛暟
+        public NET_ITC_POST_IOSPEED_PARAM struIOSpeed = new NET_ITC_POST_IOSPEED_PARAM();    //锛堝崱鍙o級IO娴嬮�熷弬鏁�
+        //	public NET_ITC_POST_SINGLEIO_PARAM     struSingleIO = new NET_ITC_POST_SINGLEIO_PARAM();   //锛堝崱鍙o級鍗旾O鍙傛暟
+        public NET_ITC_POST_RS485_PARAM struPostRs485 = new NET_ITC_POST_RS485_PARAM();  //锛堝崱鍙o級RS485杞︽鍣ㄥ弬鏁�
+        public NET_ITC_POST_RS485_RADAR_PARAM struPostRadar = new NET_ITC_POST_RS485_RADAR_PARAM();  //锛堝崱鍙o級RS485闆疯揪鍙傛暟
+        public NET_ITC_POST_VTCOIL_PARAM struVtCoil = new NET_ITC_POST_VTCOIL_PARAM();     //锛堝崱鍙o級铏氭嫙绾垮湀鍙傛暟
+        public NET_ITC_POST_HVT_PARAM struHvt = new NET_ITC_POST_HVT_PARAM();        //锛堝崱鍙o級娣疯鍗″彛鍙傛暟
+        //	public NET_ITC_EPOLICE_IOTL_PARAM      struIOTL = new NET_ITC_EPOLICE_IOTL_PARAM();        //锛堢數璀︼級IO绾㈢豢鐏弬鏁�
+//	public NET_ITC_EPOLICE_RS485_PARAM     struEpoliceRs485 = new NET_ITC_EPOLICE_RS485_PARAM(); //锛堢數璀︼級RS485杞︽鍣ㄨЕ鍙戝弬鏁�
+//	public NET_ITC_EPOLICE_RS485_PARAM     struPERs485 = new NET_ITC_EPOLICE_RS485_PARAM();    //锛堝崱寮忕數璀︼級RS485杞︽鍣ㄨЕ鍙戝弬鏁�
+//	public NET_ITC_POST_MPR_PARAM          struPostMpr = new NET_ITC_POST_MPR_PARAM();    //澶氬抚妫�娴嬭Е鍙戯紙MPR锛�
+//	public NET_DVR_VIA_VTCOIL_PARAM        struViaVtCoil = new NET_DVR_VIA_VTCOIL_PARAM();  //(VIA)瑙嗛妫�娴嬪弬鏁�
+//	public NET_ITC_POST_IMT_PARAM          struPostImt = new NET_ITC_POST_IMT_PARAM();//鏅烘収甯冮槻瑙﹀彂
+//	public NET_ITC_POST_PRS_PARAM          struPostPrs = new NET_ITC_POST_PRS_PARAM();//瑙嗛妫�娴嬭Е鍙�
+//	public NET_IPC_POST_HVT_PARAM          struIpcHvt = new NET_IPC_POST_HVT_PARAM();//(IPC) 娣疯鍗″彛鍙傛暟
+        public NET_ITC_POST_HVT_PARAM_V50 struHvtV50 = new NET_ITC_POST_HVT_PARAM_V50();  /*锛堝崱鍙o級娣疯鍗″彛鍙傛暟V50*/
+//	public NET_ITC_POST_MOBILE_PARAM       struPostMobile = new NET_ITC_POST_MOBILE_PARAM();// 绉诲姩浜ら�氳Е鍙戞ā寮�
+//	public NET_ITC_NOCOMITY_PEDESTRIAN_PARAM struNoComityPed = new NET_ITC_NOCOMITY_PEDESTRIAN_PARAM();//涓嶇ぜ璁╄浜哄弬鏁�
+//	public NET_ITC_REDLIGHT_PEDESTRIAN_PARAM struRedLightPed = new NET_ITC_REDLIGHT_PEDESTRIAN_PARAM();//琛屼汉闂孩鐏弬鏁�
+    }
+
+    //鍗曚釜瑙﹀彂鍙傛暟缁撴瀯
+    public static class NET_ITC_SINGLE_TRIGGERCFG extends Structure {
+        public byte byEnable;    //鏄惁鍚敤璇ヨЕ鍙戞ā寮忥紝0-鍚︼紝1-鏄�
+        public byte[] byRes1 = new byte[3];
+        public int dwTriggerType; //瑙﹀彂绫诲瀷锛岃瑙両TC_TRIGGERMODE_TYPE
+        public NET_ITC_TRIGGER_PARAM_UNION uTriggerParam = new NET_ITC_TRIGGER_PARAM_UNION(); //瑙﹀彂鍙傛暟
+        public byte[] byRes = new byte[64];
+    }
+
+    //瑙﹀彂鍙傛暟缁撴瀯
+    public static class NET_ITC_TRIGGERCFG extends Structure {
+        public int dwSize;            //缁撴瀯闀垮害
+        public NET_ITC_SINGLE_TRIGGERCFG struTriggerParam;  //鍗曚釜瑙﹀彂鍙傛暟
+        public byte[] byRes = new byte[32];
+    }
+
+    //鍗曚釜IO鎺ュ叆淇″彿鐏弬鏁�
+    public static class NET_ITC_SINGLE_IO_LIGHT_PARAM extends Structure {
+        public byte byLightType; //浜ら�氱伅瀵煎悜绫诲瀷,0-宸﹁浆鐏�,1-鐩磋鐏�,2-鍙宠浆鐏�
+        public byte byRelatedIO; //鍏宠仈鐨処O鍙e彿
+        public byte byRedLightState; //绾㈢伅鐢靛钩鐘舵�侊紝0-楂樼數骞崇孩鐏紝1-浣庣數骞崇孩鐏�
+        public byte[] byRes = new byte[17];
+    }
+
+    //IO鎺ュ叆淇″彿鐏弬鏁�
+    public static class NET_ITC_IO_LIGHT_PARAM extends Structure {
+        public NET_ITC_SINGLE_IO_LIGHT_PARAM[] struIOLight = new NET_ITC_SINGLE_IO_LIGHT_PARAM[MAX_LIGHT_NUM]; //鍗曚釜IO鎺ュ叆淇″彿鐏弬鏁�
+        public byte[] byRes = new byte[8];
+    }
+
+    //鍗曚釜485鎺ュ叆淇″彿鐏弬鏁�
+    public static class NET_ITC_SINGLE_RS485_LIGHT_PARAM extends Structure {
+        public byte byLightType; //浜ら�氱伅瀵煎悜绫诲瀷锛�0-宸﹁浆鐏紝1-鐩磋鐏紝2-鍙宠浆鐏�
+        public byte byRelatedLightChan; //鍏宠仈鐨勭孩缁跨伅妫�娴嬪櫒閫氶亾鍙�
+        public byte byInputLight;    //鎺ュ叆鐨勪俊鍙风伅绫诲瀷锛�0-鎺ョ孩鐏紝1-鎺ョ豢鐏�
+        public byte byRelatedYLightChan; //鍏宠仈鐨勯粍鐏娴嬪櫒閫氶亾鍙�
+        public byte[] byRes = new byte[16];
+    }
+
+    //485鎺ュ叆淇″彿鐏弬鏁�
+    public static class NET_ITC_RS485_LIGHT_PARAM extends Structure {
+        public NET_ITC_SINGLE_RS485_LIGHT_PARAM[] struRS485Light = new NET_ITC_SINGLE_RS485_LIGHT_PARAM[MAX_LIGHT_NUM]; //鍗曚釜485鎺ュ叆淇″彿鐏弬鏁�
+        public byte[] byRes = new byte[8];
+    }
+
+    public static class NET_POS_PARAM extends Structure {
+        public short wLeft;
+        public short wTop;
+        public short wRight;
+        public short wBottom;
+    }
+
+    //鍗曠粍瑙嗛妫�娴嬩氦閫氫俊鍙风伅鍙傛暟缁撴瀯
+    public static class NET_ITC_SINGLE_VIDEO_DETECT_LIGHT_PARAM extends Structure {
+        public byte byLightNum; //浜ら�氱伅涓暟
+        public byte byStraightLight; //鏄惁鏈夌洿琛屾爣蹇楃伅锛�0-鍚� 锛�1-鏄�
+        public byte byLeftLight; //鏄惁鏈夊乏杞爣蹇楃伅锛�0-鍚︼紝1-鏄�
+        public byte byRightLight; //鏄惁鏈夊彸杞爣蹇楃伅锛�0-鍚︼紝1-鏄�
+        public byte byRedLight;//鏄惁鏈夌孩鐏紝0-鍚︼紝1-鏄�
+        public byte byGreenLight; //鏄惁鏈夌豢鐏紝0-鍚︼紝1-鏄�
+        public byte byYellowLight; //鏄惁鏈夐粍鐏紝0-鍚︼紝1-鏄�
+        public byte byYellowLightTime;//鍙栧�艰寖鍥达紙0锝�10s锛夛紙ITC3.7Ver锛�
+        public NET_POS_PARAM struLightRect; //浜ら�氱伅鍖哄煙
+        public byte[] byRes = new byte[24];
+    }
+
+    //瑙嗛妫�娴嬩氦閫氫俊鍙风伅鍙傛暟缁撴瀯(鏈�澶у彲鏈�12涓尯鍩熸娴嬶紝488瀛楄妭)
+    public static class NET_ITC_VIDEO_DETECT_LIGHT_PARAM extends Structure {
+        public NET_ITC_SINGLE_VIDEO_DETECT_LIGHT_PARAM[] struTrafficLight = new NET_ITC_SINGLE_VIDEO_DETECT_LIGHT_PARAM[MAX_VIDEO_DETECT_LIGHT_NUM]; //鍗曚釜瑙嗛妫�娴嬩俊鍙风伅鍙傛暟
+        public byte[] byRes = new byte[8];
+    }
+
+    //浜ら�氫俊鍙风伅鎺ュ叆鍙傛暟
+    public static class NET_ITC_LIGHT_ACCESSPARAM_UNION extends Union {
+        public int[] uLen = new int[122];
+        public NET_ITC_IO_LIGHT_PARAM struIOLight; //IO鎺ュ叆淇″彿鐏弬鏁�
+        public NET_ITC_RS485_LIGHT_PARAM struRS485Light; //485鎺ュ叆淇″彿鐏弬鏁�
+        public NET_ITC_VIDEO_DETECT_LIGHT_PARAM struVideoDelectLight; //瑙嗛妫�娴嬩俊鍙风伅鍙傛暟
+    }
+
+    //浜ら�氫俊鍙风伅鍙傛暟缁撴瀯
+    public static class NET_ITC_TRAFFIC_LIGHT_PARAM extends Structure {
+        public byte bySource; //浜ら�氫俊鍙风伅鎺ュ叆婧愶紝0-IO鎺ュ叆锛�1-RS485鎺ュ叆
+        public byte[] byRes1 = new byte[3];
+        public NET_ITC_LIGHT_ACCESSPARAM_UNION struLightAccess = new NET_ITC_LIGHT_ACCESSPARAM_UNION();//淇″彿鐏帴鍏ュ弬鏁�
+        public byte[] byRes = new byte[32];
+    }
+
+    //杩濊妫�娴嬪弬鏁扮粨鏋�
+    public static class NET_ITC_VIOLATION_DETECT_PARAM extends Structure {
+        public int dwVioDetectType; //杩濊妫�娴嬬被鍨�, 鎸変綅琛ㄧず, 璇﹁ITC_VIOLATION_DETECT_TYPE ,0-涓嶅惎鐢�,1-鍚敤
+        public byte byDriveLineSnapTimes; //鍘嬭溅閬撶嚎鎶撴媿寮犳暟,2-3
+        public byte byReverseSnapTimes; //閫嗚鎶撴媿,2-3
+        public short wStayTime; //鏈哄崰闈炲仠鐣欐椂闂达紙璇ユ椂闂村悗鎶撴媿锛夛紝鍗曚綅s
+        public byte byNonDriveSnapTimes;//鏈哄崰闈炴姄鎷嶅紶鏁�2-3
+        public byte byChangeLaneTimes;//杩濇硶鍙橀亾鎶撴媿寮犳暟 2-3
+        public byte bybanTimes;//杩濇硶绂佷护鎶撴媿寮犳暟2-3
+        public byte byDriveLineSnapSen;// 鍘嬬嚎鐏垫晱搴�(0~100)(3.7Ver)
+        public short wSnapPosFixPixel; //绗�2,3寮犳姄鎷嶄綅缃渶灏忓亸绉�(杩濆弽淇″彿鐏椂璧锋晥)锛堝崟浣嶏細鍍忕礌锛� 鍛藉悕闇�鏀硅繘
+        public byte bySpeedTimes;//杩濇硶瓒呴�熸姄鎷嶅紶鏁�2-3(3.8Ver)
+        public byte byTurnAroundEnable;//杩濈珷鎺夊ご浣胯兘 0~鍏抽棴 1~寮�鍚�
+        public byte byThirdPlateRecogTime;//绗笁寮犵墝璇嗘椂闂� 0~180s
+        public byte byPostSnapTimes;//鍗″彛鎶撴媿寮犳暟,1-2寮�
+        public byte[] byRes1 = new byte[18];
+        public short wStopLineDis;  //鐢佃绗�2寮犺繚瑙勫浘鐗囦笌鍋滄绾跨殑鏈�鐭窛绂伙紝[0,300]鍗曚綅(鍍忕礌)
+        public byte[] byRes = new byte[14];
+    }
+
+    //杩濊妫�娴嬬嚎鍙傛暟缁撴瀯
+    public static class NET_ITC_VIOLATION_DETECT_LINE extends Structure {
+        public NET_ITC_LINE struLaneLine = new NET_ITC_LINE(); //杞﹂亾绾垮弬鏁�
+        public NET_ITC_LINE struStopLine = new NET_ITC_LINE(); //鍋滄绾垮弬鏁�
+        public NET_ITC_LINE struRedLightLine = new NET_ITC_LINE(); //闂孩鐏Е鍙戠嚎鍙傛暟
+        public NET_ITC_LINE struCancelLine = new NET_ITC_LINE(); //鐩磋瑙﹀彂浣嶇疆鍙栨秷绾�
+        public NET_ITC_LINE struWaitLine = new NET_ITC_LINE(); //寰呰鍖哄仠姝㈢嚎鍙傛暟
+        public NET_ITC_LINE[] struRes = new NET_ITC_LINE[8];
+    }
+
+    //鍗曚釜杞﹂亾瑙嗛鐢佃瑙﹀彂鍙傛暟缁撴瀯
+    public static class NET_ITC_LANE_VIDEO_EPOLICE_PARAM extends Structure {
+        public byte byLaneNO; //鍏宠仈鐨勮溅閬撳彿
+        public byte bySensitivity; //绾垮湀鐏垫晱搴︼紝[1,100]
+        public byte byEnableRadar;//鍚敤闆疯揪娴嬭瘯0-涓嶅惎鐢紝1-鍚敤
+        //鍏宠仈杞﹂亾鏂瑰悜绫诲瀷锛屽弬鑰僆TC_RELA_LANE_DIRECTION_TYPE
+        //璇ュ弬鏁颁负杞﹂亾鏂瑰悜鍙傛暟锛屼笌鍏宠仈杞﹂亾鍙峰搴旓紝纭繚杞﹂亾鍞竴鎬с��
+        public byte byRelaLaneDirectionType;
+        public NET_ITC_LANE_LOGIC_PARAM struLane; //杞﹂亾鍙傛暟
+        public NET_ITC_VIOLATION_DETECT_PARAM struVioDetect; //杩濊妫�娴嬪弬鏁�
+        public NET_ITC_VIOLATION_DETECT_LINE struLine; //杩濊妫�娴嬬嚎
+        public NET_ITC_POLYGON struPlateRecog; //鐗岃瘑鍖哄煙鍙傛暟
+        public byte byRecordEnable;//闂孩鐏懆鏈熷綍鍍忔爣蹇楋紝0-涓嶅綍鍍忥紝1-褰曞儚
+        public byte byRecordType;//闂孩鐏綍鍍忕被鍨嬶紝0-棰勫綍锛�1-寤舵椂褰曞儚
+        public byte byPreRecordTime;//闂孩鐏綍鍍忕墖娈甸褰曟椂闂达紙榛樿0锛夛紝鍗曚綅锛氱
+        public byte byRecordDelayTime;//闂孩鐏綍鍍忕墖娈靛欢鏃舵椂闂达紙榛樿0锛夛紝鍗曚綅锛氱
+        public byte byRecordTimeOut;//闂孩鐏懆鏈熷綍鍍忚秴鏃舵椂闂达紙绉掞級
+        public byte byCarSpeedLimit; //杞﹂�熼檺鍒跺�硷紝鍗曚綅km/h
+        public byte byCarSignSpeed;//鏍囧織闄愰�燂紝鍗曚綅km/h
+        public byte bySnapPicPreRecord; //鎶撴媿鍥剧墖棰勫綍鏃堕棿鐐癸紱0-榛樿鍊硷紙绗簩寮犲浘鐗囷級锛�1-绗竴寮犲浘鐗囷紝2-绗簩寮犲浘鐗囷紝3-绗笁寮犲浘鐗�
+        public NET_ITC_INTERVAL_PARAM struInterval;//鎶撴媿闂撮殧鍙傛暟锛�20byte锛�
+        public byte[] byRes = new byte[36];
+    }
+
+    //瑙嗛鐢佃瑙﹀彂鍙傛暟缁撴瀯
+    public static class NET_ITC_VIDEO_EPOLICE_PARAM extends Structure {
+        public byte byEnable;    //鏄惁鍚敤锛�0-涓嶅惎鐢紝1-鍚敤
+        public byte byLaneNum; //璇嗗埆鐨勮溅閬撲釜鏁�
+        public byte byLogicJudge;//闂孩鐏繚瑙勫垽鏂�昏緫锛岃缃�间负锛�0-鎸夋柟鍚戯紝1-鎸夎溅閬�
+        public byte byRes1;
+        public NET_ITC_PLATE_RECOG_PARAM struPlateRecog; //鐗岃瘑鍙傛暟
+        public NET_ITC_TRAFFIC_LIGHT_PARAM struTrafficLight; //浜ら�氫俊鍙风伅鍙傛暟
+        public NET_ITC_LANE_VIDEO_EPOLICE_PARAM[] struLaneParam = new NET_ITC_LANE_VIDEO_EPOLICE_PARAM[MAX_ITC_LANE_NUM]; //鍗曡溅閬撳弬鏁�
+        public NET_ITC_LINE struLaneBoundaryLine; //杞﹂亾杈圭晫绾匡紙鏈�鍙宠竟杞﹂亾鐨勮竟鐣岀嚎锛�
+        public NET_ITC_LINE struLeftLine; //宸﹁浆寮垎鐣岀嚎
+        public NET_ITC_LINE struRightLine; //鍙宠浆寮垎鐣岀嚎
+        public NET_ITC_LINE struTopZebraLine; //涓婇儴鏂戦┈绾�
+        public NET_ITC_LINE struBotZebraLine; //涓嬮儴鏂戦┈绾�
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_CURTRIGGERMODE extends Structure {
+        public int dwSize;
+        public int dwTriggerType; //瑙﹀彂绫诲瀷锛岃瑙両TC_TRIGGERMODE_TYPE
+        public byte[] byRes = new byte[24];
+    }
+
+    public static class NET_ITC_VIDEO_TRIGGER_COND extends Structure {
+        public int dwSize;
+        public int dwChannel;
+        public int dwTriggerMode; //瑙嗛瑙﹀彂妯″紡绫诲瀷锛岃瑙両TC_TRIGGERMODE_TYPE
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class NET_ITC_VIDEO_TRIGGER_PARAM_UNION extends Union {
+        public int[] uLen = new int[1150];
+        public NET_ITC_VIDEO_EPOLICE_PARAM struVideoEP = new NET_ITC_VIDEO_EPOLICE_PARAM(); //瑙嗛鐢佃鍙傛暟
+    }
+
+    public static class NET_ITC_VIDEO_TRIGGER_PARAM extends Structure {
+        public int dwSize;
+        public int dwMode; //瑙﹀彂妯″紡锛岃瑙両TC_TRIGGERMODE_TYPE
+        public NET_ITC_VIDEO_TRIGGER_PARAM_UNION uVideoTrigger = new NET_ITC_VIDEO_TRIGGER_PARAM_UNION(); //瑙﹀彂妯″紡鍙傛暟
+        public byte[] byRes = new byte[32];
+    }
+
+    public static class NET_DVR_CMS_PARAM extends Structure {
+        public int dwSize;
+        public NET_DVR_IPADDR struAddr = new NET_DVR_IPADDR();                    // 骞冲彴鏈嶅姟鍣↖P
+        public short wServerPort;                   // 骞冲彴鏈嶅姟鍣ㄤ睛鍚鍙o紝
+        public byte bySeverProtocolType;            //骞冲彴鍗忚绫诲瀷 1-绉佹湁锛�2-Ehome
+        public byte byStatus;                         //璁惧娉ㄥ唽鍒拌骞冲彴鐨勭姸鎬侊紝1-鏈敞鍐岋紝2-宸叉敞鍐�
+        public byte[] sDeviceId = new byte[NAME_LEN/*32*/];     //璁惧ID锛岀敱骞冲彴鎻愪緵
+        public byte[] sPassWord = new byte[PASSWD_LEN];  //瀵嗙爜
+        /*********
+         * IPC5.1.7 鏂板鍙傛暟 Begin 2014-03-21
+         ***********/
+        public byte[] sPlatformEhomeVersion = new byte[NAME_LEN];//骞冲彴EHOME鍗忚鐗堟湰
+        /*********
+         * IPC5.1.7 鏂板鍙傛暟 end 2014-03-21
+         ***********/
+        public byte byNetWork;                //缃戠粶绫诲瀷锛�0- 鏃犳剰涔夛紝1-鑷姩锛�2-鏈夌嚎缃戠粶浼樺厛锛�3-鏈夌嚎缃戠粶锛�4-3G缃戠粶锛堟棤绾跨綉缁滐級锛�5-鏈夌嚎缃戠粶1锛�6-鏈夌嚎缃戠粶2
+        public byte byAddressType;            //0 - 鏃犳剰涔�, 1 - ipv4/ipv6鍦板潃锛�2 - 鍩熷悕
+        public byte byProtocolVersion;            //鍗忚鐗堟湰 0 - 鏃犳剰涔�, 1 鈥� v2.0锛�2 鈥� v4.0,3-v2.6
+        public byte byRes1;
+        public byte[] sDomainName = new byte[MAX_DOMAIN_NAME/*64*/]; //骞冲彴鏈嶅姟鍣ㄥ煙鍚嶏紝byAddressType涓�2鏃舵湁鏁�
+        public byte byEnable;      //0-鍏抽棴锛�1-寮�鍚�
+        public byte[] byRes = new byte[139];          // 淇濈暀瀛楄妭
+    }
+
+    //璁剧疆瀹屽叏鑾峰彇鍑哄巶鍊�
+    public static class NET_DVR_COMPLETE_RESTORE_INFO extends Structure {
+        public int dwSize; //缁撴瀯浣撻暱搴�
+        public int dwChannel; //閫氶亾鍙�
+        public byte[] byRes = new byte[64];
+    }
+
+    public static class NET_DVR_STD_ABILITY extends Structure {
+        public Pointer lpCondBuffer;    //[in]鏉′欢鍙傛暟(鐮佸瓧鏍煎紡),渚嬪閫氶亾鍙风瓑.鍙互涓篘ULL
+        public int dwCondSize;        //[in] dwCondSize鎸囧悜鐨勫唴瀛樺ぇ灏�
+        public Pointer lpOutBuffer;    //[out]杈撳嚭鍙傛暟(XML鏍煎紡),涓嶄负NULL
+        public int dwOutSize;        //[in] lpOutBuffer鎸囧悜鐨勫唴瀛樺ぇ灏�
+        public Pointer lpStatusBuffer;    //[out]杩斿洖鐨勭姸鎬佸弬鏁�(XML鏍煎紡),鑾峰彇鎴愬姛鏃朵笉浼氳祴鍊�,濡傛灉涓嶉渶瑕�,鍙互缃甆ULL
+        public int dwStatusSize;    //[in] lpStatusBuffer鎸囧悜鐨勫唴瀛樺ぇ灏�
+        public int dwRetSize;        //[out]鑾峰彇鍒扮殑鏁版嵁闀垮害(lpOutBuffer鎴栬�卨pStatusBuffer鎸囧悜鐨勫疄闄呮暟鎹暱搴�)
+        public byte[] byRes = new byte[32];        //淇濈暀瀛楄妭
+    }
+
+    public static class NET_DVR_STD_CONFIG extends Structure {
+        public Pointer lpCondBuffer;        //[in]鏉′欢鍙傛暟(缁撴瀯浣撴牸寮�),渚嬪閫氶亾鍙风瓑.鍙互涓篘ULL
+        public int dwCondSize;            //[in] lpCondBuffer鎸囧悜鐨勫唴瀛樺ぇ灏�
+        public Pointer lpInBuffer;            //[in]杈撳叆鍙傛暟(缁撴瀯浣撴牸寮�),璁剧疆鏃朵笉涓篘ULL锛岃幏鍙栨椂涓篘ULL
+        public int dwInSize;            //[in] lpInBuffer鎸囧悜鐨勫唴瀛樺ぇ灏�
+        public Pointer lpOutBuffer;        //[out]杈撳嚭鍙傛暟(缁撴瀯浣撴牸寮�),鑾峰彇鏃朵笉涓篘ULL,璁剧疆鏃朵负NULL
+        public int dwOutSize;            //[in] lpOutBuffer鎸囧悜鐨勫唴瀛樺ぇ灏�
+        public Pointer lpStatusBuffer;        //[out]杩斿洖鐨勭姸鎬佸弬鏁�(XML鏍煎紡),鑾峰彇鎴愬姛鏃朵笉浼氳祴鍊�,濡傛灉涓嶉渶瑕�,鍙互缃甆ULL
+        public int dwStatusSize;        //[in] lpStatusBuffer鎸囧悜鐨勫唴瀛樺ぇ灏�
+        public Pointer lpXmlBuffer;    //[in/out]byDataType = 1鏃舵湁鏁�,xml鏍煎紡鏁版嵁
+        public int dwXmlSize;      //[in/out]lpXmlBuffer鎸囧悜鐨勫唴瀛樺ぇ灏�,鑾峰彇鏃跺悓鏃朵綔涓鸿緭鍏ュ拰杈撳嚭鍙傛暟锛岃幏鍙栨垚鍔熷悗浼氫慨鏀逛細瀹為檯闀垮害锛岃缃椂琛ㄧず瀹為檯闀垮害锛岃�屼笉鏄暣涓唴瀛樺ぇ灏�
+        public byte byDataType;     //[in]杈撳叆/杈撳嚭鍙傛暟绫诲瀷,0-浣跨敤缁撴瀯浣撶被鍨媗pInBuffer/lpOutBuffer鏈夋晥,1-浣跨敤XML绫诲瀷lpXmlBuffer鏈夋晥
+        public byte[] byRes = new byte[23];
+    }
+
+    public static final int NET_SDK_MAX_FILE_PATH = 256;//璺緞闀垮害
+
+    public static class NET_DVR_LOCAL_SDK_PATH extends Structure {
+        public byte[] sPath = new byte[NET_SDK_MAX_FILE_PATH];//缁勪欢搴撳湴鍧�
+        public byte[] byRes = new byte[128];
+    }
+
+    public static class BYTE_ARRAY extends Structure {
+        public byte[] byValue;
+
+        public BYTE_ARRAY(int iLen) {
+            byValue = new byte[iLen];
+        }
+    }
+
+    public static class INT_ARRAY extends Structure {
+        public int[] intValue;
+
+        public INT_ARRAY(int iLen) {
+            intValue = new int[iLen];
+        }
+    }
+
+    public static class INTRef_ARRAY extends Structure {
+        public IntByReference[] intValue;
+
+        public INTRef_ARRAY(int iLen) {
+            intValue = new IntByReference[iLen];
+        }
+    }
+
+
+    public static class NET_DVR_JSON_DATA_CFG extends Structure {
+        public int dwSize;                        //缁撴瀯浣撳ぇ灏�
+        public Pointer lpJsonData;                //JSON鎶ユ枃
+        public int dwJsonDataSize;                //JSON鎶ユ枃澶у皬
+        public Pointer lpPicData;                //鍥剧墖鍐呭
+        public int dwPicDataSize;                //鍥剧墖鍐呭澶у皬
+        public int lpInfraredFacePicBuffer;        //绾㈠浜鸿劯鍥剧墖鏁版嵁缂撳瓨
+        public Pointer dwInfraredFacePicSize;    //绾㈠浜鸿劯鍥剧墖鏁版嵁澶у皬锛岀瓑浜�0鏃讹紝浠h〃鏃犱汉鑴稿浘鐗囨暟鎹�(褰揓SON鎶ユ枃涓哄綋ResponseStatus锛圝SON锛夋姤鏂囨椂锛岃瀛楁鏃犳剰涔夛紱褰揑nbound Data锛圝SON锛夋姤鏂囦腑娌℃湁infraredFaceURL鏃讹紝璇ュ瓧娈甸渶瑕佸甫涓婁簩杩涘埗鍥剧墖鍐呭锛�
+        public byte[] byRes = new byte[248];
+    }
+
+    public static class CallBack_USER extends Structure {
+        public byte[] byDeviceID = new byte[16];
+        public byte[] byCardNo = new byte[32];
+        public byte[] byDevIP = new byte[16];
+    }
+
+
+    public static class NET_DVR_CAMERAPARAMCFG_EX extends Structure {
+        public int dwSize;
+        public NET_DVR_VIDEOEFFECT struVideoEffect = new NET_DVR_VIDEOEFFECT();/*浜害銆佸姣斿害銆侀ケ鍜屽害銆侀攼搴︺�佽壊璋冮厤缃�*/
+        public NET_DVR_GAIN struGain = new NET_DVR_GAIN();/*鑷姩澧炵泭*/
+        public NET_DVR_WHITEBALANCE struWhiteBalance = new NET_DVR_WHITEBALANCE();/*鐧藉钩琛�*/
+        public NET_DVR_EXPOSURE struExposure = new NET_DVR_EXPOSURE(); /*鏇濆厜鎺у埗*/
+        public NET_DVR_GAMMACORRECT struGammaCorrect = new NET_DVR_GAMMACORRECT();/*Gamma鏍℃*/
+        public NET_DVR_WDR struWdr = new NET_DVR_WDR();/*瀹藉姩鎬�*/
+        public NET_DVR_DAYNIGHT struDayNight = new NET_DVR_DAYNIGHT();/*鏃ュ杞崲*/
+        public NET_DVR_BACKLIGHT struBackLight = new NET_DVR_BACKLIGHT();/*鑳屽厜琛ュ伩*/
+        public NET_DVR_NOISEREMOVE struNoiseRemove = new NET_DVR_NOISEREMOVE();/*鏁板瓧闄嶅櫔*/
+        public byte byPowerLineFrequencyMode; /*0-50HZ; 1-60HZ*/
+        /*
+    0-鑷姩鍏夊湀,
+    1-鎵嬪姩鍏夊湀,
+    2-P-Iris1,
+    3-Union 3-9mm F1.6-2.7 (T5280-PQ1) [IPC5.1.7]
+    4-Union 2.8-12mm F1.6-2.7 (T5289-PQ1) [IPC5.1.7]
+    5-HIK 3.8-16mm F1.5锛圚V3816P-8MPIR)
+    6-HIK 11-40mm F1.7 (HV1140P-8MPIR)
+    7-HIK 2.7-12mm F1.2锛圱V2712P-MPIR锛�
+    */
+        public byte byIrisMode;
+        public byte byMirror;  /* 闀滃儚锛�0 off锛�1- leftright锛�2- updown锛�3-center 4-Auto*/
+        public byte byDigitalZoom;  /*鏁板瓧缂╂斁:0 dsibale  1 enable*/
+        public byte byDeadPixelDetect;   /*鍧忕偣妫�娴�,0 dsibale  1 enable*/
+        public byte byBlackPwl;/*榛戠數骞宠ˉ鍋� ,  0-255*/
+        public byte byEptzGate;// EPTZ寮�鍏冲彉閲�:0-涓嶅惎鐢ㄧ數瀛愪簯鍙帮紝1-鍚敤鐢靛瓙浜戝彴
+        public byte byLocalOutputGate;//鏈湴杈撳嚭寮�鍏冲彉閲�0-鏈湴杈撳嚭鍏抽棴1-鏈湴BNC杈撳嚭鎵撳紑 2-HDMI杈撳嚭鍏抽棴
+        //20-HDMI_720P50杈撳嚭寮�
+        //21-HDMI_720P60杈撳嚭寮�
+        //22-HDMI_1080I60杈撳嚭寮�
+        //23-HDMI_1080I50杈撳嚭寮�
+        //24-HDMI_1080P24杈撳嚭寮�
+        //25-HDMI_1080P25杈撳嚭寮�
+        //26-HDMI_1080P30杈撳嚭寮�
+        //27-HDMI_1080P50杈撳嚭寮�
+        //28-HDMI_1080P60杈撳嚭寮�
+        public byte byCoderOutputMode;//缂栫爜鍣╢pga杈撳嚭妯″紡0鐩撮��3鍍忕礌鎼
+        public byte byLineCoding; //鏄惁寮�鍚缂栫爜锛�0-鍚︼紝1-鏄�
+        public byte byDimmerMode; //璋冨厜妯″紡锛�0-鍗婅嚜鍔紝1-鑷姩
+        public byte byPaletteMode; //璋冭壊鏉匡細0-鐧界儹锛�1-榛戠儹锛�2-璋冭壊鏉�2锛屸�︼紝8-璋冭壊鏉�8, 9-铻嶅悎1,10-褰╄櫣,11-铻嶅悎2,12-閾佺孩1,13-閾佺孩2,14-娣辫鑹�,15-鑹插僵1,16-鑹插僵2,17-鍐扮伀,18-闆�,19-绾㈢儹,20-缁跨儹,21-娣辫摑锛�22-鑹插僵3
+        public byte byEnhancedMode; //澧炲己鏂瑰紡锛堟帰娴嬬墿浣撳懆杈癸級锛�0-涓嶅寮猴紝1-1锛�2-2锛�3-3锛�4-4
+        public byte byDynamicContrastEN;    //鍔ㄦ�佸姣斿害澧炲己 0-1
+        public byte byDynamicContrast;    //鍔ㄦ�佸姣斿害 0-100
+        public byte byJPEGQuality;    //JPEG鍥惧儚璐ㄩ噺 0-100
+        public NET_DVR_CMOSMODECFG struCmosModeCfg = new NET_DVR_CMOSMODECFG();//CMOS妯″紡涓嬪墠绔弬鏁伴厤缃紝闀滃ご妯″紡浠庤兘鍔涢泦鑾峰彇
+        public byte byFilterSwitch; //婊ゆ尝寮�鍏筹細0-涓嶅惎鐢紝1-鍚敤
+        public byte byFocusSpeed; //闀滃ご璋冪劍閫熷害锛�0-10
+        public byte byAutoCompensationInterval; //瀹氭椂鑷姩蹇棬琛ュ伩锛�1-120锛屽崟浣嶏細鍒嗛挓
+        public byte bySceneMode;  //鍦烘櫙妯″紡锛�0-瀹ゅ锛�1-瀹ゅ唴锛�2-榛樿锛�3-寮卞厜
+        public NET_DVR_DEFOGCFG struDefogCfg = new NET_DVR_DEFOGCFG();//閫忛浘鍙傛暟
+        public NET_DVR_ELECTRONICSTABILIZATION struElectronicStabilization = new NET_DVR_ELECTRONICSTABILIZATION();//鐢靛瓙闃叉姈
+        public NET_DVR_CORRIDOR_MODE_CCD struCorridorMode = new NET_DVR_CORRIDOR_MODE_CCD();//璧板粖妯″紡
+        public byte byExposureSegmentEnable; //0~涓嶅惎鐢�,1~鍚敤  鏇濆厜鏃堕棿鍜屽鐩婂憟闃舵鐘惰皟鏁达紝姣斿鏇濆厜寰�涓婅皟鏁存椂锛屽厛鎻愰珮鏇濆厜鏃堕棿鍒颁腑闂村�硷紝鐒跺悗鎻愰珮澧炵泭鍒颁腑闂村�硷紝鍐嶆彁楂樻洕鍏夊埌鏈�澶у�硷紝鏈�鍚庢彁楂樺鐩婂埌鏈�澶у��
+        public byte byBrightCompensate;//浜害澧炲己 [0~100]
+        /*
+    0-鍏抽棴銆�1-640*480@25fps銆�2-640*480@30ps銆�3-704*576@25fps銆�4-704*480@30fps銆�5-1280*720@25fps銆�6-1280*720@30fps銆�
+    7-1280*720@50fps銆�8-1280*720@60fps銆�9-1280*960@15fps銆�10-1280*960@25fps銆�11-1280*960@30fps銆�
+    12-1280*1024@25fps銆�13--1280*1024@30fps銆�14-1600*900@15fps銆�15-1600*1200@15fps銆�16-1920*1080@15fps銆�
+    17-1920*1080@25fps銆�18-1920*1080@30fps銆�19-1920*1080@50fps銆�20-1920*1080@60fps銆�21-2048*1536@15fps銆�22-2048*1536@20fps銆�
+    23-2048*1536@24fps銆�24-2048*1536@25fps銆�25-2048*1536@30fps銆�26-2560*2048@25fps銆�27-2560*2048@30fps銆�
+    28-2560*1920@7.5fps銆�29-3072*2048@25fps銆�30-3072*2048@30fps銆�31-2048*1536@12.5銆�32-2560*1920@6.25銆�
+    33-1600*1200@25銆�34-1600*1200@30銆�35-1600*1200@12.5銆�36-1600*900@12.5銆�37-1280*960@12.5fps銆�38-800*600@25fps銆�39-800*600@30fps40銆�
+    4000*3000@12.5fps銆�41-4000*3000@15fps銆�42-4096*2160@20fps銆�43-3840*2160@20fps 銆�44-960*576@25fps銆�45-960*480@30fps銆�46-752*582@25fps銆�
+    47-768*494@30fps銆�48-2560*1440@25fps銆�49-2560*1440@30fps 銆�50-720P@100fps銆�51-720P@120fps銆�52-2048*1536@50fps銆�53-2048*1536@60fps銆�
+    54-3840*2160@25fps銆�55-3840*2160@30fps銆�56-4096*2160@25fps銆�57-4096*2160@30fps 銆�58-1280*1024@50fps銆�59-1280*1024@60fps銆�
+    60-3072*2048@50fps銆�61-3072*2048@60fps銆�62-3072*1728@25fps銆�63-3072*1728@30fps銆�64-3072*1728@50fps銆�65-3072*1728@60fps銆�66-336*256@50fps銆�67-336*256@60fps銆�
+    68-384*288@50fps銆�69-384*288@60fps 銆�70- 640 * 512@50fps 銆�71- 640 * 512@60fps銆�72-2592*1944@25fps銆�73-2592*1944@30fps銆�74-2688*1536@25fps銆�75-2688*1536@30fps
+    76-2592*1944@20fps銆�77-2592*1944@15fps銆�78-2688*1520@20fps銆�79-2688*1520@15fps銆�80-2688*1520@25fps銆�81-2688*1520@30fps銆�82- 2720*2048@25fps銆� 83- 2720*2048@30fps銆�
+    84-336*256@25fps銆�85- 384*288@25fps銆�86-640*512@25fps銆�87-1280*960@50fps銆�88-1280*960@60fps銆�89-1280*960@100fps銆�90-1280*960@120fps銆�91-4000*3000@20fps銆�
+    92-1920*1200@25fps銆�93-1920*1200@30fps銆�94-2560*1920@25fps銆�95-2560*1920@20fps銆�96-2560*1920@30fps銆�97-1280*1920@25fps銆�98-1280*1920@30fps
+    99-4000*3000@24fps銆�100-4000*3000@25fps銆�101-4000*3000@10fps銆�102- 384*288@30fps銆�103-2560*1920@15fps銆�104-2400*3840@25fps銆�105-1200*1920@25fps
+    106-4096*1800@30fps銆�107-3840*1680@30fps銆�108-2560*1120@30fps銆�109-704*320@30fps銆�110-1280*560@30fps銆�111-4096*1800@25fps銆�112-3840*1680@25fps
+    113-2560*1120@25fps銆�114-704*320@25fps銆�115-1280*560@25fps銆�116-2400*3840@24fps銆�117-3840*2400@24fps銆�118-3840*2400@25fps銆�119-2560*1920@12.5fps
+    120-2560*2048@12fps銆�121-2560*2048@15fps銆�122-2560*1536@25fps銆�123-2560*1536@30fps銆�124-2256*2048@25fps銆�125-2256*2048@30fps銆�126-2592*2592@12.5fps銆�127-2592*2592@15fps銆�
+    128 - 640*512@30fps銆�129-2048*1520@30fps銆�130-2048*1520@25fps銆�131-3840*2160@24fps銆�132-2592*1520@25fps銆�133-2592*1520@30fps銆�134-2592*1536@25fps銆�135-2592*1536@30fps
+    136-640*960@25fps銆�137-640*960@24fps銆�142-2992*2192@25fps銆�143-2992*2192@30fps銆�144-3008*2160@25fps銆�145-3008*2160@30fps銆�146-3072*1728@20fps銆�147-2560*1440@20fps銆�
+    148-2160*3840@25fps銆�149-2160*3840@30fps銆�150-7008*1080@25fps銆�151-7008*1080@30fps銆�152-3072*2048@20fps銆�153-1536*864@25fps銆�154-2560*1920@24fps銆�155-2400*3840@30fps銆�
+    156-3840*2400@30fps銆�157-3840*2160@15fps
+    158-384*288@8.3fps銆�159-640*512@8.3fps銆�160-160*120@8.3fps銆�161-1024*768@8.3fps銆�162-640*480@8.3fps銆�163-3840*2160@12.5fps銆�164-2304*1296@30fps銆�165-2304*1296@25fps銆�
+    166-2560*1440@24fps銆�167-2688*1512@25fps銆�168-2688*1512@30fps銆�169-2688*1512@50fps銆�170-2688*1512@60fps銆�171-1536*864@30fps銆�172-2560*1440@50fps銆�173-2560*1440@60fps銆�
+    174-2048*2048@25fps銆�175-2048*2048@30fps銆�176-4000*3060@20fps銆�177-3060*3060@25fps銆�178-3060*3060@30fps銆�179-3000*3000@25fps銆�180-3000*3000@30fps銆�181-8160*3616@30fps銆�
+    182-8160*3616@25fps銆�183-3000*3000@20fps銆�184-3000*3000@15fps銆�185-3000*3000@12.5fps銆�186-5472*3648@25fps銆�187-5472*3648@30fps銆�188-7680*4320@25fps銆�189-7680*4320@30fps銆�
+    190-8160*2400@25fps銆�191-8160*2400@30fps銆�192-5520*2400@25fps銆�193-5520*2400@30fps銆�194-2560*1440@15fps銆�195-1944*1212@24fps銆�196-1944*1212@25fps銆�197-3456*1920@30fps銆�
+    198-4800*2688@25fps銆�199-4800*2688@30fps銆�200-6480*1080@25fps銆�201-6480*1080@30fps銆�202-8640*1440@25fps銆�203-8640*1440@30fps銆�204-3456*1920@25fps銆�205-2688*1520@50fps銆�
+    206-2688*1520@60fps銆�207-4976*1452@25fps銆�208-4976*1452@30fps銆� 209-3200*1800@25fps銆�210-3200*1800@30fps銆�211-5472*3648@24fps銆�212-1920*1080@12.5fps銆�213-2944*1656@20fps銆�
+    214-1920*1080@24fps銆�215-4800*1600@25fps銆�216-4800*1600@30fps銆�217-2560*1440@12.5fps銆�218-6560*3690@1fps銆�219-5120*1400@20fps*/
+        public byte byCaptureModeN; //瑙嗛杈撳叆妯″紡锛圢鍒讹級
+        public byte byCaptureModeP; //瑙嗛杈撳叆妯″紡锛圥鍒讹級
+        public NET_DVR_SMARTIR_PARAM struSmartIRParam = new NET_DVR_SMARTIR_PARAM(); //绾㈠鏀捐繃鐖嗛厤缃俊鎭�
+        public NET_DVR_PIRIS_PARAM struPIrisParam = new NET_DVR_PIRIS_PARAM();//PIris閰嶇疆淇℃伅瀵瑰簲byIrisMode瀛楁浠�2-PIris1寮�濮嬬敓鏁�
+        //2014-02-25 鏂板鍙傛暟
+        public NET_DVR_LASER_PARAM_CFG struLaserParam = new NET_DVR_LASER_PARAM_CFG();    //婵�鍏夊弬鏁�
+        public NET_DVR_FFC_PARAM struFFCParam = new NET_DVR_FFC_PARAM();
+        public NET_DVR_DDE_PARAM struDDEParam = new NET_DVR_DDE_PARAM();
+        public NET_DVR_AGC_PARAM struAGCParam = new NET_DVR_AGC_PARAM();
+        public byte byLensDistortionCorrection;//闀滃ご鐣稿彉鏍℃ 0-鍏抽棴,1-寮�鍚�
+        public byte byDistortionCorrectionLevel;//鐣稿彉鏍℃绛夌骇锛�0-淇濈暀锛�1-绛夌骇涓�锛�2-绛夌骇浜岋紱3-绛夌骇涓�;255-鑷畾涔�
+        public byte byCalibrationAccurateLevel;// 鐣稿彉鏍℃寮哄害[0-100]
+        public byte byZoomedInDistantViewLevel;//杩滅鏀惧ぇ绛夌骇[0-100]
+        public NET_DVR_SNAP_CAMERAPARAMCFG struSnapCCD = new NET_DVR_SNAP_CAMERAPARAMCFG(); //鎶撴媿鏈篊CD鍙傛暟锛屽彧鐢ㄤ簬鎶撴媿鏈�
+        public NET_DVR_OPTICAL_DEHAZE struOpticalDehaze = new NET_DVR_OPTICAL_DEHAZE();//鍏夊閫忛浘鍙傛暟
+        public NET_DVR_THERMOMETRY_AGC struThermAGC = new NET_DVR_THERMOMETRY_AGC();//娴嬫俯AGC閰嶇疆
+        public byte byFusionMode;//鍙屽厜璋辫棰戣瀺鍚堟ā寮忥紝0~鐑垚鍍忔ā寮忥紝1~铻嶅悎妯″紡锛�2~鐢讳腑鐢绘ā寮�,3~鍙鍏夋ā寮�, 4~铻嶅悎榛戠櫧妯″紡, 5~铻嶅悎褰╄壊妯″紡-鑽夊湴锛�6~铻嶅悎褰╄壊妯″紡-鑽掑湴锛�7~铻嶅悎褰╄壊妯″紡-闆湴锛�8~铻嶅悎褰╄壊妯″紡-娴锋磱锛�9~铻嶅悎褰╄壊妯″紡-鍩庡競
+        public byte byHorizontalFOV;//姘村钩瑙嗗満瑙抂0-100]
+        public byte byVerticalFOV;//鍨傜洿瑙嗗満瑙抂0-100]
+        public byte byBrightnessSuddenChangeSuppression;//浜害绐佸彉鎶戝埗0-鍏抽棴,1-寮�鍚�
+        public byte byGPSEnabled;//GPS寮�鍏充娇鑳斤紝0-鍏筹紝1-寮�
+        public byte byRes;
+        public short wCaptureModeN;  //瑙嗛杈撳叆妯″紡锛圢鍒讹級锛屽綋妯″紡绱㈠紩灏忎簬255鏃讹紝涓巄yCaptureModeN淇濇寔涓�鑷达紝澶т簬255鏃朵互璇ュ瓧娈佃繑鍥炵储寮曞�煎垽鏂��
+        public short wCaptureModeP;  //瑙嗛杈撳叆妯″紡锛圥鍒讹級锛屽綋妯″紡绱㈠紩灏忎簬255鏃讹紝涓巄yCaptureModeN淇濇寔涓�鑷达紝澶т簬255鏃朵互璇ュ瓧娈佃繑鍥炵储寮曞�煎垽鏂�
+        public byte[] byRes2 = new byte[150];
+    }
+
+
+    public static class NET_DVR_VIDEOEFFECT extends Structure {
+        public byte byBrightnessLevel; /*0-100*/
+        public byte byContrastLevel; /*0-100*/
+        public byte bySharpnessLevel; /*0-100*/
+        public byte bySaturationLevel; /*0-100*/
+        public byte byHueLevel; /*0-100,锛堜繚鐣欙級*/
+        public byte byEnableFunc; //浣胯兘锛屾寜浣嶈〃绀猴紝bit0-SMART IR(闃茶繃鏇�)锛宐it1-浣庣収搴�,bit2-寮哄厜鎶戝埗浣胯兘锛�0-鍚︼紝1-鏄�
+        public byte byLightInhibitLevel; //寮哄厜鎶戝埗绛夌骇锛孾1-3]琛ㄧず绛夌骇
+        public byte byGrayLevel; //鐏板害鍊煎煙锛�0-[0-255]锛�1-[16-235]
+    }
+
+
+    public static class NET_DVR_GAIN extends Structure {
+        public byte byGainLevel; /*澧炵泭锛�0-100*/
+        public byte byGainUserSet; /*鐢ㄦ埛鑷畾涔夊鐩婏紱0-100锛屽浜庢姄鎷嶆満锛屾槸CCD妯″紡涓嬬殑鎶撴媿澧炵泭*/
+        public byte[] byRes = new byte[2];
+        public int dwMaxGainValue;/*鏈�澶у鐩婂�硷紝鍗曚綅dB*/
+    }
+
+    public static class NET_DVR_WHITEBALANCE extends Structure {
+        public byte byWhiteBalanceMode; /*0-鎵嬪姩鐧藉钩琛★紙MWB锛�,1-鑷姩鐧藉钩琛�1锛圓WB1锛�,2-鑷姩鐧藉钩琛�2 (AWB2),3-鑷姩鎺у埗鏀瑰悕涓洪攣瀹氱櫧骞宠 (Locked WB)锛�
+    4-瀹ゅ(Indoor)锛�5-瀹ゅ唴(Outdoor)6-鏃ュ厜鐏�(Fluorescent Lamp)锛�7-閽犵伅(Sodium Lamp)锛�
+    8-鑷姩(Auto-Track)9-涓�娆$櫧骞宠 (One Push)锛�10-瀹ゅ鑷姩(Auto-Outdoor)锛�
+    11-閽犵伅鑷姩 (Auto-Sodiumlight)锛�12-姘撮摱鐏�(Mercury Lamp)锛�13-鑷姩鐧藉钩琛�(Auto)锛�
+14-鐧界偨鐏� (IncandescentLamp)锛�15-鏆栧厜鐏�(Warm Light Lamp)锛�16-鑷劧鍏�(Natural Light) */
+        public byte byWhiteBalanceModeRGain; /*鎵嬪姩鐧藉钩琛℃椂鏈夋晥锛屾墜鍔ㄧ櫧骞宠  R澧炵泭*/
+        public byte byWhiteBalanceModeBGain; /*鎵嬪姩鐧藉钩琛℃椂鏈夋晥锛屾墜鍔ㄧ櫧骞宠  B澧炵泭*/
+        public byte[] byRes = new byte[5];
+    }
+
+    public static class NET_DVR_EXPOSURE extends Structure {
+        public byte byExposureMode; /*0 鎵嬪姩鏇濆厜 1鑷姩鏇濆厜*/
+        public byte byAutoApertureLevel; /* 鑷姩鍏夊湀鐏垫晱搴�, 0-10 */
+        public byte[] byRes = new byte[2];
+        public int dwVideoExposureSet; /* 鑷畾涔夎棰戞洕鍏夋椂闂达紙鍗曚綅us锛�*//*娉�:鑷姩鏇濆厜鏃惰鍊间负鏇濆厜鏈�鎱㈠�� 鏂板20-1s(1000000us)*/
+        public int dwExposureUserSet; /* 鑷畾涔夋洕鍏夋椂闂�,鍦ㄦ姄鎷嶆満涓婂簲鐢ㄦ椂锛孋CD妯″紡鏃舵槸鎶撴媿蹇棬閫熷害*/
+        public int dwRes;
+    }
+
+    public static class NET_DVR_GAMMACORRECT extends Structure {
+        public byte byGammaCorrectionEnabled; /*0 dsibale  1 enable*/
+        public byte byGammaCorrectionLevel; /*0-100*/
+        public byte[] byRes = new byte[6];
+    }
+
+
+    public static class NET_DVR_WDR extends Structure {
+        public byte byWDREnabled; /*瀹藉姩鎬侊細0 dsibale  1 enable 2 auto*/
+        public byte byWDRLevel1; /*0-F*/
+        public byte byWDRLevel2; /*0-F*/
+        public byte byWDRContrastLevel; /*0-100*/
+        public byte[] byRes = new byte[16];
+    }
+
+    public static class NET_DVR_DAYNIGHT extends Structure {
+        public byte byDayNightFilterType; /*鏃ュ鍒囨崲锛�0-鐧藉ぉ锛�1-澶滄櫄锛�2-鑷姩锛�3-瀹氭椂锛�4-鎶ヨ杈撳叆瑙﹀彂, 5-鑷姩妯″紡2锛堟棤鍏夋晱锛�,6-榛戝厜锛�7-榛戝厜鑷姩锛�8-榛戝厜瀹氭椂*/
+        public byte bySwitchScheduleEnabled; /*0 dsibale  1 enable,(淇濈暀)*/
+        //瀹氭椂妯″紡鍙傛暟
+        public byte byBeginTime; /*寮�濮嬫椂闂达紙灏忔椂锛夛紝0-23*/
+        public byte byEndTime; /*缁撴潫鏃堕棿锛堝皬鏃讹級锛�0-23*/
+        //妯″紡2
+        public byte byDayToNightFilterLevel; //0-7
+        public byte byNightToDayFilterLevel; //0-7
+        public byte byDayNightFilterTime;//(60绉�)
+        //瀹氭椂妯″紡鍙傛暟
+        public byte byBeginTimeMin; //寮�濮嬫椂闂达紙鍒嗭級锛�0-59
+        public byte byBeginTimeSec; //寮�濮嬫椂闂达紙绉掞級锛�0-59
+        public byte byEndTimeMin; //缁撴潫鏃堕棿锛堝垎锛夛紝0-59
+        public byte byEndTimeSec; //缁撴潫鏃堕棿锛堢锛夛紝0-59
+        //鎶ヨ杈撳叆瑙﹀彂妯″紡鍙傛暟
+        public byte byAlarmTrigState; //鎶ヨ杈撳叆瑙﹀彂鐘舵�侊紝0-鐧藉ぉ锛�1-澶滄櫄
+    }
+
+    public static class NET_DVR_BACKLIGHT extends Structure {
+        public byte byBacklightMode; /*鑳屽厜琛ュ伩:0 off 1 UP銆�2 DOWN銆�3 LEFT銆�4 RIGHT銆�5MIDDLE銆�6鑷畾涔夛紝10-寮�锛�11-鑷姩锛�12-澶氬尯鍩熻儗鍏夎ˉ鍋�*/
+        public byte byBacklightLevel; /*0x0-0xF*/
+        public byte[] byRes1 = new byte[2];
+        public int dwPositionX1; //锛圶鍧愭爣1锛�
+        public int dwPositionY1; //锛圷鍧愭爣1锛�
+        public int dwPositionX2; //锛圶鍧愭爣2锛�
+        public int dwPositionY2; //锛圷鍧愭爣2锛�
+        public byte[] byRes2 = new byte[4];
+    }
+
+
+    public static class NET_DVR_NOISEREMOVE extends Structure {
+        public byte byDigitalNoiseRemoveEnable; /*0-涓嶅惎鐢紝1-鏅�氭ā寮忔暟瀛楅檷鍣紝2-涓撳妯″紡鏁板瓧闄嶅櫔*/
+        public byte byDigitalNoiseRemoveLevel; /*鏅�氭ā寮忔暟瀛楅檷鍣骇鍒細0x0-0xF*/
+        public byte bySpectralLevel;       /*涓撳妯″紡涓嬬┖鍩熷己搴︼細0-100*/
+        public byte byTemporalLevel;   /*涓撳妯″紡涓嬫椂鍩熷己搴︼細0-100*/
+        public byte byDigitalNoiseRemove2DEnable;         /* 鎶撴媿甯�2D闄嶅櫔锛�0-涓嶅惎鐢紝1-鍚敤 */
+        public byte byDigitalNoiseRemove2DLevel;            /* 鎶撴媿甯�2D闄嶅櫔绾у埆锛�0-100 */
+        public byte[] byRes = new byte[2];
+    }
+
+
+    public static class NET_DVR_CMOSMODECFG extends Structure {
+        public byte byCaptureMod;   //鎶撴媿妯″紡锛�0-鎶撴媿妯″紡1锛�1-鎶撴媿妯″紡2
+        public byte byBrightnessGate;//浜害闃堝��
+        public byte byCaptureGain1;   //鎶撴媿澧炵泭1,0-100
+        public byte byCaptureGain2;   //鎶撴媿澧炵泭2,0-100
+        public int dwCaptureShutterSpeed1;//鎶撴媿蹇棬閫熷害1
+        public int dwCaptureShutterSpeed2;//鎶撴媿蹇棬閫熷害2
+        public byte[] byRes = new byte[4];
+    }
+
+    public static class NET_DVR_DEFOGCFG extends Structure {
+        public byte byMode; //妯″紡锛�0-涓嶅惎鐢紝1-鑷姩妯″紡锛�2-甯稿紑妯″紡
+        public byte byLevel; //绛夌骇锛�0-100
+        public byte[] byRes = new byte[6];
+    }
+
+    public static class NET_DVR_CMOSMODCFG extends Structure {
+        public byte byCaptureMod;   //鎶撴媿妯″紡锛�0-鎶撴媿妯″紡1锛�1-鎶撴媿妯″紡2
+        public byte byBrightnessGate;//浜害闃堝��
+        public byte byCaptureGain1;   //鎶撴媿澧炵泭1,0-100
+        public byte byCaptureGain2;   //鎶撴媿澧炵泭2,0-100
+        public int dwCaptureShutterSpeed1;//鎶撴媿蹇棬閫熷害1
+        public int dwCaptureShutterSpeed2;//鎶撴媿蹇棬閫熷害2
+        public byte[] byRes = new byte[4];
+    }
+
+    public static class NET_DVR_ELECTRONICSTABILIZATION extends Structure {
+        public byte byEnable;//浣胯兘 0- 涓嶅惎鐢紝1- 鍚敤
+        public byte byLevel; //绛夌骇锛�0-100
+        public byte[] byRes = new byte[6];
+    }
+
+    public static class NET_DVR_CORRIDOR_MODE_CCD extends Structure {
+        public byte byEnableCorridorMode; //鏄惁鍚敤璧板粖妯″紡 0锝炰笉鍚敤锛� 1锝炲惎鐢�
+        public byte[] byRes = new byte[11];
+    }
+
+    public static class NET_DVR_SMARTIR_PARAM extends Structure {
+        public byte byMode;//0锝炴墜鍔紝1锝炶嚜鍔�
+        public byte byIRDistance;//绾㈠璺濈绛夌骇(绛夌骇锛岃窛绂绘姣斾緥)level:1~100 榛樿:50锛堟墜鍔ㄦā寮忎笅澧炲姞锛�
+        public byte byShortIRDistance;// 杩戝厜鐏窛绂荤瓑绾�(1~100)
+        public byte byLongIRDistance;// 杩滃厜鐏窛绂荤瓑绾�(1~100)
+    }
+
+    public static class NET_DVR_PIRIS_PARAM extends Structure {
+        public byte byMode;//0-鑷姩锛�1-鎵嬪姩
+        public byte byPIrisAperture;//绾㈠鍏夊湀澶у皬绛夌骇(绛夌骇,鍏夊湀澶у皬姝f瘮渚�)level:1~100 榛樿:50锛堟墜鍔ㄦā寮忎笅澧炲姞锛�
+        public byte[] byRes = new byte[6];
+    }
+
+    public static class NET_DVR_LASER_PARAM_CFG extends Structure {
+        public byte byControlMode;        //鎺у埗妯″紡            0-鏃犳晥锛�1-鑷姩锛�2-鎵嬪姩 榛樿鑷姩
+        public byte bySensitivity;        //婵�鍏夌伅鐏垫晱搴�        0-100 榛樿50
+        public byte byTriggerMode;        //婵�鍏夌伅瑙﹀彂妯″紡    0-鏃犳晥锛�1-鏈鸿姱瑙﹀彂锛�2-鍏夋晱瑙﹀彂 榛樿鏈鸿姱瑙﹀彂
+        public byte byBrightness;        //鎺у埗妯″紡涓烘墜鍔ㄦā寮忎笅鏈夋晥锛涙縺鍏夌伅浜害        0-255 榛樿100
+        public byte byAngle;            //婵�鍏夌伅瑙掑害        0-鏃犳晥锛岃寖鍥�1-36  榛樿12锛屾縺鍏夌伅鐓у皠鑼冨洿涓轰竴涓渾鍦堬紝璋冭妭婵�鍏夎搴︽槸璋冭妭杩欎釜鍦嗙殑鍗婂緞鐨勫ぇ灏�
+        public byte byLimitBrightness;  //鎺у埗妯″紡涓鸿嚜鍔ㄦā寮忎笅鏈夋晥锛涙縺鍏夌伅浜害闄愬埗 0~100 锛堟柊澧烇級2014-01-26
+        public byte byEnabled;         //鎵嬪姩鎺у埗婵�鍏夌伅浣胯兘 0-鍏抽棴锛�1-鍚姩
+        public byte byIllumination;     //婵�鍏夌伅寮哄害閰嶇疆0~100
+        public byte byLightAngle;       //琛ュ厜瑙掑害 0~100
+        public byte[] byRes = new byte[7];           //淇濈暀
+    }
+
+    public static class NET_DVR_FFC_PARAM extends Structure {
+        //1-Schedule Mode,2-Temperature Mode, 3-Off
+        public byte byMode;
+        //锛堟椂闂�:鎸夎兘鍔涙樉绀猴紝鍗曚綅鍒嗛挓锛岄�夐」鏈�10,20,30,40,50,60,120,180,240锛�
+        public byte byRes1;
+        public short wCompensateTime; //瀹氭椂妯″紡涓嬬敓鏁�
+        public byte[] byRes2 = new byte[4];
+    }
+
+    public static class NET_DVR_DDE_PARAM extends Structure {
+        public byte byMode;//1-Off,2-Normal Mode,3-Expert Mode
+        public byte byNormalLevel;//鏅�氭ā寮忕瓑绾ц寖鍥碵1,100]锛屾櫘閫氭ā寮忎笅鐢熸晥
+        public byte byExpertLevel;//涓撳妯″紡绛夌骇鑼冨洿[1,100]锛屼笓瀹舵ā寮忎笅鐢熸晥
+        public byte[] byRes = new byte[5];
+    }
+
+    public static class NET_DVR_AGC_PARAM extends Structure {
+        public byte bySceneType;//1-Normal Sence,2-Highlight Sence,3-Manual Sence
+        public byte byLightLevel;//浜害绛夌骇[1,100]锛涙墜鍔ㄦā寮忎笅鐢熸晥
+        public byte byGainLevel; //澧炵泭绛夌骇[1,100]锛涙墜鍔ㄦā寮忎笅鐢熸晥
+        public byte[] byRes = new byte[5];
+    }
+
+    public static class NET_DVR_SNAP_CAMERAPARAMCFG extends Structure {
+        public byte byWDRMode;   // 瀹藉姩鎬佹ā寮�;0~鍏抽棴锛�1~鏁板瓧瀹藉姩鎬� 2~瀹藉姩鎬�
+        public byte byWDRType;    // 瀹藉姩鎬佸垏鎹㈡ā寮�; 0~寮哄埗鍚敤锛�1~鎸夋椂闂村惎鐢紝2~鎸変寒搴﹀惎鐢�
+        public byte byWDRLevel;   // 瀹藉姩鎬佺瓑绾э紝0~6绱㈠紩瀵瑰簲1-7锛岄粯璁ょ储寮�2锛堝嵆3绾э級锛�
+        public byte byRes1;
+        public NET_DVR_TIME_EX struStartTime = new NET_DVR_TIME_EX(); //寮�濮嬪鍔ㄦ�佹椂闂�
+        public NET_DVR_TIME_EX struEndTime = new NET_DVR_TIME_EX(); //缁撴潫瀹藉姩鎬佹椂闂�
+        public byte byDayNightBrightness; //鏃ュ杞崲浜害闃堝�硷紝0-100锛岄粯璁�50锛�
+        //璁板繂鑹插寮�
+        public byte byMCEEnabled;//璁板繂鑹插寮轰娇鑳斤紝true锛氬紑鍚紝false锛氬叧闂�
+        public byte byMCELevel;//璁板繂鑹插寮哄己搴︼紝0~100锛岄粯璁ゅ��50
+        //鑷姩瀵规瘮搴�
+        public byte byAutoContrastEnabled;//鑷姩瀵规瘮搴︿娇鑳斤紝true锛氬紑鍚紝false锛氬叧闂�
+        public byte byAutoContrastLevel;//鑷姩瀵规瘮绛夌骇锛�0-100锛�,榛樿50
+        //缁嗚妭澧炲己
+        public byte byLSEDetailEnabled;//缁嗚妭澧炲己浣胯兘锛宼rue锛氬紑鍚紝false锛氬叧闂�
+        public byte byLSEDetailLevel;//缁嗚妭澧炲己绛夌骇锛�0-100锛�,榛樿50
+        // License Plate Definition Enhancement杞︾墝澧炲己
+        public byte byLPDEEnabled;//杞︾墝澧炲己浣胯兘锛宼rue锛氬紑鍚紝false锛氬叧闂�
+        public byte byLPDELevel;//杞︾墝澧炲己绛夌骇锛�0-100锛�,榛樿50
+        //瀵规瘮搴﹀寮�
+        public byte byLseEnabled; //瀵规瘮搴﹀寮轰娇鑳斤紝true锛氬紑鍚紝false锛氬叧闂�
+        public byte byLseLevel; //瀵规瘮搴﹀寮虹瓑绾э紙0-100锛�,榛樿0
+        public byte byLSEHaloLevel;//鍏夋檿鎶戝埗绛夌骇銆傝寖鍥� 0-100,榛樿0
+        public byte byLseType; //瀵规瘮搴﹀寮哄垏鎹㈡ā寮�; 0~寮哄埗鍚敤锛�1~鎸夋椂闂村惎鐢紝2~鎸変寒搴﹀惎鐢紙璇ュ瓧娈靛彲鍚屾椂鎺у埗byLseLevel銆乥yLSEHaloLevel涓や釜鍙傛暟锛�
+        public byte[] byRes2 = new byte[3];
+        public NET_DVR_TIME_EX struLSEStartTime = new NET_DVR_TIME_EX(); //寮�濮嬪姣斿害澧炲己鏃堕棿锛堝綋byLseType涓�1鏃剁敓鏁堬級
+        public NET_DVR_TIME_EX struLSEEndTime = new NET_DVR_TIME_EX(); //缁撴潫瀵规瘮搴﹀寮烘椂闂达紙褰揵yLseType涓�1鏃剁敓鏁堬級
+        public byte byLightLevel;//涓轰寒搴︾瓑绾у弬鏁帮紙0-100锛�,榛樿0锛岋紙褰揵yLseType涓�2鏃剁敓鏁堬級
+        //杞︾墝瀵规瘮搴�
+        public byte byPlateContrastLevel;//杞︾墝瀵规瘮搴︾瓑绾э紝0~100锛岄粯璁�0
+        //杞︾墝楗卞拰搴�
+        public byte byPlateSaturationLevel;//杞︾墝楗卞拰搴︾瓑绾э紝0~100锛岄粯璁�0
+        public byte[] byRes = new byte[9];
+    }
+
+    public static class NET_DVR_OPTICAL_DEHAZE extends Structure {
+        public byte byEnable; //0~涓嶅惎鐢ㄥ厜瀛﹂�忛浘锛�1~鍚敤鍏夊閫忛浘
+        public byte[] byRes = new byte[7];
+    }
+
+    public static class NET_DVR_THERMOMETRY_AGC extends Structure {
+        public byte byMode;//AGC妯″紡锛�0~鏃犳晥锛�1~鑷姩锛�2~鎵嬪姩
+        public byte byRes1[] = new byte[3];
+        public int iHighTemperature;//鏈�楂樻俯搴︼紝鑼冨洿涓猴細-273~9999鎽勬皬搴︼紙1~鎵嬪姩妯″紡涓嬬敓鏁堬級
+        public int iLowTemperature;//鏈�浣庢俯搴︼紝鑼冨洿涓猴細-273~9999鎽勬皬搴︼紙1~鎵嬪姩妯″紡涓嬬敓鏁堬級
+        public byte[] byRes = new byte[8];
+    }
+
+    public static class NET_DVR_CHECK_DEV_STATE extends Structure {
+        public int dwTimeout;      //瀹氭椂妫�娴嬭澶囧伐浣滅姸鎬侊紝鍗曚綅ms锛屼负0鏃讹紝琛ㄧず浣跨敤榛樿鍊�(30000)銆傛渶灏忓�间负1000
+        public DEV_WORK_STATE_CB fnStateCB;
+        Pointer pUserData;
+        public byte[] byRes = new byte[60];
+    }
+
+    public static class NET_DVR_FLOW_INFO extends Structure {
+        public int dwSize;             //缁撴瀯澶у皬
+        public int dwSendFlowSize;     //鍙戦�佹祦閲忓ぇ灏�,鍗曚綅kbps
+        public int dwRecvFlowSize;     //鎺ユ敹娴侀噺澶у皬,鍗曚綅kbps
+        public byte[] byRes = new byte[20];           //淇濈暀
+    }
+
+    public static class NET_DVR_AES_KEY_INFO extends Structure {
+        public byte[] sAESKey = new byte[16];        /*鐮佹祦鍔犲瘑瀵嗛挜*/
+        public byte[] byRes = new byte[64];          /*淇濈暀瀛楄妭*/
+    }
+
+    public static class NET_DVR_ALARM_RS485CFG extends Structure {
+        public int dwSize;                 // 缁撴瀯浣撳ぇ灏�
+        public byte[] sDeviceName = new byte[NAME_LEN];  // 鍓嶇璁惧鍚嶇О
+        public short wDeviceType;            // 鍓嶇璁惧绫诲瀷,閫氳繃NET_DVR_GetDeviceTypeList鑾峰彇
+        public short wDeviceProtocol;        // 鍓嶇璁惧鍗忚 閫氳繃鑾峰彇鍗忚鍒楄〃鑾峰彇
+        public int dwBaudRate;             //娉㈢壒鐜�(bps)锛�0-50锛�1-75锛�2-110锛�3-150锛�4-300锛�5-600锛�6-1200锛�7-2400锛�8-4800锛�9-9600锛�10-19200锛�11-38400锛�12-57600锛�13-76800锛�14-115.2k
+        public byte byDataBit;              // 鏁版嵁鏈夊嚑浣嶏細0-5浣嶏紝1-6浣嶏紝2-7浣嶏紝3-8浣�
+        public byte byStopBit;              // 鍋滄浣嶏細0-1浣嶏紝1-2浣�
+        public byte byParity;               //鏄惁鏍¢獙锛�0-鏃犳牎楠岋紝1-濂囨牎楠岋紝2-鍋舵牎楠�
+        public byte byFlowcontrol;           // 鏄惁娴佹帶锛�0-鏃狅紝1-杞祦鎺�,2-纭祦鎺�
+        public byte byDuplex;                // 0 - 鍗婂弻宸�1- 鍏ㄥ弻宸�  鍙湁閫氶亾1鍙互鏄叏鍙屽伐鍏朵粬閮藉彧鑳芥槸鍗婂弻宸�
+        public byte byWorkMode;                // 宸ヤ綔妯″紡 0-鎺у埗鍙� 1-閫忔槑閫氶亾,2-姊帶锛�3-璇诲崱鍣�,4-闂ㄧ瀹夊叏妯″潡,0xfe-鑷畾涔夛紝0xff-绂佺敤
+        public byte byChannel;                //485閫氶亾鍙�
+        public byte bySerialType;            //涓插彛绫诲瀷: 0--485, 1--232
+        public byte byMode;                 //妯″紡 0-杩炴帴璇诲崱鍣� 1-杩炴帴瀹㈡埛绔� 2-杩炴帴鎵╁睍妯″潡 3-杩炴帴闂ㄧ涓绘満 4-杩炴帴姊帶涓绘満  0xff-绂佺敤
+        public byte byOutputDataType;  //0-鏃犳晥锛�1-杈撳嚭鍗″彿锛�2-杈撳嚭宸ュ彿
+        public byte byAddress;               //涓插彛鍦板潃
+        public byte[] byRes = new byte[33];              // 淇濈暀瀛楄妭
+    }
+
+    public static class NET_DVR_ALARMHOST_RS485_SLOT_CFG extends Structure {
+        public int dwSize;              // 缁撴瀯浣撳ぇ灏�
+        public byte[] sDeviceName = new byte[NAME_LEN];      // 鍓嶇璁惧鍚嶇О
+        public short wDeviceType;            // 鍓嶇璁惧绫诲瀷ALARM_FRONT_DEVICE _TYPE
+        public byte wDeviceProtocol;     // 鍓嶇璁惧鍗忚 閫氳繃鑾峰彇鍗忚鍒楄〃鑾峰彇
+        public short wAddress;            //璁惧鍦板潃
+        public byte byChannel;          //485閫氶亾鍙�
+        public byte bySlotChan;         //妲戒綅鍙�
+        public byte[] byRes = new byte[60];          // 淇濈暀瀛楄妭
+    }
+
+
+    public static class NET_DVR_VIDEOWALLDISPLAYPOSITION extends Structure {
+        public int dwSize;
+        public byte byEnable;
+        public byte byCoordinateType;//鍧愭爣绫诲瀷銆�0-鍩哄噯鍧愭爣锛�1-瀹為檯鍧愭爣
+        public byte[] byRes1 = new byte[2];
+        //澧欏彿,1瀛楄妭澧欏彿锛堥珮瀛楄妭锛屽浜庡悎鐮佸櫒璁惧锛屼负鍚堢爜閫氶亾鍙凤級+3瀛楄妭淇濈暀
+        public int dwVideoWallNo;
+        public int dwDisplayNo;//鏄剧ず杈撳嚭鍙�
+        //鍧愭爣椤讳负鍩哄噯鍧愭爣鐨勬暣鏁板�嶏紙1920*1920锛夛紝瀹藉害鍜岄珮搴﹀�间笉鐢ㄨ缃紝鍗充负鍩哄噯鍊�
+        public NET_DVR_RECTCFG_EX struRectCfg;
+        public byte[] byRes2 = new byte[64];
+    }
+
+    public static final int MAX_DISPLAY_NUM = 512; //鏈�澶ф樉绀鸿緭鍑轰釜鏁�
+
+    public static class NET_DVR_DISPLAYCFG extends Structure {
+        public int dwSize;
+        public NET_DVR_DISPLAYPARAM[] struDisplayParam = new NET_DVR_DISPLAYPARAM[MAX_DISPLAY_NUM];
+        public byte[] byRes2 = new byte[128];
+    }
+
+    public static class NET_DVR_DISPLAYPARAM extends Structure {
+        public int dwDisplayNo;
+        public byte byDispChanType;
+        public byte[] byRes = new byte[11];
+    }
+
+    public static class NET_DVR_WALLOUTPUTPARAM extends Structure {
+        public int dwSize;
+        public int dwResolution; //鍒嗚鲸鐜�
+        public NET_DVR_VIDEOEFFECT struRes;
+        public byte byVideoFormat; //瑙嗛鍒跺紡锛岃VIDEO_STANDARD
+        public byte byDisplayMode;/*杈撳嚭杩炴帴妯″紡,1-BNC锛�2-VGA锛�3-HDMI锛�4-DVI锛�5-SDI, 6-FIBER, 7-RGB, 8-YPrPb, 9-VGA/HDMI/DVI鑷�傚簲锛�0xff-鏃犳晥*/
+        public byte byBackgroundColor; //鑳屾櫙鑹诧紝0-鏃犳晥锛屼笉鏀寔鑳屾櫙鑹诧紝1-绾紝2-缁匡紝3-钃濓紝4-榛勶紝5-绱紝6-闈掞紝7-榛戯紝8-鐧斤紝0xff-鑷畾涔�
+        public byte byUseEDIDResolution; //鏄惁浣跨敤EDID鍒嗚鲸鐜囷紝0-涓嶄娇鐢紝1-浣跨敤
+        public short wLEDWidth;     //LED灞忚緭鍑哄垎杈ㄧ巼瀹�
+        public short wLEDHeight;    //LED灞忚緭鍑哄垎杈ㄧ巼楂�
+        public NET_DVR_RGB_COLOR struBackColor;//鑳屾櫙鑹诧紝byBackgroundColor涓�0xff鏃舵湁鏁�
+        public byte byLinkStatus;//杈撳嚭鍙h繛鎺ョ姸鎬侊紝0-鏃犳晥,1-鎺ュ叆鏄剧ず鍣�,2-鏈帴鍏ユ樉绀哄櫒
+        public byte[] byRes2 = new byte[51];
+    }
+
+    public static class WALLOUTPUTPARAM_ARRAY extends Structure {
+        public NET_DVR_WALLOUTPUTPARAM[] strWalloutputParm;
+
+        public WALLOUTPUTPARAM_ARRAY(int iLen) {
+            strWalloutputParm = new NET_DVR_WALLOUTPUTPARAM[iLen];
+        }
+
+    }
+
+    public static class NET_DVR_VIDEO_CALL_COND extends Structure{
+        public int    dwSize;
+        public byte[]    byRes=new byte[128];
+    }
+
+
+    /***
+     * API鍑芥暟澹版槑,璇︾粏璇存槑瑙丄PI鎵嬪唽
+     ***/
+    public static interface FRealDataCallBack_V30 extends Callback {
+        public void invoke(int lRealHandle, int dwDataType,
+                           Pointer pBuffer, int dwBufSize, Pointer pUser);
+    }
+
+    public static interface FMSGCallBack extends Callback {
+        public void invoke(int lCommand, NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser);
+    }
+
+    public static interface FMSGCallBack_V31 extends Callback {
+        public boolean invoke(int lCommand, NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser);
+    }
+
+    public static interface FMessCallBack extends Callback {
+        public boolean invoke(int lCommand, String sDVRIP, String pBuf, int dwBufLen);
+    }
+
+    public static interface FMessCallBack_EX extends Callback {
+        public boolean invoke(int lCommand, int lUserID, String pBuf, int dwBufLen);
+    }
+
+    public static interface FMessCallBack_NEW extends Callback {
+        public boolean invoke(int lCommand, String sDVRIP, String pBuf, int dwBufLen, short dwLinkDVRPort);
+    }
+
+    public static interface FMessageCallBack extends Callback {
+        public boolean invoke(int lCommand, String sDVRIP, String pBuf, int dwBufLen, int dwUser);
+    }
+
+    public static interface FExceptionCallBack extends Callback {
+        public void invoke(int dwType, int lUserID, int lHandle, Pointer pUser);
+    }
+
+    public static interface FDrawFun extends Callback {
+        public void invoke(int lRealHandle, W32API.HDC hDc, int dwUser);
+    }
+
+    public static interface FStdDataCallBack extends Callback {
+        public void invoke(int lRealHandle, int dwDataType, ByteByReference pBuffer, int dwBufSize, int dwUser);
+    }
+
+    public static interface FPlayDataCallBack extends Callback {
+        public void invoke(int lPlayHandle, int dwDataType, Pointer pBuffer, int dwBufSize, int dwUser);
+    }
+    public static interface FPlayESCallBack extends Callback {
+        public void invoke(int lPlayHandle, NET_DVR_PACKET_INFO_EX struPackInfo, Pointer pUser);
+    }
+
+    public static interface FVoiceDataCallBack extends Callback {
+        public void invoke(int lVoiceComHandle, Pointer pRecvDataBuffer, int dwBufSize, byte byAudioFlag, int dwUser);
+    }
+
+    public static interface FVoiceDataCallBack_V30 extends Callback {
+        public void invoke(int lVoiceComHandle, Pointer pRecvDataBuffer, int dwBufSize, byte byAudioFlag, int pUser);
+    }
+
+    public static interface FVoiceDataCallBack_MR extends Callback {
+        public void invoke(int lVoiceComHandle, Pointer pRecvDataBuffer, int dwBufSize, byte byAudioFlag, int dwUser);
+    }
+
+    public static interface FVoiceDataCallback_MR_V30 extends Callback {
+        public void invoke(int lVoiceComHandle, Pointer pRecvDataBuffer, int dwBufSize, byte byAudioFlag, Pointer pUser);
+    }
+
+    public static interface FVoiceDataCallBack2 extends Callback {
+        public void invoke(String pRecvDataBuffer, int dwBufSize, Pointer pUser);
+    }
+
+    public static interface FSerialDataCallBack extends Callback {
+        public void invoke(int lSerialHandle, String pRecvDataBuffer, int dwBufSize, int dwUser);
+    }
+
+    public static interface FRowDataCallBack extends Callback {
+        public void invoke(int lUserID, String sIPAddr, int lRowAmout, String pRecvDataBuffer, int dwBufSize, int dwUser);
+    }
+
+    public static interface FColLocalDataCallBack extends Callback {
+        public void invoke(int lUserID, String sIPAddr, int lColumnAmout, String pRecvDataBuffer, int dwBufSize, int dwUser);
+    }
+
+    public static interface FColGlobalDataCallBack extends Callback {
+        public void invoke(int lUserID, String sIPAddr, int lColumnAmout, String pRecvDataBuffer, int dwBufSize, int dwUser);
+    }
+
+    public static interface FJpegdataCallBack extends Callback {
+        public int invoke(int lCommand, int lUserID, String sDVRIP, String sJpegName, String pJpegBuf, int dwBufLen, int dwUser);
+    }
+
+    public static interface FPostMessageCallBack extends Callback {
+        public int invoke(int dwType, int lIndex);
+    }
+
+    public static interface DEV_WORK_STATE_CB extends Callback {
+        public boolean invoke(Pointer pUserdata, int iUserID, NET_DVR_WORKSTATE_V40 lpWorkState);
+    }
+
+    public static interface FLOWTESTCALLBACK extends Callback {
+        public void invoke(int lFlowHandle, NET_DVR_FLOW_INFO pFlowInfo,
+                           Pointer pUser);
+    }
+
+
+    boolean NET_DVR_Init();
+
+    boolean NET_DVR_Cleanup();
+
+    boolean NET_DVR_SetSDKInitCfg(int enumType, Pointer lpInBuff);
+
+    boolean NET_DVR_SetSDKLocalCfg(int enumType, Pointer lpInBuff);
+
+    boolean NET_DVR_GetSDKLocalCfg(int enumType, Pointer lpOutBuff);
+
+    boolean NET_DVR_SetDVRMessage(int nMessage, int hWnd);
+
+    //NET_DVR_SetDVRMessage鐨勬墿灞�
+    boolean NET_DVR_SetExceptionCallBack_V30(int nMessage, int hWnd, FExceptionCallBack fExceptionCallBack, Pointer pUser);
+
+    boolean NET_DVR_SetDVRMessCallBack(FMessCallBack fMessCallBack);
+
+    boolean NET_DVR_SetDVRMessCallBack_EX(FMessCallBack_EX fMessCallBack_EX);
+
+
+    //2007-04-16澧炲姞鏌ヨ缁撴灉甯﹀崱鍙风殑鏂囦欢鏌ユ壘
+    int NET_DVR_FindNextFile_Card(int lFindHandle, NET_DVR_FINDDATA_CARD lpFindData);
+
+    int NET_DVR_FindFile_Card(int lUserID, int lChannel, int dwFileType, NET_DVR_TIME lpStartTime, NET_DVR_TIME lpStopTime);
+
+    boolean NET_DVR_LockFileByName(int lUserID, String sLockFileName);
+
+    boolean NET_DVR_UnlockFileByName(int lUserID, String sUnlockFileName);
+
+    int NET_DVR_PlayBackByName(int lUserID, String sPlayBackFileName, HWND hWnd);
+
+    int NET_DVR_PlayBackByTime(int lUserID, int lChannel, NET_DVR_TIME lpStartTime, NET_DVR_TIME lpStopTime, HWND hWnd);
+
+    int NET_DVR_PlayBackByTime_V40(int lUserID, NET_DVR_VOD_PARA pVodPara);
+
+    boolean NET_DVR_PlayBackControl(int lPlayHandle, int dwControlCode, int dwInValue, IntByReference LPOutValue);
+
+    boolean NET_DVR_PlayBackControl_V40(int lPlayHandle, int dwControlCode, Pointer lpInBuffer, int dwInLen, Pointer lpOutBuffer, IntByReference lpOutLen);
+
+    boolean NET_DVR_StopPlayBack(int lPlayHandle);
+
+    boolean NET_DVR_SetPlayDataCallBack(int lPlayHandle, FPlayDataCallBack fPlayDataCallBack, int dwUser);
+    boolean NET_DVR_SetPlayDataCallBack_V40(int lPlayHandle, FPlayDataCallBack fPlayDataCallBack, Pointer dwUser);
+    boolean NET_DVR_SetPlayBackESCallBack(int lPlayHandle, FPlayESCallBack fPlayESCallBack, Pointer pUser);
+
+    boolean NET_DVR_PlayBackSaveData(int lPlayHandle, String sFileName);
+
+    boolean NET_DVR_StopPlayBackSave(int lPlayHandle);
+
+    boolean NET_DVR_GetPlayBackOsdTime(int lPlayHandle, NET_DVR_TIME lpOsdTime);
+
+    boolean NET_DVR_PlayBackCaptureFile(int lPlayHandle, String sFileName);
+
+    int NET_DVR_GetFileByName(int lUserID, String sDVRFileName, byte[] sSavedFileName);
+
+    int NET_DVR_GetFileByTime(int lUserID, int lChannel, NET_DVR_TIME lpStartTime, NET_DVR_TIME lpStopTime, String sSavedFileName);
+
+    int NET_DVR_GetFileByTime_V40(int lUserID, String sSavedFileName, NET_DVR_PLAYCOND pDownloadCond);
+
+    boolean NET_DVR_StopGetFile(int lFileHandle);
+
+    int NET_DVR_GetDownloadPos(int lFileHandle);
+
+    int NET_DVR_GetPlayBackPos(int lPlayHandle);
+
+    //鍥剧墖鏌ユ壘
+    int NET_DVR_FindPicture(int lUserID, NET_DVR_FIND_PICTURE_PARAM pFindParam);
+
+    int NET_DVR_FindNextPicture_V50(int lFindHandle, NET_DVR_FIND_PICTURE_V50 lpFindData);
+
+    int NET_DVR_FindNextPicture(int lFindHandle, NET_DVR_FIND_PICTURE lpFindData);
+
+    boolean NET_DVR_CloseFindPicture(int lFindHandle);
+
+    boolean NET_DVR_GetPicture_V50(int lUserID, NET_DVR_PIC_PARAM lpPicParam);
+
+    boolean NET_DVR_SetDVRMessCallBack_NEW(FMessCallBack_NEW fMessCallBack_NEW);
+
+
+    boolean NET_DVR_SetDVRMessageCallBack(FMessageCallBack fMessageCallBack, int dwUser);
+
+    boolean NET_DVR_SetDVRMessageCallBack_V30(FMSGCallBack fMessageCallBack, Pointer pUser);
+
+    boolean NET_DVR_SetDVRMessageCallBack_V31(FMSGCallBack_V31 fMessageCallBack, Pointer pUser);
+
+    boolean NET_DVR_SetDVRMessageCallBack_V50(int iIndex, FMSGCallBack_V31 fMessageCallBack, Pointer pUser);
+
+    boolean NET_DVR_SetConnectTime(int dwWaitTime, int dwTryTimes);
+
+    boolean NET_DVR_SetReconnect(int dwInterval, boolean bEnableRecon);
+
+    int NET_DVR_GetSDKVersion();
+
+    int NET_DVR_GetSDKBuildVersion();
+
+    int NET_DVR_IsSupport();
+
+    boolean NET_DVR_StartListen(String sLocalIP, short wLocalPort);
+
+    boolean NET_DVR_StopListen();
+
+    int NET_DVR_StartListen_V30(String sLocalIP, short wLocalPort, FMSGCallBack DataCallBack, Pointer pUserData);
+
+    boolean NET_DVR_StopListen_V30(int lListenHandle);
+
+    int NET_DVR_Login(String sDVRIP, short wDVRPort, String sUserName, String sPassword, NET_DVR_DEVICEINFO lpDeviceInfo);
+
+    int NET_DVR_Login_V30(String sDVRIP, short wDVRPort, String sUserName, String sPassword, NET_DVR_DEVICEINFO_V30 lpDeviceInfo);
+
+    int NET_DVR_Login_V40(NET_DVR_USER_LOGIN_INFO pLoginInfo, NET_DVR_DEVICEINFO_V40 lpDeviceInfo);
+
+    boolean NET_DVR_Logout(int lUserID);
+
+    boolean NET_DVR_Logout_V30(int lUserID);
+
+    int NET_DVR_GetLastError();
+
+    String NET_DVR_GetErrorMsg(IntByReference pErrorNo);
+
+    boolean NET_DVR_SetShowMode(int dwShowType, int colorKey);
+
+    boolean NET_DVR_GetDVRIPByResolveSvr(String sServerIP, short wServerPort, String sDVRName, short wDVRNameLen, String sDVRSerialNumber, short wDVRSerialLen, String sGetIP);
+
+    boolean NET_DVR_GetDVRIPByResolveSvr_EX(String sServerIP, short wServerPort, String sDVRName, short wDVRNameLen, String sDVRSerialNumber, short wDVRSerialLen, String sGetIP, IntByReference dwPort);
+
+    //棰勮鐩稿叧鎺ュ彛
+    int NET_DVR_RealPlay(int lUserID, NET_DVR_CLIENTINFO lpClientInfo);
+
+    int NET_DVR_RealPlay_V30(int lUserID, NET_DVR_CLIENTINFO lpClientInfo, FRealDataCallBack_V30 fRealDataCallBack_V30, Pointer pUser, boolean bBlocked);
+
+    int NET_DVR_RealPlay_V40(int lUserID, NET_DVR_PREVIEWINFO lpPreviewInfo, FRealDataCallBack_V30 fRealDataCallBack_V30, Pointer pUser);
+
+    boolean NET_DVR_StopRealPlay(int lRealHandle);
+
+    boolean NET_DVR_RigisterDrawFun(int lRealHandle, FDrawFun fDrawFun, int dwUser);
+
+    boolean NET_DVR_SetPlayerBufNumber(int lRealHandle, int dwBufNum);
+
+    boolean NET_DVR_ThrowBFrame(int lRealHandle, int dwNum);
+
+    boolean NET_DVR_SetAudioMode(int dwMode);
+
+    boolean NET_DVR_OpenSound(int lRealHandle);
+
+    boolean NET_DVR_CloseSound();
+
+    boolean NET_DVR_OpenSoundShare(int lRealHandle);
+
+    boolean NET_DVR_CloseSoundShare(int lRealHandle);
+
+    boolean NET_DVR_Volume(int lRealHandle, short wVolume);
+
+    boolean NET_DVR_SaveRealData(int lRealHandle, String sFileName);
+
+    boolean NET_DVR_SaveRealData_V30(int lRealHandle, int dwTransType, String sFileName);
+
+    boolean NET_DVR_StopSaveRealData(int lRealHandle);
+
+    boolean NET_DVR_SetRealDataCallBack(int lRealHandle, FRowDataCallBack fRealDataCallBack, int dwUser);
+
+    boolean NET_DVR_SetStandardDataCallBack(int lRealHandle, FStdDataCallBack fStdDataCallBack, int dwUser);
+
+    boolean NET_DVR_CapturePicture(int lRealHandle, String sPicFileName);//bmp
+
+    //鍔ㄦ�佺敓鎴怚甯�
+    boolean NET_DVR_MakeKeyFrame(int lUserID, int lChannel);//涓荤爜娴�
+
+    boolean NET_DVR_MakeKeyFrameSub(int lUserID, int lChannel);//瀛愮爜娴�
+
+    //浜戝彴鎺у埗鐩稿叧鎺ュ彛
+    boolean NET_DVR_PTZControl(int lRealHandle, int dwPTZCommand, int dwStop);
+
+    boolean NET_DVR_PTZControl_Other(int lUserID, int lChannel, int dwPTZCommand, int dwStop);
+
+    boolean NET_DVR_TransPTZ(int lRealHandle, String pPTZCodeBuf, int dwBufSize);
+
+    boolean NET_DVR_TransPTZ_Other(int lUserID, int lChannel, String pPTZCodeBuf, int dwBufSize);
+
+    boolean NET_DVR_PTZPreset(int lRealHandle, int dwPTZPresetCmd, int dwPresetIndex);
+
+    boolean NET_DVR_PTZPreset_Other(int lUserID, int lChannel, int dwPTZPresetCmd, int dwPresetIndex);
+
+    boolean NET_DVR_TransPTZ_EX(int lRealHandle, String pPTZCodeBuf, int dwBufSize);
+
+    boolean NET_DVR_PTZControl_EX(int lRealHandle, int dwPTZCommand, int dwStop);
+
+    boolean NET_DVR_PTZPreset_EX(int lRealHandle, int dwPTZPresetCmd, int dwPresetIndex);
+
+    boolean NET_DVR_PTZCruise(int lRealHandle, int dwPTZCruiseCmd, byte byCruiseRoute, byte byCruisePoint, short wInput);
+
+    boolean NET_DVR_PTZCruise_Other(int lUserID, int lChannel, int dwPTZCruiseCmd, byte byCruiseRoute, byte byCruisePoint, short wInput);
+
+    boolean NET_DVR_PTZCruise_EX(int lRealHandle, int dwPTZCruiseCmd, byte byCruiseRoute, byte byCruisePoint, short wInput);
+
+    boolean NET_DVR_PTZTrack(int lRealHandle, int dwPTZTrackCmd);
+
+    boolean NET_DVR_PTZTrack_Other(int lUserID, int lChannel, int dwPTZTrackCmd);
+
+    boolean NET_DVR_PTZTrack_EX(int lRealHandle, int dwPTZTrackCmd);
+
+    boolean NET_DVR_PTZControlWithSpeed(int lRealHandle, int dwPTZCommand, int dwStop, int dwSpeed);
+
+    boolean NET_DVR_PTZControlWithSpeed_Other(int lUserID, int lChannel, int dwPTZCommand, int dwStop, int dwSpeed);
+
+    boolean NET_DVR_PTZControlWithSpeed_EX(int lRealHandle, int dwPTZCommand, int dwStop, int dwSpeed);
+
+    boolean NET_DVR_GetPTZCruise(int lUserID, int lChannel, int lCruiseRoute, NET_DVR_CRUISE_RET lpCruiseRet);
+
+    boolean NET_DVR_PTZMltTrack(int lRealHandle, int dwPTZTrackCmd, int dwTrackIndex);
+
+    boolean NET_DVR_PTZMltTrack_Other(int lUserID, int lChannel, int dwPTZTrackCmd, int dwTrackIndex);
+
+    boolean NET_DVR_PTZMltTrack_EX(int lRealHandle, int dwPTZTrackCmd, int dwTrackIndex);
+
+    //鏂囦欢鏌ユ壘涓庡洖鏀�
+    int NET_DVR_FindFile(int lUserID, int lChannel, int dwFileType, NET_DVR_TIME lpStartTime, NET_DVR_TIME lpStopTime);
+
+    int NET_DVR_FindNextFile(int lFindHandle, NET_DVR_FIND_DATA lpFindData);
+
+    boolean NET_DVR_FindClose(int lFindHandle);
+
+    int NET_DVR_FindNextFile_V30(int lFindHandle, NET_DVR_FINDDATA_V30 lpFindData);
+
+    int NET_DVR_FindFile_V30(int lUserID, NET_DVR_FILECOND pFindCond);
+
+    int NET_DVR_FindFile_V40(int lUserID, NET_DVR_FILECOND_V40 pFindCond);
+
+    int NET_DVR_FindNextFile_V40(int lFindHandle, NET_DVR_FINDDATA_V40 lpFindData);
+
+    int NET_DVR_FindFile_V50(int lUserID, NET_DVR_FILECOND_V50 pFindCond);
+
+    int NET_DVR_FindNextFile_V50(int lFindHandle, NET_DVR_FINDDATA_V50 lpFindData);
+
+    boolean NET_DVR_FindClose_V30(int lFindHandle);
+
+    //鎸変簨浠舵煡鎵�
+    int NET_DVR_FindFileByEvent(int lUserID, NET_DVR_SEARCH_EVENT_PARAM lpSearchEventParam);
+
+    int NET_DVR_FindNextEvent(int lSearchHandle, NET_DVR_SEARCH_EVENT_RET lpSearchEventRet);
+
+    int NET_DVR_FindFileByEvent_V50(int lUserID, NET_DVR_SEARCH_EVENT_PARAM_V50 lpSearchEventParam);
+
+    int NET_DVR_FindNextEvent_V50(int lFindHandle, NET_DVR_SEARCH_EVENT_RET_V50 lpSearchEventRet);
+
+
+    //鍗囩骇
+    int NET_DVR_Upgrade(int lUserID, String sFileName);
+
+    int NET_DVR_GetUpgradeState(int lUpgradeHandle);
+
+    int NET_DVR_GetUpgradeProgress(int lUpgradeHandle);
+
+    boolean NET_DVR_CloseUpgradeHandle(int lUpgradeHandle);
+
+    boolean NET_DVR_SetNetworkEnvironment(int dwEnvironmentLevel);
+
+    //杩滅▼鏍煎紡鍖栫‖鐩�
+    int NET_DVR_FormatDisk(int lUserID, int lDiskNumber);
+
+    boolean NET_DVR_GetFormatProgress(int lFormatHandle, IntByReference pCurrentFormatDisk, IntByReference pCurrentDiskPos, IntByReference pFormatStatic);
+
+    boolean NET_DVR_CloseFormatHandle(int lFormatHandle);
+
+    //鎶ヨ
+    int NET_DVR_SetupAlarmChan(int lUserID);
+
+    boolean NET_DVR_CloseAlarmChan(int lAlarmHandle);
+
+    int NET_DVR_SetupAlarmChan_V30(int lUserID);
+
+    int NET_DVR_SetupAlarmChan_V41(int lUserID, NET_DVR_SETUPALARM_PARAM lpSetupParam);
+
+    int NET_DVR_SetupAlarmChan_V50(int iUserID, NET_DVR_SETUPALARM_PARAM_V50 lpSetupParam, Pointer pSub, int dwSubSize);
+
+    boolean NET_DVR_CloseAlarmChan_V30(int lAlarmHandle);
+
+    //璇煶瀵硅
+    int NET_DVR_StartVoiceCom(int lUserID, FVoiceDataCallBack fVoiceDataCallBack, int dwUser);
+
+    int NET_DVR_StartVoiceCom_V30(int lUserID, int dwVoiceChan, boolean bNeedCBNoEncData, FVoiceDataCallBack_V30 fVoiceDataCallBack, Pointer pUser);
+
+    boolean NET_DVR_SetVoiceComClientVolume(int lVoiceComHandle, short wVolume);
+
+    boolean NET_DVR_StopVoiceCom(int lVoiceComHandle);
+
+    //璇煶杞彂
+
+    boolean NET_DVR_GetCurrentAudioCompress(int lUserID, NET_DVR_COMPRESSION_AUDIO lpCompressAudio);
+    int NET_DVR_StartVoiceCom_MR(int lUserID, FVoiceDataCallBack_MR fVoiceDataCallBack, int dwUser);
+
+    int NET_DVR_StartVoiceCom_MR_V30(int lUserID, int dwVoiceChan, FVoiceDataCallback_MR_V30 fVoiceDataCallBack, Pointer pUser);
+
+    boolean NET_DVR_VoiceComSendData(int lVoiceComHandle, byte[] pSendBuf, int dwBufSize);
+
+    //璇煶骞挎挱
+    boolean NET_DVR_ClientAudioStart();
+
+    boolean NET_DVR_ClientAudioStart_V30(FVoiceDataCallBack2 fVoiceDataCallBack2, Pointer pUser);
+
+    boolean NET_DVR_ClientAudioStop();
+
+    boolean NET_DVR_AddDVR(int lUserID);
+
+    int NET_DVR_AddDVR_V30(int lUserID, int dwVoiceChan);
+
+    boolean NET_DVR_DelDVR(int lUserID);
+
+    boolean NET_DVR_DelDVR_V30(int lVoiceHandle);
+
+    ////////////////////////////////////////////////////////////
+//閫忔槑閫氶亾璁剧疆
+    int NET_DVR_SerialStart(int lUserID, int lSerialPort, FSerialDataCallBack fSerialDataCallBack, int dwUser);
+
+    public static interface FSerialDataCallBack_V40 extends Callback {
+        public void invoke(int lSerialHandle, int lCHannel, byte[] pRecvDataBuffer, int dwBufSize, Pointer pUser);
+    }
+
+    int NET_DVR_SerialStart_V40(int lUserID, Pointer lpInBuffer, int dwInBufferSize, FSerialDataCallBack_V40 fSerialDataCallBack_V40, Pointer pUser);
+
+    //485浣滀负閫忔槑閫氶亾鏃讹紝闇�瑕佹寚鏄庨�氶亾鍙凤紝鍥犱负涓嶅悓閫氶亾鍙�485鐨勮缃彲浠ヤ笉鍚�(姣斿娉㈢壒鐜�)
+    boolean NET_DVR_SerialSend(int lSerialHandle, int lChannel, byte[] pSendBuf, int dwBufSize);
+
+    boolean NET_DVR_SerialStop(int lSerialHandle);
+
+    boolean NET_DVR_SendTo232Port(int lUserID, String pSendBuf, int dwBufSize);
+
+    boolean NET_DVR_SendToSerialPort(int lUserID, int dwSerialPort, int dwSerialIndex, String pSendBuf, int dwBufSize);
+
+    //Win64銆丩inux32銆丩inux64
+    Pointer NET_DVR_InitG722Encoder(NET_DVR_AUDIOENC_INFO enc_info);
+
+    boolean NET_DVR_EncodeG722Frame(Pointer handle, NET_DVR_AUDIOENC_PROCESS_PARAM param);
+
+    void NET_DVR_ReleaseG722Encoder(Pointer pEncodeHandle);
+
+    Pointer NET_DVR_InitG722Decoder();
+
+    boolean NET_DVR_DecodeG722Frame(Pointer handle, NET_DVR_AUDIODEC_PROCESS_PARAM param);
+
+    void NET_DVR_ReleaseG722Decoder(Pointer pDecHandle);
+
+    //G711: Win64銆丩inux32銆丩inux64
+    Pointer NET_DVR_InitG711Encoder(NET_DVR_AUDIOENC_INFO enc_info);//NET_DVR_AUDIOENC_INFO//NET_DVR_AUDIOENC_INFO
+
+    boolean NET_DVR_EncodeG711Frame(Pointer handle, NET_DVR_AUDIOENC_PROCESS_PARAM p_enc_proc_param);
+
+    boolean NET_DVR_ReleaseG711Encoder(Pointer pEncodeHandle);
+
+    Pointer NET_DVR_InitG711Decoder();
+
+    boolean NET_DVR_DecodeG711Frame(Pointer handle, NET_DVR_AUDIODEC_PROCESS_PARAM p_dec_proc_param);
+
+    boolean NET_DVR_ReleaseG711Decoder(Pointer pDecHandle);
+
+    //杩滅▼鎺у埗鏈湴鏄剧ず
+    boolean NET_DVR_ClickKey(int lUserID, int lKeyIndex);
+
+    //杩滅▼鎺у埗璁惧绔墜鍔ㄥ綍鍍�
+    boolean NET_DVR_StartDVRRecord(int lUserID, int lChannel, int lRecordType);
+
+    boolean NET_DVR_StopDVRRecord(int lUserID, int lChannel);
+
+    //瑙g爜鍗�
+    boolean NET_DVR_InitDevice_Card(IntByReference pDeviceTotalChan);
+
+    boolean NET_DVR_ReleaseDevice_Card();
+
+    boolean NET_DVR_InitDDraw_Card(int hParent, int colorKey);
+
+    boolean NET_DVR_ReleaseDDraw_Card();
+
+    int NET_DVR_RealPlay_Card(int lUserID, NET_DVR_CARDINFO lpCardInfo, int lChannelNum);
+
+    boolean NET_DVR_ResetPara_Card(int lRealHandle, NET_DVR_DISPLAY_PARA lpDisplayPara);
+
+    boolean NET_DVR_RefreshSurface_Card();
+
+    boolean NET_DVR_ClearSurface_Card();
+
+    boolean NET_DVR_RestoreSurface_Card();
+
+    boolean NET_DVR_OpenSound_Card(int lRealHandle);
+
+    boolean NET_DVR_CloseSound_Card(int lRealHandle);
+
+    boolean NET_DVR_SetVolume_Card(int lRealHandle, short wVolume);
+
+    boolean NET_DVR_AudioPreview_Card(int lRealHandle, boolean bEnable);
+
+    int NET_DVR_GetCardLastError_Card();
+
+    Pointer NET_DVR_GetChanHandle_Card(int lRealHandle);
+
+    boolean NET_DVR_CapturePicture_Card(int lRealHandle, String sPicFileName);
+
+    //鑾峰彇瑙g爜鍗″簭鍒楀彿姝ゆ帴鍙f棤鏁堬紝鏀圭敤GetBoardDetail鎺ュ彛鑾峰緱(2005-12-08鏀寔)
+    boolean NET_DVR_GetSerialNum_Card(int lChannelNum, IntByReference pDeviceSerialNo);
+
+    //鏃ュ織
+    int NET_DVR_FindDVRLog(int lUserID, int lSelectMode, int dwMajorType, int dwMinorType, NET_DVR_TIME lpStartTime, NET_DVR_TIME lpStopTime);
+
+    int NET_DVR_FindNextLog(int lLogHandle, NET_DVR_LOG lpLogData);
+
+    boolean NET_DVR_FindLogClose(int lLogHandle);
+
+    int NET_DVR_FindDVRLog_V30(int lUserID, int lSelectMode, int dwMajorType, int dwMinorType, NET_DVR_TIME lpStartTime, NET_DVR_TIME lpStopTime, boolean bOnlySmart);
+
+    int NET_DVR_FindNextLog_V30(int lLogHandle, NET_DVR_LOG_V30 lpLogData);
+
+    int NET_DVR_FindDVRLog_V50(int lUserID, NET_DVR_FIND_LOG_COND pFindCond);
+
+    int NET_DVR_FindNextLog_V50(int lLogHandle, NET_DVR_LOG_V50 lpLogData);
+
+    boolean NET_DVR_FindLogClose_V30(int lLogHandle);
+
+    //鎴2004骞�8鏈�5鏃�,鍏�113涓帴鍙�
+//ATM DVR
+    int NET_DVR_FindFileByCard(int lUserID, int lChannel, int dwFileType, int nFindType, String sCardNumber, NET_DVR_TIME lpStartTime, NET_DVR_TIME lpStopTime);
+//鎴2004骞�10鏈�5鏃�,鍏�116涓帴鍙�
+
+    //2005-09-15
+    boolean NET_DVR_CaptureJPEGPicture(int lUserID, int lChannel, NET_DVR_JPEGPARA lpJpegPara, byte[] sPicFileName);
+
+    //JPEG鎶撳浘鍒板唴瀛�
+    boolean NET_DVR_CaptureJPEGPicture_NEW(int lUserID, int lChannel, NET_DVR_JPEGPARA lpJpegPara, Pointer sJpegPicBuffer, int dwPicSize, IntByReference lpSizeReturned);
+
+    //甯﹀叏灞忔祴娓╂暟鎹殑璁惧鎶撳浘
+    boolean NET_DVR_CaptureJPEGPicture_WithAppendData(int lUserID, int iChannelNum, NET_DVR_JPEGPICTURE_WITH_APPENDDATA m_strJpegWithAppendData);
+
+    //2006-02-16
+    int NET_DVR_GetRealPlayerIndex(int lRealHandle);
+
+    int NET_DVR_GetPlayBackPlayerIndex(int lPlayHandle);
+
+    //2006-08-28 704-640 缂╂斁閰嶇疆
+    boolean NET_DVR_SetScaleCFG(int lUserID, int dwScale);
+
+    boolean NET_DVR_GetScaleCFG(int lUserID, IntByReference lpOutScale);
+
+    boolean NET_DVR_SetScaleCFG_V30(int lUserID, NET_DVR_SCALECFG pScalecfg);
+
+    boolean NET_DVR_GetScaleCFG_V30(int lUserID, NET_DVR_SCALECFG pScalecfg);
+
+    //2006-08-28 ATM鏈虹鍙h缃�
+    boolean NET_DVR_SetATMPortCFG(int lUserID, short wATMPort);
+
+    boolean NET_DVR_GetATMPortCFG(int lUserID, ShortByReference LPOutATMPort);
+
+    //2006-11-10 鏀寔鏄惧崱杈呭姪杈撳嚭
+    boolean NET_DVR_InitDDrawDevice();
+
+    boolean NET_DVR_ReleaseDDrawDevice();
+
+    int NET_DVR_GetDDrawDeviceTotalNums();
+
+    boolean NET_DVR_SetDDrawDevice(int lPlayPort, int nDeviceNum);
+
+    boolean NET_DVR_PTZSelZoomIn(int lRealHandle, NET_DVR_POINT_FRAME pStruPointFrame);
+
+    boolean NET_DVR_PTZSelZoomIn_EX(int lUserID, int lChannel, NET_DVR_POINT_FRAME pStruPointFrame);
+
+    boolean NET_DVR_FocusOnePush(int lUserID, int lChannel);
+
+    //瑙g爜璁惧DS-6001D/DS-6001F
+    boolean NET_DVR_StartDecode(int lUserID, int lChannel, NET_DVR_DECODERINFO lpDecoderinfo);
+
+    boolean NET_DVR_StopDecode(int lUserID, int lChannel);
+
+    boolean NET_DVR_GetDecoderState(int lUserID, int lChannel, NET_DVR_DECODERSTATE lpDecoderState);
+
+    //2005-08-01
+    boolean NET_DVR_SetDecInfo(int lUserID, int lChannel, NET_DVR_DECCFG lpDecoderinfo);
+
+    boolean NET_DVR_GetDecInfo(int lUserID, int lChannel, NET_DVR_DECCFG lpDecoderinfo);
+
+    boolean NET_DVR_SetDecTransPort(int lUserID, NET_DVR_PORTCFG lpTransPort);
+
+    boolean NET_DVR_GetDecTransPort(int lUserID, NET_DVR_PORTCFG lpTransPort);
+
+    boolean NET_DVR_DecPlayBackCtrl(int lUserID, int lChannel, int dwControlCode, int dwInValue, IntByReference LPOutValue, NET_DVR_PLAYREMOTEFILE lpRemoteFileInfo);
+
+    boolean NET_DVR_StartDecSpecialCon(int lUserID, int lChannel, NET_DVR_DECCHANINFO lpDecChanInfo);
+
+    boolean NET_DVR_StopDecSpecialCon(int lUserID, int lChannel, NET_DVR_DECCHANINFO lpDecChanInfo);
+
+    boolean NET_DVR_DecCtrlDec(int lUserID, int lChannel, int dwControlCode);
+
+    boolean NET_DVR_DecCtrlScreen(int lUserID, int lChannel, int dwControl);
+
+    boolean NET_DVR_GetDecCurLinkStatus(int lUserID, int lChannel, NET_DVR_DECSTATUS lpDecStatus);
+
+    //澶氳矾瑙g爜鍣�
+//2007-11-30 V211鏀寔浠ヤ笅鎺ュ彛 //11
+    boolean NET_DVR_MatrixStartDynamic(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_DYNAMIC_DEC lpDynamicInfo);
+
+    boolean NET_DVR_MatrixStopDynamic(int lUserID, int dwDecChanNum);
+
+    boolean NET_DVR_MatrixGetDecChanInfo(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_DEC_CHAN_INFO lpInter);
+
+    boolean NET_DVR_MatrixSetLoopDecChanInfo(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_LOOP_DECINFO lpInter);
+
+    boolean NET_DVR_MatrixGetLoopDecChanInfo(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_LOOP_DECINFO lpInter);
+
+    boolean NET_DVR_MatrixSetLoopDecChanEnable(int lUserID, int dwDecChanNum, int dwEnable);
+
+    boolean NET_DVR_MatrixGetLoopDecChanEnable(int lUserID, int dwDecChanNum, IntByReference lpdwEnable);
+
+    boolean NET_DVR_MatrixGetLoopDecEnable(int lUserID, IntByReference lpdwEnable);
+
+    boolean NET_DVR_MatrixSetDecChanEnable(int lUserID, int dwDecChanNum, int dwEnable);
+
+    boolean NET_DVR_MatrixGetDecChanEnable(int lUserID, int dwDecChanNum, IntByReference lpdwEnable);
+
+    boolean NET_DVR_MatrixGetDecChanStatus(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_DEC_CHAN_STATUS lpInter);
+
+    boolean NET_DVR_MatrixStartDynamic_V41(int lUserID, int dwDecChanNum, Pointer lpDynamicInfo);
+
+    boolean NET_DVR_MatrixGetLoopDecChanInfo_V41(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_LOOP_DECINFO_V41 lpOuter);
+
+    boolean NET_DVR_MatrixSetLoopDecChanInfo_V41(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_LOOP_DECINFO_V41 lpInter);
+
+    int NET_DVR_MatrixStartPassiveDecode(int lUserID, int dwDecChanNum, Pointer lpPassiveMode);
+
+    boolean NET_DVR_MatrixSendData(int lPassiveHandle, Pointer pSendBuf, int dwBufSize);
+
+    boolean NET_DVR_MatrixStopPassiveDecode(int lPassiveHandle);
+
+    //2007-12-22 澧炲姞鏀寔鎺ュ彛 //18
+    boolean NET_DVR_MatrixSetTranInfo(int lUserID, NET_DVR_MATRIX_TRAN_CHAN_CONFIG lpTranInfo);
+
+    boolean NET_DVR_MatrixGetTranInfo(int lUserID, NET_DVR_MATRIX_TRAN_CHAN_CONFIG lpTranInfo);
+
+    boolean NET_DVR_MatrixSetRemotePlay(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_DEC_REMOTE_PLAY lpInter);
+
+    boolean NET_DVR_MatrixSetRemotePlayControl(int lUserID, int dwDecChanNum, int dwControlCode, int dwInValue, IntByReference LPOutValue);
+
+    boolean NET_DVR_MatrixGetRemotePlayStatus(int lUserID, int dwDecChanNum, NET_DVR_MATRIX_DEC_REMOTE_PLAY_STATUS lpOuter);
+
+    //end
+    boolean NET_DVR_RefreshPlay(int lPlayHandle);
+
+    //鎭㈠榛樿鍊�
+    boolean NET_DVR_RestoreConfig(int lUserID);
+
+    //淇濆瓨鍙傛暟
+    boolean NET_DVR_SaveConfig(int lUserID);
+
+    //閲嶅惎
+    boolean NET_DVR_RebootDVR(int lUserID);
+
+    //鍏抽棴DVR
+    boolean NET_DVR_ShutDownDVR(int lUserID);
+
+    //鍙傛暟閰嶇疆 begin
+    boolean NET_DVR_GetDeviceConfig(int lUserID, int dwCommand, int dwCount, Pointer lpInBuffer, int dwInBufferSize, Pointer lpStatusList, Pointer lpOutBuffer, int dwOutBufferSize);
+
+    boolean NET_DVR_SetDeviceConfig(int lUserID, int dwCommand, int dwCount, Pointer lpInBuffer, int dwInBufferSize, Pointer lpStatusList, Pointer lpInParamBuffer, int dwInParamBufferSize);
+
+    boolean NET_DVR_SetDeviceConfigEx(int lUserID, int dwCommand, int dwCount, Pointer lpInParam, Pointer lpOutParam);
+
+    boolean NET_DVR_GetDVRConfig(int lUserID, int dwCommand, int lChannel, Pointer lpOutBuffer, int dwOutBufferSize, IntByReference lpBytesReturned);
+
+    boolean NET_DVR_SetDVRConfig(int lUserID, int dwCommand, int lChannel, Pointer lpInBuffer, int dwInBufferSize);
+
+    boolean NET_DVR_GetSTDConfig(int lUserID, int dwCommand, NET_DVR_STD_CONFIG lpConfigParam);
+
+    boolean NET_DVR_SetSTDConfig(int lUserID, int dwCommand, NET_DVR_STD_CONFIG lpConfigParam);
+
+    boolean NET_DVR_GetDVRWorkState_V30(int lUserID, NET_DVR_WORKSTATE_V30 lpWorkState);
+
+    boolean NET_DVR_GetDVRWorkState(int lUserID, NET_DVR_WORKSTATE lpWorkState);
+
+    boolean NET_DVR_SetVideoEffect(int lUserID, int lChannel, int dwBrightValue, int dwContrastValue, int dwSaturationValue, int dwHueValue);
+
+    boolean NET_DVR_GetVideoEffect(int lUserID, int lChannel, IntByReference pBrightValue, IntByReference pContrastValue, IntByReference pSaturationValue, IntByReference pHueValue);
+
+    boolean NET_DVR_ClientGetframeformat(int lUserID, NET_DVR_FRAMEFORMAT lpFrameFormat);
+
+    boolean NET_DVR_ClientSetframeformat(int lUserID, NET_DVR_FRAMEFORMAT lpFrameFormat);
+
+    boolean NET_DVR_ClientGetframeformat_V30(int lUserID, NET_DVR_FRAMEFORMAT_V30 lpFrameFormat);
+
+    boolean NET_DVR_ClientSetframeformat_V30(int lUserID, NET_DVR_FRAMEFORMAT_V30 lpFrameFormat);
+
+    boolean NET_DVR_GetAlarmOut_V30(int lUserID, NET_DVR_ALARMOUTSTATUS_V30 lpAlarmOutState);
+
+    boolean NET_DVR_GetAlarmOut(int lUserID, NET_DVR_ALARMOUTSTATUS lpAlarmOutState);
+
+    boolean NET_DVR_SetAlarmOut(int lUserID, int lAlarmOutPort, int lAlarmOutStatic);
+
+    //瑙嗛鍙傛暟璋冭妭
+    boolean NET_DVR_ClientSetVideoEffect(int lRealHandle, int dwBrightValue, int dwContrastValue, int dwSaturationValue, int dwHueValue);
+
+    boolean NET_DVR_ClientGetVideoEffect(int lRealHandle, IntByReference pBrightValue, IntByReference pContrastValue, IntByReference pSaturationValue, IntByReference pHueValue);
+
+    //閰嶇疆鏂囦欢
+    boolean NET_DVR_GetConfigFile(int lUserID, String sFileName);
+
+    boolean NET_DVR_SetConfigFile(int lUserID, String sFileName);
+
+    boolean NET_DVR_GetConfigFile_V30(int lUserID, String sOutBuffer, int dwOutSize, IntByReference pReturnSize);
+
+    boolean NET_DVR_GetConfigFile_EX(int lUserID, String sOutBuffer, int dwOutSize);
+
+    boolean NET_DVR_SetConfigFile_EX(int lUserID, String sInBuffer, int dwInSize);
+
+    //鍚敤鏃ュ織鏂囦欢鍐欏叆鎺ュ彛
+    boolean NET_DVR_SetLogToFile(int bLogEnable, String strLogDir, boolean bAutoDel);
+
+    boolean NET_DVR_GetSDKState(NET_DVR_SDKSTATE pSDKState);
+
+    boolean NET_DVR_GetSDKAbility(NET_DVR_SDKABL pSDKAbl);
+
+    boolean NET_DVR_GetPTZProtocol(int lUserID, NET_DVR_PTZCFG pPtzcfg);
+
+    //鍓嶉潰鏉块攣瀹�
+    boolean NET_DVR_LockPanel(int lUserID);
+
+    boolean NET_DVR_UnLockPanel(int lUserID);
+
+    boolean NET_DVR_SetRtspConfig(int lUserID, int dwCommand, NET_DVR_RTSPCFG lpInBuffer, int dwInBufferSize);
+
+    boolean NET_DVR_GetRtspConfig(int lUserID, int dwCommand, NET_DVR_RTSPCFG lpOutBuffer, int dwOutBufferSize);
+
+    boolean NET_DVR_ContinuousShoot(int lUserID, NET_DVR_SNAPCFG lpInter);
+
+    boolean NET_DVR_ManualSnap(int lUserID, NET_DVR_MANUALSNAP lpInter, NET_DVR_PLATE_RESULT lpOuter);
+
+    public static interface FRemoteConfigCallBack extends Callback {
+        public void invoke(int dwType, Pointer lpBuffer, int dwBufLen, Pointer pUserData);
+    }
+
+    int NET_DVR_StartRemoteConfig(int lUserID, int dwCommand, Pointer lpInBuffer, int dwInBufferLen, FRemoteConfigCallBack cbStateCallBack, Pointer pUserData);
+
+    boolean NET_DVR_SendRemoteConfig(int lHandle, int dwDataType, Pointer pSendBuf, int dwBufSize);
+
+    int NET_DVR_GetNextRemoteConfig(int lHandle, Pointer lpOutBuff, int dwOutBuffSize);
+
+    int NET_DVR_SendWithRecvRemoteConfig(int lHandle, Pointer lpInBuff, int dwInBuffSize, Pointer lpOutBuff, int dwOutBuffSize, IntByReference dwOutDataLen);
+
+    boolean NET_DVR_StopRemoteConfig(int lHandle);
+
+    boolean NET_DVR_RemoteControl(int lUserID, int dwCommand, Pointer lpInBuffer, int dwInBufferSize);
+
+    boolean NET_DVR_STDXMLConfig(int lUserID, NET_DVR_XML_CONFIG_INPUT lpInputParam, NET_DVR_XML_CONFIG_OUTPUT lpOutputParam);
+
+    boolean NET_DVR_GetSTDAbility(int lUserID, int dwAbilityType, NET_DVR_STD_ABILITY lpAbilityParam);
+
+    boolean NET_DVR_GetDeviceAbility(int lUserID, int dwAbilityType, Pointer pInBuf, int dwInLength, Pointer pOutBuf, int dwOutLength);
+
+    boolean NET_DVR_ControlGateway(int lUserID, int lGatewayIndex, int dwStaic);
+
+    boolean NET_DVR_InquestStartCDW_V30(int lUserID, NET_DVR_INQUEST_ROOM lpInquestRoom, boolean bNotBurn);
+
+    boolean NET_DVR_InquestStopCDW_V30(int lUserID, NET_DVR_INQUEST_ROOM lpInquestRoom, boolean bCancelWrite);
+
+    boolean NET_DVR_GetArrayList(int lUserID, NET_DVR_ARRAY_LIST lpArrayList);
+
+    int NET_DVR_InquestResumeEvent(int lUserID, NET_DVR_INQUEST_RESUME_EVENT lpResumeEvent);
+
+    boolean NET_DVR_InquestGetResumeProgress(int lHandle, IntByReference pState);
+
+    boolean NET_DVR_InquestStopResume(int lHandle);
+
+    boolean NET_DVR_GetLocalIP(BYTE_TWODIM[] strIP, IntByReference pValidNum, boolean pEnableBind);
+
+    boolean NET_DVR_SetValidIP(int dwIPIndex, boolean bEnableBind);
+
+    boolean NET_DVR_AlarmHostAssistantControl(int lUserID, int dwType, int dwNumber, int dwCmdParam);
+
+    boolean NET_DVR_GetPlanList(int lUserID, int dwDevNum, NET_DVR_PLAN_LIST lpPlanList);
+
+    int NET_DVR_UploadFile_V40(int lUserID, int dwUploadType, Pointer lpInBuffer, int dwInBufferSize, String sFileName, Pointer lpOutBuffer, int dwOutBufferSize);
+
+    int NET_DVR_UploadSend(int  lUploadHandle, NET_DVR_SEND_PARAM_IN pstruSendParamIN, Pointer lpOutBuffer);
+
+    int NET_DVR_GetUploadState(int lUploadHandle, Pointer pProgress);
+
+    boolean NET_DVR_GetUploadResult(int lUploadHandle, Pointer lpOutBuffer, int dwOutBufferSize);
+
+    boolean NET_DVR_UploadClose(int lUploadHandle);
+
+    int NET_DVR_StartNetworkFlowTest(int lUserID, NET_DVR_FLOW_TEST_PARAM pFlowTest, FLOWTESTCALLBACK fFlowTestCallback, Pointer pUser);
+
+    boolean NET_DVR_StopNetworkFlowTest(int lHandle);
+
+    boolean NET_DVR_InquiryRecordTimeSpan(int lUserID, int dwChannel, NET_DVR_RECORD_TIME_SPAN_INQUIRY lpInquiry, NET_DVR_RECORD_TIME_SPAN lpResult);
+
+    boolean NET_DVR_StartGetDevState(NET_DVR_CHECK_DEV_STATE pParams);
+
+    //gps鐩稿叧缁撴瀯瀹氫箟
+    public static class TimeSegParam extends Structure {
+        //GPS鏁版嵁鏌ユ壘璧峰鏃堕棿
+        public NET_DVR_TIME struBeginTime;
+        //GPS鏁版嵁鏌ユ壘缁撴潫鏃堕棿
+        public NET_DVR_TIME struEndTime;
+        //GPS鐐规椂闂撮棿闅旓紝鍗曚綅锛氱
+        public int dwInterval;
+        //淇濈暀
+        public byte[] byRes = new byte[76];
+    }
+
+    //鎸夋椂闂寸偣鏌ヨ
+    public static class TimePointParam extends Structure {
+        //GPS鏁版嵁鏌ユ壘鏃堕棿鐐�
+        public NET_DVR_TIME struTimePoint;
+        //淇濈暀
+        public byte[] byRes = new byte[104];
+    }
+
+    public static class GpsDataParamUion extends Union {
+        //鎸夋椂闂存鏌ヨ
+        public TimeSegParam timeSeg = new TimeSegParam();
+        //鎸夋椂闂寸偣鏌ヨ
+        public TimePointParam timePoint = new TimePointParam();
+    }
+
+    //gps鏌ヨ鍙傛暟瀹氫箟
+    public static class NET_DVR_GET_GPS_DATA_PARAM extends Structure {
+        //鏌ユ壘鏂瑰紡锛�0- 鎸夋椂闂存鏌ユ壘GPS鏁版嵁锛�1- 鎸夋椂闂寸偣鏌ユ壘GPS鏁版嵁
+        public int dwCmdType;
+        public GpsDataParamUion gpsDataParam;
+
+        public void read() {
+            super.read();
+            switch (dwCmdType) {
+                case 0:
+                    gpsDataParam.setType(TimeSegParam.class);
+                    break;
+                case 1:
+                    gpsDataParam.setType(TimePointParam.class);
+                    break;
+                default:
+                    break;
+            }
+            gpsDataParam.read();
+        }
+
+        public void write() {
+            super.write();
+            gpsDataParam.write();
+        }
+    }
+
+    //gps鏁版嵁缁撴瀯瀹氫箟
+    public static class NET_DVR_GPS_INFO extends Structure {
+        public byte[] byDirection = new byte[2];
+        public byte bySvs;
+        public byte byLocateMode;
+        public short wHDOP;
+        public short wHeight;
+        public int dwLatitude;
+        public int dwLongitude;
+        public int dwVehicleSpeed;
+        public int dwVehicleDirection;
+        public byte[] byRes = new byte[8];
+    }
+
+    //gps杩斿洖鏁版嵁缁撴瀯瀹氫箟
+    public static class NET_DVR_GPS_DATA extends Structure {
+        public NET_DVR_GPS_INFO struGPSInfo;
+        public NET_DVR_TIME struTime;
+        public byte[] byRes = new byte[12];
+    }
+
+    public static interface fGPSDataCallback extends Callback {
+        public void invoke(int nHandle, int dwState, Pointer lpBuffer, int dwBufLen, Pointer pUser);
+    }
+
+    int NET_DVR_GetVehicleGpsInfo(int lUserID, NET_DVR_GET_GPS_DATA_PARAM lpGPSDataParam, fGPSDataCallback cbGPSDataCallBack, Pointer pUser);
+
+    /**
+     * 鐑垚鍍忕浉鍏�
+     */
+    //璁惧鎶撳浘闄勫姞鍏ㄥ睆娴嬫俯鏁版嵁缁撴瀯浣�
+    public static class NET_DVR_JPEGPICTURE_WITH_APPENDDATA extends Structure {
+        public int dwSize;
+        public int dwChannel;//閫氶亾鍙�
+        public int dwJpegPicLen;//Jpeg鍥剧墖闀垮害
+        public Pointer pJpegPicBuff;//Jpeg鍥剧墖鎸囬拡
+        public int dwJpegPicWidth;  // 鍥惧儚瀹藉害
+        public int dwJpegPicHeight;  //鍥惧儚楂樺害
+        public int dwP2PDataLen;//鍏ㄥ睆娴嬫俯鏁版嵁闀垮害
+        public Pointer pP2PDataBuff; //鍏ㄥ睆娴嬫俯鏁版嵁鎸囬拡
+        public byte byIsFreezedata;//鏄惁鏁版嵁鍐荤粨 0-鍚� 1-鏄�
+        public byte[] byRes = new byte[255];
+    }
+
+
+    public static class DATE_TIME extends Structure {
+        public short year;             /*APP->DSP 骞�*/
+        public short month;            /*APP->DSP 鏈�*/
+        public short dayOfWeek;        /*APP->DSP 0:鏄熸湡鏃�-6:鏄熸湡鍏�*/
+        public short day;              /*APP->DSP 鏃�*/
+        public short hour;             /*APP->DSP 灏忔椂*/
+        public short minute;           /*APP->DSP 鍒嗛挓*/
+        public short second;           /*APP->DSP 绉�*/
+        public short milliSecond;      /*APP->DSP 姣*/
+    }
+
+    //鍏ㄥ睆娴嬫俯鏁版嵁瑙f瀽
+    public static class STREAM_RT_DATA_INFO_S extends Structure {
+        public int u32RTDataType; // 1-14bit瑁告暟鎹�; 2-鍏ㄥ睆娴嬫俯缁撴灉鏁版嵁; 3-YUV鏁版嵁
+        public int u32FrmNum;
+        public int u32StdStamp; //DSP鐩稿鏃堕棿鎴�
+        public DATE_TIME stTime; //缁濆鏃堕棿鎴�
+        public int u32Width;
+        public int u32Height;
+        public int u32Len;
+        public int u32Fps;
+        public int u32Chan;
+    }
+
+    public static class STREAM_FS_SUPPLE_INFO_TEMP extends Structure {
+        public int u32TmDataMode;      /* 0涓�4瀛楄妭锛�1涓�2瀛楄妭 */
+        public int u32TmScale;         /* 娴嬫俯缂╂斁姣斾緥 */
+        public int u32TmOffset;        /* 娴嬫俯鍋忕Щ閲忥紝褰撳墠鍥哄畾涓�0 */
+        public int byIsFreezedata;      /*鏄惁鏄喕缁撴暟鎹紝1:鍐荤粨锛�0:闈炲喕缁�*/
+    }
+
+    public static class STREAM_FARME_INFO_TEMP extends Structure {
+        public int u32MagicNo;        //0x70827773  "FRMI"鐨刟scii鐮�
+        public int u32HeaderSize;     //缁撴瀯浣撻暱搴�
+        public int u32StreamType;     //鏁版嵁绫诲瀷锛� h264/h265, JPEG, Audio, MetaData, RTData: 鍙傝 STREAM_TYPE_E
+        public int u32StreamLen;      //鏁版嵁闀垮害
+        public STREAM_RT_DATA_INFO_S stRTDataInfo;
+        public STREAM_FS_SUPPLE_INFO_TEMP stFsSuppleInfo;
+        public int[] res = new int[12];
+        public int u32CrcVal; //缁撴瀯浣撴牎楠岀爜 瀵圭粨鏋勪綋鍓嶉潰鏁版嵁杩涜鏍¢獙
+    }
+
+    //娴嬫俯瑙勫垯娓╁害淇℃伅
+    public static class NET_DVR_THERMOMETRYRULE_TEMPERATURE_INFO extends Structure {
+        public float fMaxTemperature;
+        public float fMinTemperature;
+        public float fAverageTemperature;
+        public NET_VCA_POINT struHighestPoint;
+        public NET_VCA_POINT struLowestPoint;
+        public byte byIsFreezedata;
+        public byte[] byRes = new byte[15];
+    }
+
+    public static class REMOTECONFIGSTATUS_THERMOMETRY extends Structure {
+        public byte[] byStatus = new byte[4];
+        public byte[] byErrorCode = new byte[4];
+    }
+
+    public static class NET_DVR_FIREDETECTION_ALARM extends Structure {
+        public int dwSize; //缁撴瀯浣撳ぇ灏�
+        public int dwRelativeTime; //鐩稿鏃舵爣
+        public int dwAbsTime; //缁濆鏃舵爣
+        public NET_VCA_DEV_INFO struDevInfo; //鍓嶇璁惧淇℃伅
+        public short wPanPos;
+        public short wTiltPos;
+        public short wZoomPos;
+        public byte byPicTransType; //鍥剧墖鏁版嵁浼犺緭鏂瑰紡: 0-浜岃繘鍒讹紱1-url
+        public byte byRes1;
+        public int dwPicDataLen; //鎶ヨ鎶撴媿鍥剧墖闀垮害
+        public Pointer pBuffer; //鏁版嵁鎸囬拡
+        public NET_VCA_RECT struRect; //鐏偣妗�
+        public NET_VCA_POINT struPoint; //鐏偣妗嗗唴鏈�楂樻俯搴︾偣鍧愭爣
+        public short wFireMaxTemperature; //鐏偣鏈�楂樻俯搴300鈩儈4000鈩僝
+        public short wTargetDistance; //鐩爣璺濈[100m ~ 10000m]
+        public byte byStrategyType; //绛栫暐绫诲瀷锛�0~浠绘剰鎶ヨ锛�1~鍗忓悓鎶ヨ锛�2~澶氱郴缁熸姤璀︼紝3~鎸囧畾鐏偣鎶ヨ锛�4~鎸囧畾鐑熼浘鎶ヨ
+        public byte byAlarmSubType; //鎶ヨ瀛愮被鍨嬨��0~鐏偣妫�娴嬫姤璀︼紝1~鐑熼浘妫�娴嬫姤璀︼紝2~鐑熺伀鎶ヨ
+        /*鏄惁鍚敤PTZ鍧愭爣鎵╁睍锛�
+        0~涓嶅惎鐢紝PTZ鍧愭爣鍊间互wPanPos銆亀TiltPos銆亀ZoomPos涓哄噯銆�
+        1~鍚敤锛孭TZ鍧愭爣鍊间互struPtzPosEx涓哄噯銆備絾鏄柊鑰丳TZ閮介渶杩斿洖銆俿truPtzPosEx鐨勫�奸渶杞寲涓簑PanPos銆亀TiltPos銆亀ZoomPos鍊笺��
+        */
+        public byte byPTZPosExEnable;
+        public byte byRes2;
+        public NET_PTZ_INFO struPtzPosEx; // ptz鍧愭爣鎵╁睍(鏀寔楂樼簿搴TZ鍊硷紝绮剧‘鍒板皬鏁扮偣鍚庝笁浣�)
+        public int dwVisiblePicLen; // 鍙鍏夊浘鐗囬暱搴�
+        public Pointer pVisiblePicBuf; // 鍙鍏夊浘鐗囨暟鎹寚閽�
+        // pSmokeBuf鍙傛暟褰揵yAlarmSubType鎶ヨ瀛愮被鍨嬩负1锛堢儫闆炬娴嬫姤璀︼級銆�2锛堢儫鐏姤璀︼級鏃剁敓鏁堛��
+        public Pointer pSmokeBuf; //鐑熼浘妫�娴嬫姤璀︽暟鎹寚閽堬紝鎸囧悜涓�涓狽ET_DVR_SMOKEDETECTION_ALARM缁撴瀯浣�
+        public short wDevInfoIvmsChannelEx; //涓嶯ET_VCA_DEV_INFO閲岀殑byIvmsChannel鍚箟鐩稿悓锛岃兘琛ㄧず鏇村ぇ鐨勫�笺�傝�佸鎴风鐢╞yIvmsChannel鑳界户缁吋瀹癸紝浣嗘槸鏈�澶у埌255銆傛柊瀹㈡埛绔増鏈浣跨敤wDevInfoIvmsChannelEx銆�
+        public byte byRes3;
+        public byte byFireScanWaitMode; //鐏偣鎵弿绛夊緟妯″紡 0-鑷姩   1-鎵嬪姩
+        public int dwVisibleChannel; //鍙鍏夐�氶亾閫氶亾鍙�
+        public byte byTimeDiffFlag; //鏃跺樊瀛楁鏄惁鏈夋晥  0-鏃跺樊鏃犳晥锛� 1-鏃跺樊鏈夋晥
+        public char cTimeDifferenceH; //涓嶶TC鐨勬椂宸紙灏忔椂锛夛紝-12 ... +14锛� +琛ㄧず涓滃尯,锛宐yTimeDiffFlag涓�1鏃舵湁鏁�
+        public char cTimeDifferenceM; //涓嶶TC鐨勬椂宸紙鍒嗛挓锛夛紝-30, 30, 45锛� +琛ㄧず涓滃尯锛宐yTimeDiffFlag涓�1鏃舵湁鏁�
+        public byte[] byRes = new byte[49];
+    }
+
+    //妯″潡鏈嶅姟閰嶇疆缁撴瀯浣�
+    public static class NET_DVR_DEVSERVER_CFG extends Structure {
+        public int dwSize; //缁撴瀯浣撳ぇ灏�
+        public byte byIrLampServer; //绾㈠鐏缃細0- 绂佺敤锛�1- 鍚敤
+        public byte bytelnetServer; //telnet璁剧疆锛�0- 绂佺敤锛�1- 鍚敤
+        public byte byABFServer;    //ABF璁剧疆锛�0- 鍚敤锛�1- 绂佺敤锛岃娉ㄦ剰姝ゅ鍙傛暟鍙栧��0銆�1鍜屽叾浠栧弬鏁板彇鍊煎惈涔変笉鍚�
+        public byte byEnableLEDStatus; //鐘舵�佹寚绀虹伅鎺у埗锛�0- 绂佺敤锛�1- 鍚敤
+        public byte byEnableAutoDefog; //鑷姩闄ら浘鎺у埗锛�0- 鍚敤锛�1- 绂佺敤锛岃娉ㄦ剰姝ゅ鍙傛暟鍙栧��0銆�1鍜屽叾浠栧弬鏁板彇鍊煎惈涔変笉鍚�
+        public byte byEnableSupplementLight; //琛ュ厜鐏帶鍒讹細0- 鍚敤锛�1- 绂佺敤锛岃娉ㄦ剰姝ゅ鍙傛暟鍙栧��0銆�1鍜屽叾浠栧弬鏁板彇鍊煎惈涔変笉鍚�
+        public byte byEnableDeicing; //闄ゅ啺鍔熻兘锛�0- 鍏抽棴锛�1- 寮�鍚�
+        public byte byEnableVisibleMovementPower; //鍙鍏夋満鑺數婧愬紑鍏�(浣庡姛鑰楁ā寮忎笅鏈夋晥)锛�0- 鍏抽棴锛�1- 寮�鍚�
+        public byte byEnableThermalMovementPower; //鐑垚鍍忔満鑺數婧愬紑鍏�(浣庡姛鑰楁ā寮忎笅鏈夋晥)锛�0- 鍏抽棴锛�1- 寮�鍚�
+        public byte byEnablePtzPower; //浜戝彴鐢垫簮寮�鍏�(浣庡姛鑰楁ā寮忎笅鏈夋晥)锛�0- 鍏抽棴锛�1- 寮�鍚�
+        public byte byPowerSavingControl; //浣庡姛鑰楃瓥鐣ワ細0- 淇濈暀锛�1- 浼戠湢妯″紡锛�2-浣庡姛鑰楁ā寮�(浣庡姛鑰楁ā寮忎笅锛屽彲瑙佸厜鏈鸿姱鐢垫簮銆佺儹鎴愬儚鏈鸿姱鐢垫簮銆佷簯鍙扮數婧愭帶鍒剁敓鏁堬級
+        public byte byCaptureWithSupplimentLightEnabled; //鍚敤鎶撴媿琛ュ厜浣胯兘 0-鍏抽棴锛�1-寮�鍚�
+        public byte[] byRes = new byte[244]; //淇濈暀锛岀疆涓�0
+    }
+
+    public static final int MAX_UPLOADFILE_URL_LEN = 240;
+    public static final int IMPORT_DATA_TO_FACELIB = 39; //瀵煎叆浜鸿劯鏁版嵁锛堜汉鑴稿浘鐗�+鍥剧墖闄勪欢淇℃伅 鍒拌澶囦汉鑴稿簱锛�
+
+    public static class NET_DVR_UPLOAD_FILE_RET extends Structure {
+
+        public byte[] sUrl = new byte[MAX_UPLOADFILE_URL_LEN];   //url
+        public byte[] byRes = new byte[260];
+    }
+
+    public static class NET_DVR_FLOW_TEST_PARAM extends Structure {
+        public int dwSize;              //缁撴瀯澶у皬
+        public int lCardIndex;         //缃戝崱绱㈠紩
+        public int dwInterval;         //璁惧涓婁紶娴侀噺鏃堕棿闂撮殧, 鍗曚綅:100ms
+        public byte[] byRes = new byte[8];           //淇濈暀瀛楄妭
+    }
+
+    public static class NET_DVR_RECORD_TIME_SPAN_INQUIRY extends Structure {
+        public int dwSize;    //缁撴瀯浣撳ぇ灏�
+        public byte byType;     //0 姝e父闊宠棰戝綍鍍�, 1鍥剧墖閫氶亾褰曞儚, 2ANR閫氶亾褰曞儚, 3鎶藉抚閫氶亾褰曞儚
+        public byte[] byRes = new byte[63];
+    }
+
+    public static class NET_DVR_RECORD_TIME_SPAN extends Structure {
+        public int dwSize;        //缁撴瀯浣撳ぇ灏�
+        public NET_DVR_TIME strBeginTime;  //寮�濮嬫椂闂�
+        public NET_DVR_TIME strEndTime;    //缁撴潫鏃堕棿
+        public byte byType;        //0 姝e父闊宠棰戝綍鍍�, 1鍥剧墖閫氶亾褰曞儚, 2ANR閫氶亾褰曞儚, 3鎶藉抚閫氶亾褰曞儚
+        public byte[] byRes = new byte[35];    //淇濈暀
+    }
+
+    /*
+     * 鏈堝巻褰曞儚鍒嗗竷鏌ヨ鏉′欢缁撴瀯浣�
+     */
+    public static class NET_DVR_MRD_SEARCH_PARAM extends Structure {
+        public int dwSize;            // 缁撴瀯浣撳ぇ灏�
+        public NET_DVR_STREAM_INFO struStreamInfo = new NET_DVR_STREAM_INFO();    // 甯冮槻鐐�
+        public short wYear;              // 骞�
+        public byte byMonth;            // 鏈�
+        public byte byDrawFrame;    // 0-涓嶆娊甯� 1-鎶藉抚
+        public byte byStreamType;   //0-涓荤爜娴� 1-瀛愮爜娴�
+        public byte byLocalOrUTC;    //0-璁惧鏈湴鏃跺尯  1-UTC
+        public byte[] byRes = new byte[30];
+    }
+
+    /*
+     * 鏈堝巻褰曞儚鍒嗗竷鏌ヨ缁撴灉缁撴瀯浣�
+     */
+    public static class NET_DVR_MRD_SEARCH_RESULT extends Structure {
+
+        public int dwSize;   // 缁撴瀯浣撳ぇ灏�
+        public byte[] byRecordDistribution = new byte[32];   // 褰曞儚鍒嗗竷锛宐yRecordDistribution[0]=1琛ㄧず1鏃ュ瓨鍦ㄥ綍鍍忥紝byRecordDistribution[0]=0琛ㄧず娌℃湁褰曞儚锛宐yRecordDistribution[1]琛ㄧず2鏃ワ紝浠ユ绫绘帹
+        public byte[] byHasEventRecode = new byte[31];      //浜嬩欢褰曞儚 0-鏃犱簨浠跺綍鍍忥紝1-鏈変簨浠跺綍鍍�
+        public byte byRes;     //淇濈暀
+    }
+
+    public static final int NET_DVR_GET_GISINFO = 3711;
+    //GIS淇℃伅
+
+    public static class NET_DVR_GIS_INFO extends Structure {
+        public int dwSize;
+        public float fAzimuth;
+        public float fHorizontalValue;
+        public float fVerticalValue;
+        public float fVisibleRadius;
+        public float fMaxViewRadius;
+        public byte byLatitudeType;
+        public byte byLongitudeType;
+        public byte byPTZPosExEnable;
+        public byte byRes1;
+        public NET_DVR_LLI_PARAM struLatitude = new NET_DVR_LLI_PARAM();
+        public NET_DVR_LLI_PARAM struLongitude = new NET_DVR_LLI_PARAM();
+        public NET_DVR_PTZPOS_PARAM struPtzPos = new NET_DVR_PTZPOS_PARAM();
+        public NET_DVR_SENSOR_PARAM struSensorParam = new NET_DVR_SENSOR_PARAM();
+        public NET_PTZ_INFO struPtzPosEx = new NET_PTZ_INFO();
+        public float fMinHorizontalValue;
+        public float fMaxHorizontalValue;
+        public float fMinVerticalValue;
+        public float fMaxVerticalValue;
+        public byte[] byRes = new byte[220];
+    }
+
+    //GBT28181鍗忚鐨勮澶囩紪鐮侀�氶亾閰嶇疆
+    public static class NET_DVR_GBT28181_CHANINFO_CFG extends Structure {
+        public int dwSize;
+        public byte[] szVideoChannelNumID = new byte[64];//璁惧瑙嗛閫氶亾缂栫爜ID锛�64瀛楄妭瀛楃涓诧紝浠呴檺鏁板瓧
+        public byte[] byRes = new byte[256];
+    }
+
+    // 宸¤埅璺緞閰嶇疆鏉′欢缁撴瀯浣�
+    public static class NET_DVR_CRUISEPOINT_COND extends Structure {
+        public int dwSize;
+        public int dwChan;
+        public short wRouteNo;
+        public byte[] byRes = new byte[30];
+    }
+
+    // 宸¤埅璺緞閰嶇疆缁撴瀯浣�
+    public static class NET_DVR_CRUISEPOINT_V40 extends Structure {
+        public int dwSize;
+        public NET_DVR_CRUISEPOINT_PARAM[] struCruisePoint = (NET_DVR_CRUISEPOINT_PARAM[]) new NET_DVR_CRUISEPOINT_PARAM().toArray(128);
+        public byte[] byRes = new byte[64];
+    }
+
+    // 宸¤埅璺緞閰嶇疆缁撴瀯浣�
+    public static class NET_DVR_CRUISEPOINT_V50 extends Structure {
+        public int dwSize;
+        public NET_DVR_CRUISEPOINT_PARAM[] struCruisePoint = (NET_DVR_CRUISEPOINT_PARAM[]) new NET_DVR_CRUISEPOINT_PARAM().toArray(256);
+        public byte[] byRes = new byte[64];
+    }
+
+    // 宸¤埅鐐瑰弬鏁扮粨鏋勪綋
+    public static class NET_DVR_CRUISEPOINT_PARAM extends Structure {
+        public short wPresetNo;
+        public short wDwell;
+        public byte bySpeed;
+        public byte bySupport256PresetNo;
+        public byte[] byRes = new byte[6];
+    }
+
+    //鍥犱负Java娌℃湁浜岀淮鏁扮粍锛孊YTE_TWODIM鏄嚜瀹氫箟鐨勭粨鏋勪綋
+    public static class BYTE_TWODIM extends Structure {
+        public byte[] strIP = new byte[16];
+    }
+
+    //浜戝彴閿佸畾閰嶇疆缁撴瀯浣�
+    public static class NET_DVR_PTZ_LOCKCFG extends Structure {
+        public int dwSize;//缁撴瀯浣撳ぇ灏�
+        public byte  byWorkMode ;//浜戝彴閿佸畾鎺у埗锛�0- 瑙i攣锛�1- 閿佸畾
+        public byte[] byRes = new byte[123];
+    }
+}
+
+
+
+//鎾斁搴撳嚱鏁板0鏄�,PlayCtrl.dll
+interface PlayCtrl extends Library {
+    public static final int STREAME_REALTIME = 0;
+    public static final int STREAME_FILE = 1;
+
+    boolean PlayM4_GetPort(IntByReference nPort);
+
+    boolean PlayM4_OpenStream(int nPort, ByteByReference pFileHeadBuf, int nSize, int nBufPoolSize);
+
+    boolean PlayM4_InputData(int nPort, ByteByReference pBuf, int nSize);
+
+    boolean PlayM4_CloseStream(int nPort);
+
+    boolean PlayM4_SetStreamOpenMode(int nPort, int nMode);
+
+    boolean PlayM4_Play(int nPort, HWND hWnd);
+
+    boolean PlayM4_Stop(int nPort);
+
+    boolean PlayM4_SetSecretKey(int nPort, int lKeyType, String pSecretKey, int lKeyLen);
+
+    boolean PlayM4_GetPictureSize(int nPort, IntByReference pWidth, IntByReference pHeight);
+
+    boolean PlayM4_GetJPEG(int nPort, Pointer pBitmap, int nBufSize, IntByReference pBmpSize);
+
+    int PlayM4_GetLastError(int nPort);
+
+    boolean PlayM4_SetDecCallBackExMend(int nPort, DecCallBack decCBFun, Pointer pDest, int nDestSize, int nUser);
+
+    public static interface DecCallBack extends Callback {
+        void invoke(int nPort, Pointer pBuf, int nSize, FRAME_INFO pFrameInfo, int nReserved1, int nReserved2);
+    }
+
+    public class FRAME_INFO extends Structure {
+        public int nWidth;                   /* 鐢婚潰瀹斤紝鍗曚綅鍍忕礌銆傚鏋滄槸闊抽鏁版嵁锛屽垯涓洪煶棰戝0閬撴暟 */
+        public int nHeight;                     /* 鐢婚潰楂橈紝鍗曚綅鍍忕礌銆傚鏋滄槸闊抽鏁版嵁锛屽垯涓烘牱浣嶇巼 */
+        public int nStamp;                           /* 鏃舵爣淇℃伅锛屽崟浣嶆绉� */
+        public int nType;                            /* 鏁版嵁绫诲瀷锛孴_AUDIO16, T_RGB32, T_YV12 */
+        public int nFrameRate;                /* 缂栫爜鏃朵骇鐢熺殑鍥惧儚甯х巼锛屽鏋滄槸闊抽鏁版嵁鍒欎负閲囨牱鐜� */
+        public int dwFrameNum;                      /* 甯у彿 */
+    }
+
+}
+
+//windows gdi鎺ュ彛,gdi32.dll in system32 folder, 鍦ㄨ缃伄鎸″尯鍩�,绉诲姩渚︽祴鍖哄煙绛夋儏鍐典笅浣跨敤
+interface GDI32 extends W32API {
+    GDI32 INSTANCE = (GDI32) Native.loadLibrary("gdi32", GDI32.class, DEFAULT_OPTIONS);
+
+    public static final int TRANSPARENT = 1;
+
+    int SetBkMode(HDC hdc, int i);
+
+    HANDLE CreateSolidBrush(int icolor);
+}
+
+//windows user32鎺ュ彛,user32.dll in system32 folder, 鍦ㄨ缃伄鎸″尯鍩�,绉诲姩渚︽祴鍖哄煙绛夋儏鍐典笅浣跨敤
+interface USER32 extends W32API {
+
+    USER32 INSTANCE = (USER32) Native.loadLibrary("user32", USER32.class, DEFAULT_OPTIONS);
+
+    public static final int BF_LEFT = 0x0001;
+    public static final int BF_TOP = 0x0002;
+    public static final int BF_RIGHT = 0x0004;
+    public static final int BF_BOTTOM = 0x0008;
+    public static final int BDR_SUNKENOUTER = 0x0002;
+    public static final int BF_RECT = (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM);
+
+    boolean DrawEdge(HDC hdc, com.sun.jna.examples.win32.GDI32.RECT qrc, int edge, int grfFlags);
+
+    int FillRect(HDC hDC, com.sun.jna.examples.win32.GDI32.RECT lprc, HANDLE hbr);
+}
+
diff --git a/src/main/java/com/whyc/hik/SdkSysCfg.java b/src/main/java/com/whyc/hik/SdkSysCfg.java
new file mode 100644
index 0000000..8a91932
--- /dev/null
+++ b/src/main/java/com/whyc/hik/SdkSysCfg.java
@@ -0,0 +1,257 @@
+package com.whyc.hik;
+
+import com.sun.jna.NativeLong;
+import com.sun.jna.Pointer;
+import com.sun.jna.ptr.IntByReference;
+import com.whyc.hik.NetSDKDemo.HCNetSDK;
+
+import java.io.UnsupportedEncodingException;
+
+import static com.whyc.hik.TestDemo.hCNetSDK;
+
+/**
+ * @Author: jiangxin14
+ * @Date: 2024-08-24  15:59
+ */
+public class SdkSysCfg {
+
+    public static flowTestcallback flowcallback; //缃戠粶娴侀噺鐩戞祴鍥炶皟鍑芥暟
+    public static dev_work_state_cb workStateCb; //璁惧鐘舵�佸洖璋�
+
+    /**
+     * PC鐢佃剳鏈夊缃戝崱锛岀粦瀹氱綉鍗★紝鎸囧畾浣跨敤鐨勫疄闄呯綉鍗�
+     */
+    public static void getandBindIP() {
+        HCNetSDK.BYTE_TWODIM[] struByteArray = new HCNetSDK.BYTE_TWODIM[16];
+        IntByReference pInt = new IntByReference(0);
+        boolean pEnableBind = false;
+        if (!hCNetSDK.NET_DVR_GetLocalIP(struByteArray, pInt, pEnableBind)) {
+            System.out.println("NET_DVR_GetLocalIP澶辫触锛岄敊璇彿:" + hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            int inum = pInt.getValue();
+            for (int i = 0; i < inum; i++) {
+                System.out.println("缃戝崱搴忓彿:" + i + ", 缃戝崱IP: " + new String(struByteArray[i].strIP).trim());
+                //閫夋嫨闇�瑕佺粦瀹氱殑缃戝崱
+                if ("10.9.137.101".equals(new String(struByteArray[i].strIP))) {
+                    hCNetSDK.NET_DVR_SetValidIP(i, true);
+                }
+            }
+        }
+    }
+
+    /**
+     * 缁戝畾PC绔闂澶囩殑绔彛璁块棶
+     */
+    //绔彛缁戝畾
+    public void bindPort() {
+        HCNetSDK.NET_DVR_LOCAL_TCP_PORT_BIND_CFG strLocalTcpBind = new HCNetSDK.NET_DVR_LOCAL_TCP_PORT_BIND_CFG();
+        strLocalTcpBind.read();
+        strLocalTcpBind.wLocalBindTcpMinPort = 30000;
+        strLocalTcpBind.wLocalBindTcpMaxPort = 30200;
+        strLocalTcpBind.write();
+        Pointer pStrLocalTcoBind = strLocalTcpBind.getPointer();
+        if (hCNetSDK.NET_DVR_SetSDKLocalCfg(0, pStrLocalTcoBind) == false) {
+            System.out.println("缁戝畾澶辫触锛岄敊璇爜涓�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        System.out.println("缁戝畾鎴愬姛");
+    }
+
+    /**
+     * 鑾峰彇涓庤缃澶囨椂闂村弬鏁�
+     * @param iUserID
+     */
+    public static void GetandSetDevTime(int iUserID) {
+        HCNetSDK.NET_DVR_TIME m_Time = new HCNetSDK.NET_DVR_TIME();
+        Pointer pTime = m_Time.getPointer();
+        IntByReference pInt = new IntByReference(0);
+        boolean b_GetTime = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_TIMECFG, 0xffffffff, pTime, m_Time.size(), pInt);
+        if (b_GetTime == false) {
+            System.out.println("鑾峰彇鏃堕棿鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        m_Time.read();
+        System.out.println("骞达細" + m_Time.dwYear + "鏈�:" + m_Time.dwMonth + "鏃�:" + m_Time.dwDay + "鏃讹細" + m_Time.dwHour +
+                "鍒嗭細" + m_Time.dwMinute + "绉掞細" + m_Time.dwSecond);
+
+        //鐩存帴鎶婅幏鍙栧埌鐨勫弬鏁拌缃洖鍘伙紝濡傛灉鏈夐渶瑕佸彲浠ヨ嚜琛屼慨鏀瑰叾涓渶瑕佷慨鏀圭殑瀛楁
+        boolean b_SetPicCfg = hCNetSDK.NET_DVR_SetDVRConfig(iUserID, HCNetSDK.NET_DVR_SET_TIMECFG,0xffffffff,
+                m_Time.getPointer(), m_Time.size());
+        if (b_SetPicCfg == false) {
+            System.out.println("璁剧疆鏃堕棿澶辫触锛岄敊璇爜锛�" +  hCNetSDK.NET_DVR_GetLastError());
+        }
+        else {
+            System.out.println("璁剧疆鏃堕棿鍙傛暟鎴愬姛");
+
+        }
+    }
+
+    /**
+     * 鑾峰彇鐢ㄦ埛鍙傛暟
+     * @param iUserID
+     * @throws UnsupportedEncodingException
+     */
+    public static void getUsrCfg(int iUserID) throws UnsupportedEncodingException {
+        HCNetSDK.NET_DVR_USER_V30  usercfg= new HCNetSDK.NET_DVR_USER_V30();
+        usercfg.dwSize = usercfg.size();
+        Pointer pUserCfg = usercfg.getPointer();
+        NativeLong lChannel = new NativeLong(1);
+        IntByReference pInt = new IntByReference(0);
+        boolean b_GetUserCfg = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_USERCFG_V30, lChannel.intValue(),
+                pUserCfg, usercfg.size(), pInt);
+        if (b_GetUserCfg == false) {
+            System.out.println("鑾峰彇鐢ㄦ埛鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        usercfg.read();
+        //System.out.println("鐢ㄦ埛鍚嶇О锛�" + usercfg.struUser[1].sUserName);
+        System.out.println("name锛� " + new String(usercfg.struUser[0].sUserName,"GBK").trim());
+        System.out.println("password锛� " + new String(usercfg.struUser[0].sPassword,"GBK").trim());
+
+    }
+
+    static class flowTestcallback implements HCNetSDK.FLOWTESTCALLBACK {
+        public void invoke(int lFlowHandle, HCNetSDK.NET_DVR_FLOW_INFO pFlowInfo,
+                           Pointer pUser) {
+            pFlowInfo.read();
+            System.out.println("鍙戦�佺殑娴侀噺鏁版嵁锛�" + pFlowInfo.dwSendFlowSize);
+            System.out.println("鎺ユ敹鐨勬祦閲忔暟鎹細" + pFlowInfo.dwRecvFlowSize);
+        }
+    }
+
+    /**
+     * 璁惧缃戠粶娴侀噺鐩戞祴
+     * @param iUserID
+     * @throws InterruptedException
+     */
+    public void netFlowDec(int iUserID) throws InterruptedException {
+        HCNetSDK.NET_DVR_FLOW_TEST_PARAM struFlowPam = new HCNetSDK.NET_DVR_FLOW_TEST_PARAM();
+        struFlowPam.read();
+        struFlowPam.dwSize = struFlowPam.size();
+        struFlowPam.lCardIndex = 0;
+        struFlowPam.dwInterval = 1;
+        struFlowPam.write();
+        Pointer pUser = null;
+        if (flowcallback == null) {
+            flowcallback = new flowTestcallback();
+        }
+        int FlowHandle = hCNetSDK.NET_DVR_StartNetworkFlowTest(iUserID, struFlowPam, flowcallback, pUser);
+        if (FlowHandle <= -1) {
+            System.out.println("寮�鍚祦閲忔娴嬪け璐ワ紝閿欒鐮侊細" + hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            System.out.println("寮�鍚祦閲忔娴嬫垚鍔�");
+        }
+        Thread.sleep(20000);
+        hCNetSDK.NET_DVR_StopNetworkFlowTest(FlowHandle);
+    }
+
+    /**
+     * 鐞冩満GIS淇℃伅鑾峰彇锛岄渶瑕佺壒瀹氳缃敮鎸�
+     * @param iUserID
+     */
+
+    public static void GetGisInfo(int iUserID) {
+        HCNetSDK.NET_DVR_STD_CONFIG struStdCfg = new HCNetSDK.NET_DVR_STD_CONFIG();
+        HCNetSDK.NET_DVR_GIS_INFO struGisInfo = new HCNetSDK.NET_DVR_GIS_INFO();
+        struStdCfg.read();
+        IntByReference lchannel = new IntByReference(1);
+        struStdCfg.lpCondBuffer = lchannel.getPointer();
+        struStdCfg.dwCondSize = 4;
+        struStdCfg.lpOutBuffer = struGisInfo.getPointer();
+        struStdCfg.dwOutSize = struGisInfo.size();
+        struStdCfg.write();//璁剧疆鍓嶄箣鍓嶈write()
+        boolean getSTDConfig = hCNetSDK.NET_DVR_GetSTDConfig(iUserID, HCNetSDK.NET_DVR_GET_GISINFO, struStdCfg);
+        if (getSTDConfig == false) {
+            System.out.println("鏌ヨGIS淇℃伅澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            struGisInfo.read();
+            System.out.println("鏌ヨ鎴愬姛\n");
+            System.out.println(struGisInfo.struPtzPos.fPanPos + "\n");
+            System.out.println(struGisInfo.struPtzPos.fTiltPos + "\n");
+            System.out.println(struGisInfo.struPtzPos.fZoomPos + "\n");
+            System.out.println(struGisInfo.fHorizontalValue);
+            System.out.println(struGisInfo.fVerticalValue);
+        }
+
+    }
+
+    static class dev_work_state_cb implements HCNetSDK.DEV_WORK_STATE_CB {
+        public boolean invoke(Pointer pUserdata, int iUserID, HCNetSDK.NET_DVR_WORKSTATE_V40 lpWorkState) {
+
+            lpWorkState.read();
+            System.out.println("璁惧鐘舵��:" + lpWorkState.dwDeviceStatic);
+            for (int i = 0; i < HCNetSDK.MAX_CHANNUM_V40; i++) {
+                int channel = i + 1;
+                System.out.println("绗�" + channel + "閫氶亾鏄惁鍦ㄥ綍鍍忥細" + lpWorkState.struChanStatic[i].byRecordStatic);
+            }
+            return true;
+        }
+
+    }
+
+    //瀹氭椂宸℃璁惧
+    public static void regularInspection() {
+        HCNetSDK.NET_DVR_CHECK_DEV_STATE struCheckStatus = new HCNetSDK.NET_DVR_CHECK_DEV_STATE();
+        struCheckStatus.read();
+        struCheckStatus.dwTimeout = 1000; //瀹氭椂妫�娴嬭澶囧伐浣滅姸鎬侊紝鍗曚綅锛歮s锛�0琛ㄧず浣跨敤榛樿鍊�(30000)锛屾渶灏忓�间负1000
+        if (workStateCb == null) {
+            workStateCb = new dev_work_state_cb();
+        }
+        struCheckStatus.fnStateCB = workStateCb;
+        struCheckStatus.write();
+        boolean b_state = hCNetSDK.NET_DVR_StartGetDevState(struCheckStatus);
+        if (!b_state) {
+            System.out.println("瀹氭椂宸℃璁惧鐘舵�佸け璐ワ細" + hCNetSDK.NET_DVR_GetLastError());
+        }
+    }
+
+    //鑾峰彇GB28181鍙傛暟
+    public static void getGB28181Info(int iUserID) {
+
+        HCNetSDK.NET_DVR_STREAM_INFO streamInfo = new HCNetSDK.NET_DVR_STREAM_INFO();
+        streamInfo.read();
+        streamInfo.dwSize = streamInfo.size(); //璁剧疆缁撴瀯浣撳ぇ灏�
+        streamInfo.dwChannel = 1; //璁剧疆閫氶亾
+        streamInfo.write();
+        Pointer lpInBuffer = streamInfo.getPointer();
+        HCNetSDK.NET_DVR_GBT28181_CHANINFO_CFG gbt28181ChaninfoCfg = new HCNetSDK.NET_DVR_GBT28181_CHANINFO_CFG();
+        gbt28181ChaninfoCfg.read();
+        gbt28181ChaninfoCfg.dwSize = gbt28181ChaninfoCfg.size();
+        gbt28181ChaninfoCfg.write();
+        Pointer lpOutBuffer = gbt28181ChaninfoCfg.getPointer();
+        IntByReference lpBytesReturned = new IntByReference(0);
+        //3251瀵瑰簲瀹冪殑瀹忓畾涔�
+        boolean bRet = hCNetSDK.NET_DVR_GetDeviceConfig(iUserID, 3251, 1, lpInBuffer,
+                streamInfo.size(), lpBytesReturned.getPointer(), lpOutBuffer, gbt28181ChaninfoCfg.size());
+        gbt28181ChaninfoCfg.read();
+
+        if (bRet == false) {
+            System.out.println("鑾峰彇澶辫触,閿欒鐮侊細" + hCNetSDK.NET_DVR_GetLastError());
+            return;
+        }
+    }
+
+    /**
+     * 鑾峰彇鐮佹祦鍔犲瘑淇℃伅
+     * @param iUserID
+     */
+    public static void GetAesKeyInfo(int iUserID) {
+        HCNetSDK.NET_DVR_AES_KEY_INFO net_dvr_aes_key_info = new HCNetSDK.NET_DVR_AES_KEY_INFO();
+        net_dvr_aes_key_info.read();
+        Pointer pnet_dvr_aes_key_info = net_dvr_aes_key_info.getPointer();
+        IntByReference pInt = new IntByReference(0);
+        boolean b_GetCfg = hCNetSDK.NET_DVR_GetDVRConfig(iUserID, HCNetSDK.NET_DVR_GET_AES_KEY,
+                0Xffffffff, pnet_dvr_aes_key_info, net_dvr_aes_key_info.size(), pInt);
+        if (b_GetCfg == false) {
+            System.out.println("鑾峰彇鐮佹祦鍔犲瘑澶辫触  閿欒鐮侊細" + hCNetSDK.NET_DVR_GetLastError());
+        }
+        System.out.println("鑾峰彇鐮佹祦鍔犲瘑淇℃伅鎴愬姛");
+
+
+    }
+
+
+
+
+
+
+
+
+}
diff --git a/src/main/java/com/whyc/hik/TestDemo.java b/src/main/java/com/whyc/hik/TestDemo.java
new file mode 100644
index 0000000..7081ebb
--- /dev/null
+++ b/src/main/java/com/whyc/hik/TestDemo.java
@@ -0,0 +1,455 @@
+package com.whyc.hik;
+
+import com.sun.jna.Native;
+import com.sun.jna.Pointer;
+import com.whyc.dto.Point;
+import com.whyc.dto.TempPoint;
+import com.whyc.hik.Commom.osSelect;
+import com.whyc.hik.NetSDKDemo.HCNetSDK;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+
+/**
+ * @create 2020-07-27-10:42
+ */
+public class TestDemo {
+    static HCNetSDK hCNetSDK = null;
+    static int lUserID = -1; //鐢ㄦ埛鍙ユ焺
+    public static FExceptionCallBack_Imp fExceptionCallBack;
+
+    static class FExceptionCallBack_Imp implements HCNetSDK.FExceptionCallBack {
+        public void invoke(int dwType, int lUserID, int lHandle, Pointer pUser) {
+            System.out.println("寮傚父浜嬩欢绫诲瀷:" + dwType);
+            return;
+        }
+    }
+
+    /**
+     * 鍔ㄦ�佸簱鍔犺浇
+     *
+     * @return
+     */
+    private static boolean createSDKInstance() {
+        if (hCNetSDK == null) {
+            synchronized (HCNetSDK.class) {
+                String strDllPath = "";
+                try {
+                    if (osSelect.isWindows()) {
+                        //win绯荤粺鍔犺浇SDK搴撹矾寰�
+                        strDllPath = System.getProperty("user.dir") + "\\src\\main\\resources\\lib\\Hik\\HCNetSDK.dll";
+                    }
+                    else if (osSelect.isLinux()) {
+                        //Linux绯荤粺鍔犺浇SDK搴撹矾寰�
+                        strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so";
+                    }
+                    hCNetSDK = (HCNetSDK) Native.loadLibrary(strDllPath, HCNetSDK.class);
+                } catch (Exception ex) {
+                    System.out.println("loadLibrary: " + strDllPath + " Error: " + ex.getMessage());
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    public static void main(String[] args) throws IOException, InterruptedException {
+        if (hCNetSDK == null) {
+            if (!createSDKInstance()) {
+                System.out.println("Load SDK fail");
+                return;
+            }
+        }
+        //linux绯荤粺寤鸿璋冪敤浠ヤ笅鎺ュ彛鍔犺浇缁勪欢搴�
+        if (osSelect.isLinux()) {
+            HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256);
+            HCNetSDK.BYTE_ARRAY ptrByteArray2 = new HCNetSDK.BYTE_ARRAY(256);
+            //杩欓噷鏄簱鐨勭粷瀵硅矾寰勶紝璇锋牴鎹疄闄呮儏鍐典慨鏀癸紝娉ㄦ剰鏀硅矾寰勫繀椤绘湁璁块棶鏉冮檺
+            String strPath1 = System.getProperty("user.dir") + "/lib/libcrypto.so.1.1";
+            String strPath2 = System.getProperty("user.dir") + "/lib/libssl.so.1.1";
+            System.arraycopy(strPath1.getBytes(), 0, ptrByteArray1.byValue, 0, strPath1.length());
+            ptrByteArray1.write();
+            hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_LIBEAY_PATH, ptrByteArray1.getPointer());
+            System.arraycopy(strPath2.getBytes(), 0, ptrByteArray2.byValue, 0, strPath2.length());
+            ptrByteArray2.write();
+            hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_SSLEAY_PATH, ptrByteArray2.getPointer());
+            String strPathCom = System.getProperty("user.dir") + "/lib/";
+            HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
+            System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
+            struComPath.write();
+            hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_SDK_PATH, struComPath.getPointer());
+        }
+        
+        //SDK鍒濆鍖栵紝涓�涓▼搴忚繘绋嬪彧闇�瑕佽皟鐢ㄤ竴娆�
+        hCNetSDK.NET_DVR_Init();
+        
+        if (fExceptionCallBack == null) {
+            fExceptionCallBack = new FExceptionCallBack_Imp();
+        }
+        Pointer pUser = null;
+        if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, pUser)) {
+            return;
+        }
+        System.out.println("璁剧疆寮傚父娑堟伅鍥炶皟鎴愬姛");
+
+        //鍚敤SDK鍐欐棩蹇�
+        hCNetSDK.NET_DVR_SetLogToFile(3, "./sdkLog", false);
+
+
+        //鐧诲綍璁惧锛屾瘡涓�鍙拌澶囧彧闇�瑕佺櫥褰曚竴娆�
+        //lUserID = TestDemo.loginDevice("10.9.137.21", (short) 8000, "admin", "Cpfwb518+");
+        lUserID = TestDemo.loginDevice("192.168.10.16", (short) 8000, "admin", "fg001@hdw");
+        //hCNetSDK.NET_DVR_STDXMLConfig(lUserID, "<?xml version=\"1.0\" encoding=\"GB2312\"?><GetDeviceInfo><dwSize>0</dwSize></GetDeviceInfo>", "GetDeviceInfo", 1000);
+
+        /*========== 绾㈠ 鎶撳浘娴嬫俯 Start==========*/
+        //鎶撶儹鍥�
+        HCNetSDK.NET_DVR_JPEGPICTURE_WITH_APPENDDATA m_strJpegWithAppendData = new HCNetSDK.NET_DVR_JPEGPICTURE_WITH_APPENDDATA();
+        m_strJpegWithAppendData.dwSize = m_strJpegWithAppendData.size();
+        HCNetSDK.BYTE_ARRAY ptrJpegByte = new HCNetSDK.BYTE_ARRAY(2*1024*1024);
+        HCNetSDK.BYTE_ARRAY ptrP2PDataByte  = new HCNetSDK.BYTE_ARRAY(2*1024*1024);
+        m_strJpegWithAppendData.pJpegPicBuff = ptrJpegByte.getPointer();
+        m_strJpegWithAppendData.pP2PDataBuff = ptrP2PDataByte.getPointer();
+        m_strJpegWithAppendData.dwJpegPicLen = 2*1024*1024;
+        m_strJpegWithAppendData.dwP2PDataLen = 2*1024*1024;
+        m_strJpegWithAppendData.write();
+
+        boolean resBoolean = hCNetSDK.NET_DVR_CaptureJPEGPicture_WithAppendData(lUserID, 2, m_strJpegWithAppendData);
+        if (resBoolean) {
+            System.out.println("鎶撳浘鎴愬姛");
+            //m_strJpegWithAppendData.read();
+            // 瀹氫箟鏂囦欢鍚�
+            String cFilename = "Jpegwithappend_1.data";
+            String cFilename2 = "Jpegwithappend_1.csv";
+
+            // 鍒涘缓鏂囦欢杈撳嚭娴�
+            try (FileOutputStream fos = new FileOutputStream(cFilename)) {
+                // 灏嗘暟鎹啓鍏ユ枃浠�
+                //fos.write(m_strJpegWithAppendData.pP2PDataBuff, 0, m_strJpegWithAppendData.dwP2PDataLen);
+                Pointer pP2PDataBuff = m_strJpegWithAppendData.pP2PDataBuff;
+                fos.write(pP2PDataBuff.getByteArray(0, m_strJpegWithAppendData.dwP2PDataLen), 0, m_strJpegWithAppendData.dwP2PDataLen);
+            } catch (IOException e) {
+                e.printStackTrace(); // 鎹曡幏骞跺鐞嗗紓甯�
+            }
+
+            analyzeData(m_strJpegWithAppendData.dwP2PDataLen, cFilename, cFilename2);
+
+
+            //鑾峰彇绾㈠缁撴灉骞惰В鏋�
+        }else {
+            System.out.printf("鎶撶儹鍥惧け璐�:%s",hCNetSDK.NET_DVR_GetLastError());
+        }
+        /*========== 绾㈠ 鎶撳浘娴嬫俯 End==========*/
+
+        hCNetSDK.NET_DVR_CaptureJPEGPicture_WithAppendData(lUserID,1,null);
+        for (boolean exit = false; !exit; ) {
+            System.out.println("璇疯緭鍏ユ偍鎯宠鎵ц鐨刣emo瀹炰緥! 锛堥��鍑鸿杈撳叆yes锛�");
+            Scanner input = new Scanner(System.in);
+            String str = input.next();
+            // 杞崲涓烘爣鍑嗚緭鍏�
+            str = str.toLowerCase();
+            if (str.equals("yes")) {
+                // 閫�鍑虹▼搴�
+                exit = true;
+                break;
+            }
+            switch (str) {
+                case "1":
+                {
+                    System.out.println("\n[Module]鎵嬪姩鑾峰彇璁惧鍦ㄧ嚎鐘舵��");
+                    DevManager.getDeviceStatus(lUserID);
+                    break;
+                }
+                case "2":
+                {
+                    System.out.println("\n[Module]鑾峰彇璁惧宸ヤ綔鐘舵�佷唬鐮�");
+                    DevManager.getWorkS(lUserID);
+                    break;
+                }
+                case "3":
+                {
+                    System.out.println("\n[Module]鑾峰彇璁惧鍩烘湰淇℃伅");
+                    DevManager.getDeviceInfo(lUserID);
+                    break;
+                }
+
+                case "4":
+                {
+
+                    System.out.println("\n[Module]璁惧鎶撳浘浠g爜");
+                    ChannelParamCfg.CaptureJPEGPicture(lUserID);
+                    break;
+                }
+                case "5":
+                {
+                    //閫傜敤NVR绛夌‖鐩樺綍鍍忔満璁惧
+                    System.out.println("\n[Module]鏌ヨ璁惧閫氶亾鐘舵�佷唬鐮�");
+                    ChannelParamCfg.GetIPChannelInfo(lUserID);
+                    break;
+                }
+                case "6":
+                {
+                    //鑾峰彇鍜岃缃墠绔墿灞曞弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃墠绔墿灞曞弬鏁�");
+                    ChannelParamCfg.GetCameraPara(lUserID);
+                    break;
+                }
+                case "7":
+                {
+                    //鑾峰彇鍜岃缃綉缁滃弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃綉缁滃弬鏁�");
+                    ChannelParamCfg.GetNetCfg(lUserID);
+                    break;
+                }
+                case "8":
+                {
+                    //鑾峰彇鍜岃缃綍鍍忓弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃綍鍍忓弬鏁�");
+                    ChannelParamCfg.GetRecordCfg(lUserID);
+                    break;
+                }
+                case "9":
+                {
+                    //鑾峰彇鍜岃缃浘鍍忓弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃浘鍍忓弬鏁�");
+                    ChannelParamCfg.GetandSetPicCfg(lUserID);
+                    break;
+                }
+                case "10":
+                {
+                    //鑾峰彇鍜岃缃椂闂村弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃椂闂村弬鏁�");
+                    SdkSysCfg.GetandSetDevTime(lUserID);
+                    break;
+                }
+                case "11":
+                {
+                    //鑾峰彇璁惧杞‖浠惰兘鍔涗俊鎭�
+                    System.out.println("\n[Module]鑾峰彇璁惧杞‖浠惰兘鍔�");
+                    DevManager.GetSofthardware_Ability(lUserID);
+                    break;
+                }
+                case "12":
+                {
+                    //鑾峰彇璁惧JPEG鎶撳浘鑳藉姏
+                    System.out.println("\n[Module]鑾峰彇璁惧JPEG鎶撳浘鑳藉姏");
+                    DevManager.GetJPEG_Cap_Ability(lUserID);
+                    break;
+                }
+                case "13":
+                {
+                    //鏃ュ織鏌ユ壘
+                    System.out.println("\n[Module]鏃ュ織鏌ユ壘");
+                    DevManager.FindLog(lUserID);
+                    break;
+                }
+                default:
+                {
+                    System.out.println("\n鏈煡鐨勬寚浠ゆ搷浣�!璇烽噸鏂拌緭鍏�!\n");
+                }
+            }
+        }
+
+
+        Thread.sleep(2000);
+        //绋嬪簭閫�鍑虹殑鏃跺�欒皟鐢ㄦ敞閿�鐧诲綍鎺ュ彛锛屾瘡涓�鍙拌澶囧垎鍒皟鐢ㄤ竴娆�
+        if (hCNetSDK.NET_DVR_Logout(lUserID)) {
+            System.out.println("娉ㄩ攢鎴愬姛");
+        }
+        
+        //閲婃斁SDK璧勬簮锛岀▼搴忛��鍑烘椂璋冪敤锛屽彧闇�瑕佽皟鐢ㄤ竴娆�
+        hCNetSDK.NET_DVR_Cleanup();
+        return;       
+    }
+
+    public static void analyzeData(int dwP2PDataLen, String cFilename, String cFilename2) throws IOException {
+        // 鎵撳紑鏈湴淇濆瓨鐨勬枃浠�
+        String inputFilename = cFilename;
+        String outputFilename = cFilename2;
+
+        int m_AnalysisHotPic_W = 384; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚瀹絛wJpegPicWidth杩涜璧嬪��
+        int m_AnalysisHotPic_H = 288; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚楂榙wJpegPicHeight杩涜璧嬪��
+        int bufSize = m_AnalysisHotPic_H * m_AnalysisHotPic_W * 4;
+
+        try (RandomAccessFile datafilefp = new RandomAccessFile(inputFilename, "r");
+             FileOutputStream fp = new FileOutputStream(outputFilename)) {
+
+            // 璇诲彇鏂囦欢閲岄潰鎵�鏈夋暟鎹�
+            byte[] pDataBuf = new byte[bufSize];
+            int bytesRead = datafilefp.read(pDataBuf);
+            if (bytesRead != bufSize) {
+                System.out.println("Failed to read the entire file");
+                return;
+            }
+
+            float minTemp = 10000.0f;
+            float maxTemp = -10000.0f;
+            //瀛樺偍鏋佸�兼俯搴︾殑鍧愭爣,濡傛灉鏄浉鍚岀殑鏋佸�兼俯搴�,灏变篃鍚屾娣诲姞鍧愭爣鐐�
+            TempPoint minTempPoint = new TempPoint();
+            TempPoint maxTempPoint = new TempPoint();
+
+            ByteBuffer buffer = ByteBuffer.wrap(pDataBuf);
+            buffer.order(ByteOrder.LITTLE_ENDIAN); // 鏍规嵁瀹為檯鎯呭喌璋冩暣瀛楄妭搴�
+
+            for (int iWriteHeight = 0; iWriteHeight < m_AnalysisHotPic_H; ++iWriteHeight) {
+                for (int iWriteWidth = 0; iWriteWidth < m_AnalysisHotPic_W; ++iWriteWidth) {
+                    float fTemp = buffer.getFloat();
+                    // 鍒ゆ柇fTemp鏄惁鏄竴涓甯稿�硷紝涓嶆槸鍒欒祴鍊兼渶澶ф垨鏈�灏忥紝闃叉璁惧宕╂簝
+                    fTemp = (9999 < fTemp) ? 9999 : ((-9999 > fTemp) ? -9999 : fTemp);
+                    //鍙繚鐣欎互涓哄皬鏁�
+                    fTemp = BigDecimal.valueOf(fTemp).setScale(1, BigDecimal.ROUND_HALF_UP).floatValue();
+
+                    //minTemp = (minTemp > fTemp) ? fTemp : minTemp;
+                    if(minTemp >= fTemp){
+                        minTemp = fTemp;
+                        //鏌ョ湅瀛樼殑鏈�浣庢俯搴︽槸涓嶆槸褰撳墠娓╁害,涓嶆槸鐨勮瘽,瑕佹竻绌烘渶浣庢俯搴ap,
+                        //鍚屾椂鎶婃渶鏂扮殑鏈�浣庢俯搴﹀拰鍧愭爣淇濆瓨
+                        Float minTempOld = minTempPoint.getTemp();
+                        if(minTempOld == null || minTempOld!=minTemp){ //棣栨璧嬪�� 鎴栬�� 闇�瑕侀噸缃渶浣庢俯搴�
+                            minTempPoint.setTemp(minTemp);
+                            List<Point> points = new ArrayList<>();
+                            Point point = new Point(iWriteWidth,iWriteHeight);
+                            points.add(point);
+                            minTempPoint.setPoints(points);
+                        }else { //瀛樺湪鏈�浣庢俯搴︾浉鍚岀殑鍙﹀涓�涓偣,淇濆瓨涓嬫潵杩涘叆鏈�浣庢俯搴﹀垪琛�
+                            List<Point> points = minTempPoint.getPoints();
+                            points.add(new Point(iWriteWidth,iWriteHeight));
+                        }
+                    }
+                    //maxTemp = (maxTemp < fTemp) ? fTemp : maxTemp;
+                    if(maxTemp <= fTemp){
+                        maxTemp = fTemp;
+                        //鏌ョ湅瀛樼殑鏈�楂樻俯搴︽槸涓嶆槸褰撳墠娓╁害,涓嶆槸鐨勮瘽,瑕佹竻绌烘渶楂樻俯搴ap,
+                        //鍚屾椂鎶婃渶鏂扮殑鏈�楂樻俯搴﹀拰鍧愭爣淇濆瓨
+                        Float maxTempOld = maxTempPoint.getTemp();
+                        if(maxTempOld == null || maxTempOld!=maxTemp){ //棣栨璧嬪�� 鎴栬�� 闇�瑕侀噸缃渶楂樻俯搴�
+                            maxTempPoint.setTemp(maxTemp);
+                            List<Point> points = new ArrayList<>();
+                            Point point = new Point(iWriteWidth,iWriteHeight);
+                            points.add(point);
+                            maxTempPoint.setPoints(points);
+                        }else { //瀛樺湪鏈�楂樻俯搴︾浉鍚岀殑鍙﹀涓�涓偣,淇濆瓨涓嬫潵杩涘叆鏈�楂樻俯搴﹀垪琛�
+                            List<Point> points = maxTempPoint.getPoints();
+                            points.add(new Point(iWriteWidth,iWriteHeight));
+                        }
+                    }
+
+                    String temp = String.format("%.2f,", fTemp);
+
+                    fp.write(temp.getBytes());
+                }
+
+                fp.write("\n".getBytes());
+            }
+
+            System.out.println("Min Temperature: " + minTempPoint);
+            System.out.println("Max Temperature: " + maxTempPoint);
+
+        } catch (IOException e) {
+            e.printStackTrace(); // 鎹曡幏骞跺鐞嗗紓甯�
+        }
+    }
+
+    /**
+     * 璁惧鐧诲綍V30
+     *
+     * @param ip   璁惧IP
+     * @param port SDK绔彛锛岄粯璁よ澶囩殑8000绔彛
+     * @param user 璁惧鐢ㄦ埛鍚�
+     * @param psw  璁惧瀵嗙爜
+     */
+    public static int login_V30(String ip, short port, String user, String psw) {
+        HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();
+        int iUserID = hCNetSDK.NET_DVR_Login_V30(ip, port, user, psw, m_strDeviceInfo);
+        System.out.println("UserID:" + lUserID);
+        if ((iUserID == -1) || (iUserID == 0xFFFFFFFF)) {
+            System.out.println("鐧诲綍澶辫触锛岄敊璇爜涓�" + hCNetSDK.NET_DVR_GetLastError());
+            return iUserID;
+        } else {
+            System.out.println(ip + ":璁惧鐧诲綍鎴愬姛锛�");
+            return iUserID;
+        }
+    }
+
+    /**
+     * 鐧诲綍璁惧锛屾敮鎸� V40 鍜� V30 鐗堟湰锛屽姛鑳戒竴鑷淬��
+     *
+     * @param ip      璁惧IP鍦板潃
+     * @param port    SDK绔彛锛岄粯璁や负璁惧鐨�8000绔彛
+     * @param user    璁惧鐢ㄦ埛鍚�
+     * @param psw     璁惧瀵嗙爜
+     * @return 鐧诲綍鎴愬姛杩斿洖鐢ㄦ埛ID锛屽け璐ヨ繑鍥�-1
+     */
+    public static int loginDevice(String ip, short port, String user, String psw) {
+        // 鍒涘缓璁惧鐧诲綍淇℃伅鍜岃澶囦俊鎭璞�
+        HCNetSDK.NET_DVR_USER_LOGIN_INFO loginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();
+        HCNetSDK.NET_DVR_DEVICEINFO_V40 deviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40();
+
+        // 璁剧疆璁惧IP鍦板潃
+        byte[] deviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN];
+        byte[] ipBytes = ip.getBytes();
+        System.arraycopy(ipBytes, 0, deviceAddress, 0, Math.min(ipBytes.length, deviceAddress.length));
+        loginInfo.sDeviceAddress = deviceAddress;
+
+        // 璁剧疆鐢ㄦ埛鍚嶅拰瀵嗙爜
+        byte[] userName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN];
+        byte[] password = psw.getBytes();
+        System.arraycopy(user.getBytes(), 0, userName, 0, Math.min(user.length(), userName.length));
+        System.arraycopy(password, 0, loginInfo.sPassword, 0, Math.min(password.length, loginInfo.sPassword.length));
+        loginInfo.sUserName = userName;
+
+        // 璁剧疆绔彛鍜岀櫥褰曟ā寮�
+        loginInfo.wPort = port;
+        loginInfo.bUseAsynLogin = false; // 鍚屾鐧诲綍
+        loginInfo.byLoginMode = 0; // 浣跨敤SDK绉佹湁鍗忚
+
+        // 鎵ц鐧诲綍鎿嶄綔
+        int userID = hCNetSDK.NET_DVR_Login_V40(loginInfo, deviceInfo);
+        if (userID == -1) {
+            System.err.println("鐧诲綍澶辫触锛岄敊璇爜涓�: " + hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            System.out.println(ip + " 璁惧鐧诲綍鎴愬姛锛�");
+            // 澶勭悊閫氶亾鍙烽�昏緫
+            int startDChan = deviceInfo.struDeviceV30.byStartDChan;
+            System.out.println("棰勮璧峰閫氶亾鍙�: " + startDChan);
+        }
+        return userID; // 杩斿洖鐧诲綍缁撴灉
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
diff --git a/src/main/java/com/whyc/service/HikTempService.java b/src/main/java/com/whyc/service/HikTempService.java
new file mode 100644
index 0000000..d41ac6d
--- /dev/null
+++ b/src/main/java/com/whyc/service/HikTempService.java
@@ -0,0 +1,452 @@
+package com.whyc.service;
+
+import com.sun.jna.Native;
+import com.sun.jna.Pointer;
+import com.whyc.dto.Point;
+import com.whyc.dto.Response;
+import com.whyc.dto.TempPoint;
+import com.whyc.hik.ChannelParamCfg;
+import com.whyc.hik.Commom.osSelect;
+import com.whyc.hik.DevManager;
+import com.whyc.hik.NetSDKDemo.HCNetSDK;
+import com.whyc.hik.SdkSysCfg;
+import org.springframework.stereotype.Service;
+
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import java.math.BigDecimal;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.util.*;
+
+@Service
+public class HikTempService {
+
+
+
+    static HCNetSDK hCNetSDK = null;
+    static int lUserID = -1; //鐢ㄦ埛鍙ユ焺
+    public static FExceptionCallBack_Imp fExceptionCallBack;
+
+    public Response getTempPoint(String ip) throws IOException, InterruptedException {
+        if (hCNetSDK == null) {
+            if (!createSDKInstance()) {
+                System.out.println("Load SDK fail");
+                return new Response().set(1,false,"Load SDK fail");
+            }
+        }
+        //linux绯荤粺寤鸿璋冪敤浠ヤ笅鎺ュ彛鍔犺浇缁勪欢搴�
+        if (osSelect.isLinux()) {
+            HCNetSDK.BYTE_ARRAY ptrByteArray1 = new HCNetSDK.BYTE_ARRAY(256);
+            HCNetSDK.BYTE_ARRAY ptrByteArray2 = new HCNetSDK.BYTE_ARRAY(256);
+            //杩欓噷鏄簱鐨勭粷瀵硅矾寰勶紝璇锋牴鎹疄闄呮儏鍐典慨鏀癸紝娉ㄦ剰鏀硅矾寰勫繀椤绘湁璁块棶鏉冮檺
+            String strPath1 = System.getProperty("user.dir") + "/lib/libcrypto.so.1.1";
+            String strPath2 = System.getProperty("user.dir") + "/lib/libssl.so.1.1";
+            System.arraycopy(strPath1.getBytes(), 0, ptrByteArray1.byValue, 0, strPath1.length());
+            ptrByteArray1.write();
+            hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_LIBEAY_PATH, ptrByteArray1.getPointer());
+            System.arraycopy(strPath2.getBytes(), 0, ptrByteArray2.byValue, 0, strPath2.length());
+            ptrByteArray2.write();
+            hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_SSLEAY_PATH, ptrByteArray2.getPointer());
+            String strPathCom = System.getProperty("user.dir") + "/lib/";
+            HCNetSDK.NET_DVR_LOCAL_SDK_PATH struComPath = new HCNetSDK.NET_DVR_LOCAL_SDK_PATH();
+            System.arraycopy(strPathCom.getBytes(), 0, struComPath.sPath, 0, strPathCom.length());
+            struComPath.write();
+            hCNetSDK.NET_DVR_SetSDKInitCfg(HCNetSDK.NET_SDK_INIT_CFG_SDK_PATH, struComPath.getPointer());
+        }
+
+        //SDK鍒濆鍖栵紝涓�涓▼搴忚繘绋嬪彧闇�瑕佽皟鐢ㄤ竴娆�
+        hCNetSDK.NET_DVR_Init();
+
+        if (fExceptionCallBack == null) {
+            fExceptionCallBack = new FExceptionCallBack_Imp();
+        }
+        Pointer pUser = null;
+        if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, pUser)) {
+            return new Response().set(1,false,"璁剧疆寮傚父娑堟伅鍥炶皟澶辫触");
+        }
+        System.out.println("璁剧疆寮傚父娑堟伅鍥炶皟鎴愬姛");
+
+        //鍚敤SDK鍐欐棩蹇�
+        hCNetSDK.NET_DVR_SetLogToFile(3, "./sdkLog", false);
+
+
+        //鐧诲綍璁惧锛屾瘡涓�鍙拌澶囧彧闇�瑕佺櫥褰曚竴娆�
+        //lUserID = TestDemo.loginDevice("10.9.137.21", (short) 8000, "admin", "Cpfwb518+");
+        lUserID = HikTempService.loginDevice("192.168.10.16", (short) 8000, "admin", "fg001@hdw");
+        //hCNetSDK.NET_DVR_STDXMLConfig(lUserID, "<?xml version=\"1.0\" encoding=\"GB2312\"?><GetDeviceInfo><dwSize>0</dwSize></GetDeviceInfo>", "GetDeviceInfo", 1000);
+
+        /*========== 绾㈠ 鎶撳浘娴嬫俯 Start==========*/
+        //鎶撶儹鍥�
+        HCNetSDK.NET_DVR_JPEGPICTURE_WITH_APPENDDATA m_strJpegWithAppendData = new HCNetSDK.NET_DVR_JPEGPICTURE_WITH_APPENDDATA();
+        m_strJpegWithAppendData.dwSize = m_strJpegWithAppendData.size();
+        HCNetSDK.BYTE_ARRAY ptrJpegByte = new HCNetSDK.BYTE_ARRAY(2*1024*1024);
+        HCNetSDK.BYTE_ARRAY ptrP2PDataByte  = new HCNetSDK.BYTE_ARRAY(2*1024*1024);
+        m_strJpegWithAppendData.pJpegPicBuff = ptrJpegByte.getPointer();
+        m_strJpegWithAppendData.pP2PDataBuff = ptrP2PDataByte.getPointer();
+        m_strJpegWithAppendData.dwJpegPicLen = 2*1024*1024;
+        m_strJpegWithAppendData.dwP2PDataLen = 2*1024*1024;
+        m_strJpegWithAppendData.write();
+        Map<String, TempPoint> tempPointMap;
+        boolean resBoolean = hCNetSDK.NET_DVR_CaptureJPEGPicture_WithAppendData(lUserID, 2, m_strJpegWithAppendData);
+        if (resBoolean) {
+            System.out.println("鎶撳浘鎴愬姛");
+            //m_strJpegWithAppendData.read();
+            // 瀹氫箟鏂囦欢鍚�
+            String cFilename = "Jpegwithappend_"+ip+".data";
+            String cFilename2 = "Jpegwithappend_"+ip+".csv";
+
+            // 鍒涘缓鏂囦欢杈撳嚭娴�
+            FileOutputStream fos = new FileOutputStream(cFilename);
+            // 灏嗘暟鎹啓鍏ユ枃浠�
+            //fos.write(m_strJpegWithAppendData.pP2PDataBuff, 0, m_strJpegWithAppendData.dwP2PDataLen);
+            Pointer pP2PDataBuff = m_strJpegWithAppendData.pP2PDataBuff;
+            fos.write(pP2PDataBuff.getByteArray(0, m_strJpegWithAppendData.dwP2PDataLen), 0, m_strJpegWithAppendData.dwP2PDataLen);
+
+            //鑾峰彇绾㈠缁撴灉骞惰В鏋�
+            tempPointMap = analyzeData(m_strJpegWithAppendData.dwP2PDataLen, cFilename, cFilename2);
+        }else {
+            System.out.printf("鎶撶儹鍥惧け璐�:%s",hCNetSDK.NET_DVR_GetLastError());
+            return new Response().set(1,false,String.format("鎶撶儹鍥惧け璐�:%s",hCNetSDK.NET_DVR_GetLastError()));
+        }
+        /*========== 绾㈠ 鎶撳浘娴嬫俯 End==========*/
+        /*for (boolean exit = false; !exit; ) {
+            System.out.println("璇疯緭鍏ユ偍鎯宠鎵ц鐨刣emo瀹炰緥! 锛堥��鍑鸿杈撳叆yes锛�");
+            Scanner input = new Scanner(System.in);
+            String str = input.next();
+            // 杞崲涓烘爣鍑嗚緭鍏�
+            str = str.toLowerCase();
+            if (str.equals("yes")) {
+                // 閫�鍑虹▼搴�
+                exit = true;
+                break;
+            }
+            switch (str) {
+                case "1":
+                {
+                    System.out.println("\n[Module]鎵嬪姩鑾峰彇璁惧鍦ㄧ嚎鐘舵��");
+                    DevManager.getDeviceStatus(lUserID);
+                    break;
+                }
+                case "2":
+                {
+                    System.out.println("\n[Module]鑾峰彇璁惧宸ヤ綔鐘舵�佷唬鐮�");
+                    DevManager.getWorkS(lUserID);
+                    break;
+                }
+                case "3":
+                {
+                    System.out.println("\n[Module]鑾峰彇璁惧鍩烘湰淇℃伅");
+                    DevManager.getDeviceInfo(lUserID);
+                    break;
+                }
+
+                case "4":
+                {
+
+                    System.out.println("\n[Module]璁惧鎶撳浘浠g爜");
+                    ChannelParamCfg.CaptureJPEGPicture(lUserID);
+                    break;
+                }
+                case "5":
+                {
+                    //閫傜敤NVR绛夌‖鐩樺綍鍍忔満璁惧
+                    System.out.println("\n[Module]鏌ヨ璁惧閫氶亾鐘舵�佷唬鐮�");
+                    ChannelParamCfg.GetIPChannelInfo(lUserID);
+                    break;
+                }
+                case "6":
+                {
+                    //鑾峰彇鍜岃缃墠绔墿灞曞弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃墠绔墿灞曞弬鏁�");
+                    ChannelParamCfg.GetCameraPara(lUserID);
+                    break;
+                }
+                case "7":
+                {
+                    //鑾峰彇鍜岃缃綉缁滃弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃綉缁滃弬鏁�");
+                    ChannelParamCfg.GetNetCfg(lUserID);
+                    break;
+                }
+                case "8":
+                {
+                    //鑾峰彇鍜岃缃綍鍍忓弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃綍鍍忓弬鏁�");
+                    ChannelParamCfg.GetRecordCfg(lUserID);
+                    break;
+                }
+                case "9":
+                {
+                    //鑾峰彇鍜岃缃浘鍍忓弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃浘鍍忓弬鏁�");
+                    ChannelParamCfg.GetandSetPicCfg(lUserID);
+                    break;
+                }
+                case "10":
+                {
+                    //鑾峰彇鍜岃缃椂闂村弬鏁�
+                    System.out.println("\n[Module]鑾峰彇鍜岃缃椂闂村弬鏁�");
+                    SdkSysCfg.GetandSetDevTime(lUserID);
+                    break;
+                }
+                case "11":
+                {
+                    //鑾峰彇璁惧杞‖浠惰兘鍔涗俊鎭�
+                    System.out.println("\n[Module]鑾峰彇璁惧杞‖浠惰兘鍔�");
+                    DevManager.GetSofthardware_Ability(lUserID);
+                    break;
+                }
+                case "12":
+                {
+                    //鑾峰彇璁惧JPEG鎶撳浘鑳藉姏
+                    System.out.println("\n[Module]鑾峰彇璁惧JPEG鎶撳浘鑳藉姏");
+                    DevManager.GetJPEG_Cap_Ability(lUserID);
+                    break;
+                }
+                case "13":
+                {
+                    //鏃ュ織鏌ユ壘
+                    System.out.println("\n[Module]鏃ュ織鏌ユ壘");
+                    DevManager.FindLog(lUserID);
+                    break;
+                }
+                default:
+                {
+                    System.out.println("\n鏈煡鐨勬寚浠ゆ搷浣�!璇烽噸鏂拌緭鍏�!\n");
+                }
+            }
+        }*/
+
+        //绋嬪簭閫�鍑虹殑鏃跺�欒皟鐢ㄦ敞閿�鐧诲綍鎺ュ彛锛屾瘡涓�鍙拌澶囧垎鍒皟鐢ㄤ竴娆�
+        if (hCNetSDK.NET_DVR_Logout(lUserID)) {
+            System.out.println("娉ㄩ攢鎴愬姛");
+        }
+
+        //閲婃斁SDK璧勬簮锛岀▼搴忛��鍑烘椂璋冪敤锛屽彧闇�瑕佽皟鐢ㄤ竴娆�
+        hCNetSDK.NET_DVR_Cleanup();
+        return new Response().setII(1,true,tempPointMap,null);
+    }
+
+    static class FExceptionCallBack_Imp implements HCNetSDK.FExceptionCallBack {
+        public void invoke(int dwType, int lUserID, int lHandle, Pointer pUser) {
+            System.out.println("寮傚父浜嬩欢绫诲瀷:" + dwType);
+            return;
+        }
+    }
+
+    /**
+     * 鍔ㄦ�佸簱鍔犺浇
+     *
+     * @return
+     */
+    private static boolean createSDKInstance() {
+        if (hCNetSDK == null) {
+            synchronized (HCNetSDK.class) {
+                String strDllPath = "";
+                try {
+                    if (osSelect.isWindows()) {
+                        //win绯荤粺鍔犺浇SDK搴撹矾寰�
+                        strDllPath = System.getProperty("user.dir") + "\\src\\main\\resources\\lib\\Hik\\HCNetSDK.dll";
+                    }
+                    else if (osSelect.isLinux()) {
+                        //Linux绯荤粺鍔犺浇SDK搴撹矾寰�
+                        strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so";
+                    }
+                    hCNetSDK = (HCNetSDK) Native.loadLibrary(strDllPath, HCNetSDK.class);
+                } catch (Exception ex) {
+                    System.out.println("loadLibrary: " + strDllPath + " Error: " + ex.getMessage());
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    public Map<String,TempPoint> analyzeData(int dwP2PDataLen, String cFilename, String cFilename2) throws IOException {
+        Map<String,TempPoint> tempMap = new HashMap<String, TempPoint>();
+        // 鎵撳紑鏈湴淇濆瓨鐨勬枃浠�
+        String inputFilename = cFilename;
+        String outputFilename = cFilename2;
+
+        int m_AnalysisHotPic_W = 384; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚瀹絛wJpegPicWidth杩涜璧嬪��
+        int m_AnalysisHotPic_H = 288; // 鏍规嵁鎶撶儹鍥炬帴鍙h繑鍥炵殑鍥惧儚楂榙wJpegPicHeight杩涜璧嬪��
+        int bufSize = m_AnalysisHotPic_H * m_AnalysisHotPic_W * 4;
+
+        try (RandomAccessFile datafilefp = new RandomAccessFile(inputFilename, "r");
+             FileOutputStream fp = new FileOutputStream(outputFilename)) {
+
+            // 璇诲彇鏂囦欢閲岄潰鎵�鏈夋暟鎹�
+            byte[] pDataBuf = new byte[bufSize];
+            int bytesRead = datafilefp.read(pDataBuf);
+            if (bytesRead != bufSize) {
+                System.out.println("Failed to read the entire file");
+                return tempMap;
+            }
+
+            float minTemp = 10000.0f;
+            float maxTemp = -10000.0f;
+            //瀛樺偍鏋佸�兼俯搴︾殑鍧愭爣,濡傛灉鏄浉鍚岀殑鏋佸�兼俯搴�,灏变篃鍚屾娣诲姞鍧愭爣鐐�
+            TempPoint minTempPoint = new TempPoint();
+            TempPoint maxTempPoint = new TempPoint();
+
+            ByteBuffer buffer = ByteBuffer.wrap(pDataBuf);
+            buffer.order(ByteOrder.LITTLE_ENDIAN); // 鏍规嵁瀹為檯鎯呭喌璋冩暣瀛楄妭搴�
+
+            for (int iWriteHeight = 0; iWriteHeight < m_AnalysisHotPic_H; ++iWriteHeight) {
+                for (int iWriteWidth = 0; iWriteWidth < m_AnalysisHotPic_W; ++iWriteWidth) {
+                    float fTemp = buffer.getFloat();
+                    // 鍒ゆ柇fTemp鏄惁鏄竴涓甯稿�硷紝涓嶆槸鍒欒祴鍊兼渶澶ф垨鏈�灏忥紝闃叉璁惧宕╂簝
+                    fTemp = (9999 < fTemp) ? 9999 : ((-9999 > fTemp) ? -9999 : fTemp);
+                    //鍙繚鐣欎互涓哄皬鏁�
+                    fTemp = BigDecimal.valueOf(fTemp).setScale(1, BigDecimal.ROUND_HALF_UP).floatValue();
+
+                    //minTemp = (minTemp > fTemp) ? fTemp : minTemp;
+                    if(minTemp >= fTemp){
+                        minTemp = fTemp;
+                        //鏌ョ湅瀛樼殑鏈�浣庢俯搴︽槸涓嶆槸褰撳墠娓╁害,涓嶆槸鐨勮瘽,瑕佹竻绌烘渶浣庢俯搴ap,
+                        //鍚屾椂鎶婃渶鏂扮殑鏈�浣庢俯搴﹀拰鍧愭爣淇濆瓨
+                        Float minTempOld = minTempPoint.getTemp();
+                        if(minTempOld == null || minTempOld!=minTemp){ //棣栨璧嬪�� 鎴栬�� 闇�瑕侀噸缃渶浣庢俯搴�
+                            minTempPoint.setTemp(minTemp);
+                            List<Point> points = new ArrayList<>();
+                            Point point = new Point(iWriteWidth,iWriteHeight);
+                            points.add(point);
+                            minTempPoint.setPoints(points);
+                        }else { //瀛樺湪鏈�浣庢俯搴︾浉鍚岀殑鍙﹀涓�涓偣,淇濆瓨涓嬫潵杩涘叆鏈�浣庢俯搴﹀垪琛�
+                            List<Point> points = minTempPoint.getPoints();
+                            points.add(new Point(iWriteWidth,iWriteHeight));
+                        }
+                    }
+                    //maxTemp = (maxTemp < fTemp) ? fTemp : maxTemp;
+                    if(maxTemp <= fTemp){
+                        maxTemp = fTemp;
+                        //鏌ョ湅瀛樼殑鏈�楂樻俯搴︽槸涓嶆槸褰撳墠娓╁害,涓嶆槸鐨勮瘽,瑕佹竻绌烘渶楂樻俯搴ap,
+                        //鍚屾椂鎶婃渶鏂扮殑鏈�楂樻俯搴﹀拰鍧愭爣淇濆瓨
+                        Float maxTempOld = maxTempPoint.getTemp();
+                        if(maxTempOld == null || maxTempOld!=maxTemp){ //棣栨璧嬪�� 鎴栬�� 闇�瑕侀噸缃渶楂樻俯搴�
+                            maxTempPoint.setTemp(maxTemp);
+                            List<Point> points = new ArrayList<>();
+                            Point point = new Point(iWriteWidth,iWriteHeight);
+                            points.add(point);
+                            maxTempPoint.setPoints(points);
+                        }else { //瀛樺湪鏈�楂樻俯搴︾浉鍚岀殑鍙﹀涓�涓偣,淇濆瓨涓嬫潵杩涘叆鏈�楂樻俯搴﹀垪琛�
+                            List<Point> points = maxTempPoint.getPoints();
+                            points.add(new Point(iWriteWidth,iWriteHeight));
+                        }
+                    }
+
+                    String temp = String.format("%.2f,", fTemp);
+
+                    fp.write(temp.getBytes());
+                }
+
+                fp.write("\n".getBytes());
+            }
+
+            System.out.println("Min Temperature: " + minTempPoint);
+            System.out.println("Max Temperature: " + maxTempPoint);
+            tempMap.put("minTempPoint",minTempPoint);
+            tempMap.put("maxTempPoint",maxTempPoint);
+        }
+
+        return  tempMap;
+    }
+
+    /**
+     * 璁惧鐧诲綍V30
+     *
+     * @param ip   璁惧IP
+     * @param port SDK绔彛锛岄粯璁よ澶囩殑8000绔彛
+     * @param user 璁惧鐢ㄦ埛鍚�
+     * @param psw  璁惧瀵嗙爜
+     */
+    public static int login_V30(String ip, short port, String user, String psw) {
+        HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();
+        int iUserID = hCNetSDK.NET_DVR_Login_V30(ip, port, user, psw, m_strDeviceInfo);
+        System.out.println("UserID:" + lUserID);
+        if ((iUserID == -1) || (iUserID == 0xFFFFFFFF)) {
+            System.out.println("鐧诲綍澶辫触锛岄敊璇爜涓�" + hCNetSDK.NET_DVR_GetLastError());
+            return iUserID;
+        } else {
+            System.out.println(ip + ":璁惧鐧诲綍鎴愬姛锛�");
+            return iUserID;
+        }
+    }
+
+    /**
+     * 鐧诲綍璁惧锛屾敮鎸� V40 鍜� V30 鐗堟湰锛屽姛鑳戒竴鑷淬��
+     *
+     * @param ip      璁惧IP鍦板潃
+     * @param port    SDK绔彛锛岄粯璁や负璁惧鐨�8000绔彛
+     * @param user    璁惧鐢ㄦ埛鍚�
+     * @param psw     璁惧瀵嗙爜
+     * @return 鐧诲綍鎴愬姛杩斿洖鐢ㄦ埛ID锛屽け璐ヨ繑鍥�-1
+     */
+    public static int loginDevice(String ip, short port, String user, String psw) {
+        // 鍒涘缓璁惧鐧诲綍淇℃伅鍜岃澶囦俊鎭璞�
+        HCNetSDK.NET_DVR_USER_LOGIN_INFO loginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();
+        HCNetSDK.NET_DVR_DEVICEINFO_V40 deviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40();
+
+        // 璁剧疆璁惧IP鍦板潃
+        byte[] deviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN];
+        byte[] ipBytes = ip.getBytes();
+        System.arraycopy(ipBytes, 0, deviceAddress, 0, Math.min(ipBytes.length, deviceAddress.length));
+        loginInfo.sDeviceAddress = deviceAddress;
+
+        // 璁剧疆鐢ㄦ埛鍚嶅拰瀵嗙爜
+        byte[] userName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN];
+        byte[] password = psw.getBytes();
+        System.arraycopy(user.getBytes(), 0, userName, 0, Math.min(user.length(), userName.length));
+        System.arraycopy(password, 0, loginInfo.sPassword, 0, Math.min(password.length, loginInfo.sPassword.length));
+        loginInfo.sUserName = userName;
+
+        // 璁剧疆绔彛鍜岀櫥褰曟ā寮�
+        loginInfo.wPort = port;
+        loginInfo.bUseAsynLogin = false; // 鍚屾鐧诲綍
+        loginInfo.byLoginMode = 0; // 浣跨敤SDK绉佹湁鍗忚
+
+        // 鎵ц鐧诲綍鎿嶄綔
+        int userID = hCNetSDK.NET_DVR_Login_V40(loginInfo, deviceInfo);
+        if (userID == -1) {
+            System.err.println("鐧诲綍澶辫触锛岄敊璇爜涓�: " + hCNetSDK.NET_DVR_GetLastError());
+        } else {
+            System.out.println(ip + " 璁惧鐧诲綍鎴愬姛锛�");
+            // 澶勭悊閫氶亾鍙烽�昏緫
+            int startDChan = deviceInfo.struDeviceV30.byStartDChan;
+            System.out.println("棰勮璧峰閫氶亾鍙�: " + startDChan);
+        }
+        return userID; // 杩斿洖鐧诲綍缁撴灉
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
+
+
diff --git a/src/main/resources/lib/hik/HCCore.dll b/src/main/resources/lib/hik/HCCore.dll
new file mode 100644
index 0000000..48f8411
--- /dev/null
+++ b/src/main/resources/lib/hik/HCCore.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDK.dll b/src/main/resources/lib/hik/HCNetSDK.dll
new file mode 100644
index 0000000..2ed412e
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDK.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/AnalyzeData.dll b/src/main/resources/lib/hik/HCNetSDKCom/AnalyzeData.dll
new file mode 100644
index 0000000..2317b39
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/AnalyzeData.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/AudioIntercom.dll b/src/main/resources/lib/hik/HCNetSDKCom/AudioIntercom.dll
new file mode 100644
index 0000000..071a5e2
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/AudioIntercom.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/AudioRender.dll b/src/main/resources/lib/hik/HCNetSDKCom/AudioRender.dll
new file mode 100644
index 0000000..4935684
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/AudioRender.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCAlarm.dll b/src/main/resources/lib/hik/HCNetSDKCom/HCAlarm.dll
new file mode 100644
index 0000000..bdb8406
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCAlarm.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCAlarm.lib b/src/main/resources/lib/hik/HCNetSDKCom/HCAlarm.lib
new file mode 100644
index 0000000..0aa0d4c
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCAlarm.lib
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCCoreDevCfg.dll b/src/main/resources/lib/hik/HCNetSDKCom/HCCoreDevCfg.dll
new file mode 100644
index 0000000..7cd924e
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCCoreDevCfg.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCDisplay.dll b/src/main/resources/lib/hik/HCNetSDKCom/HCDisplay.dll
new file mode 100644
index 0000000..f0a2b7c
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCDisplay.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCGeneralCfgMgr.dll b/src/main/resources/lib/hik/HCNetSDKCom/HCGeneralCfgMgr.dll
new file mode 100644
index 0000000..3719694
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCGeneralCfgMgr.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCGeneralCfgMgr.lib b/src/main/resources/lib/hik/HCNetSDKCom/HCGeneralCfgMgr.lib
new file mode 100644
index 0000000..7091c25
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCGeneralCfgMgr.lib
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCIndustry.dll b/src/main/resources/lib/hik/HCNetSDKCom/HCIndustry.dll
new file mode 100644
index 0000000..9af77a1
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCIndustry.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCPlayBack.dll b/src/main/resources/lib/hik/HCNetSDKCom/HCPlayBack.dll
new file mode 100644
index 0000000..8d8e8a7
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCPlayBack.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCPreview.dll b/src/main/resources/lib/hik/HCNetSDKCom/HCPreview.dll
new file mode 100644
index 0000000..005656d
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCPreview.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCPreview.lib b/src/main/resources/lib/hik/HCNetSDKCom/HCPreview.lib
new file mode 100644
index 0000000..18d4d63
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCPreview.lib
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/HCVoiceTalk.dll b/src/main/resources/lib/hik/HCNetSDKCom/HCVoiceTalk.dll
new file mode 100644
index 0000000..eb04a1e
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/HCVoiceTalk.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/OpenAL32.dll b/src/main/resources/lib/hik/HCNetSDKCom/OpenAL32.dll
new file mode 100644
index 0000000..4b35df4
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/OpenAL32.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/StreamTransClient.dll b/src/main/resources/lib/hik/HCNetSDKCom/StreamTransClient.dll
new file mode 100644
index 0000000..a69e9bf
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/StreamTransClient.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/SystemTransform.dll b/src/main/resources/lib/hik/HCNetSDKCom/SystemTransform.dll
new file mode 100644
index 0000000..f704e49
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/SystemTransform.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/HCNetSDKCom/libiconv2.dll b/src/main/resources/lib/hik/HCNetSDKCom/libiconv2.dll
new file mode 100644
index 0000000..978e2fa
--- /dev/null
+++ b/src/main/resources/lib/hik/HCNetSDKCom/libiconv2.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/examples.jar b/src/main/resources/lib/hik/examples.jar
new file mode 100644
index 0000000..8f0b457
--- /dev/null
+++ b/src/main/resources/lib/hik/examples.jar
Binary files differ
diff --git a/src/main/resources/lib/hik/hlog.dll b/src/main/resources/lib/hik/hlog.dll
new file mode 100644
index 0000000..fe2298a
--- /dev/null
+++ b/src/main/resources/lib/hik/hlog.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/hpr.dll b/src/main/resources/lib/hik/hpr.dll
new file mode 100644
index 0000000..eef0d55
--- /dev/null
+++ b/src/main/resources/lib/hik/hpr.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/jna.jar b/src/main/resources/lib/hik/jna.jar
new file mode 100644
index 0000000..33461ec
--- /dev/null
+++ b/src/main/resources/lib/hik/jna.jar
Binary files differ
diff --git a/src/main/resources/lib/hik/libcrypto-1_1-x64.dll b/src/main/resources/lib/hik/libcrypto-1_1-x64.dll
new file mode 100644
index 0000000..6731338
--- /dev/null
+++ b/src/main/resources/lib/hik/libcrypto-1_1-x64.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/libssl-1_1-x64.dll b/src/main/resources/lib/hik/libssl-1_1-x64.dll
new file mode 100644
index 0000000..ac5e8fd
--- /dev/null
+++ b/src/main/resources/lib/hik/libssl-1_1-x64.dll
Binary files differ
diff --git a/src/main/resources/lib/hik/zlib1.dll b/src/main/resources/lib/hik/zlib1.dll
new file mode 100644
index 0000000..9c37a84
--- /dev/null
+++ b/src/main/resources/lib/hik/zlib1.dll
Binary files differ

--
Gitblit v1.9.1