欣仰邦SC3.0协议网络设备Java版SDK接口调用说明
发表时间:2021-12-17作者:xmsiyb
一、版本信息
| 版本 | 日期 | 修改说明 |
| V1.0.0 | 2021-10-18 | 创建 |
二、开发环境
Jdk1.8三、文件列表
| 文件名 | 描述 | 是否必须 |
| NetDevice_SDK.jar | 开发时引用此库 | 是 |
| NetDeviceParam.dat | 设备参数数据文件 | 是 |
四、使用说明
1、添加引用
将NetDevice_SDK.jar导入项目工程2、启动服务
1)导入包:import rk.netdevice.sdk.AffectedParamItems;
import rk.netdevice.sdk.DataTransAck;
import rk.netdevice.sdk.DeviceService;
import rk.netdevice.sdk.IDataListener;
import rk.netdevice.sdk.LoginData;
import rk.netdevice.sdk.NodeData;
import rk.netdevice.sdk.ParamIds;
import rk.netdevice.sdk.ParamItem;
import rk.netdevice.sdk.ParamItems;
import rk.netdevice.sdk.RealTimeData;
import rk.netdevice.sdk.RelayStatus;
import rk.netdevice.sdk.StoreData;
import rk.netdevice.sdk.StoreDataAck;
import rk.netdevice.sdk.StoreDataCount;
import rk.netdevice.sdk.TelecontrolAck;
import rk.netdevice.sdk.TelecontrolParam;
import rk.netdevice.sdk.TimingAck;
2)注册数据监听接口:
DeviceService.getInstance().addDataListener(new IDataListener() {
@Override
public void receiveTimingAck(TimingAck ack) {
}
@Override
public void receiveTelecontrolAck(TelecontrolAck data) {
}
@Override
public void receiveStoreDataCount(StoreDataCount data) {
}
@Override
public void receiveStoreDataAck(StoreDataAck data) {
}
@Override
public void receiveStoreData(StoreData data) {
}
@Override
public void receiveRealTimeData(RealTimeData data) {
}
@Override
public void receiveParamItems(ParamItems data) {
}
@Override
public void receiveParamIds(ParamIds data) {
}
@Override
public void receiveLoginData(LoginData data) {
}
@Override
public void receiveDataTransAck(DataTransAck arg0) {
}
@Override
public void receiveAffectedParamItems(AffectedParamItems data) {
}
});
3)设置设备参数文件路径
DeviceService.getInstance().setParamFile("E:/NetDeviceParam.dat");
4)启动监听服务:
DeviceService.getInstance().start("127.0.0.1", 2404);
五、接口说明
1、方法说明
1)配置设备参数文件路径
| 方法名: | setParamFile |
| 参数: | String fileName 设备参数文件(NetDeviceParam.dat)该文件中包含设备参数的描述,用于设备参数的读取和下发,不可修改 |
| 返回值: | 无 |
| 方法原型: | public void setParamFile(String fileName) |
| 调用示例: | DeviceService.getInstance().setParamFile("E:/NetDeviceParam.dat"); |
2)注册数据监听接口
| 方法名: | addDataListener |
| 参数: | IDataListener listener 实现IDataListener的类,设备上传的数据在此类中接收处理 |
| 返回值: | 无 |
| 方法原型: | public void addDataListener(IDataListener listener) |
| 调用示例: | DeviceService.getInstance().addDataListener(new IDataListener() {}); |
3)启动监听服务
| 方法名: | start |
| 参数: |
String ip 监听ip。多网卡的情况下可以选择监听其中一个网卡的ip,可为空,为空则监听所有网卡; int port监听端口 |
| 返回值: | 无 |
| 方法原型: | public void start(String ip, int port) |
| 调用示例: | DeviceService.getInstance().start("127.0.0.1", 2404); |
4)停止监听服务
| 方法名: | stop |
| 参数: | 无 |
| 返回值: | 无 |
| 方法原型: | public bool Stop(); |
| 调用示例: | DeviceService.getInstance().stop(); |
5)执行继电器操作
| 方法名: | telecontrol |
| 参数: |
int deviceAddr 设备地址 short seqNum 帧序号 用来表示一次交互的消息ID,可以为0 List<TelecontrolParam> paramList 操作参数列表,参考表5.1.3.2 |
| 返回值: | true:发送成功;false:发送失败 |
| 方法原型: | public boolean telecontrol(int deviceAddr, short seqNum, List<TelecontrolParam> paramList) |
| 调用示例: | DeviceService.getInstance().telecontrol(10000000, (short)0, paramList); |
| 说明 | 设备响时触发receiveTelecontrolAck监听 |
TelecontrolParam构造方法说明
| 参数名 | 类型 | 描述 |
| relayNo | Short | 继电器编号 |
| opt | Short | 继电器执行类型 1:代表执行继电器闭合操作;0:代表执行继电器释放操作 |
| optTime | Short | 继电器执行时间,单位秒,若为0则一直吸合或者释放 |
6)发送校时指令
| 方法名: | timing |
| 参数: |
int deviceAddr设备地址 short seqNum帧序号 用来表示一次交互的消息ID,可以为0 |
| 返回值: | true:发送成功;false:发送失败 |
| 方法原型: | public boolean timing(int deviceAddr, short seqNum) |
| 调用示例: | DeviceService.getInstance().timing(10000000, (short)0); |
| 说明 | 设备响应时触发receiveTimingAck 监听 |
7)手动召唤实时数据
| 方法名: | callRealTimeData |
| 参数: |
int deviceAddr设备地址 short seqNum帧序号 |
| 返回值: | true:发送成功;false:发送失败 |
| 方法原型: | public boolean callRealTimeData(int deviceAddr, short seqNum) |
| 调用示例: | DeviceService.getInstance().callRealTimeData(10000000, (short)0); |
| 说明 | 设备响应时触发receiveRealTimeData 监听 |
8)读取设备存储数据条数
| 方法名: | readStoreDataCount |
| 参数: |
int deviceAddr设备地址 short seqNum帧序号 |
| 返回值: | true:发送成功;false:发送失败 |
| 方法原型: | public boolean readStoreDataCount(int deviceAddr, short seqNum) |
| 调用示例: | DeviceService.getInstance().readStoreDataCount(10000000, (short)0); |
| 说明 | 设备响应时触发receiveStoreDataCount监听 |
9)读取设备存储数据
| 方法名: | readStoreData |
| 参数: |
int deviceAddr设备地址 short seqNum帧序号 |
| 返回值: | true:发送成功;false:发送失败 |
| 方法原型: | public boolean readStoreData(int deviceAddr, short seqNum) |
| 调用示例: | DeviceService.getInstance().readStoreData(10000000, (short) 0); |
| 说明 | 设备响应时触发receiveStoreDataAck监听 |
10)读取设备参数列表
| 方法名: | readParamItemsIds |
| 参数: |
int deviceAddr设备地址 short seqNum帧序号 |
| 返回值: | true:发送成功;false:发送失败 |
| 方法原型: | public boolean readParamItemsIds(int deviceAddr, short seqNum) |
| 调用示例: | DeviceService.getInstance().readParamItemsIds(10000000, (short) 0); |
| 说明: | 设备响应时触发receiveParamIds监听 |
11)读取设备参数
| 方法名: | readParamItems |
| 参数: |
int deviceAddr设备地址 short seqNum帧序号 List<Short> paramIds设备参数编号。由ReadDictItemsIds方法获得 |
| 返回值: | true:发送成功;false:发送失败 |
| 方法原型: | public boolean readParamItems(int deviceAddr, short seqNum, List<Short> paramIds) |
| 调用示例: | DeviceService.getInstance().readParamItems(10000000, (short) 0, paramIds); |
| 说明: | 设备响应时触发receiveParamItems监听 |
12)下发设备参数
| 方法名: | writeParamItems |
| 参数: |
int deviceAddr设备地址 short seqNum帧序号 List<ParamItem> paramItems设备参数值,参考表5.3.7.2 |
| 返回值: | true:发送成功;false:发送失败 |
| 方法原型: | public boolean writeParamItems(int deviceAddr, short seqNum, List<ParamItem> paramItems) |
| 调用示例: | DeviceService.getInstance().writeParamItems(10000000, (short)0, paramItems); |
| 说明: | 设备响应时触发receiveAffectedParamItems监听 |
2、监听说明
数据监听类须实现IDataListener接口,接口中方法说明如下1)receiveLoginData
| 方法名: | receiveLoginData |
| 描述: | 设备发送登录数据时触发此监听 |
| 参数: | LoginData data 登录数据 参考表5.3.1.1 |
2)receiveRealTimeData
| 方法名: | receiveRealTimeData |
| 描述: | 设备发送实时数据时触发此监听 |
| 参数: | RealTimeData data 实时数据 参考表5.3.2.1 |
3)receiveStoreData
| 方法名: | receiveStoreData |
| 描述: | 设备主动上传已存储数据时触发此监听 |
| 参数: | StoreData data 存储数据 参考表5.3.3.1 |
4)receiveTelecontrolAck
| 方法名: | receiveTelecontrolAck |
| 描述: | 设备应答继电器操作时触发此监听 |
| 参数: | TelecontrolAck ack设备响应数据 参考表5.3.9.1 |
5)receiveTimingAck
| 方法名: | receiveTimingAck |
| 描述: | 设备应答校时结果时触发此监听 |
| 参数: | TimingAck ack 校时结果 参考表5.3.10.1 |
6)receiveParamIds
| 方法名: | receiveParamIds |
| 描述: | 设备应答读取参数字典编号时触发此监听 |
| 参数: | ParamIds ack 参考表5.3.5.1 |
7)receiveParamItems
| 方法名: | receiveParamItems |
| 描述: | 终端响应下载参数命令时触发此监听 |
| 参数: | ParamItems ack 参考表5.3.7.1 |
8)receiveAffectedParamItems
| 方法名: | receiveAffectedParamItems |
| 描述: | 设备应答写入参数结果时触发此监听 |
| 参数: | AffectedParamItems ack 参考表5.3.8.1 |
9)receiveStoreDataCount
| 方法名: | receiveStoreDataCount |
| 描述: | 设备应答读取已存储数据条数时触发此监听 |
| 参数: | StoreDataCount ack 参考表5.3.4.1 |
10)receiveStoreDataAck
| 方法名: | receiveStoreDataAck |
| 描述: | 设备应答读取已存储数据时触发此监听 |
| 参数: | StoreDataAck ack 参考表5.3.5.1 |
11)receiveDataTransAck
| 方法名: | receiveDataTransAck |
| 描述: | 设备应答数据透传结果时触发此监听 |
| 参数: | DataTransAck ack 参考表5.3.11.1 |
3、数据类
1)登录数据 LoginData
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号,与设备一次交互的唯一标识,应答方须复制此值进行应答。下同 |
2)实时数据RealTimeData
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getNodeDataList() | List<NodeData> | 节点数据列表。NodeData参考表5.3.2.2 |
NodeData
| 方法 | 返回值 | 说明 |
| getNodeId() | Short | 节点编号 |
| getRecordTime() | Integer | 时间,1970年1月1日到记录时刻的秒数 |
| getDataType() | DataTypes | 数据类型 |
| getAnalog1() | Float | 模拟量1值 |
| getAnalog2() | Float | 模拟量2值 |
| getIntData() | Integer | 整形值 |
| getFloatData() | Float | 浮点型值 |
| getDoubleData() | double | 双精度值 |
| getSwitchData() | Integer | 开关量值, 0代表无效;1代表闭合;2代表断开 |
| getStringData() | String | 字符串值 |
| getCoordinateType() | Integer |
0代表为上送的百度经纬度 1代表基站为中国联通 2代表基站为中国移动 03代表GPS经纬度信息 |
| getLng() | Float | 经度 |
| getLat() | Float | 纬度 |
| getData() | String | 转换后的数据,模拟量1和模拟量2的数据用英文逗号分隔 |
3)主动上传的存储数据StoreData
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getNodeDataList() | List<NodeData> | 节点数据列表。NodeData参考表5.3.2.2 |
4)设备已存储数据的条数StoreDataCount
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getCount() | Integer | 已存储数据条数 |
5)召唤的已存储数据StoreDataAck
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getTotalCount() | int | 设备上已存储数据总条数 |
| getSurplusCount() | int | 设备上已存储数据剩余条数 |
| getNodeDataList() | List<NodeData> | 节点数据列表。NodeData参考表5.3.2.2 |
6)设备字典编号列表ParamIds
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getTotalDictCount() | Integer | 本设备所有字典总数 |
| getIdList() | List<short> | 设备字典列表 |
7)设备参数ParamItems
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getParamItemList() | List<Paramtem> | 设备参数列表参考表5.3.7.2 |
ParamItem
| 方法 | 返回值 | 说明 |
| getParamId() | Short | 参数编号 |
| getParamValueType() | ParamValueTypes | 参数值类型 |
| getParamName() | String | 参数名称 |
| getValue() | String | 参数值 |
| getMaxStrLength() | Integer | 字符串类型的字典值最大长度 |
| getMinValue() | Integer | 数值类型的最小值 |
| getMaxValue() | Integer | 数值类型的最大值 |
| getValueDescription() | Map<String, String> | 数值描述 |
| create() | ParamItem |
创建ParamItem类,用于下发参数 Short paramId 设备参数编号 String value 参数值 |
8)下发设备参数应答AffectedParamItems
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getParamIdList() | List<Short> | 受影响的参数字典编号 |
9)继电器操作应答TelecontrolAck
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getRelayStatusList() | List<RelayStatus> | 继电器状态列表参考表5.3.9.2 |
RelayStatus
| 方法 | 返回值 | 说明 |
| getRelayNo() | Short | 继电器编号 |
| getExecResult() | Integer | 执行情况 成功1,失败2,未知错误3 |
| getCurrStatus() | Integer | 当前状态 0断开,1吸合 |
10)校时指令应答TimingAck
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getExecResult() | Integer | 执行结果 1执行成功 其他执行失败 |
11)透传数据应答DataTransAck
| 方法 | 返回值 | 说明 |
| getDeviceAddr() | Integer | 设备地址 |
| getSeqNum() | Short | 帧序号 |
| getChannelNo() | Integer | 通道编号 |
| getTransData() | byte[] | 透传数据 |
相关资讯
17850532774





