whycxzp
2025-03-22 be8a251672810019d5874b846f4d47df06fde62d
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
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
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;
 
    }
}