littlebot
Published on 2025-04-11 / 3 Visits
0

【源码】基于KNX IoT Point API栈的虚拟设备模拟系统

项目简介

本项目围绕KNX IoT Point API栈构建,包含knx_iot_virtual_pb(虚拟按钮)和knx_iot_virtual_sa(虚拟开关执行器)两个应用程序。虽为虚拟应用,但它们是真正的KNX IOT应用,可在PC上运行以模拟实际硬件的功能。项目代码结构清晰,上层的GUI或CLI与下层代码解耦,便于扩展和修改。

项目的主要特性和功能

  1. 多应用类型支持:提供命令行应用和基于wxWidgets的GUI应用,命令行应用可在Linux和Windows系统运行,GUI应用仅支持Windows系统。
  2. 数据点管理:每个应用定义多个数据点,涵盖不同通道、资源类型、接口类型和数据类型,为各数据点实现强制和特定的元数据参数,可通过特定命令查询。
  3. 界面交互功能:GUI应用中,按钮应用可发送开关状态并在状态栏显示,开关执行器应用可可视化接收的开关状态,支持查看反馈信息和故障信息。
  4. 参数可配置:在wxWidgets GUI应用中,可通过命令行参数-s覆盖设备的序列号;支持多种显示选项,如将地址以不同格式展示。
  5. 模拟功能:支持模拟睡眠设备,设备以20秒间隔与网络交互,编程模式开启时暂停睡眠间隔;支持mDNS,通过Bonjour进行mDNS公告。

安装使用步骤

1. 安装前提条件(Windows系统)

  • Visual Studio:从官网下载并安装,需包含C++(Desktop development with C++)。
  • Git:从官网下载适合的安装包并安装。
  • Python:若未安装,可从官网下载Windows安装程序进行安装,安装后可通过which python命令检查是否安装成功。
  • CMake:从官网下载Windows安装程序进行安装,安装时选择将CMake添加到系统路径,安装后可通过which cmake命令检查是否安装成功。
  • Bonjour:通过苹果官网搜索“Download Bonjour Print Services for Windows”,下载并安装打印服务。

2. 构建项目

powershell cd KNX-IOT-Virtual mkdir build cd build cmake .. 也可使用脚本build.sh(构建带mDNS的安全设备)或build_unsecured.sh(构建安全功能关闭的设备,无mDNS)。

使用GitLab

powershell git clone https://gitlab.knx.org/shared-projects/knx-iot-virtual.git cd knx-iot-virtual mkdir build cd build cmake .. -DUSE_GITLAB=true 若要构建带安全功能的可执行文件,可在cmake命令中添加-DOC_OSCORE_ENABLED=ON选项。

3. 打开并构建项目

打开构建文件夹中生成的.sln解决方案文件,建议在Visual Studio中构建发布版本。

4. 运行应用程序

  • 命令行应用可直接在命令行启动;GUI应用可在相应文件夹中双击可执行文件启动。若要覆盖序列号,可使用-s参数,如.\knx_iot_virtual_gui_pb.exe -s 00FA10010401
  • 若需自动重启应用程序,可使用Python脚本restart_app.py,通过Ctrl - C停止该脚本。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】