import com.serotonin.bacnet4j.LocalDevice;
import com.serotonin.bacnet4j.RemoteDevice;
import com.serotonin.bacnet4j.npdu.ip.IpNetwork;
import com.serotonin.bacnet4j.npdu.ip.IpNetworkBuilder;
import com.serotonin.bacnet4j.transport.DefaultTransport;
import com.serotonin.bacnet4j.type.Encodable;
import com.serotonin.bacnet4j.type.enumerated.ObjectType;
import com.serotonin.bacnet4j.type.enumerated.PropertyIdentifier;
import com.serotonin.bacnet4j.type.primitive.ObjectIdentifier;
import com.serotonin.bacnet4j.type.primitive.UnsignedInteger;
import com.serotonin.bacnet4j.util.PropertyValues;
import com.serotonin.bacnet4j.util.ReadListener;
import com.serotonin.bacnet4j.util.RequestUtils;
import java.util.Arrays;
import java.util.List;
/**
* 启动Yabe的天气模拟
* @author Jfei
*
*/
// 读数据操作
public class BACnetUtil {
/**
* Yabe在本地电脑上启动
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
LocalDevice d = null;
try {
//创建网络对象
IpNetwork ipNetwork = new IpNetworkBuilder()
.withLocalBindAddress("172.22.107.219")//本机的ip
.withSubnet("255.255.255.0", 24) //掩码和长度,如果不知道本机的掩码和长度的话,可以使用后面代码的工具类获取
.withPort(47808) //Yabe默认的UDP端口
.withReuseAddress(true)
.build();
//创建虚拟的本地设备,deviceNumber随意
d = new LocalDevice(123, new DefaultTransport(ipNetwork));
d.initialize();
d.startRemoteDeviceDiscovery();
RemoteDevice rd = d.getRemoteDeviceBlocking(3);//获取远程设备,instanceNumber 是设备的device id
System.out.println("modelName=" + rd.getDeviceProperty( PropertyIdentifier.modelName));
System.out.println("analogInput2= " +RequestUtils.readProperty(d, rd, new ObjectIdentifier(ObjectType.analogInput, 2), PropertyIdentifier.presentValue, null));
List<ObjectIdentifier> objectList = RequestUtils.getObjectList(d, rd).getValues();
//打印所有的Object 名称
for(ObjectIdentifier o : objectList){
System.out.println(o);
}
ObjectIdentifier oid = new ObjectIdentifier(ObjectType.analogInput, 0);
ObjectIdentifier oid1 = new ObjectIdentifier(ObjectType.analogInput, 1);
ObjectIdentifier oid2 = new ObjectIdentifier(ObjectType.analogInput, 2);
//获取指定的presentValue
PropertyValues pvs = RequestUtils.readOidPresentValues(d, rd,Arrays.asList(oid,oid1,oid2), new ReadListener(){
@Override
public boolean progress(double progress, int deviceId,
ObjectIdentifier oid, PropertyIdentifier pid,
UnsignedInteger pin, Encodable value) {
System.out.println("========");
System.out.println("progress=" + progress);
System.out.println("deviceId=" + deviceId);
System.out.println("oid="+oid.toString());
System.out.println("pid="+pid.toString());
System.out.println("UnsignedInteger="+pin);
System.out.println("value="+value.toString() + " getClass =" +value.getClass());
return false;
}
});
Thread.sleep(3000);
System.out.println("analogInput:0 == " + pvs.get(oid, PropertyIdentifier.presentValue));
//获取指定的presentValue
PropertyValues pvs2 = RequestUtils.readOidPresentValues(d, rd,Arrays.asList(oid,oid1,oid2),null);
System.out.println("analogInput:1 == " + pvs2.get(oid1, PropertyIdentifier.presentValue));
d.terminate();
} catch (Exception e) {
e.printStackTrace();
if(d != null){
d.terminate();
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
bacnet协议java实现_BACnet
共31个文件
xml:22个
lst:3个
class:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 96 浏览量
2022-09-25
01:36:08
上传
评论
收藏 20KB RAR 举报
温馨提示
BACnet协议的流量获取,使用java实现
资源详情
资源评论
资源推荐
收起资源包目录
bacnet协议java实现.rar (31个子文件)
BACnetTest
pom.xml 3KB
BACnetTest.iml 2KB
target
maven-status
maven-compiler-plugin
compile
default-compile
inputFiles.lst 49B
createdFiles.lst 36B
testCompile
default-testCompile
inputFiles.lst 0B
classes
BACnetUtil$1.class 2KB
BACnetUtil.class 5KB
maven-archiver
pom.properties 118B
generated-sources
annotations
BACnetTest-1.0-SNAPSHOT.jar 5KB
src
test
java
main
resources
java
BACnetUtil.java 4KB
.idea
runConfigurations.xml 346B
misc.xml 366B
jarRepositories.xml 864B
modules.xml 267B
compiler.xml 647B
workspace.xml 4KB
libraries
Maven__lohbihler_sero_warp_1_0_0.xml 506B
Maven__antlr_antlr_2_7_2.xml 462B
Maven__commons_validator_commons_validator_1_3_1.xml 594B
Maven__com_serotonin_bacnet4j_4_0_1.xml 515B
Maven__commons_chain_commons_chain_1_1.xml 536B
Maven__lohbihler_sero_scheduler_1_1_0.xml 541B
Maven__org_apache_commons_commons_lang3_3_5.xml 556B
Maven__oro_oro_2_0_8.xml 440B
Maven__org_scream3r_jssc_2_8_0.xml 483B
Maven__com_infiniteautomation_bacnet4j_5_0_2.xml 551B
Maven__commons_beanutils_commons_beanutils_1_7_0.xml 594B
Maven__org_slf4j_slf4j_api_1_8_0_beta4.xml 548B
Maven__org_apache_struts_struts_core_1_3_8.xml 552B
Maven__commons_logging_commons_logging_1_0_4.xml 572B
Maven__commons_digester_commons_digester_1_8.xml 569B
共 31 条
- 1
刘良运
- 粉丝: 61
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0