更新时间:2023-05-30 GMT+08:00
分享

接口方法

表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);

方法功能:

点位设置回调,用于网关处理点位设置请求。

表1 参数说明

名称

类型

描述

requestId

string

用于唯一标识某次请求的请求ID

pointsSetReq

PointsSetReq

点位设置请求的对象,该对象结构见下表

@return

PointsSetRsp

点位设置响应,网关处理完请求以后,需要返回该响应,该对象结构见下表

表2 PointsSetReq结构说明

名称

类型

描述

Points

Dictionary<string, object>

按<点位ID,点位对象>存储点位数据的字典

表3 PointsSetRsp结构说明

名称

类型

描述

ResultCode

int

点位设置请求结果码

ResultDesc

string

点位设置请求结果描述

5. 点位读取请求处理

方法描述:

PointsGetRsp OnPointsGet(string requestId, PointsGetReq pointsGetReq);

方法功能:

点位读取回调,用于网关处理点位读取请求。

表4 参数说明

名称

类型

描述

requestId

string

用于唯一标识某次请求的请求ID

pointsGetReq

PointsGetReq

点位读取请求的对象,该对象结构见下表

@return

PointsGetRsp

点位读取响应,网关处理完请求以后,需要返回该响应,该对象结构见下表

表5 PointsGetReq结构说明

名称

类型

描述

Points

List<string>

按[点位ID]存储需要读的点位列表

表6 PointsGetRsp结构说明

名称

类型

描述

Points

Dictionary<string, object>

按<点位ID,点位对象>存储点位读取结果的字典

6. 模块影子下行处理

方法描述:

void OnModuleShadowReceived(ModuleShadow shadow);

方法功能:

模块影子下行回调,用于网关接收模块数采配置信息,可根据需要对模块影子进行缓存或持久化。

表7 参数说明

名称

类型

描述

shadow

ModuleShadow

模块影子

表8 ModuleShadow结构说明

名称

类型

描述

Properties

Dictionary<string, object>

按<影子属性名,影子属性对象>存储的字典

PropertiesUpdateTime

Dictionary<string, long>

按<影子属性名,更新时间戳>存储的字典,用户可根据更新时间进行增量同步

7. StartModuleShadow

方法描述:

void StartModuleShadow(IModuleShadowCallback callback);

方法功能:

启动模块影子,设置模块影子用户回调,并主动触发一次模块影子的获取。SDK在收到下行的模块影子后将调用用户回调。

表9 参数说明

名称

类型

描述

callback

IModuleShadowCallback

用户回调

表10 IModuleShadowCallback说明

方法签名

描述

void OnModuleShadowReceived(ModuleShadow shadow)

收到模块影子回调

8. GetModuleShadow

方法描述:

void GetModuleShadow();

方法功能:

主动获取一次模块影子,获取成功后将触发用户回调。

9. GetDevicesStatuses

方法描述:

 DevicesStatuses GetDevicesStatuses(List<string> deviceIds, int timeout);

方法功能:

获取子设备状态。

表11 参数说明

名称

类型

描述

deviceIds

List<string>

要查询的子设备ID列表

timeout

int

超时,范围1~30000(单位ms)

@return

DevicesStatuses

查询到的子设备状态列表

表12 DevicesStatuses结构说明

名称

类型

描述

Devices

List<DeviceStatus>

存储设备状态信息的列表

表13 DevicesStatus结构说明

名称

类型

描述

DeviceId

string

设备ID

Status

string

设备状态

10. PointReport

方法描述:

 void PointReport(PointsReport pointsReport);

方法功能:

点位上报。

表14 参数说明

名称

类型

描述

pointsReport

PointsReport

要上报的点位数据

表15 PointsReport结构说明

名称

类型

描述

Points

Dictionary<string, object>

以<点位ID,点位数据对象>存储的字典

11. DataSourceConnStateReport

方法描述:

 void DataSourceConnStateReport(DataSourceConnState dataSourceConnState);

方法功能:

上报连接状态。

表16 参数说明

名称

类型

描述

dataSourceConnState

DataSourceConnState

存储连接状态的对象

表17 DataSourceConnState结构说明

名称

类型

描述

State

string

连接状态

Info

string

状态描述

12. ForbidSendWhenBrokerOverLoaded

属性描述:

 bool ForbidSendWhenBrokerOverLoaded { get; set; };

属性功能:

设置是否在离线缓存满时禁止发送数据,默认值为false。当EdgeHub离线缓存达到阈值时,若设定为true,在属性上报和点位上报发送数据时,会抛出HubOverloadedException异常。

13. SendMode

属性描述:

 ClientConfig.SendMode SendMode { get; set; };

属性功能:

设置上报模式,默认为异步发送,若设定为同步发送,则上报数据时将同步等待3秒,超时则抛出TransportException异常。

表18 SendMode说明

名称

描述

SendMode.Async

异步发送

SendMode.Sync

同步发送

相关文档