wlinker-driver-bacnet
开源地址
https://gitee.com/wlinker/wlinker-driver.git
介绍
wlinker.cn物联网IOT各类通用驱动包,如modbus,bacnet等
此项目主要用于作为sdk被集成,目前实现的协议:
协议 | 设备发现(批量读取) | 读取 | 写入 |
---|---|---|---|
bacnet | 支持 | 支持 | 开源版本暂不支持 |
modbus | 开发中… | 开发中… | 开发中… |
软件架构
项目技术栈:maven + java8
安装教程
1.打包
在项目根目录下运行输入 mvn package 进行打包
2.获取驱动jar包
在实际的驱动子模块的target中可以找个打包完成的jar,此jar包会自动将项目的依赖一起打包,使用时可以直接被其他项目如spring项目(J2EE),J2SE项目依赖,无需再引入common包
使用说明
1.测试
在实际的驱动子模块中,有示例的测试代码模拟实际的使用场景
例如设备发现和单个点位读取
测试代码
测试结果
2.被 SpringBoot+Maven项目引入
拷贝jar包至resources目录
在pom.xml中引入本地坐标
引入坐标之后需要刷新maven才能正常使用
<dependency>
<artifactId>wlinker-driver</artifactId>
<groupId>cn.wlinker</groupId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/resources/wlinker-driver-bacnet-1.0.0.jar</systemPath>
</dependency>
加入pom.xml打包配置
不加这个配置springboot项目打包时不会将本地依赖一起打包,运行时会找不到对应的Class
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
3.接口开发
以下以设备发现为例
@RestController
@RequestMapping("/bacnet")
@Slf4j
@Validated
public class BacnetController {
/**
* @param bacnetLocalDeviceBean
* @return
* @throws Exception
*/
@GetMapping("/discovery")
public List<BacnetObject> discovery(BacnetLocalDeviceBean bacnetLocalDeviceBean) throws Exception {
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(bacnetLocalDeviceBean);
BacnetDriver bacnetDriver = DriverFactory.getDriverByConnInfo(BacnetDriver.class, stringObjectMap);
Boolean open = bacnetDriver.open();
if (open) {
List<BacnetObject> discovery = bacnetDriver.discovery();
return discovery;
}
return null;
}
}
4.接口调用
在接口中输入地址和需要的参数即可获取查询结果(PS:192.168.61是应用部署电脑的IP地址,需要和楼控软件在同一个网段)
备注
服务应用和Bacnet设备需要在不同的机器上,而且需要在相同的网段,否则无法扫描到数据
SpringBoot应用部署地址
SpringBoot应用部署在我本地,和虚拟机桥接用的IP地址是192.168.61.1
Bacnet模拟设备地址
设备模拟软件安装在windows虚拟机上,IP是192.168.61.129
代码运行前必看
此代码基于Yabe这个可视化工具及其附带的设备模拟器进行编写。
-
Yabe安装后将自动带有模拟器 Bacnet.Room.Simulator.exe。(模拟器文件路径:模拟器在Yabe软件安装路径的/AddOn文件夹下。我的文件路径为:C:\Program Files\Yabe\AddOn\Bacnet.Room.Simulator.exe)
运行Yabe软件附带的 Bacnet.Room.Simulator.exe 软件需要和SpringBoot服务应用在不同的机器上。
运行代码或模拟器前:需关闭 Yabe、InneaBACnetExplorer Free Edition,BancetScan等所有的浏览设备信息的可视化工具,否则代码里将无法请求到设备
- tips:该模拟器支持多开(多次打开此模拟器,会启动多个设备id不同的设备)