厦门欣仰邦科技有限公司

24小时咨询电话:

0592-3564822

开发文档

欣仰邦SC3.0协议网络设备Java版SDK接口调用说明

发表时间:2021-12-17作者:xmsiyb

一、版本信息

版本 日期 修改说明
V1.0.0 2021-10-18 创建
表1.1.1

二、开发环境

Jdk1.8

三、文件列表

文件名 描述 是否必须
NetDevice_SDK.jar 开发时引用此库
NetDeviceParam.dat 设备参数数据文件
表3.1.1

四、使用说明

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");
表5.1.1.1

2)注册数据监听接口

方法名: addDataListener
参数: IDataListener listener 实现IDataListener的类,设备上传的数据在此类中接收处理
返回值:
方法原型: public void addDataListener(IDataListener listener)
调用示例: DeviceService.getInstance().addDataListener(new IDataListener() {});
表5.1.2.1

3)启动监听服务

方法名: start
参数: String ip 监听ip。多网卡的情况下可以选择监听其中一个网卡的ip,可为空,为空则监听所有网卡;
int port监听端口
返回值:
方法原型: public void start(String ip, int port)
调用示例: DeviceService.getInstance().start("127.0.0.1", 2404);
表5.1.3.1
 

4)停止监听服务

方法名: stop
参数:
返回值:
方法原型: public bool Stop();
调用示例: DeviceService.getInstance().stop();
表5.1.4.1

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监听
表5.1.5.1
TelecontrolParam构造方法说明
参数名 类型 描述
relayNo Short 继电器编号
opt Short 继电器执行类型 1:代表执行继电器闭合操作;0:代表执行继电器释放操作
optTime Short 继电器执行时间,单位秒,若为0则一直吸合或者释放
表5.1.5.2
 

6)发送校时指令

方法名: timing
参数: int deviceAddr设备地址
short seqNum帧序号 用来表示一次交互的消息ID,可以为0
返回值: true:发送成功;false:发送失败
方法原型: public boolean timing(int deviceAddr, short seqNum)
调用示例: DeviceService.getInstance().timing(10000000, (short)0);
说明 设备响应时触发receiveTimingAck 监听
表5.1.6.1
 

7)手动召唤实时数据

方法名: callRealTimeData
参数: int deviceAddr设备地址
short seqNum帧序号
返回值: true:发送成功;false:发送失败
方法原型: public boolean callRealTimeData(int deviceAddr, short seqNum)
调用示例: DeviceService.getInstance().callRealTimeData(10000000, (short)0);
说明 设备响应时触发receiveRealTimeData 监听
表5.1.7.1

8)读取设备存储数据条数

方法名: readStoreDataCount
参数: int deviceAddr设备地址
short seqNum帧序号
返回值: true:发送成功;false:发送失败
方法原型: public boolean readStoreDataCount(int deviceAddr, short seqNum)
调用示例: DeviceService.getInstance().readStoreDataCount(10000000, (short)0);
说明 设备响应时触发receiveStoreDataCount监听
表5.1.8.1

9)读取设备存储数据

方法名: readStoreData
参数: int deviceAddr设备地址
short seqNum帧序号
返回值: true:发送成功;false:发送失败
方法原型: public boolean readStoreData(int deviceAddr, short seqNum)
调用示例: DeviceService.getInstance().readStoreData(10000000, (short) 0);
说明 设备响应时触发receiveStoreDataAck监听
表5.1.9.1

10)读取设备参数列表

方法名: readParamItemsIds
参数: int deviceAddr设备地址
short seqNum帧序号
返回值: true:发送成功;false:发送失败
方法原型: public boolean readParamItemsIds(int deviceAddr, short seqNum)
调用示例: DeviceService.getInstance().readParamItemsIds(10000000, (short) 0);
说明: 设备响应时触发receiveParamIds监听
表5.1.10.1

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监听
表5.1.11.1

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监听
表5.1.12.1

2、监听说明

数据监听类须实现IDataListener接口,接口中方法说明如下

1)receiveLoginData

 
方法名: receiveLoginData
描述: 设备发送登录数据时触发此监听
参数: LoginData data 登录数据 参考表5.3.1.1
表5.2.1.1
 

2)receiveRealTimeData

 
方法名: receiveRealTimeData
描述: 设备发送实时数据时触发此监听
参数: RealTimeData data 实时数据 参考表5.3.2.1
表5.2.2.1
 

