add more comments
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
/****************************************************************************
|
||||
文件名称 : chrg_eload.c
|
||||
完成日期 :
|
||||
当前版本号 : V1.0
|
||||
主要功能 : 源载命令数据解析,封装,读写请求。
|
||||
版本历史 : 创建原始版本
|
||||
说明 :
|
||||
******************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@@ -8,6 +17,14 @@
|
||||
#include "chrg_lcd.h"
|
||||
#include "chrg_utils.h"
|
||||
|
||||
/*****************************************************************
|
||||
函数名称: chrg_eload_read_regs
|
||||
函数描述: 向南向发送读取寄存器
|
||||
输入参数: addr:地址 reg:寄存器起始地址 len:寄存器个数
|
||||
输出参数: -
|
||||
返回说明: <0: 错误 >0:发送数据长度
|
||||
其它说明: -
|
||||
*****************************************************************/
|
||||
int chrg_eload_read_regs (rt_uint8_t addr, rt_uint16_t reg, rt_uint16_t len)
|
||||
{
|
||||
rt_uint8_t buf[8] = {0};
|
||||
@@ -23,6 +40,14 @@ int chrg_eload_read_regs (rt_uint8_t addr, rt_uint16_t reg, rt_uint16_t len)
|
||||
return chrg_south_send(buf, 8);
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
函数名称: chrg_eload_write_reg
|
||||
函数描述: 向南向发送写单个寄存器
|
||||
输入参数: addr:地址 reg:寄存器地址 value:写入值
|
||||
输出参数: -
|
||||
返回说明: <0: 错误 >0:发送数据长度
|
||||
其它说明: -
|
||||
*****************************************************************/
|
||||
int chrg_eload_write_reg (rt_uint8_t addr, rt_uint16_t reg, rt_uint16_t value)
|
||||
{
|
||||
rt_uint8_t buf[8] = {0};
|
||||
@@ -38,6 +63,14 @@ int chrg_eload_write_reg (rt_uint8_t addr, rt_uint16_t reg, rt_uint16_t value)
|
||||
return chrg_south_send(buf, 8);
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
函数名称: chrg_eload_refresh
|
||||
函数描述: 分段请求读取寄存器表
|
||||
输入参数: addr:地址 part:分段
|
||||
输出参数: -
|
||||
返回说明: <0: 错误 >0:发送数据长度
|
||||
其它说明: 实际运行过程只需要读取前13个寄存器即可,即分段0
|
||||
*****************************************************************/
|
||||
int chrg_eload_refresh (rt_uint8_t addr, rt_uint8_t part)
|
||||
{
|
||||
int ret = 0;
|
||||
@@ -51,6 +84,14 @@ int chrg_eload_refresh (rt_uint8_t addr, rt_uint8_t part)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*****************************************************************
|
||||
函数名称: chrg_eload_parse
|
||||
函数描述: 解析源载返回数据
|
||||
输入参数: idx:通道 pt:分段0 *data:数据区 len:数据长度
|
||||
输出参数: -
|
||||
返回说明: <0: 错误 0:正确
|
||||
其它说明: -
|
||||
*****************************************************************/
|
||||
int chrg_eload_parse (rt_uint8_t idx, rt_uint8_t pt, rt_uint8_t *data, rt_uint16_t len)
|
||||
{
|
||||
if (idx >= TOTAL_SOU_CHS) {
|
||||
@@ -71,26 +112,49 @@ int chrg_eload_parse (rt_uint8_t idx, rt_uint8_t pt, rt_uint8_t *data, rt_uint16
|
||||
pLOAD->status2 = pP1->status2;
|
||||
pLOAD->fault1 = pP1->fault1;
|
||||
pLOAD->fault2 = (rt_uint8_t)pP1->fault2;
|
||||
pLOAD->eload = (rt_uint8_t)pP1->eload;
|
||||
pLOAD->eload = swap_u16(pP1->eload);
|
||||
pLOAD->work = (rt_uint8_t)pP1->work_cmd;
|
||||
pLOAD->mode = (rt_uint8_t)pP1->work_mode;
|
||||
pLOAD->voltage = pP1->voltage;
|
||||
pLOAD->current = pP1->current;
|
||||
pLOAD->voltage = swap_u32(pP1->voltage);
|
||||
pLOAD->current = swap_u32(pP1->current);
|
||||
pLOAD->temperatue = pP1->temperature;
|
||||
pLOAD->version = pP1->version;
|
||||
pLOAD->address = (rt_uint8_t)pP1->addr;
|
||||
rt_kprintf("vol %d, cur %d\r\n", pLOAD->voltage, pLOAD->current);
|
||||
|
||||
char tmp[36] = {0};
|
||||
snprintf(tmp, 36, "main.CH%d_Volt_Show.val=%d",
|
||||
idx+1, pLOAD->voltage);
|
||||
chrg_lcd_send(tmp);
|
||||
rt_memset(tmp, 0, 36);
|
||||
|
||||
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, "main.CH%d_Curr_Show.val=%d",
|
||||
idx+1, pLOAD->current);
|
||||
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);
|
||||
rt_memset(tmp, 0, 36);
|
||||
|
||||
if (pP1->work_cmd == 0x100){
|
||||
if (pP1->work_mode == MODE_CONSTANT_VOLTAGE){
|
||||
snprintf(tmp, 36, "main.CH%d_Status.txt=\"恒压\"", idx+1);
|
||||
} else {
|
||||
snprintf(tmp, 36, "main.CH%d_Status.txt=\"恒流\"", idx+1);
|
||||
}
|
||||
} else {
|
||||
snprintf(tmp, 36, "main.CH%d_Status.txt=\"停止\"", idx+1);
|
||||
}
|
||||
chrg_lcd_send(tmp);
|
||||
rt_memset(tmp, 0, 36);
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user