ex lcd & south

This commit is contained in:
wmano
2025-11-02 20:51:30 +08:00
parent bd71a4d56b
commit 9b3e035b75
13 changed files with 163 additions and 49 deletions
+19 -5
View File
@@ -1,8 +1,11 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <rtthread.h>
#include "chrg_south.h"
#include "chrg_eload.h"
#include "chrg_lcd.h"
#include "chrg_utils.h"
int chrg_eload_read_regs (rt_uint8_t addr, rt_uint16_t reg, rt_uint16_t len)
@@ -40,7 +43,7 @@ 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 0~13
chrg_eload_read_regs(addr, REG_STA1, SIZE_P1_RD); // reg 0~13
} else if (1 == part) {
chrg_eload_read_regs(addr, REG_POWER, SIZE_P2_RD); // reg 20~39
}
@@ -71,12 +74,23 @@ int chrg_eload_parse (rt_uint8_t idx, rt_uint8_t pt, rt_uint8_t *data, rt_uint16
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->voltage = pP1->voltage;
pLOAD->current = pP1->current;
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);
rt_kprintf("vol %d, cur %d\r\n", pLOAD->voltage, pLOAD->current);
char tmp[36] = {0};
snprintf(tmp, 36, "status.CH%d_Volt_Sta.txt=\"%d.%03d\"",
idx+1, pLOAD->voltage/1000, pLOAD->voltage%1000);
chrg_lcd_send(tmp);
rt_memset(tmp, 0, 36);
snprintf(tmp, 36, "status.CH%d_Curr_Sta.txt=\"%d.%03d\"",
idx+1, pLOAD->current/1000, pLOAD->current%1000);
chrg_lcd_send(tmp);
}
break;