接口方法
表1 DcClient支持的接口方法
| 接口 | 说明 |
|---|---|
| CreateFromEnv | 创建客户端 ,执行初始化操作 |
| Open | 打开客户端,开始消息收发 |
| Close | 关闭客户端,清理资源 |
| ForbidSendWhenBrokerOverLoaded | 设置是否在离线缓存达到阈值时禁止发送数据 |
| SendMode | 设置上报模式(同步|异步) |
| OnPointGet | 用于网关处理点位读取请求 |
| OnPointSet | 用于网关处理点位设置请求 |
| OnModuleShadowReceived | 用于网关处理模块影子,接收下行数采配置 |
| StartModuleShadow | 启动模块影子,设置模块影子回调,并触发获取影子的动作 |
| GetModuleShadow | 主动获取一次模块影子 |
| GetDevicesStatuses | 获取子设备状态 |
| PointReport | 点位上报 |
| DataSourceConnStateReport | 连接状态上报 |
1. 创建客户端
方法描述:
static DcClient CreateFromEnv();
方法功能:
根据环境变量创建客户端,返回客户端实例。
2. 打开客户端
方法描述:
void Open();
方法功能:
打开客户端,使用客户端其他功能前必须先调用该方法,才能正常收发消息。
3. 打开客户端
方法描述:
void Close();
方法功能:
关闭客户端,清理资源,程序将退出时调用该方法。
4. 点位设置请求处理
方法描述:
PointsSetRsp OnPointsSet(string requestId, PointsSetReq pointsSetReq);
方法功能:
点位设置回调,用于网关处理点位设置请求。
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | string | 用于唯一标识某次请求的请求ID |
| pointsSetReq | PointsSetReq | 点位设置请求的对象,该对象结构见下表 |
| @return | PointsSetRsp | 点位设置响应,网关处理完请求以后,需要返回该响应,该对象结构见下表 |
| 名称 | 类型 | 描述 |
|---|---|---|
| Points | Dictionary<string, object> | 按<点位ID,点位对象>存储点位数据的字典 |
| 名称 | 类型 | 描述 |
|---|---|---|
| ResultCode | int | 点位设置请求结果码 |
| ResultDesc | string | 点位设置请求结果描述 |
5. 点位读取请求处理
方法描述:
PointsGetRsp OnPointsGet(string requestId, PointsGetReq pointsGetReq);
方法功能:
点位读取回调,用于网关处理点位读取请求。
| 名称 | 类型 | 描述 |
|---|---|---|
| requestId | string | 用于唯一标识某次请求的请求ID |
| pointsGetReq | PointsGetReq | 点位读取请求的对象,该对象结构见下表 |
| @return | PointsGetRsp | 点位读取响应,网关处理完请求以后,需要返回该响应,该对象结构见下表 |
| 名称 | 类型 | 描述 |
|---|---|---|
| Points | List<string> | 按[点位ID]存储需要读的点位列表 |
| 名称 | 类型 | 描述 |
|---|---|---|
| Points | Dictionary<string, object> | 按<点位ID,点位对象>存储点位读取结果的字典 |
6. 模块影子下行处理
方法描述:
void OnModuleShadowReceived(ModuleShadow shadow);
方法功能:
模块影子下行回调,用于网关接收模块数采配置信息,可根据需要对模块影子进行缓存或持久化。
| 名称 | 类型 | 描述 |
|---|---|---|
| shadow | ModuleShadow | 模块影子 |
| 名称 | 类型 | 描述 |
|---|---|---|
| Properties | Dictionary<string, object> | 按<影子属性名,影子属性对象>存储的字典 |
| PropertiesUpdateTime | Dictionary<string, long> | 按<影子属性名,更新时间戳>存储的字典,用户可根据更新时间进行增量同步 |
7. StartModuleShadow
方法描述:
void StartModuleShadow(IModuleShadowCallback callback);
方法功能:
启动模块影子,设置模块影子用户回调,并主动触发一次模块影子的获取。SDK在收到下行的模块影子后将调用用户回调。
| 名称 | 类型 | 描述 |
|---|---|---|
| callback | IModuleShadowCallback | 用户回调 |
| 方法签名 | 描述 |
|---|---|
| void OnModuleShadowReceived(ModuleShadow shadow) | 收到模块影子回调 |
8. GetModuleShadow
方法描述:
void GetModuleShadow();
方法功能:
主动获取一次模块影子,获取成功后将触发用户回调。
9. GetDevicesStatuses
方法描述:
DevicesStatuses GetDevicesStatuses(List<string> deviceIds, int timeout);
方法功能:
获取子设备状态。
| 名称 | 类型 | 描述 |
|---|---|---|
| deviceIds | List<string> | 要查询的子设备ID列表 |
| timeout | int | 超时,范围1~30000(单位ms) |
| @return | DevicesStatuses | 查询到的子设备状态列表 |
| 名称 | 类型 | 描述 |
|---|---|---|
| Devices | List<DeviceStatus> | 存储设备状态信息的列表 |
| 名称 | 类型 | 描述 |
|---|---|---|
| DeviceId | string | 设备ID |
| Status | string | 设备状态 |
10. PointReport
方法描述:
void PointReport(PointsReport pointsReport);
方法功能:
点位上报。
| 名称 | 类型 | 描述 |
|---|---|---|
| pointsReport | PointsReport | 要上报的点位数据 |
| 名称 | 类型 | 描述 |
|---|---|---|
| Points | Dictionary<string, object> | 以<点位ID,点位数据对象>存储的字典 |
11. DataSourceConnStateReport
方法描述:
void DataSourceConnStateReport(DataSourceConnState dataSourceConnState);
方法功能:
上报连接状态。
| 名称 | 类型 | 描述 |
|---|---|---|
| dataSourceConnState | DataSourceConnState | 存储连接状态的对象 |
| 名称 | 类型 | 描述 |
|---|---|---|
| State | string | 连接状态 |
| Info | string | 状态描述 |
12. ForbidSendWhenBrokerOverLoaded
属性描述:
bool ForbidSendWhenBrokerOverLoaded { get; set; }; 属性功能:
设置是否在离线缓存满时禁止发送数据,默认值为false。当EdgeHub离线缓存达到阈值时,若设定为true,在属性上报和点位上报发送数据时,会抛出HubOverloadedException异常。
13. SendMode
属性描述:
ClientConfig.SendMode SendMode { get; set; }; 属性功能:
设置上报模式,默认为异步发送,若设定为同步发送,则上报数据时将同步等待3秒,超时则抛出TransportException异常。
| 名称 | 描述 |
|---|---|
| SendMode.Async | 异步发送 |
| SendMode.Sync | 同步发送 |