跳转至

tiny_measurement.h 概览

tiny_measurement.h 是统一入口头文件,聚合:

  • tiny_measurement_config.h
  • online_sensing.h
  • offline_sensing.h
  • sensing_command.h
  • tiny_measurement_app.h
  • real-time-process-arch.h
  • ftsp.h — WSN 时间同步(基于 ESP-NOW 的 FTSP)

用于在中间件层一次性引入测量相关能力。

WSN 模块

WSN 时间同步模块通过 ftsp.h 引入,其聚合了以下子模块:

头文件 用途
ftsp_config.h 编译期调参(信标间隔、表大小、最小同步对数)
ftsp_types.h 信标数据包布局(16 B 基础 / 26 B 扩展含 NTP 世界时间)
ftsp_gateway.h 网关:通过 ESP-NOW 周期广播信标
ftsp_leafnode.h 叶子:信标嗅探 + 线性回归时钟校正
ftsp_ntp.h NTP 同步记录 & 世界时间锚点(µs 精度)
ftsp_precision.h 时钟漂移估计 & 补偿 (ppm)
ftsp_sync_viz.h RGB LED 同步状态可视化(跑马灯颜色循环)

快速开始

网关节点(需要 Enterprise WiFi 连接进行 NTP):

node_espnow_config_t espnow_cfg;
node_espnow_default_config(&espnow_cfg);
espnow_cfg.create_sta_netif = true;  // DHCP 用于 NTP
node_espnow_init(&espnow_cfg, NULL);

// NTP 同步(阻塞,约 30 秒超时)
sync_time_with_timezone(NTP_TIMEZONE);

// 启动 FTSP 信标广播
ftsp_gateway_start();

// 同步可视化(WHITE → GREEN → MARQUEE)
ftsp_sync_viz_init();

叶子节点(无需 WiFi):

node_espnow_config_t espnow_cfg;
node_espnow_default_config(&espnow_cfg);
node_espnow_init(&espnow_cfg, NULL);

// 启动 FTSP 接收器
ftsp_leafnode_start();

// 同步可视化
ftsp_sync_viz_init();

// 同步后获取世界时间
uint64_t world_us;
ftsp_get_world_time_us(&world_us);