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;
|
|
}
|
}
|