Skip to content

核心框架 ​

本文按当前 FastBee-Arduino 工作区源码说明模块边界。具体设备是否具有这些能力,应结合固件版本、编译能力、用户配置及初始化结果判断;源码具备路径不代表实机已验收。

生命周期 ​

Arduino 的 setup() 在 src/main.cpp 中调用 FastBeeFramework::initialize(),loop() 调用 run()。框架提供 shutdown(),以及网络、Web、协议、认证、OTA、任务和健康监控的 getter;外设及执行管理器有各自的访问入口,不存在框架 setup()/loop()/getPeripheralManager()/getPeriphExecManager() 这一组 API。

initialize() 协调存储和日志、功能预算与用户开关、外设基础初始化、网络与 Web、认证、系统服务和协议。启动顺序受 FASTBEE_WEB_START_EARLY 等编译选项影响;网络适配初始化完成后才推进依赖网络的外设重试。“network ready”不等于已经连接互联网或 MQTT 平台。依赖未就绪和资源不足须保留可恢复状态。

模块与真实入口 ​

模块主要源码职责
框架src/core/FastBeeFramework.cpp生命周期、服务协调、时间和协议启动
外设PeripheralManager.cpp、PeripheralResourcePlanner.cpp配置、引脚/总线资源、初始化与释放
执行规则PeriphExecManager.cpp、PeriphExecScheduler.cpp、PeriphExecExecutor.cpp配置准入、触发评估、动作分发
慢动作PeriphExecWorkerPool.cpp有界队列与 Worker 生命周期
传感器DriverRegistry、SensorDriverCache、ISensorDriver驱动注册、实例与读数有效性
协议src/protocols/ProtocolManager.cppMQTT/MQTTS、Modbus RTU 主站及数据分发
Websrc/network/handlers/认证、参数校验、能力和资源门控、HTTP/SSE响应
系统src/systems/配置存储、日志、健康与时间
安全src/security/用户、密码、会话;不提供文档中旧版角色模型

外设和输出动作应通过已有管理器、总线仲裁及电机服务执行,不能在路由或页面中直接绕开准入。

功能与资源准入 ​

生效条件包括编译支持、用户启用、依赖就绪、预算及初始化成功,并受运行期保护状态约束。RuntimeFeatureManager 使用 features.json 保存选择;ruleScript/commandScript、logViewer/fileLogging 是强制组合,附属能力不是两个独立菜单开关。

当前 ResourceProfile.h 的外设/规则上限为:ESP32 24/16、C3 16/12、C6 24/24、S3 32/32。达到数量上限之前也可能因引脚、总线或内存预算被拒绝;不能承诺任意组合均可用。

Worker 最大数量在 ESP32/C3 为1、C6/S3为2,队列容量16;启动实际数量还受需求与预算控制。Worker 栈取 SIMPLE_TASK_STACK 与最低值中的较大者:无PSRAM编译最低8192字节,有PSRAM编译最低12288字节。关闭超时不能立即删除仍在运行的对象,须保留并重试安全退出。

src/main.cpp 的 getArduinoLoopTaskStackSize() 当前返回24KiB;不能直接以 PlatformIO 中同名宏值宣称实际主循环栈。当前 IDF5 看门狗初始化路径使用60秒且 trigger_panic=false,最终状态仍取决于SDK与初始化结果,不采用旧版10秒示例作验收依据。

配置、数据与恢复 ​

外设配置使用 type/pins/params,规则使用 triggers/actions。枚举、动作参数及完整可导入样例见外设配置、动作契约。不要复制旧版不完整的数据结构或成员变量声明作为扩展代码。

采集失败、缺失和过期值应保留诊断与有效性,不能以零伪装成功;有效零值仍是合法读数。命令入队、MQTT接收、HTTP成功或SSE心跳不证明输出动作完成。

配置持久化沿用现有暂存、校验和替换流程;跨文件迁移通过整组预检及确认恢复。公开默认配置不代表在线设备当前配置。配置迁移会保留目标设备自身身份与敏感设置。

内存保护以内部可按字节访问DRAM及连续块为关键条件,PSRAM余量不能替代内部预算。降级保留用户意图,恢复队列不等于业务已经恢复;接口和实际指标见健康监控、SSE。

扩展与验证 ​

在对应头文件和实现中核对方法签名、调用方、失败与退出路径,复用现有分层。执行器中的动作7恢复出厂会被拒绝,必须使用认证的系统恢复接口;动作9 OTA为保留项,不承诺已实现。

主机、Native、固件构建、设备API、实物行为和长期稳定性分别记录。扩展步骤见开发指南,验证入口见测试指南。

蜂信物联 | fastbee.cn