Desktop Software & Device Connectivity · 桌面软件与设备通信
C++ Qt / PyQt Python BLE Embedded Systems
I build software that connects computers and devices, from data acquisition and communication protocols to desktop monitoring and debugging tools. My background includes GPU virtualization development and embedded integration.
- Desktop applications — Qt / PyQt interfaces, device status monitoring, Windows device input handling, and cross-platform packaging.
- Device connectivity — Serial communication, BLE GATT / HID, MODBUS RTU, sensor data acquisition, and hardware–software integration.
- Engineering tools — Python automation, MCP integrations, and checks between schematic connections and firmware pin assignments.
Connecting device and firmware workflows with AI agent tools: structured hardware context through MCP, Python SDK integration, and explicit handling of uncertain results. I am exploring typed decision models for routing and operational triage; I have not yet benchmarked Jev on device data.
- cantools — generated unsigned C encoders: defined negative raw-value handling by clamping to zero, avoiding undefined floating-point-to-unsigned conversion for values such as
-1.0. Added generated-C regression coverage for scaling, rounding, and multiple signal widths. PR #841 was merged in October 2026. - cantools — generated C comments: escaped DBC comment delimiters that could break generated C headers, with regression coverage for message and signal comments. PR #840 was merged in October 2026.
- ESPHome — serial logging reset: parsed
ESPHOME_SERIAL_LOGGING_RESETas a boolean for bothlogsandrun, sofalseand0no longer enable reset. Added regression cases for the environment setting and CLI override. PR #19963 was merged intodevin October 2026. - ESPHome — hostname resolution: prevented empty CLI address-cache entries from being treated as resolved addresses, so DNS and mDNS fallback still runs. Added regression tests for empty entries, duplicate mappings, and both resolution paths. PR #19924 was merged into
devon September 30, 2026. - ESPHome — non-root build cache: fixed an unwritable ccache path in non-root containers by registering the PlatformIO cache with ESPHome's cache management and keeping
clean-alleffective. Added coverage for cache location and cleanup, and validated an affected Docker build. PR #19807 was merged on September 28, 2026. - Stack-chan — Blockly editor readability: corrected the dark-mode toolbox label selector and added browser checks for labels before selection, while selected, and after deselection in both themes. PR #704 was merged on September 25, 2026.
- ESPHome Device Builder — firmware install flow: contributed handled-warning detection and end-to-end coverage showing that a successful compile releases its dependent OTA upload. The maintainer added ANSI-prefix handling before PR #2828 was merged on September 25, 2026.
- PyModbus — async serial reliability: fixed a case where zero-byte serial writes could discard queued RTU frames, and added regression tests for partial and zero-byte writes. PR #3032 was merged into
devon September 23, 2026.
An Android BLE debugging companion for hardware development. Discover devices, inspect GATT services, read and write characteristics, subscribe to notifications, and export activity logs.
Flutter Dart BLE BLoC Drift
Overview · BLE implementation · Tests
Status: Android is the current target. DFU is an adapter scaffold; an actual update backend still needs integration and device validation.
Structured hardware schematic context for developer tools via MCP. Query KiCad components, pins, and nets, with an example that compares firmware pin expectations against schematic connectivity.
Python KiCad MCP Connectivity graph
Overview · Pin validation demo · Tests
Status: Alpha, with a modern KiCad adapter. Other EDA formats and complete cross-sheet connectivity remain planned work.
| Project | Code to explore |
|---|---|
| C++ TCP Chatroom | Linux sockets, epoll event loops, client connections, and message broadcasting |
| Qt Network Sign-in | Qt Widgets, signals and slots, QTcpSocket, system tray integration, and configuration I/O |
These repositories preserve early learning implementations for code reading and discussion.
我做连接软件与硬件的开发工作:从设备数据采集、通信协议,到桌面端监控与调试工具。曾从事 GPU 虚拟化研发,并有嵌入式系统集成经验。
- 桌面软件 — Qt / PyQt 界面、设备状态监控、Windows 设备输入处理与跨平台打包。
- 设备通信 — 串口、BLE GATT / HID、MODBUS RTU、传感器数据采集与软硬件联调。
- 工程工具 — Python 自动化、MCP 集成、原理图连接与固件引脚映射检查。
连接设备与固件工作流和 AI Agent 工具:通过 MCP 提供结构化硬件上下文,开发 Python SDK 集成,并明确处理不确定结果。目前正在探索类型化决策模型在路由和运维分流中的应用,尚未在设备数据上完成 Jev 基准评测。
- cantools — 无符号 C 编码器: 将负的原始值明确处理为零,避免
-1.0等浮点值直接转无符号整数时出现未定义行为;补充缩放、取整和不同信号位宽的生成 C 代码回归测试。PR #841 已于 2026 年 10 月合并。 - cantools — 生成 C 注释: 转义 DBC 注释中的 C 注释定界符,避免生成的头文件被破坏;补充消息和信号注释的回归测试。PR #840 已于 2026 年 10 月合并。
- ESPHome — 串口日志复位: 在
logs和run命令中将ESPHOME_SERIAL_LOGGING_RESET正确解析为布尔值,使false和0不再触发复位;补充环境变量和命令行覆盖的回归测试。PR #19963 已于 2026 年 10 月合并至dev分支。 - ESPHome — 主机名解析: 修复空的命令行地址缓存条目被误判为已解析地址的问题,使 DNS 和 mDNS 仍能正常回退解析;补充空条目、重复映射及两类解析路径的回归测试。PR #19924 已于 2026 年 9 月 30 日合并至
dev分支。 - ESPHome — 非 root 构建缓存: 修复非 root 容器中 ccache 路径不可写的问题,将 PlatformIO 编译缓存纳入 ESPHome 的缓存管理,并保持
clean-all的清理能力。补充缓存路径与清理测试,并用受影响的 Docker 构建方式验证。PR #19807 已于 2026 年 9 月 28 日合并。 - Stack-chan — Blockly 编辑器可读性: 修正深色模式下工具箱分类标签的选择器,并增加明暗主题中未选中、选中及取消选中状态的浏览器检查。PR #704 已于 2026 年 9 月 25 日合并。
- ESPHome Device Builder — 固件安装流程: 参与修复已处理警告导致编译误判失败的问题,并补充成功编译后继续 OTA 上传的端到端测试。维护者在合并前又补充了 ANSI 前缀处理;PR #2828 已于 2026 年 9 月 25 日合并。
- PyModbus — 异步串口可靠性: 修复串口写入返回零字节时可能丢弃待发送 RTU 帧的问题,并补充部分写入与零字节写入的回归测试。PR #3032 已于 2026 年 9 月 23 日合并至
dev分支。
面向硬件开发的 Android BLE 调试助手。支持设备扫描、GATT 服务浏览、特征值读写、通知订阅和日志导出。
Flutter Dart BLE BLoC Drift
当前状态: 以 Android 为目标平台;DFU 为适配器框架,尚需接入实际升级后端并完成真机验证。
通过 MCP 为开发工具提供结构化的原理图信息。可查询 KiCad 器件、引脚和网络,包含固件预期引脚与原理图连接关系的对照示例。
Python KiCad MCP Connectivity graph
当前状态: alpha,已实现现代 KiCad 文件适配;其他 EDA 格式与完整跨页连接仍在规划中。
| 项目 | 代码阅读重点 |
|---|---|
| C++ TCP 聊天室 | Linux Socket、epoll 事件循环、客户端连接与消息广播 |
| Qt 校园网登录工具 | Qt Widgets、信号槽、QTcpSocket、系统托盘与配置读写 |
这些仓库保留了早期学习实现,供阅读代码与交流思路。