一、版本信息
|
版本 |
日期 |
修改说明 |
|
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