实时互动-工业能源版 控制授权管理

远端设备作为旁观者,只能观看现场设备音视频内容和收到现场设备的上报数据,无法给现场设备下发控制消息。

相关产品
实时互动-工业能源版 产品页,含版本规格、价格与购买入口。

注意:说明:

注意:控制授权管理用于管理远端设备给现场设备发送消息的权限。为保障操控的安全性,默认限制同一时刻只有一个远端设备可以给现场设备发送控制消息

一、权限类型

·guest 权限

·master 权限

远端设备作为操控者,既可以观看现场设备音视频内容和收到现场设备的上报数据,又可以给现场设备下发控制消息。

二、基本流程

1. 远端设备向现场设备发送授权请求权限, 0 为 guest 权限,1为 master 权限。

2. 现场设备根据回调的远端设备授权请求,对远端设备进行授权处理,并给相关远端设备发送授权通知。

3. 远端设备可根据现场设备的授权通知,判断当前授权状态。

三、授权模式

远端设备 SDK 和现场设备 SDK 可以分别配置授权模式是否为自动模式。具体配置的 JSON 字段为 auto_permission 字段,设置为1时为自动授权模式,设置为0时是应用授权模式,缺省配置默认为自动授权模式。

四、自动授权模式

应用可无需关心授权的处理,SDK 会自动按以下默认逻辑进行授权处理:

·远端设备设置自动授权模式时,在发起 connect 请求时,会自动给连接的现场设备发送 master 权限授权请求。

·现场设备设置自动授权模式时,收到远端设备的授权请求时,会自动按远端设备请求的授权权限对远端设备进行授权处理。

五、应用授权模式

SDK 提供相关授权接口,应用需要进行接口调用进行授权处理:

·远端设备 SDK 不会自动发送 master 权限授权请求,需要应用显式调用权限请求接口,向现场设备请求权限授权。

·现场设备 SDK 不会自动处理授权请求,需要应用根据回调的授权请求内容,结合应用定义的授权规则,显式调用授权接口,对远端设备进行授权。

六、注册现场设备操控权限变化通知

/** 回调注册函数* context 上下文指针,回调时会返回注册时传入的该指针,* callback 注册的 TRRO_OnOperationPermissionState 回调函数*/extern "C" TRRO_EXPORT void TRRO_registerOnOperationPermissionState(void* context, TRRO_OnOperationPermissionState* callback);/** #name : TRRO_OnOperationPermissionState* @brief : 回调现场设备操控权限状态通知* @input : context 回调上下文指针, 返回注册回调函数时传入的 context* field_devid 来源现场设备 ID* self_permission 本远端设备当前操控权限,参考 TrroPermission, 0 是 guest,只有观看权限, 1是 master,拥有完全控制权限* master_devid 拥有 master 权限的远端设备 ID* @return : void*/typedef void STD_CALL TRRO_OnOperationPermissionState(void* context, const char* field_devid, int self_permission, const char* master_devid);

七、请求现场设备操控权限

/** @name : TRRO_requestPermission* @brief : 向网关发出权限请求,网关会反馈TRRO_OnOperationPermissionState 更新权限* @input : gwid 目标设备 ID* permisson 参考结构体 TrroPermission* @return : 成功1 失败 <= 0*/extern "C" TRRO_EXPORT int TRRO_requestPermission(const char* gwid, int permisson);

八、注册远端设备操控权限请求通知回调

使用说明:此接口用于在现场设备接收权限控制请求,可按需选择使用。

/*** @name TRRO_registerOperationPermissionRequest* @brief 注册远端设备操控权限请求通知回调* @param[in] context 上下文* @param[in] callback 回调函数* @return 1 for success, other failed*/extern "C" TRRO_EXPORT int TRRO_registerOperationPermissionRequest(void *context, TRRO_onOperationPermissionRequest *callback);

参数 含义
context 上下文指针,回调时会返回该指针用于定位。
callback TRRO_onOperationPermissionRequest 回调函数。

/*** @name TRRO_onOperationPermissionRequest* @brief 远端设备操控权限申请通知* @param[in] remote_devid 请求权限的 remote deviceId* @param[in] permission 请求的权限,参考TrroPermission, 0: guest 只有观看权限, 1: master 完全控制权限* @return void */typedef void TRRO_onOperationPermissionRequest(void* context, const char* remote_devid, int permission);

参数 含义
context 上下文指针,回调时会返回该指针用于定位。
remote_devid 请求权限的 remote deviceId。
permission 请求的权限,参见 TrroPermission:0:guest 只有观看权限。1:master 完全控制权限。

九、设置远端设备操作权限

使用说明:此接口用于在该现场设备设置远端设备的操作权限。

/** * @name TRRO_setOperationPermission * @brief 设置远端设备操控权限,目前同时只能有一个远端设备有 master 权限,若已有远端设备是 master 权限,调用该接口设置 master权限,会自动取消之前设备的master权限然后设置新设备; * @param[in] remote_devid 设置权限的对端设备 ID * @param[in] permission 参考 TrroPermission, 0 guest,只有观看权、1 master, 完全控制权限 * @return 1 for success, other failed */extern "C" TRRO_EXPORT int TRRO_setOperationPermission(const char* remote_devid, int permission);

参数 含义
context 上下文指针,回调时会返回该指针用于定位。
callback 回调函数。
赞 (0)
上一篇 4天前
下一篇 4天前