dangreco/unilux-uart
GitHub: dangreco/unilux-uart
硬件无关的 C++23 库,通过逆向工程解析 TA640FC-W-ULX 恒温器的 AUP/WMMM UART 协议,旨在作为 ESPHome 自定义组件实现设备集成。
Stars: 0 | Forks: 0
# unilux-uart
[](https://github.com/dangreco/unilux-uart/actions/workflows/ci.yml)
[](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, 云资产清单, 嵌入式开发, 数据擦除, 智能家居, 物联网, 逆向工程