跳到正文
dsh-market 浏览插件 GitHub EN

2333hutao/dsh-ls125-uv-probe

为林上 LS125 紫外辐照计与 UVALED-X3 探头提供技能:逆向出的 9600 8N1 链路(28 字节帧、CRC-16/MODBUS、轮询与清零命令)、抓取解码工具链,以及已验证的 STM32F103 主机固件,可在脱离原装表的情况下读取探头。全部代码与文档均由 AI agent(DeepSeek Harness)编写。

Star 数 ★ 0 分类 技能包 收录于 2026-09-28

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add github:2333hutao/dsh-ls125-uv-probe

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

README

一个 DeepSeek Harness 技能插件,面向 林上 LinShang LS125 紫外辐照计及其 UVALED-X3 紫外探头: 把表与探头之间的私有 UART 协议完整逆向出来,并附带抓取/解码工具链,以及一份已验证的探头主机固件 —— 可以完全脱离原装表读取探头。

装上之后,你的 agent 就多了一个 ls125-uv-probe 技能:协议速查表、命令字节、工具链用法, 以及那些"让一套完全正常的设备看起来像坏了"的坑。

English: README.md

它能回答什么

问题 答案
能不能不用原装表、用我自己的单片机读这个探头? 能 —— 已在 STM32F103 上验证:21/21 帧、零 CRC 错、零超时
协议是什么? 9600 8N1,每 500 ms 轮询一次,探头回 28 字节帧,带 CRC-16/MODBUS
有没有隐藏的握手、挑战应答或 ID 校验? 没有 —— 轮询命令就是一条恒定不变的 8 字节串
能清掉探头里的记录吗? 能 —— 有第二条命令,会同时清零能量、最小值和时间计数
必须发原装表那套开机配置命令吗? 不用 —— 只发轮询就够了(已验证)

安装

dsh plugin --profile web add dsh-ls125-uv-probe

或者直接从仓库安装:

dsh plugin --profile web add github:2333hutao/dsh-ls125-uv-probe

协议速查

主机 → 探头   轮询(每 500 ms)  AB 20 60 00 14 00 89 07
              清零             AB 21 20 00 02 00 01 00 3D 8A

探头 → 主机   28 字节定长帧,帧头 AB 20 60 00 14 00
  偏移  6–9   float LE   实时辐照度          µW/cm²(表显 mW/cm² = ÷1000)
  偏移 10–13  float LE   累积能量            µJ/cm²
  偏移 14–15  uint16 LE  距上次清零的时间     ×0.1 s
  偏移 16–17  2 字节     恒 0(含义未定,已排除单位/量程)
  偏移 18–21  float LE   最小值              µW/cm²
  偏移 22–25  float LE   平均辐照度          µW/cm²
  偏移 26–27  uint16 LE  CRC-16/MODBUS(over 0–25;poly 0xA001 / init 0xFFFF / LSB-first)

帧内数值永远是 µW/cm² 与 µJ/cm²,与表上的单位档无关,所以主机不需要关心那个设置。 最大值不在帧里 —— 表是自己统计的,你也应该自己统计。

包里装了什么

skill/SKILL.md      技能正文(协议速查、命令、工具链用法、硬规则)
skill/PROTOCOL.md   完整规格、命令族规律、可直接移植的 C 参考实现
skill/LESSONS.md    可迁移的方法论 + 13 条实测踩坑及其判据
skill/AGENTS.md     给"降落到这个工作区的 agent"的接手说明
skill/tools/        fx2cap.cjs(自研抓取,官方 libusb + fx2lafw 协议)与四个解码分析脚本
skill/firmware/     f103_probe(已验证的主机固件)、f103_rgb(可控光源)
skill/captures/     一份样本抓取,没有硬件也能把工具链跑通

工具链绕开了一个长期存在的 sigrok 问题:所有 Windows 版 sigrok 都静态链接同一个 2016 年的 libusb, 它的后端派发在某些系统上必然失败,于是 fx2lafw 报 LIBUSB_ERROR_NOT_SUPPORTED,而 --scan 却还能列出设备。 重装驱动没用。 fx2cap.cjs 改用官方 libusb 直接与设备通信,并补上 sigrok 没有的两个能力: 没有抓取时长上限、以及软触发。

每一条都是量出来的,不是断言的

仓库里保留着全部测量过程:三轮"帧内值 ↔ 表显读数"对照逐位吻合到小数点后四位; 穷举 65536 个多项式找出校验和;用暂停主机的方式证明探头不被轮询就绝不说话; 以及四组独立实验把 D4 从"复位线"的候选里彻底排除掉。

这份代码是 AI 写的 —— 署名声明

本仓库的全部代码、固件、工具链与文档均由 AI agent(DeepSeek Harness)编写, 依据的是在真实硬件上进行的测量。

这里的协议知识不是从数据手册、厂商文档或第三方实现里抄来的 —— 它是从信号线上抓出来、 与该表自己的显示屏逐位对照,并且每一条结论背后都有一次记录在案的实验。 skill/ 里没有任何一句是没有测量支撑的断言,少数未定项也都明确标注为未定。

人类操作者做了 AI 做不到的部分:接线、供电、探头、按表上的键,以及报告屏上显示的数字。

请按对待任何机器编写代码的方式来审查它。 所有测量证据都在仓库里,结论可以复核,不必凭信任接受。

许可

MIT

内容来自项目 README(GitHub)↗

评论

评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。