Skip to Content
IoT 应用开发应用结构

应用结构

每个 IronFlock 应用都是一个 Git 版本控制的文件夹,包含您的应用代码和一个可选的 .ironflock 配置目录。

目录结构

my-app/ ├── Dockerfile # 必需:定义容器镜像 ├── docker-compose.yml # 可选:多容器配置 ├── main.py # 您的应用代码(任意语言) ├── requirements.txt # 依赖项 └── .ironflock/ ├── board-template.yml # 仪表板布局 ├── data-template.yml # 遥测数据的数据库模式 ├── env-template.yml # 用户可配置的参数 ├── port-template.yml # 远程访问端口定义 └── ai-template.yml # AI 智能体定义

应用的六个组成部分

1. 边缘代码

核心应用逻辑。此代码在设备上的 Docker 容器内运行,负责与传感器、PLC、摄像头或任何连接的硬件进行通信。

边缘代码可以使用任何编程语言编写——Python、JavaScript、Go、Rust、C++ 或任何可以在 Docker 容器中运行的语言。

2. 仪表板(用户界面)

使用无代码仪表板编辑器构建的实时数据面板。仪表板显示项目中运行该应用的所有设备的数据,并通过消息系统自动更新。

仪表板配置存储在 board-template.yml 中,由编辑器自动生成。

3. 数据存储

每个项目都有自己的物理数据库(由 TimescaleDB 驱动)。当应用在 data-template.yml 中定义了表时,这些表会在用户安装应用时自动创建。数据按项目隔离——开发者无法访问用户数据。

4. 消息域

安装后,应用会获得一个私有消息域,连接以下各方:

  • 边缘设备上的所有应用实例
  • 项目数据库
  • 仪表板 UI

通信使用 WAMP(Web 应用消息协议),通过 IronFlock SDK 实现(Python 使用 ironflock-py,JavaScript 使用 ironflock-js)。

5. 远程访问

port-template.yml 中定义端口和协议,以启用到设备服务的安全隧道。用户可以按设备启用或禁用这些隧道。参见远程访问

6. AI 智能体

通过 ai-template.yml 公开特定领域的 AI 智能体,扩展 IronFlock AI 助手。参见 AI 功能

设备上的持久存储

默认情况下,容器内的数据在重启后会丢失。以下两个目录在重启后持久保留:

路径范围
/data此应用私有——其他应用无法访问
/shared设备上所有应用共享

如果您使用 Docker Compose,请改为在 docker-compose.yml 中配置持久卷。

硬件访问

如果您的应用需要与本地硬件(传感器、摄像头、串口设备)交互,这些设备会挂载在容器内的 /dev 路径下。

Last updated on