欣仰邦SC3.0协议网络设备C#版SDK接口调用说明
发表时间:2021-12-17作者:xmsiyb
一、版本信息
版本 |
日期 |
修改说明 |
V1.0.0 |
2021-10-18 |
创建 |
表1.1.1
二、开发环境
.net framework 4.6
三、文件列表
文件名 |
描述 |
是否必须 |
RK.NetDevice.SDK.dll |
开发时引用此库 |
是 |
RK.NetDevice.SDK.XML |
描述文件 |
否 |
NetDeviceParam.dat |
设备参数数据文件 |
是 |
表3.1.1
四、使用说明
1、创建项目
新建项目,选择framework版本为4.6,创建项目
2、添加引用
在新建的项目中右键,添加->引用->浏览,选择RK.NetDevice.SDK.dll 文件,确定即可
3、启动服务
1)添加命名空间引用:
using RK.NetDevice.SDK;
2)注册接收数据事件:
//登录数据接收处理
DeviceService.Instance.OnReceiveLoginData += Instance_OnReceiveLoginData;
//实时数据接收处理
DeviceService.Instance.OnReceiveRealTimeData += Instance_OnReceiveRealTimeData;
//主动上传的存储数据接收处理
DeviceService.Instance.OnReceiveStoreData += Instance_OnReceiveStoreData;
//继电器操作指令应答处理
DeviceService.Instance.OnReceiveTelecontrolAck += Instance_OnReceiveTelecontrolAck;
//校时命令应答处理
DeviceService.Instance.OnReceiveTimingAck += Instance_OnReceiveTimingAck;
3)启动监听服务:
DeviceService.Instance.Start("127.0.0.1", 2404);
五、接口说明
1、方法说明
1)设置参数文件路径
方法名: |
SetParamFile |
参数: |
string fileName 设备参数文件(NetDeviceParam.dat)该文件中包含设备参数的描述,用于设备参数的读取和下发,不可修改 |
返回值: |
无 |
方法原型: |
public void SetParamFile(string fileName) |
调用示例: |
DeviceService.Instance.SetParamFile("E:\NetDeviceParam.dat"); |
表5.1.1.1
2)启动监听服务
方法名: |
Start |
参数: |
string ip 监听ip。多网卡的情况下可以选择监听其中一个网卡的ip,可为空,为空则监听所有网卡;
int port 监听端口 |
返回值: |
布尔值。True:启动成功 False:启动失败 |
方法原型: |
public bool Start(string ip, int port); |
调用示例: |
DeviceService.Instance.Start("127.0.0.1", 2404); |
表5.1.2.1
3)停止监听服务
方法名: |
Stop |
参数: |
无 |
返回值: |
布尔值。True:停止成功 False:停止失败 |
方法原型: |
public bool Stop(); |
调用示例: |
DeviceService.Instance.Stop(); |
表5.1.3.1
4)执行继电器操作
方法名: |
Telecontrol |
参数: |
int deviceAddr 设备地址
short seqNum 帧序号 用来表示一次交互的消息ID,可以为0
List<TelecontrolParam> paramList 操作参数列表,参考表5.1.3.2 |
返回值: |
true:发送成功;false:发送失败 |
方法原型: |
Public bool Telecontrol(int deviceAddr, short seqNum, List<TelecontrolParam> paramList); |
调用示例: |
DeviceService.Instance.Telecontrol(10000000, 0, paramList); |
说明 |
设备响时触发OnReceiveTelecontrolAck 事件 |
表5.1.4.1
TelecontrolParam
字段名 |
类型 |
描述 |
RelayNo |
short |
继电器编号 |
Opt |
short |
继电器执行类型 1:代表执行继电器闭合操作;0:代表执行继电器释放操作 |
OptTime |
short |
继电器执行时间,单位秒,若为0则一直吸合或者释放 |
表5.1.4.2
5)发送校时指令
方法名: |
Timming |
参数: |
int deviceAddr 设备地址
short seqNum 帧序号 用来表示一次交互的消息ID,可以为0 |
返回值: |
true:发送成功;false:发送失败 |
方法原型: |
public bool Timing(int deviceAddr, short seqNum); |
调用示例: |
DeviceService.Instance.Timing(10000000, 0); |
说明 |
设备响应时触发OnReceiveTimingAck 事件 |
表5.1.5.1
6)手动召唤实时数据
方法名: |
CallRealTimeData |
参数: |
int deviceAddr 设备地址
short seqNum 帧序号 |
返回值: |
true:发送成功;false:发送失败 |
方法原型: |
public bool CallRealTimeData(int deviceAddr, short seqNum); |
调用示例: |
DeviceService.Instance.CallRealTimeData(10000000, 0); |
说明 |
设备响应时触发OnReceiveRealTimeData 事件 |
表5.1.6.1
7)读取设备存储数据条数
方法名: |
ReadStoreDataCount |
参数: |
int deviceAddr 设备地址
short seqNum 帧序号 |
返回值: |
true:发送成功;false:发送失败 |
方法原型: |
public bool ReadStoreDataCount(int deviceAddr, short seqNum); |
调用示例: |
DeviceService.Instance.ReadStoreDataCount(10000000, 0); |
说明 |
设备响应时触发OnReceiveStoreDataCount事件 |
表5.1.7.1
8)读取设备存储数据
方法名: |
ReadStoreData |
参数: |
int deviceAddr 设备地址
short seqNum 帧序号 |
返回值: |
true:发送成功;false:发送失败 |
方法原型: |
public bool ReadStoreData(int deviceAddr, short seqNum); |
调用示例: |
DeviceService.Instance.ReadStoreData(10000000, 0); |
说明 |
设备响应时触发OnReceiveStoreDataAck事件 |
表5.1.8.1
9)读取设备参数列表
方法名: |
ReadParamItemsIds |
参数: |
int deviceAddr 设备地址
short seqNum 帧序号 |
返回值: |
true:发送成功;false:发送失败 |
方法原型: |
public bool ReadParamItemsIds (int deviceAddr, short seqNum); |
调用示例: |
DeviceService.Instance.ReadParamItemsIds(10000000, 0); |
说明: |
设备响应时触发OnReceiveParamIds事件 |
表5.1.9.1
10)读取设备参数
方法名: |
ReadParamItems |
参数: |
int deviceAddr 设备地址
short seqNum 帧序号
List<short> paramIds设备参数编号。由ReadDictItemsIds方法获得 |
返回值: |
true:发送成功;false:发送失败 |
方法原型: |
public bool ReadParamItems(int deviceAddr,short seqNum,List<short> paramIds); |
调用示例: |
DeviceService.Instance.ReadParamItems(10000000, 0, paramIds); |
说明: |
设备响应时触发OnReceiveParamItems事件 |
表5.1.10.1
11)下发设备参数
方法名: |
WriteParamItems |
参数: |
int deviceAddr 设备地址
short seqNum 帧序号
List< ParamItem> paramItems设备参数值,参考表5.3.7.2 |
返回值: |
true:发送成功;false:发送失败 |
方法原型: |
public bool WriteParamItems (int deviceAddr, short seqNum, List< ParamItem> paramItems); |
调用示例: |
DeviceService.Instance. WriteParamItems(10000000, 0, paramItems); |
说明: |
设备响应时触发OnReceiveAffectedParamItems事件 |
表5.1.11.1
2、事件说明
1)OnReceiveLoginData
事件: |
OnReceiveLoginData |
描述: |
设备发送登录数据时触发此事件 |
参数: |
LoginData data 登录数据 参考表5.3.1.1 |
表5.2.1.1
2)OnReceiveRealTimeData
事件: |
OnReceiveRealTimeData |
描述: |
设备发送实时数据时触发此事件 |
参数: |
RealTimeData data 实时数据 参考表5.3.2.1 |
表5.2.2.1
3)OnReceiveStoreData
事件: |
OnReceiveStoreData |
描述: |
设备主动上传已存储数据时触发此事件 |
参数: |
StoreData data 存储数据 参考表5.3.3.1 |
表5.2.3.1
4)OnReceiveTelecontrolAck
事件: |
OnReceiveTelecontrolAck |
描述: |
设备应答继电器操作时触发此事件 |
参数: |
TelecontrolAck ack设备响应数据 参考表5.3.9.1 |
表5.2.4.1
5)OnReceiveTimingAck
事件: |
OnReceiveTimingAck |
描述: |
设备应答校时结果时触发此事件 |
参数: |
TimingAck ack 校时结果 参考表5.3.10.1 |
表5.2.5.1
6)OnReceiveParamIds
事件: |
OnReceiveParamIds |
描述: |
设备应答读取参数字典编号时触发此事件 |
参数: |
ParamIds ack 参考表5.3.5.1 |
表5.2.6.1
7)OnReceiveParamItems
事件: |
OnReceiveParamItems |
描述: |
终端响应下载参数命令时触发此事件 |
参数: |
ParamItems ack 参考表5.3.7.1 |
表5.2.7.1
8)OnReceiveAffectedParamItems
事件: |
OnReceiveAffectedParamItems |
描述: |
设备应答写入参数结果时触发此事件 |
参数: |
AffectedParamItems ack 参考表5.3.8.1 |
表5.2.8.1
9)OnReceiveStoreDataCount
事件: |
OnReceiveStoreDataCount |
描述: |
设备应答读取已存储数据条数时触发此事件 |
参数: |
StoreDataCount ack 参考表5.3.4.1 |
表5.2.9.1
10)OnReceiveStoreDataAck
事件: |
OnReceiveStoreDataAck |
描述: |
设备应答读取已存储数据时触发此事件 |
参数: |
StoreDataAck ack 参考表5.3.5.1 |
表5.2.10.1
11)OnReceiveDataTransAck
事件: |
OnReceiveDataTransAck |
描述: |
设备应答数据透传结果时触发此事件 |
参数: |
DataTransAck ack 参考表5.3.11.1 |
表5.2.10.1
3、数据类
1)登录数据 LoginData
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号,与设备一次交互的唯一标识,应答方须复制此值进行应答。下同 |
表5.3.1.1
2)实时数据RealTimeData
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
NodeDataList |
List<NodeData> |
节点数据列表。NodeData参考表5.3.2.2 |
表5.3.2.1
NodeData
字段名 |
类型 |
描述 |
NodeId |
short |
节点编号 |
RecordTime |
DateTime |
时间 |
DataType |
DataTypes |
数据类型 |
Analog1 |
float |
模拟量1值 |
Analog2 |
float |
模拟量2值 |
IntData |
int |
整形值 |
FloatData |
float |
浮点型值 |
DoubleData |
double |
双精度值 |
SwitchData |
Int |
开关量值, 0代表无效;1代表闭合;2代表断开 |
StringData |
String |
字符串值 |
CoordinateType |
int |
0代表为上送的百度经纬度
1代表基站为中国联通
2代表基站为中国移动
03代表GPS经纬度信息 |
Lng |
Float |
经度 |
Lat |
float |
纬度 |
Data |
string |
转换后的数据,模拟量1和模拟量2的数据用英文逗号分隔 |
表5.3.2.2
3)主动上传的存储数据StoreData
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
NodeDataList |
List<NodeData> |
节点数据列表。NodeData参考表5.3.2.2 |
表5.3.3.1
4)设备已存储数据的条数StoreDataCount
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
Count |
int |
已存储数据条数 |
表5.3.4.1
5)召唤的已存储数据StoreDataAck
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
TotalCount |
int |
设备上已存储数据总条数 |
SurplusCount |
int |
设备上已存储数据剩余条数 |
NodeDataList |
List<NodeData> |
节点数据列表。NodeData参考表5.3.2.2 |
表5.3.5.1
6)设备字典编号列表ParamIds
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
TotalDictCount |
int |
本设备所有字典总数 |
IdList |
List<short> |
设备字典列表 |
表5.3.6.1
7)设备参数ParamItems
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
ParamItemList |
List<Paramtem> |
设备参数列表参考表5.3.7.2 |
表5.3.7.1
ParamItem
字段名 |
类型 |
描述 |
ParamId |
short |
参数编号 |
ParamValueType |
ParamValueTypes |
参数值类型 |
ParamName |
string |
参数名称 |
Value |
string |
参数值 |
MaxStrLength |
int |
字符串类型的字典值最大长度 |
MinValue |
int |
数值类型的最小值 |
MaxValue |
int |
数值类型的最大值 |
ValueDescription |
Dictionary<string, string> |
数值描述 |
方法 |
参数 |
描述 |
Create |
short paramId 设备参数编号string value 参数值 |
创建ParamItem类,用于下发参数 |
表5.3.7.2
8)下发设备参数应答AffectedParamItems
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
ParamIdList |
List<short> |
受影响的参数字典编号 |
表5.3.8.1
9)继电器操作应答TelecontrolAck
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
RelayStatusList |
List<RelayStatus> |
继电器状态列表参考表5.3.9.2 |
表5.3.9.1
RelayStatus
字段名 |
类型 |
描述 |
RelayNo |
short |
继电器编号 |
ExecResult |
int |
执行情况 成功1,失败2,未知错误3 |
CurrStatus |
int |
当前状态 0断开,1吸合 |
表5.3.9.2
10)校时指令应答TimingAck
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
ExecResult |
int |
执行结果 1执行成功 其他执行失败 |
表5.3.10.1
11)透传数据应答DataTransAck
字段名 |
类型 |
描述 |
DeviceAddr |
int |
设备地址 |
SeqNum |
short |
帧序号 |
ChannelNo |
int |
通道编号 |
TransData |
byte[] |
透传数据 |
表5.3.11.1