欣仰邦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