dangreco/unilux-uart

GitHub: dangreco/unilux-uart

硬件无关的 C++23 库,通过逆向工程解析 TA640FC-W-ULX 恒温器的 AUP/WMMM UART 协议,旨在作为 ESPHome 自定义组件实现设备集成。

Stars: 0 | Forks: 0

# unilux-uart [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/2e4440b52f052455.svg)](https://github.com/dangreco/unilux-uart/actions/workflows/ci.yml) [![Release](https://img.shields.io/github/v/release/dangreco/unilux-uart?sort=semver)](https://github.com/dangreco/unilux-uart/releases) 一个与硬件无关的 C++23 库,用于解析 TA640FC-W-ULX 恒温器使用的 **AUP/WMMM UART 协议**, 旨在作为 ESPHome 自定义组件使用。 ## 状态 AUP 帧层实现为增量式的逐字节解析器 (`unilux::aup::Decoder`),它从异步 UART 流中重组出 `unilux::aup::Frame` 帧, 并配有对应的 `unilux::aup::Encoder`,可将帧序列化回传输的字节序列。 对于任何格式良好的帧,两者是完全互逆的。请参阅 `include/aup.hpp` 以获取文档化的公开 API。 ## 构建与测试 ``` task build # configure + compile (CMake + Ninja) task test # build and run the unit tests via CTest task check # clang-format / yamllint checks ``` ## 开发环境设置 ESPHome 源代码作为 git submodule 引入,仅供 IDE 解析使用。 克隆仓库后,请对其进行初始化: ``` git submodule update --init --recursive ``` `vendor/esphome` 是**仅供开发的 IDE 辅助工具**(用于 `components/unilux_uart/` 外部组件的 Python + C++ 导入/include 解析)。运行时使用者不需要它——ESPHome 会通过 `external_components:` 获取该组件(参见 CONTRIBUTING.md)。 ## 发布 发布遵循[语义化版本控制](https://semver.org),并在 `main` 分支上打标签。 请参阅 [发布页面](https://github.com/dangreco/unilux-uart/releases) 和 [CHANGELOG.md](CHANGELOG.md)。要在 ESPHome 中固定某个版本,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 许可证 基于 **GNU General Public License v3.0 or later** 授权 (`SPDX-License-Identifier: GPL-3.0-or-later`)。请参阅 [LICENSE](LICENSE) 获取 全文。 ## 逆向工程与非附属关系声明 AUP/WMMM 协议是通过净室、黑盒观察设备的方式**独立逆向工程**得出的,仅为了实现互操作性。 本项目**不包含**来自设备制造商的**任何专有源代码、固件或其他受版权保护的材料**, 并且与 TA640FC-W-ULX 或任何相关实体的制造商**没有附属关系、未获其授权或背书**。所有 商标均为其各自所有者的财产。详情请参阅 [NOTICE](NOTICE)。
标签:Bash脚本, C++, ESPHome, 云资产清单, 嵌入式开发, 数据擦除, 智能家居, 物联网, 逆向工程