3)receiveStoreData

 
方法名: receiveStoreData
描述: 设备主动上传已存储数据时触发此监听
参数: StoreData data 存储数据 参考表5.3.3.1
表5.2.3.1
 

4)receiveTelecontrolAck

 
方法名: receiveTelecontrolAck
描述: 设备应答继电器操作时触发此监听
参数: TelecontrolAck ack设备响应数据 参考表5.3.9.1
表5.2.4.1

5)receiveTimingAck

 
方法名: receiveTimingAck
描述: 设备应答校时结果时触发此监听
参数: TimingAck ack 校时结果 参考表5.3.10.1
表5.2.5.1

6)receiveParamIds

 
方法名: receiveParamIds
描述: 设备应答读取参数字典编号时触发此监听
参数: ParamIds ack 参考表5.3.5.1
表5.2.6.1

7)receiveParamItems

 
方法名: receiveParamItems
描述: 终端响应下载参数命令时触发此监听
参数: ParamItems ack 参考表5.3.7.1
表5.2.7.1

8)receiveAffectedParamItems

 
方法名: receiveAffectedParamItems
描述: 设备应答写入参数结果时触发此监听
参数: AffectedParamItems ack 参考表5.3.8.1
表5.2.8.1

9)receiveStoreDataCount

 
方法名: receiveStoreDataCount
描述: 设备应答读取已存储数据条数时触发此监听
参数: StoreDataCount ack 参考表5.3.4.1
表5.2.9.1

10)receiveStoreDataAck

 
方法名: receiveStoreDataAck
描述: 设备应答读取已存储数据时触发此监听
参数: StoreDataAck ack 参考表5.3.5.1
表5.2.10.1

11)receiveDataTransAck

 
方法名: receiveDataTransAck
描述: 设备应答数据透传结果时触发此监听
参数: DataTransAck ack 参考表5.3.11.1
表5.2.10.1
 

3、数据类

 

1)登录数据 LoginData

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号,与设备一次交互的唯一标识,应答方须复制此值进行应答。下同
表5.3.1.1
 
 

2)实时数据RealTimeData

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getNodeDataList() List<NodeData> 节点数据列表。NodeData参考表5.3.2.2
表5.3.2.1
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的数据用英文逗号分隔
表5.3.2.2
 

3)主动上传的存储数据StoreData

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getNodeDataList() List<NodeData> 节点数据列表。NodeData参考表5.3.2.2
表5.3.3.1
 

4)设备已存储数据的条数StoreDataCount

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getCount() Integer 已存储数据条数
表5.3.4.1

5)召唤的已存储数据StoreDataAck

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getTotalCount() int 设备上已存储数据总条数
getSurplusCount() int 设备上已存储数据剩余条数
getNodeDataList() List<NodeData> 节点数据列表。NodeData参考表5.3.2.2
表5.3.5.1

6)设备字典编号列表ParamIds

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getTotalDictCount() Integer 本设备所有字典总数
getIdList() List<short> 设备字典列表
表5.3.6.1

7)设备参数ParamItems

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getParamItemList() List<Paramtem> 设备参数列表参考表5.3.7.2
表5.3.7.1
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 参数值
表5.3.7.2
 

8)下发设备参数应答AffectedParamItems

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getParamIdList() List<Short> 受影响的参数字典编号
表5.3.8.1

9)继电器操作应答TelecontrolAck

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getRelayStatusList() List<RelayStatus> 继电器状态列表参考表5.3.9.2
表5.3.9.1
 
RelayStatus
方法 返回值 说明
getRelayNo() Short 继电器编号
getExecResult() Integer 执行情况 成功1,失败2,未知错误3
getCurrStatus() Integer 当前状态 0断开,1吸合
表5.3.9.2

10)校时指令应答TimingAck

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getExecResult() Integer 执行结果 1执行成功 其他执行失败
表5.3.10.1

11)透传数据应答DataTransAck

 
方法 返回值 说明
getDeviceAddr() Integer 设备地址
getSeqNum() Short 帧序号
getChannelNo() Integer 通道编号
getTransData() byte[] 透传数据
表5.3.11.1

相关资讯 17850532774

全国服务电话:0592-3564822

Copyright © 2021 厦门欣仰邦科技有限公司 版权所有

地址:厦门市集美区软件园三期B区04栋

备案号:闽ICP备18009268号-1