一、版本信息
版本 |
日期 |
修改說明 |
V1.0.0 |
2021-10-18 |
創(chuàng)建 |
表1.1.1
二、開發(fā)環(huán)境
.net framework 4.6
三、文件列表
文件名 |
描述 |
是否必須 |
RK.NetDevice.SDK.dll |
開發(fā)時引用此庫 |
是 |
RK.NetDevice.SDK.XML |
描述文件 |
否 |
NetDeviceParam.dat |
設(shè)備參數(shù)數(shù)據(jù)文件 |
是 |
表3.1.1
四、使用說明
1、創(chuàng)建項目
新建項目,選擇framework版本為4.6,創(chuàng)建項目
2、添加引用
在新建的項目中右鍵,添加->引用->瀏覽,選擇RK.NetDevice.SDK.dll 文件,確定即可
3、啟動服務
1)添加命名空間引用:
using RK.NetDevice.SDK;
2)注冊接收數(shù)據(jù)事件:
//登錄數(shù)據(jù)接收處理
DeviceService.Instance.OnReceiveLoginData += Instance_OnReceiveLoginData;
//實時數(shù)據(jù)接收處理
DeviceService.Instance.OnReceiveRealTimeData += Instance_OnReceiveRealTimeData;
//主動上傳的存儲數(shù)據(jù)接收處理
DeviceService.Instance.OnReceiveStoreData += Instance_OnReceiveStoreData;
//繼電器操作指令應答處理
DeviceService.Instance.OnReceiveTelecontrolAck += Instance_OnReceiveTelecontrolAck;
//校時命令應答處理
DeviceService.Instance.OnReceiveTimingAck += Instance_OnReceiveTimingAck;
3)啟動監(jiān)聽服務:
DeviceService.Instance.Start("127.0.0.1", 2404);
五、接口說明
1、方法說明
1)設(shè)置參數(shù)文件路徑
方法名: |
SetParamFile |
參數(shù): |
string fileName 設(shè)備參數(shù)文件(NetDeviceParam.dat)該文件中包含設(shè)備參數(shù)的描述,用于設(shè)備參數(shù)的讀取和下發(fā),不可修改 |
返回值: |
無 |
方法原型: |
public void SetParamFile(string fileName) |
調(diào)用示例: |
DeviceService.Instance.SetParamFile("E:\NetDeviceParam.dat"); |
表5.1.1.1
2)啟動監(jiān)聽服務
方法名: |
Start |
參數(shù): |
string ip 監(jiān)聽ip。多網(wǎng)卡的情況下可以選擇監(jiān)聽其中一個網(wǎng)卡的ip,可為空,為空則監(jiān)聽所有網(wǎng)卡;
int port 監(jiān)聽端口 |
返回值: |
布爾值。True:啟動成功 False:啟動失敗 |
方法原型: |
public bool Start(string ip, int port); |
調(diào)用示例: |
DeviceService.Instance.Start("127.0.0.1", 2404); |
表5.1.2.1
3)停止監(jiān)聽服務
方法名: |
Stop |
參數(shù): |
無 |
返回值: |
布爾值。True:停止成功 False:停止失敗 |
方法原型: |
public bool Stop(); |
調(diào)用示例: |
DeviceService.Instance.Stop(); |
表5.1.3.1
4)執(zhí)行繼電器操作
方法名: |
Telecontrol |
參數(shù): |
int deviceAddr 設(shè)備地址
short seqNum 幀序號 用來表示一次交互的消息ID,可以為0
List<TelecontrolParam> paramList 操作參數(shù)列表,參考表5.1.3.2 |
返回值: |
true:發(fā)送成功;false:發(fā)送失敗 |
方法原型: |
Public bool Telecontrol(int deviceAddr, short seqNum, List<TelecontrolParam> paramList); |
調(diào)用示例: |
DeviceService.Instance.Telecontrol(10000000, 0, paramList); |
說明 |
設(shè)備響時觸發(fā)OnReceiveTelecontrolAck 事件 |
表5.1.4.1
TelecontrolParam
字段名 |
類型 |
描述 |
RelayNo |
short |
繼電器編號 |
Opt |
short |
繼電器執(zhí)行類型 1:代表執(zhí)行繼電器閉合操作;0:代表執(zhí)行繼電器釋放操作 |
OptTime |
short |
繼電器執(zhí)行時間,單位秒,若為0則一直吸合或者釋放 |
表5.1.4.2
5)發(fā)送校時指令
方法名: |
Timming |
參數(shù): |
int deviceAddr 設(shè)備地址
short seqNum 幀序號 用來表示一次交互的消息ID,可以為0 |
返回值: |
true:發(fā)送成功;false:發(fā)送失敗 |
方法原型: |
public bool Timing(int deviceAddr, short seqNum); |
調(diào)用示例: |
DeviceService.Instance.Timing(10000000, 0); |
說明 |
設(shè)備響應時觸發(fā)OnReceiveTimingAck 事件 |
表5.1.5.1
6)手動召喚實時數(shù)據(jù)
方法名: |
CallRealTimeData |
參數(shù): |
int deviceAddr 設(shè)備地址
short seqNum 幀序號 |
返回值: |
true:發(fā)送成功;false:發(fā)送失敗 |
方法原型: |
public bool CallRealTimeData(int deviceAddr, short seqNum); |
調(diào)用示例: |
DeviceService.Instance.CallRealTimeData(10000000, 0); |
說明 |
設(shè)備響應時觸發(fā)OnReceiveRealTimeData 事件 |
表5.1.6.1
7)讀取設(shè)備存儲數(shù)據(jù)條數(shù)
方法名: |
ReadStoreDataCount |
參數(shù): |
int deviceAddr 設(shè)備地址
short seqNum 幀序號 |
返回值: |
true:發(fā)送成功;false:發(fā)送失敗 |
方法原型: |
public bool ReadStoreDataCount(int deviceAddr, short seqNum); |
調(diào)用示例: |
DeviceService.Instance.ReadStoreDataCount(10000000, 0); |
說明 |
設(shè)備響應時觸發(fā)OnReceiveStoreDataCount事件 |
表5.1.7.1
8)讀取設(shè)備存儲數(shù)據(jù)
方法名: |
ReadStoreData |
參數(shù): |
int deviceAddr 設(shè)備地址
short seqNum 幀序號 |
返回值: |
true:發(fā)送成功;false:發(fā)送失敗 |
方法原型: |
public bool ReadStoreData(int deviceAddr, short seqNum); |
調(diào)用示例: |
DeviceService.Instance.ReadStoreData(10000000, 0); |
說明 |
設(shè)備響應時觸發(fā)OnReceiveStoreDataAck事件 |
表5.1.8.1
9)讀取設(shè)備參數(shù)列表
方法名: |
ReadParamItemsIds |
參數(shù): |
int deviceAddr 設(shè)備地址
short seqNum 幀序號 |
返回值: |
true:發(fā)送成功;false:發(fā)送失敗 |
方法原型: |
public bool ReadParamItemsIds (int deviceAddr, short seqNum); |
調(diào)用示例: |
DeviceService.Instance.ReadParamItemsIds(10000000, 0); |
說明: |
設(shè)備響應時觸發(fā)OnReceiveParamIds事件 |
表5.1.9.1
10)讀取設(shè)備參數(shù)
方法名: |
ReadParamItems |
參數(shù): |
int deviceAddr 設(shè)備地址
short seqNum 幀序號
List<short> paramIds設(shè)備參數(shù)編號。由ReadDictItemsIds方法獲得 |
返回值: |
true:發(fā)送成功;false:發(fā)送失敗 |
方法原型: |
public bool ReadParamItems(int deviceAddr,short seqNum,List<short> paramIds); |
調(diào)用示例: |
DeviceService.Instance.ReadParamItems(10000000, 0, paramIds); |
說明: |
設(shè)備響應時觸發(fā)OnReceiveParamItems事件 |
表5.1.10.1
11)下發(fā)設(shè)備參數(shù)
方法名: |
WriteParamItems |
參數(shù): |
int deviceAddr 設(shè)備地址
short seqNum 幀序號
List< ParamItem> paramItems設(shè)備參數(shù)值,參考表5.3.7.2 |
返回值: |
true:發(fā)送成功;false:發(fā)送失敗 |
方法原型: |
public bool WriteParamItems (int deviceAddr, short seqNum, List< ParamItem> paramItems); |
調(diào)用示例: |
DeviceService.Instance. WriteParamItems(10000000, 0, paramItems); |
說明: |
設(shè)備響應時觸發(fā)OnReceiveAffectedParamItems事件 |
表5.1.11.1
2、事件說明
1)OnReceiveLoginData
事件: |
OnReceiveLoginData |
描述: |
設(shè)備發(fā)送登錄數(shù)據(jù)時觸發(fā)此事件 |
參數(shù): |
LoginData data 登錄數(shù)據(jù) 參考表5.3.1.1 |
表5.2.1.1
2)OnReceiveRealTimeData
事件: |
OnReceiveRealTimeData |
描述: |
設(shè)備發(fā)送實時數(shù)據(jù)時觸發(fā)此事件 |
參數(shù): |
RealTimeData data 實時數(shù)據(jù) 參考表5.3.2.1 |
表5.2.2.1
3)OnReceiveStoreData
事件: |
OnReceiveStoreData |
描述: |
設(shè)備主動上傳已存儲數(shù)據(jù)時觸發(fā)此事件 |
參數(shù): |
StoreData data 存儲數(shù)據(jù) 參考表5.3.3.1 |
表5.2.3.1
4)OnReceiveTelecontrolAck
事件: |
OnReceiveTelecontrolAck |
描述: |
設(shè)備應答繼電器操作時觸發(fā)此事件 |
參數(shù): |
TelecontrolAck ack設(shè)備響應數(shù)據(jù) 參考表5.3.9.1 |
表5.2.4.1
5)OnReceiveTimingAck
事件: |
OnReceiveTimingAck |
描述: |
設(shè)備應答校時結(jié)果時觸發(fā)此事件 |
參數(shù): |
TimingAck ack 校時結(jié)果 參考表5.3.10.1 |
表5.2.5.1
6)OnReceiveParamIds
事件: |
OnReceiveParamIds |
描述: |
設(shè)備應答讀取參數(shù)字典編號時觸發(fā)此事件 |
參數(shù): |
ParamIds ack 參考表5.3.5.1 |
表5.2.6.1
7)OnReceiveParamItems
事件: |
OnReceiveParamItems |
描述: |
終端響應下載參數(shù)命令時觸發(fā)此事件 |
參數(shù): |
ParamItems ack 參考表5.3.7.1 |
表5.2.7.1
8)OnReceiveAffectedParamItems
事件: |
OnReceiveAffectedParamItems |
描述: |
設(shè)備應答寫入?yún)?shù)結(jié)果時觸發(fā)此事件 |
參數(shù): |
AffectedParamItems ack 參考表5.3.8.1 |
表5.2.8.1
9)OnReceiveStoreDataCount
事件: |
OnReceiveStoreDataCount |
描述: |
設(shè)備應答讀取已存儲數(shù)據(jù)條數(shù)時觸發(fā)此事件 |
參數(shù): |
StoreDataCount ack 參考表5.3.4.1 |
表5.2.9.1
10)OnReceiveStoreDataAck
事件: |
OnReceiveStoreDataAck |
描述: |
設(shè)備應答讀取已存儲數(shù)據(jù)時觸發(fā)此事件 |
參數(shù): |
StoreDataAck ack 參考表5.3.5.1 |
表5.2.10.1
11)OnReceiveDataTransAck
事件: |
OnReceiveDataTransAck |
描述: |
設(shè)備應答數(shù)據(jù)透傳結(jié)果時觸發(fā)此事件 |
參數(shù): |
DataTransAck ack 參考表5.3.11.1 |
表5.2.10.1
3、數(shù)據(jù)類
1)登錄數(shù)據(jù) LoginData
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號,與設(shè)備一次交互的唯一標識,應答方須復制此值進行應答。下同 |
表5.3.1.1
2)實時數(shù)據(jù)RealTimeData
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
NodeDataList |
List<NodeData> |
節(jié)點數(shù)據(jù)列表。NodeData參考表5.3.2.2 |
表5.3.2.1
NodeData
字段名 |
類型 |
描述 |
NodeId |
short |
節(jié)點編號 |
RecordTime |
DateTime |
時間 |
DataType |
DataTypes |
數(shù)據(jù)類型 |
Analog1 |
float |
模擬量1值 |
Analog2 |
float |
模擬量2值 |
IntData |
int |
整形值 |
FloatData |
float |
浮點型值 |
DoubleData |
double |
雙精度值 |
SwitchData |
Int |
開關(guān)量值, 0代表無效;1代表閉合;2代表斷開 |
StringData |
String |
字符串值 |
CoordinateType |
int |
0代表為上送的百度經(jīng)緯度
1代表基站為中國聯(lián)通
2代表基站為中國移動
03代表GPS經(jīng)緯度信息 |
Lng |
Float |
經(jīng)度 |
Lat |
float |
緯度 |
Data |
string |
轉(zhuǎn)換后的數(shù)據(jù),模擬量1和模擬量2的數(shù)據(jù)用英文逗號分隔 |
表5.3.2.2
3)主動上傳的存儲數(shù)據(jù)StoreData
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
NodeDataList |
List<NodeData> |
節(jié)點數(shù)據(jù)列表。NodeData參考表5.3.2.2 |
表5.3.3.1
4)設(shè)備已存儲數(shù)據(jù)的條數(shù)StoreDataCount
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
Count |
int |
已存儲數(shù)據(jù)條數(shù) |
表5.3.4.1
5)召喚的已存儲數(shù)據(jù)StoreDataAck
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
TotalCount |
int |
設(shè)備上已存儲數(shù)據(jù)總條數(shù) |
SurplusCount |
int |
設(shè)備上已存儲數(shù)據(jù)剩余條數(shù) |
NodeDataList |
List<NodeData> |
節(jié)點數(shù)據(jù)列表。NodeData參考表5.3.2.2 |
表5.3.5.1
6)設(shè)備字典編號列表ParamIds
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
TotalDictCount |
int |
本設(shè)備所有字典總數(shù) |
IdList |
List<short> |
設(shè)備字典列表 |
表5.3.6.1
7)設(shè)備參數(shù)ParamItems
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
ParamItemList |
List<Paramtem> |
設(shè)備參數(shù)列表參考表5.3.7.2 |
表5.3.7.1
ParamItem
字段名 |
類型 |
描述 |
ParamId |
short |
參數(shù)編號 |
ParamValueType |
ParamValueTypes |
參數(shù)值類型 |
ParamName |
string |
參數(shù)名稱 |
Value |
string |
參數(shù)值 |
MaxStrLength |
int |
字符串類型的字典值最大長度 |
MinValue |
int |
數(shù)值類型的最小值 |
MaxValue |
int |
數(shù)值類型的最大值 |
ValueDescription |
Dictionary<string, string> |
數(shù)值描述 |
方法 |
參數(shù) |
描述 |
Create |
short paramId 設(shè)備參數(shù)編號string value 參數(shù)值 |
創(chuàng)建ParamItem類,用于下發(fā)參數(shù) |
表5.3.7.2
8)下發(fā)設(shè)備參數(shù)應答AffectedParamItems
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
ParamIdList |
List<short> |
受影響的參數(shù)字典編號 |
表5.3.8.1
9)繼電器操作應答TelecontrolAck
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
RelayStatusList |
List<RelayStatus> |
繼電器狀態(tài)列表參考表5.3.9.2 |
表5.3.9.1
RelayStatus
字段名 |
類型 |
描述 |
RelayNo |
short |
繼電器編號 |
ExecResult |
int |
執(zhí)行情況 成功1,失敗2,未知錯誤3 |
CurrStatus |
int |
當前狀態(tài) 0斷開,1吸合 |
表5.3.9.2
10)校時指令應答TimingAck
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
ExecResult |
int |
執(zhí)行結(jié)果 1執(zhí)行成功 其他執(zhí)行失敗 |
表5.3.10.1
11)透傳數(shù)據(jù)應答DataTransAck
字段名 |
類型 |
描述 |
DeviceAddr |
int |
設(shè)備地址 |
SeqNum |
short |
幀序號 |
ChannelNo |
int |
通道編號 |
TransData |
byte[] |
透傳數(shù)據(jù) |
表5.3.11.1