接入说明

面向固件与联调同学的公开接口摘要。完整设计见仓库 docs;此处给出可直接复制的端点与 curl。

公网端点

测试环境公网地址须带端口 :3016。本机 uvicorn 为 127.0.0.1:3015,由 nginx 反代。

http://47.115.167.217:3016
GET …/api/v1/health
POST …/api/v1/ingest

鉴权

设备侧

出厂写入 device_token。上报与申请认领票据时使用:

Authorization: Bearer <device_token>
Content-Type: application/json

用户侧

网页/小程序登录后得到用户 Token。认领、列表、报告使用:

Authorization: Bearer <user_token>

当前测试环境为微信登录桩(任意 code);正式 AppID 就绪后切换真登录。

curl 示例

加载中…

信封 jcy.envelope.v1

Body 为 JSON 信封:含 device_id、product_family、record_id、data_origin、payload、payload_digest 等字段。服务端做规范序列化与摘要校验;同 record 重复上报幂等,冲突返回 409。

控制台「模拟仪器走 Wi‑Fi 上传」会在服务端生成合法仿真信封并走同一条 /api/v1/ingest 路径。

JCY8800 屏端建模码是另一条路径:https://jcytest.com/s8800?d= 由小程序解码后 POST /api/v1/soh/samples。二维码不含时间(面板时间位保留并忽略);小程序提交手机扫码时间,服务端另记收到时间。v1 记录以设备 MAC 加 RAM 序号区分;v2 记录带出厂序号,样本按序号索引,没有序号时才退回 MAC。扫码后小程序显示序号。品牌+型号满 5 条后,管理员 POST /api/v1/soh/groups/{brand}/{model}/fit,仪器用设备令牌 GET /api/v1/device/soh-models/{brand}/{model} 下载未验证的线性容量模型。布局见 docs/qr_record_v1.md 与 docs/qr_record_v2.md。

出厂工具在写入 device_token 之外,用管理员钥领取铭牌序号。同一 MAC 重复调用返回原序号,不另占号。维修和售后备注往同一台设备上追加。

curl -s -X POST "$BASE/api/v1/admin/jcy8800/serials" \
  -H "X-Admin-Key: $ADMIN_KEY" -H "Content-Type: application/json" \
  -d '{"mac":"A1:B2:C3:D4:E5:F6"}'
# {"serial":"JCY8800-YYMM-NNNN","mac":"A1B2C3D4E5F6","produced_on":"YYYY-MM-DD",...}

推荐联调流程

  1. 打开 控制台,用任意测试码登录。
  2. 点击绿色「模拟仪器走 Wi‑Fi 上传」,记下 device_id / token。
  3. 到 记录 页刷新,点选记录并打开 HTML 报告。
  4. 真机就绪后:仪器用出厂 token 直连 ingest;屏幕展示认领 QR,网页/小程序扫码认领。