设备网络SDK开发使用手册

NET_DVR_StartRemoteConfig

启动长连接远程配置。

LONG NET_DVR_StartRemoteConfig(
  LONG                     lUserID,
  DWORD                    dwCommand,
  LPVOID                   lpInBuffer,
  DWORD                    dwInBufferLen,
  fRemoteConfigCallback    cbStateCallback,
  LPVOID                   pUserData
);

Parameters

lUserID
[in] NET_DVR_Login_V40等登录接口的返回值
dwCommand
[in] 配置命令,不同的功能对应不同的命令号(dwCommand),lpInBuffer等参数也对应不同的内容,如下表所示:
dwCommand宏定义 宏定义值 含义 lpInBuffer对应结构体 cbStateCallback
NET_DVR_GET_ALARMHOST_MODULE_LIST 1222 获取所有模块 4字节模块类型:1-键盘,2-触发器,3-防区,4-网络模块 NULL
NET_DVR_GET_ALARMHOST_ZONE_LIST_IN_SUBSYSTEM 2034 获取指定子系统内的所有防区 NET_DVR_LIST_INFO NULL
NET_DVR_GET_ALARMHOST_TRIGGER_LIST 2035 获取所有触发器 NULL NULL
NET_DVR_SEARCH_ARMHOST_EXTERNAL_MODULE 2041 自动搜索外接模块 NULL 返回进度和状态
NET_DVR_REGISTER_ALARMHOST_EXTERNAL_MODULE 2042 自动注册外接模块 NULL 返回进度和状态
NET_DVR_GET_ALL_VARIABLE_INFO 2057 获取所有变量元素信息 NET_DVR_INPUT_INFO NULL
NET_DVR_GET_HISTORY_VALUE 2060 获取历史数据 NET_DVR_SEARCH_CONDITION NULL
NET_DVR_GET_ALL_REMOTECONTROLLER_LIST 2205 获取所有遥控器 NULL NULL
NET_DVR_GET_ALL_ALARM_RS485CFG 2705 获取所有RS485参数 NET_DVR_485LIST_INFO NULL
NET_DVR_GET_ALL_ALARMHOST_RS485_SLOT_CFG 2706 获取所有485槽位参数 NET_DVR_485_SLOT_LIST_INFO NULL
NET_DVR_GET_ALL_ALARM_POINT_CFG 2708 获取所有点号参数 NULL NULL
NET_DVR_GET_ALL_ALARM_SENSOR_CFG 2709 获取所有模拟量参数 NULL NULL
NET_DVR_GET_ALL_ALARM_SENSOR_JOINT 2710 获取所有模拟量联动参数 NULL NULL
lpInBuffer
[in] 输入参数,具体内容跟配置命令相关
dwInBufferLen
[in] 输入缓冲的大小
cbStateCallback
[in] 状态回调函数,
pUserData
[in] 用户数据

Callback Function

typedef void(CALLBACK *fRemoteConfigCallback)(
  DWORD     dwType,
  void      *lpBuffer,
  DWORD     dwBufLen,
  void      *pUserData
);

Callback Function Parameters

dwType
[out] 配置状态,具体定义如下所示:
enum _NET_SDK_CALLBACK_TYPE_{
  NET_SDK_CALLBACK_TYPE_STATUS   = 0,
  NET_SDK_CALLBACK_TYPE_PROGRESS,
  NET_SDK_CALLBACK_TYPE_DATA
}NET_SDK_CALLBACK_TYPE
NET_SDK_CALLBACK_TYPE_STATUS
回调状态值
NET_SDK_CALLBACK_TYPE_PROGRESS
回调进度值
NET_SDK_CALLBACK_TYPE_DATA
回调数据内容
lpBuffer
[out] 存放数据的缓冲区指针,具体内容跟dwType相关,详见列表
dwType 含义 lpBuffer对应内容
NET_SDK_CALLBACK_TYPE_STATUS 状态值 typedef enum
{
  NET_SDK_CALLBACK_STATUS_SUCCESS = 1000, //成功
  NET_SDK_CALLBACK_STATUS_PROCESSING, //处理中
  NET_SDK_CALLBACK_STATUS_FAILED //失败
}NET_SDK_CALLBACK_STATUS_NORMAL;
NET_SDK_CALLBACK_TYPE_PROGRESS 进度值 lpBuffer的值表示进度(DWORD)
NET_SDK_CALLBACK_TYPE_DATA 信息数据 lpBuffer的值表示信息数据
dwBufLen
[out] 缓冲区大小
pUserData
[out] 用户数据

Return Values

-1表示失败,其他值作为NET_DVR_GetNextRemoteConfig、NET_DVR_StopRemoteConfig的句柄。接口返回失败请调用NET_DVR_GetLastError获取错误码,通过错误码判断出错原因。

Remarks

调用该接口启动长连接远程配置后,还需要调用其他接口获取相关参数,如下表所示:

dwCommand宏定义 含义 后续接口调用
NET_DVR_GET_ALARMHOST_MODULE_LIST 获取所有模块 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_ALARMHOST_ZONE_LIST_IN_SUBSYSTEM 获取指定子系统内的所有防区 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_ALARMHOST_TRIGGER_LIST 获取所有触发器 NET_DVR_GetNextRemoteConfig
NET_DVR_SEARCH_ARMHOST_EXTERNAL_MODULE 自动搜索外接模块 NULL
NET_DVR_REGISTER_ALARMHOST_EXTERNAL_MODULE 自动注册外接模块 NULL
NET_DVR_GET_ALL_VARIABLE_INFO 获取所有变量元素信息 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_HISTORY_VALUE 获取历史数据 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_ALL_REMOTECONTROLLER_LIST 获取所有遥控器 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_ALL_ALARM_RS485CFG 获取所有RS485参数 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_ALL_ALARMHOST_RS485_SLOT_CFG 获取所有485槽位参数 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_ALL_ALARM_POINT_CFG 获取所有点号参数 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_ALL_ALARM_SENSOR_CFG 获取所有模拟量参数 NET_DVR_GetNextRemoteConfig
NET_DVR_GET_ALL_ALARM_SENSOR_JOINT 获取所有模拟量联动参数 NET_DVR_GetNextRemoteConfig
  • 当命令dwCommand为NET_DVR_SEARCH_ARMHOST_EXTERNAL_MODULE或NET_DVR_REGISTER_ALARMHOST_EXTERNAL_MODULE时,调用该接口启动自动搜索或者自动注册,通过回调函数 fRemoteConfigCallback获取进度和状态。自动搜索或者自动注册完成后调用NET_DVR_StopRemoteConfig释放资源。然后再调用该接口,使用命令NET_DVR_GET_ALARMHOST_ZONE_LIST_IN_SUBSYSTEM和NET_DVR_GET_ALARMHOST_TRIGGER_LIST分别获取“子系统内所有防区”和“所有触发器”信息。
  • 自动搜索:搜索出当前可以通信的外接模块,自动注册:搜索出当前可以通信的外接模块并重新分配地址。
  • See Also

    NET_DVR_GetNextRemoteConfig   NET_DVR_StopRemoteConfig