update south proto

This commit is contained in:
wmano
2025-10-28 22:38:04 +08:00
parent e7b859851b
commit bd71a4d56b
5 changed files with 87 additions and 84 deletions
+16 -15
View File
@@ -40,11 +40,9 @@ int chrg_eload_refresh (rt_uint8_t addr, rt_uint8_t part)
int ret = 0;
if (0 == part) {
chrg_eload_read_regs(addr, REG_TEMPERATUE, SIZE_P1_RD); // reg 112~123
chrg_eload_read_regs(addr, REG_TEMPERATUE, SIZE_P1_RD); // reg 0~13
} else if (1 == part) {
chrg_eload_read_regs(addr, REG_STA1, SIZE_P2_RD); // reg 0~39
} else if (2 == part) {
chrg_eload_read_regs(addr, REG_LIMIT_VOL, SIZE_P3_RD); // reg 40~63
chrg_eload_read_regs(addr, REG_POWER, SIZE_P2_RD); // reg 20~39
}
return ret;
@@ -65,7 +63,20 @@ int chrg_eload_parse (rt_uint8_t idx, rt_uint8_t pt, rt_uint8_t *data, rt_uint16
}
struct eload_p1_t *pP1 = (struct eload_p1_t *)&data[3];
pLOAD->status1 = pP1->status1;
pLOAD->status2 = pP1->status2;
pLOAD->fault1 = pP1->fault1;
pLOAD->fault2 = (rt_uint8_t)pP1->fault2;
pLOAD->eload = (rt_uint8_t)pP1->eload;
pLOAD->work = (rt_uint8_t)pP1->work_cmd;
pLOAD->mode = (rt_uint8_t)pP1->work_mode;
rt_memcpy((rt_uint8_t *)&pLOAD->voltage, (rt_uint8_t *)&pP1->voltage, sizeof(float));
rt_memcpy((rt_uint8_t *)&pLOAD->current, (rt_uint8_t *)&pP1->current, sizeof(float));
pLOAD->temperatue = pP1->temperature;
pLOAD->version = pP1->version;
pLOAD->address = (rt_uint8_t)pP1->addr;
rt_kprintf("vol %f, cur %f\r\n", pLOAD->voltage, pLOAD->current);
}
break;
@@ -79,16 +90,6 @@ int chrg_eload_parse (rt_uint8_t idx, rt_uint8_t pt, rt_uint8_t *data, rt_uint16
}
break;
case MB_R_PART3: {
if ((SIZE_P3_RD*2+5) != len) {
return -1;
}
struct eload_p3_t *pP3 = (struct eload_p3_t *)&data[3];
}
break;
default:
break;
}