开发小菜鸟123 2023-05-22 16:55 采纳率: 0%
浏览 41

大华sdk使用java获取设备状态

我这边调用CLIENT_QueryNewSystemInfo方法返回非得rpc请求 使用java代码 官方的win64sdk 请问如何调整呢

int nChannelID = 0;
        int dwOutBufferSize = 1024; // 输出缓冲区大小
        byte[] szOutBuffer = new byte[1024];
        IntByReference error = new IntByReference();

        int waittime = 5000;
        boolean b = LoginModule.netsdk.CLIENT_QueryNewSystemInfo(LoginModule.m_hLoginHandle, "RemoteDevice", nChannelID, szOutBuffer, dwOutBufferSize, error, waittime);
        if(!b) {
            System.err.printf("QueryPointTemper Failed!" + ToolKits.getErrorCodePrint());
        }

  • 写回答

2条回答 默认 最新

  • 冰点. 全栈领域优质创作者 2023-05-22 17:50
    关注

    要使用Java获取大华SDK设备状态,可以使用以下步骤:

    1. 首先需要创建一个DeviceManager对象,该对象用于管理设备连接和状态查询。可以使用DHNetSDKLib包中的dhnetsdk类来创建DeviceManager对象,例如:
    DeviceManager dm = new DeviceManager();
    
    1. 接下来需要使用DeviceManager对象来连接设备并登录,可以使用dm.login()方法进行登录。该方法需要传入设备的IP地址、端口号、用户名和密码等信息,例如:
    int loginID = dm.login("192.168.1.100", 37777, "admin", "12345");
    
    1. 登录成功后,就可以使用DeviceManager对象来查询设备状态了。大华SDK提供了GetDevState接口来获取设备状态信息。可以使用以下代码获取设备状态:
    NET_DEVSTATE devState = new NET_DEVSTATE();
    int nRet = dm.getNetSDK().CLIENT_GetDevState(loginID, FinalVar.SDK_DEVSTATE_COMM_ALARM, devState, 5000);
    if (nRet == 0) {
        System.out.println("设备状态获取失败,错误码:" + dm.getNetSDK().CLIENT_GetLastError());
    } else {
        System.out.println("设备状态获取成功,状态码:" +devState.dwValue);
    }
    

    在上述代码中,调用了DeviceManager对象的getNetSDK()方法来获取SDK对象,然后使用SDK对象调用CLIENT_GetDevState接口来获取设备状态。该接口需要传入登录ID、状态类型(例如通信报警、硬盘状态等)和状态信息结构体等参数,其中5000表示超时时间,可以根据需要进行调整。

    1. 最后需要关闭设备连接,可以使用dm.logout()方法进行关闭,例如:
    dm.logout(loginID);
    

    在实际使用中,需要根据具体需求来选择查询的设备状态类型,例如通信报警、硬盘状态、网络状态等。同时,需要注意设备状态查询的频率,避免过于频繁地查询影响设备性能。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月22日

悬赏问题

  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22