fix: 同步协议文档 V1.03 — 0x8A 响应格式 + LEN 计算修正
协议变更(V1.02→V1.03): - 0x8A 响应: Ret(0x10/0x11) + Amount + Amount*(SensIn+SensOut) - 新增灵敏度响应例程 (7F 80 13 8A 10 04 ...) - 波特率确认 192000 代码修正: - lup_build_sensitivity_read: LEN=3 (was 4) - lup_build_sensitivity_write: LEN=3+Amount*4 (was 2+Amount*2) - lup_parse_sensitivity_resp: 解析 Ret 字节 + SensIn/SensOut 双值 - lup_build_set_param: LEN=3+5*Amount (was 2+5*Amount) - tcp_json_srv: JSON 输出含 sens_in/sens_out 字段
This commit is contained in:
@@ -992,16 +992,20 @@ static void json_check_pending(void) {
|
||||
memset(&sens, 0, sizeof(sens));
|
||||
int ret = lup_parse_sensitivity_resp(g_lup_cmd.resp_buf, g_lup_cmd.resp_len, &sens);
|
||||
if (ret == 0) {
|
||||
char data_json[512];
|
||||
char data_json[1024];
|
||||
char *p = data_json;
|
||||
int rem = sizeof(data_json);
|
||||
int w = snprintf(p, rem, "{\"amount\":%d,\"channels\":[", sens.amount);
|
||||
int w = snprintf(p, rem,
|
||||
"{\"ret\":\"%s\",\"amount\":%d,\"channels\":[",
|
||||
(sens.rw == 0x10) ? "read" : (sens.rw == 0x11) ? "write" : "?",
|
||||
sens.amount);
|
||||
p += w; rem -= w;
|
||||
uint8_t i;
|
||||
for (i = 0; i < sens.amount; i++) {
|
||||
w = snprintf(p, rem,
|
||||
"%s{\"ch\":%d,\"sens_value\":%d}",
|
||||
(i > 0) ? "," : "", i + 1, sens.sens_in[i]);
|
||||
"%s{\"ch\":%d,\"sens_in\":%d,\"sens_out\":%d}",
|
||||
(i > 0) ? "," : "", i + 1,
|
||||
sens.sens_in[i], sens.sens_out[i]);
|
||||
p += w; rem -= w;
|
||||
}
|
||||
snprintf(p, rem, "]}");
|
||||
@@ -1013,21 +1017,24 @@ static void json_check_pending(void) {
|
||||
"Failed to parse sensitivity");
|
||||
}
|
||||
} else if (strcmp(g_json_pending.cmd, "loop_sens_write") == 0) {
|
||||
// 0x8A Write response returns sensitivity list
|
||||
LUP_Sensitivity sens;
|
||||
memset(&sens, 0, sizeof(sens));
|
||||
int ret = lup_parse_sensitivity_resp(g_lup_cmd.resp_buf, g_lup_cmd.resp_len, &sens);
|
||||
if (ret == 0) {
|
||||
char data_json[512];
|
||||
char data_json[1024];
|
||||
char *p = data_json;
|
||||
int rem = sizeof(data_json);
|
||||
int w = snprintf(p, rem, "{\"amount\":%d,\"channels\":[", sens.amount);
|
||||
int w = snprintf(p, rem,
|
||||
"{\"ret\":\"%s\",\"amount\":%d,\"channels\":[",
|
||||
(sens.rw == 0x10) ? "read" : (sens.rw == 0x11) ? "write" : "?",
|
||||
sens.amount);
|
||||
p += w; rem -= w;
|
||||
uint8_t i;
|
||||
for (i = 0; i < sens.amount; i++) {
|
||||
w = snprintf(p, rem,
|
||||
"%s{\"ch\":%d,\"sens_value\":%d}",
|
||||
(i > 0) ? "," : "", i + 1, sens.sens_in[i]);
|
||||
"%s{\"ch\":%d,\"sens_in\":%d,\"sens_out\":%d}",
|
||||
(i > 0) ? "," : "", i + 1,
|
||||
sens.sens_in[i], sens.sens_out[i]);
|
||||
p += w; rem -= w;
|
||||
}
|
||||
snprintf(p, rem, "]}");
|
||||
|
||||
Reference in New Issue
Block a user