跳转至

工具箱

TinyToolbox — 边缘设备的平台适配与工具库

TinyToolbox 是 Tiny* 生态的基础层,提供平台适配、硬件抽象和常用工具。目前以 ESP32 为目标,计划支持 STM32。


架构速览

  • TIME 时间管理


    tiny_time · 运行时间、SNTP 对时、日期时间
    tiny_get_running_time() · 自开机微秒级计时
    sync_time_with_timezone() · 互联网时间同步(信号量版)
    tiny_get_current_datetime() · 可读日期时间
    tiny_ntp_set_sync_hook() · NTP 钩子(供 FTSP 集成)
    tiny_format_*() · Unix 转换 & 时间格式化
    NTP 状态追踪 · TinyNtpSync_t

    说明 →

  • 平台适配层


    ESP-IDF 集成层
    FreeRTOS · esptimer · esplog · 堆管理
    自定义驱动桥接 (node_rtc 等)
    node_config.h · 节点身份 & WSN 角色 (GATEWAY/LEAFNODE)

    代码 →

  • FTSP — WSN 时间同步(通过 tiny_measurement)


    基于 ESP-NOW 的泛洪时间同步协议
    网关:周期信标广播 + NTP 锚点
    叶子节点:线性回归时钟偏差校正
    同步可视化:RGB LED 状态灯 (WHITE → GREEN → MARQUEE)
    微秒级精度 · 漂移补偿

    详情 →

  • 命令解析(计划中)


    MQTT 命令解析框架
    统一命令分发
    定时 & 延时任务触发

    日志 →


快速开始

#include "tiny_toolbox.h"

// 获取自开机运行时间(微秒)
TinyTimeMark_t t0 = tiny_get_running_time();

// SNTP 对时(WiFi 连接后调用一次即可)
sync_time_with_timezone("CST-8");

// 获取当前日期时间
TinyDateTime_t now = tiny_get_current_datetime(true);
printf("当前时间: %04d-%02d-%02d %02d:%02d:%02d\n",
       now.year, now.month, now.day,
       now.hour, now.minute, now.second);

依赖链

ESP-IDF (FreeRTOS, esp_timer, esp_log)  ──►  tiny_toolbox
                                          ┌─────────┼─────────┐
                                          │                   │
                                     平台适配层            工具模块
                                    (ESP-IDF 桥接)       (TIME, ...)
                                  自定义驱动
                                  (node_rtc, ...)
  • 不依赖其他 Tiny* 模块 — toolbox 是最底层
  • 平台相关 — 移植到 STM32 等平台需要修改适配层
  • 所有上层 Tiny* 模块 (tinymath, tinydsp, tiny_ai) 都依赖 toolbox 提供平台访问能力

代码结构

include/    tiny_toolbox.h · tiny_toolbox_config.h
time/       tiny_time.h · tiny_time.c

平台移植说明

目前以 ESP32 为主

仅在 ESP32 上开发和测试。移植到 STM32 等平台需修改适配层(FreeRTOS → CMSIS-RTOS、esp_timer → HAL timer 等)。

子模块模式

各子模块可独立引入。tiny_toolbox.h 充当目录集成所有子模块——tiny_toolbox.c 是形式上的源文件,无具体功能。