refactor(protocol): CoP 帧字段从 float 改为整型,单位 mm→cm / kg

cop_x/cop_y 改为 int16_t (cm),force 改为 uint16_t (kg),
帧长 17→11 字节,降低带宽占用;1 cm 精度满足平衡板场景需求。
This commit is contained in:
2026-05-12 16:11:19 +08:00
parent b72ea5334f
commit f0072c3bd0
3 changed files with 29 additions and 29 deletions
+6 -6
View File
@@ -201,9 +201,9 @@ static void sensor_thread_fn(void *p1, void *p2, void *p3) {
pkt.frame.sync1 = PROTO_SYNC1;
pkt.frame.type = PROTO_TYPE_COP;
pkt.frame.flags = valid ? COP_FLAG_FORCE_VALID : 0;
pkt.frame.cop_x = cop_x;
pkt.frame.cop_y = cop_y;
pkt.frame.force = force;
pkt.frame.cop_x = (int16_t)(cop_x * 0.1f);
pkt.frame.cop_y = (int16_t)(cop_y * 0.1f);
pkt.frame.force = (uint16_t)force;
pkt.frame.crc = crc8(pkt.bytes + 2, sizeof(pkt.bytes) - 3, 0x31, 0x00, true);
/* 发送 */
@@ -213,9 +213,9 @@ static void sensor_thread_fn(void *p1, void *p2, void *p3) {
if (++debug_log_divider >= 10) {
debug_log_divider = 0;
LOG_INF(
"FR=%.2f BR=%.2f BL=%.2f FL=%.2f | total=%.2f kg | cop=(%.1f,%.1f) mm | %s", (double)filtered[0],
(double)filtered[1], (double)filtered[2], (double)filtered[3], (double)force, (double)cop_x,
(double)cop_y, valid ? "VALID" : "low");
"FR=%.2f BR=%.2f BL=%.2f FL=%.2f | total=%.2f kg | cop=(%.1f,%.1f) cm | %s", (double)filtered[0],
(double)filtered[1], (double)filtered[2], (double)filtered[3], (double)force,
(double)(cop_x * 0.1f), (double)(cop_y * 0.1f), valid ? "VALID" : "low");
LOG_INF("timing: acq=%lld total=%lld ms/frame", (long long)(t1 - t0), (long long)frame_ms);
}
}