Merge branch 'Control_Borad_V1.2' into Expansion_Board
This commit is contained in:
commit
273560b3ac
|
@ -88,7 +88,7 @@
|
|||
<sRmem>1</sRmem>
|
||||
<sRfunc>1</sRfunc>
|
||||
<sRbox>1</sRbox>
|
||||
<tLdApp>0</tLdApp>
|
||||
<tLdApp>1</tLdApp>
|
||||
<tGomain>0</tGomain>
|
||||
<tRbreak>1</tRbreak>
|
||||
<tRwatch>1</tRwatch>
|
||||
|
@ -120,7 +120,7 @@
|
|||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>JL2CM3</Key>
|
||||
<Name>-U20090928 -O78 -S1 -ZTIFSpeedSel10000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8008 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO27 -FD20003000 -FC5000 -FN1 -FF0B6x_256kB_PY_D.FLM -FS018000000 -FL040000 -FP0($$Device:B6x$.\Flash\B6x_256kB_PY_D.FLM)</Name>
|
||||
<Name>-U20090928 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(0BC11477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8008 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO31 -FD20003000 -FC5000 -FN1 -FF0B6x_256kB_PY_D.FLM -FS018000000 -FL040000 -FP0($$Device:B6x$.\Flash\B6x_256kB_PY_D.FLM)</Name>
|
||||
</SetRegEntry>
|
||||
</TargetDriverDllRegistry>
|
||||
<Breakpoint/>
|
||||
|
@ -343,7 +343,7 @@
|
|||
<GroupNumber>2</GroupNumber>
|
||||
<FileNumber>14</FileNumber>
|
||||
<FileType>1</FileType>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<bDave2>0</bDave2>
|
||||
<PathWithFileName>..\src\sys_config.c</PathWithFileName>
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
<InvalidFlash>1</InvalidFlash>
|
||||
</TargetStatus>
|
||||
<OutputDirectory>.\output\</OutputDirectory>
|
||||
<OutputName>OTA_V2_5</OutputName>
|
||||
<OutputName>OTA_V2_8</OutputName>
|
||||
<CreateExecutable>1</CreateExecutable>
|
||||
<CreateLib>0</CreateLib>
|
||||
<CreateHexFile>1</CreateHexFile>
|
||||
|
@ -655,4 +655,13 @@
|
|||
<files/>
|
||||
</RTE>
|
||||
|
||||
<LayerInfo>
|
||||
<Layers>
|
||||
<Layer>
|
||||
<LayName>zhongkong</LayName>
|
||||
<LayPrjMark>1</LayPrjMark>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</LayerInfo>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define DEBUG(format, ...) debug("[TR_ET]" format "\r\n", ##__VA_ARGS__)
|
||||
#else
|
||||
#define DEBUG(format, ...)
|
||||
#define debugHex(dat, len)
|
||||
//#define debugHex(dat, len)
|
||||
#endif
|
||||
|
||||
static Time_Events_t Time_Events[Time_Event_MAX];
|
||||
|
|
|
@ -5,19 +5,143 @@
|
|||
#include "app_bat.h"
|
||||
#include "sys_config.h"
|
||||
|
||||
#define BAT_Message_interval 1000
|
||||
#define DBG_EN 0
|
||||
|
||||
#if (DBG_EN)
|
||||
#include "dbg.h"
|
||||
#define DEBUG(format, ...) debug("[Bat]" format, ##__VA_ARGS__)
|
||||
#else
|
||||
#define DEBUG(format, ...)
|
||||
//#define debugHex(dat, len)
|
||||
#endif
|
||||
|
||||
#define BAT_Message_interval 100
|
||||
|
||||
tmr_id_t BAT_Message_tmr_id;
|
||||
BAT_Message_t BAT_Message;
|
||||
uint16_t Bat_Voltage_Last;
|
||||
uint16_t Voltage_lag_count;
|
||||
|
||||
uint8_t Bat_STA_Last;
|
||||
|
||||
// 门锁状态更新标志
|
||||
bool GRB_Door_lock_updata=0;
|
||||
uint8_t Bat_STA_Last;
|
||||
uint16_t Voltage_lag_count;
|
||||
uint16_t Voltage_update_count;
|
||||
float temp_bat_voltage=0;
|
||||
// uint16_t Bat_Voltage_Last;
|
||||
|
||||
// uint8_t bat_str[50]={0,0},bat_str_len=0;
|
||||
|
||||
|
||||
const uint16_t coulomp_voltage_table[11] = {
|
||||
BAT_LEVEL_0PERCENT_VOLT,
|
||||
BAT_LEVEL_10PERCENT_VOLT,
|
||||
BAT_LEVEL_20PERCENT_VOLT,
|
||||
BAT_LEVEL_30PERCENT_VOLT,
|
||||
BAT_LEVEL_40PERCENT_VOLT,
|
||||
BAT_LEVEL_50PERCENT_VOLT,
|
||||
BAT_LEVEL_60PERCENT_VOLT,
|
||||
BAT_LEVEL_70PERCENT_VOLT,
|
||||
BAT_LEVEL_80PERCENT_VOLT,
|
||||
BAT_LEVEL_90PERCENT_VOLT,
|
||||
BAT_LEVEL_100PERCENT_VOLT,
|
||||
};
|
||||
|
||||
uint8_t pmu_voltage_to_percent(uint32_t volt){//电压转百分比
|
||||
uint8_t i, percent;
|
||||
float step, base;
|
||||
if((volt < coulomp_voltage_table[0])){
|
||||
return 0;
|
||||
}
|
||||
if((volt >= coulomp_voltage_table[10])){
|
||||
return 100;
|
||||
}
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
if((volt < coulomp_voltage_table[i+1]) && (volt >= coulomp_voltage_table[i])){
|
||||
step = (coulomp_voltage_table[i+1] - coulomp_voltage_table[i]) / 10.0;
|
||||
base = coulomp_voltage_table[i];
|
||||
percent = (10 * i) + (volt - base) / step;
|
||||
DEBUG("\n\ni:%d,volt:%d,step:%02.2f,base:%02.2f,percent:%d\n\n",i,volt,step,base,percent);
|
||||
return (uint8_t)percent;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t LED_control =0,LED_control_last =0;
|
||||
|
||||
static tmr_tk_t BAT_Message_Handle(tmr_id_t id) {
|
||||
uint16_t in_acc_percent= get_in_acc_percent();
|
||||
|
||||
if(BAT_Message.Runing_Time < 0xFFFF){
|
||||
BAT_Message.Runing_Time++;
|
||||
}
|
||||
|
||||
temp_bat_voltage += get_bat_voltage() * 10;
|
||||
|
||||
Voltage_update_count++;
|
||||
if(Voltage_update_count >= (1000/BAT_Message_interval)){//1s
|
||||
BAT_Message.Bat_Voltage = temp_bat_voltage / Voltage_update_count;
|
||||
Voltage_update_count=0;
|
||||
temp_bat_voltage = 0;
|
||||
}
|
||||
// in_acc_percent =80;
|
||||
if(in_acc_percent >= 80){ // 油门大于80%时,
|
||||
if(BAT_Message.Deep_ACC_Time < 0xFFFF){
|
||||
BAT_Message.Deep_ACC_Time++;
|
||||
}
|
||||
Voltage_lag_count++;
|
||||
if(Voltage_lag_count >= (2000/BAT_Message_interval)){//2s
|
||||
Voltage_lag_count=0;
|
||||
BAT_Message.Bat_Percent = pmu_voltage_to_percent(BAT_Message.Bat_Voltage);
|
||||
}
|
||||
if(BAT_Message.Bat_Percent < 12){
|
||||
BAT_Message.Bat_Low_Volt_count++;
|
||||
}
|
||||
}else{
|
||||
Voltage_lag_count=0;
|
||||
}
|
||||
|
||||
|
||||
if(BAT_Message.Bat_Percent < 7){
|
||||
BAT_Message.Bat_STA =(BAT_Message.Bat_STA & 0xE0)|Bat_Low_STA;
|
||||
WS2812_GRBs.GRBs=GRB_RED;
|
||||
}else if(BAT_Message.Bat_Percent < 30){ // 7~30%
|
||||
BAT_Message.Bat_STA =(BAT_Message.Bat_STA & 0xE0)|Bat_30_STA;
|
||||
WS2812_GRBs.GRBs=GRB_RED;
|
||||
}else if(BAT_Message.Bat_Percent < 60){ // 30~60%
|
||||
BAT_Message.Bat_STA =(BAT_Message.Bat_STA & 0xE0)|Bat_60_STA;
|
||||
WS2812_GRBs.GRBs=GRB_BLUE;
|
||||
}else if(BAT_Message.Bat_Percent < 80){ // 60~80%
|
||||
BAT_Message.Bat_STA =(BAT_Message.Bat_STA & 0xE0)|Bat_80_STA;
|
||||
WS2812_GRBs.GRBs=GRB_WHITE;
|
||||
}else{
|
||||
BAT_Message.Bat_STA =(BAT_Message.Bat_STA & 0xE0)|Bat_100_STA;
|
||||
WS2812_GRBs.GRBs=GRB_WHITE;
|
||||
}
|
||||
|
||||
if((Bat_STA_Last != BAT_Message.Bat_STA) || (GRB_Door_lock_updata != Get_Status(OUT_Door_lock)) || (LED_control != LED_control_last)){
|
||||
GRB_Door_lock_updata=Get_Status(OUT_Door_lock);
|
||||
LED_control_last =LED_control;
|
||||
Bat_STA_Last =BAT_Message.Bat_STA;
|
||||
if( Get_Status(OUT_Door_lock) || (LED_control != 0)){
|
||||
if(BAT_Message.Bat_STA & Bat_Charge_STA){
|
||||
Time_Event_Blink(GRB_WS2812_Event,500,500,0xffff,NULL);
|
||||
}else{
|
||||
if(BAT_Message.Bat_STA & Bat_Low_STA){
|
||||
Time_Event_Blink(GRB_WS2812_Event,200,200,0xffff,NULL);
|
||||
}else{
|
||||
Time_Event_Blink(GRB_WS2812_Event,500,500,0xffff,NULL);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
Time_Event_Off(GRB_WS2812_Event,NULL);
|
||||
}
|
||||
}
|
||||
DEBUG("\n\nSTA:0x%#X,V:%d,%d %%,Run:%d,D_A:%d\n\n",BAT_Message.Bat_STA,BAT_Message.Bat_Voltage,BAT_Message.Bat_Percent,BAT_Message.Runing_Time,BAT_Message.Deep_ACC_Time);
|
||||
return (BAT_Message_interval / 10);
|
||||
}
|
||||
|
||||
/*
|
||||
static tmr_tk_t BAT_Message_Handle(tmr_id_t id) {
|
||||
uint16_t Bat_Voltage = get_bat_voltage() * 10;
|
||||
|
||||
|
@ -90,8 +214,13 @@ static tmr_tk_t BAT_Message_Handle(tmr_id_t id) {
|
|||
|
||||
return (BAT_Message_interval / 10);
|
||||
}
|
||||
*/
|
||||
|
||||
void BAT_Message_Init(void) {
|
||||
BAT_Message_tmr_id = sftmr_start(10, BAT_Message_Handle);
|
||||
Bat_Voltage_Last =get_bat_voltage() * 10;
|
||||
BAT_Message.Bat_Voltage = get_bat_voltage() * 10;
|
||||
BAT_Message.Bat_Percent = pmu_voltage_to_percent(BAT_Message.Bat_Voltage);
|
||||
BAT_Message.Runing_Time = 0;
|
||||
BAT_Message.Deep_ACC_Time = 0;
|
||||
BAT_Message.Bat_STA = 0;
|
||||
}
|
||||
|
|
|
@ -1,39 +1,61 @@
|
|||
#ifndef _APP_BAT_H_
|
||||
#define _APP_BAT_H_
|
||||
|
||||
|
||||
#define BAT_SxP1 4 // 电池四串一并
|
||||
#define BAT_VOLT(_Volt) (_Volt * BAT_SxP1) //电压单位转换
|
||||
#define BAT_Low_VOLT BAT_VOLT(105) //10.5V x 4 = 42V
|
||||
#define BAT_Full_VOLT BAT_VOLT(144) //14.4V x 4 = 57.6V
|
||||
|
||||
// #define BAT_LEVEL_0PERCENT_VOLT BAT_VOLT(105) // 0%:(105~110]=(42.0V~44.0V]
|
||||
// #define BAT_LEVEL_10PERCENT_VOLT BAT_VOLT(113) // 10%:(110~113]=(44.0V~45.2V]
|
||||
// #define BAT_LEVEL_20PERCENT_VOLT BAT_VOLT(116) // 20%:(113~116]=(45.2V~46.4V]
|
||||
// #define BAT_LEVEL_30PERCENT_VOLT BAT_VOLT(119) // 30%:(116~119]=(46.4V~47.6V]
|
||||
// #define BAT_LEVEL_40PERCENT_VOLT BAT_VOLT(122) // 40%:(119~122]=(47.6V~48.8V]
|
||||
// #define BAT_LEVEL_50PERCENT_VOLT BAT_VOLT(125) // 50%:(122~125]=(48.8V~50.0V]
|
||||
// #define BAT_LEVEL_60PERCENT_VOLT BAT_VOLT(128) // 60%:(125~128]=(50.0V~51.2V]
|
||||
// #define BAT_LEVEL_70PERCENT_VOLT BAT_VOLT(131) // 70%:(128~131]=(51.2V~52.4V]
|
||||
// #define BAT_LEVEL_80PERCENT_VOLT BAT_VOLT(134) // 80%:(131~134]=(52.4V~53.6V]
|
||||
// #define BAT_LEVEL_90PERCENT_VOLT BAT_VOLT(137) // 90%:(134~137]=(53.6V~54.8V]
|
||||
// #define BAT_LEVEL_100PERCENT_VOLT BAT_VOLT(144) //100%:(137~144]=(54.8V~57.6V]
|
||||
|
||||
// 内阻 20mΩ * 4 =80mΩ // 线损 10A 0.1V
|
||||
|
||||
#define BAT_LEVEL_0PERCENT_VOLT BAT_VOLT(105) // 0%
|
||||
#define BAT_LEVEL_10PERCENT_VOLT BAT_VOLT(107) // 10%
|
||||
#define BAT_LEVEL_20PERCENT_VOLT BAT_VOLT(109) // 20%
|
||||
#define BAT_LEVEL_30PERCENT_VOLT BAT_VOLT(111) // 30%
|
||||
#define BAT_LEVEL_40PERCENT_VOLT BAT_VOLT(113) // 40%
|
||||
#define BAT_LEVEL_50PERCENT_VOLT BAT_VOLT(115) // 50%
|
||||
#define BAT_LEVEL_60PERCENT_VOLT BAT_VOLT(117) // 60%
|
||||
#define BAT_LEVEL_70PERCENT_VOLT BAT_VOLT(119) // 70%
|
||||
#define BAT_LEVEL_80PERCENT_VOLT BAT_VOLT(123) // 80%
|
||||
#define BAT_LEVEL_90PERCENT_VOLT BAT_VOLT(127) // 90%
|
||||
#define BAT_LEVEL_100PERCENT_VOLT BAT_VOLT(134) //100%
|
||||
|
||||
|
||||
// 充电状态
|
||||
typedef enum {
|
||||
Bat_NotCharge_STA=0x01,
|
||||
Bat_Charge_STA=0x02,
|
||||
Bat_Full_STA=0x04,
|
||||
Bat_Low_STA=0x08,
|
||||
Bat_30_STA=0x10,
|
||||
Bat_60_STA=0x20,
|
||||
Bat_100_STA=0x40,
|
||||
Bat_Low_STA=(1<<0),
|
||||
Bat_30_STA=(1<<1),
|
||||
Bat_60_STA=(1<<2),
|
||||
Bat_80_STA=(1<<3),
|
||||
Bat_100_STA=(1<<4),
|
||||
Bat_NotCharge_STA=(1<<5),
|
||||
Bat_Charge_STA=(1<<6),
|
||||
} BAT_STA_t;
|
||||
|
||||
typedef enum {
|
||||
Bat_Percent_Low =420,
|
||||
Bat_Percent_30 =454,
|
||||
Bat_Percent_60 =489,
|
||||
Bat_Percent_100 =535,
|
||||
} BAT_Percent_t;
|
||||
|
||||
// typedef enum {
|
||||
// Bat_Percent_Low =240,
|
||||
// Bat_Percent_30 =260,
|
||||
// Bat_Percent_60 =300,
|
||||
// Bat_Percent_100 =350,
|
||||
// } BAT_Percent_t;
|
||||
|
||||
typedef struct BAT_Message{
|
||||
uint8_t Bat_STA;
|
||||
uint8_t Bat_Remain_Time; // 剩余充电时间
|
||||
uint8_t Bat_Percent; // 42=42%
|
||||
uint8_t Bat_Low_Volt_count; // 低压计数
|
||||
uint16_t Bat_Voltage; // 480=48.0V
|
||||
uint16_t Bat_Percent; // 420=42.0%
|
||||
uint16_t Runing_Time; // 系统运行时间
|
||||
uint16_t Deep_ACC_Time; // 深踩油门时间
|
||||
} BAT_Message_t;
|
||||
|
||||
|
||||
uint8_t pmu_voltage_to_percent(uint32_t volt); // 电压转百分比
|
||||
void BAT_Message_Init(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -61,6 +61,8 @@ void FunctionalCode_01(uint16_t reg_addr){//ID寄存器地址//返回7字节
|
|||
}
|
||||
}
|
||||
|
||||
extern uint8_t LED_control;
|
||||
|
||||
// 03 功能码 # 读 - 保持寄存器
|
||||
// 06 功能码 # 写 - 单个寄存器
|
||||
void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_num){//寄存器地址//返回8字节或15字节
|
||||
|
@ -245,7 +247,7 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
|||
break;
|
||||
}
|
||||
}else if(CMDCode == 0x06){
|
||||
uint8_t Pmode_Timeout =((reg_val_num >> 8) & 0xff);
|
||||
// uint8_t Pmode_Timeout =((reg_val_num >> 8) & 0xff);
|
||||
// if(0 == Pmode_Timeout){
|
||||
// Time_Event_Cancel_DelayOff(Pmode_Timeout_Event);
|
||||
// }else{
|
||||
|
@ -255,6 +257,7 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
|||
// Time_Event_DelayOff(Pmode_Timeout_Event ,1000 * Pmode_Timeout ,NULL);
|
||||
// }
|
||||
sys_sta.Pmode =reg_val_num & 0x03;
|
||||
LED_control = (0 ==(reg_val_num & 0x80))?0:1;
|
||||
MODBUS_Sent_BUF[len_count++] =reg_val_num >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =sys_sta.Pmode & 0xff;
|
||||
break;
|
||||
|
@ -333,16 +336,19 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
|||
}
|
||||
}
|
||||
{ // 0x0201-0x0203
|
||||
case 0x0301: // 电池状态
|
||||
case 0x0301: // 电池状态及电量信息
|
||||
if(CMDCode == 0x03){
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_STA >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_STA & 0xff;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_STA;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_Percent;
|
||||
MODBUS_Sent_BUF[2] +=2;
|
||||
if(0 == --reg_val_num){
|
||||
break;
|
||||
}
|
||||
}else if(CMDCode == 0x06){
|
||||
len_count =0;
|
||||
BAT_Message.Bat_Voltage = get_bat_voltage() * 10;
|
||||
BAT_Message.Bat_Percent = pmu_voltage_to_percent(BAT_Message.Bat_Voltage);
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_STA;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_Percent;
|
||||
break;
|
||||
}
|
||||
case 0x0302: // 电池电压
|
||||
|
@ -357,10 +363,38 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
|||
len_count =0;
|
||||
break;
|
||||
}
|
||||
case 0x0303: // 电池电量
|
||||
case 0x0303: // 系统运行时间
|
||||
if(CMDCode == 0x03){
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_Percent >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_Percent & 0xff;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Runing_Time >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Runing_Time & 0xff;
|
||||
MODBUS_Sent_BUF[2] +=2;
|
||||
if(0 == --reg_val_num){
|
||||
break;
|
||||
}
|
||||
}else if(CMDCode == 0x06){
|
||||
BAT_Message.Runing_Time =0;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Runing_Time >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Runing_Time & 0xff;
|
||||
break;
|
||||
}
|
||||
case 0x0304: // 深踩油门时间
|
||||
if(CMDCode == 0x03){
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Deep_ACC_Time >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Deep_ACC_Time & 0xff;
|
||||
MODBUS_Sent_BUF[2] +=2;
|
||||
if(0 == --reg_val_num){
|
||||
break;
|
||||
}
|
||||
}else if(CMDCode == 0x06){
|
||||
BAT_Message.Deep_ACC_Time =0;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Deep_ACC_Time >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Deep_ACC_Time & 0xff;
|
||||
break;
|
||||
}
|
||||
case 0x0305: // 低压计数
|
||||
if(CMDCode == 0x03){
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_Low_Volt_count >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_Low_Volt_count & 0xff;
|
||||
MODBUS_Sent_BUF[2] +=2;
|
||||
if(0 == --reg_val_num){
|
||||
break;
|
||||
|
@ -369,10 +403,11 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
|||
len_count =0;
|
||||
break;
|
||||
}
|
||||
case 0x0304: // 剩余充电时间
|
||||
case 0x0306: // 当前油门百分比
|
||||
if(CMDCode == 0x03){
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_Remain_Time >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =BAT_Message.Bat_Remain_Time & 0xff;
|
||||
uint16_t in_acc_percent= get_in_acc_percent();
|
||||
MODBUS_Sent_BUF[len_count++] =in_acc_percent >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =in_acc_percent & 0xff;
|
||||
MODBUS_Sent_BUF[2] +=2;
|
||||
if(0 == --reg_val_num){
|
||||
break;
|
||||
|
@ -381,7 +416,7 @@ void FunctionalCode_03_06(uint8_t CMDCode, uint16_t reg_addr , uint16_t reg_val_
|
|||
len_count =0;
|
||||
break;
|
||||
}
|
||||
case 0x0305: // 雷达距离信息
|
||||
case 0x0307: // 雷达距离信息
|
||||
if(CMDCode == 0x03){
|
||||
MODBUS_Sent_BUF[len_count++] =radar_data.distance >> 8;
|
||||
MODBUS_Sent_BUF[len_count++] =radar_data.distance & 0xff;
|
||||
|
|
|
@ -57,7 +57,7 @@ void conf_init(void);
|
|||
|
||||
/**************************系统版本**************************/
|
||||
// 软件本号
|
||||
#define SW_VERSION (5)
|
||||
#define SW_VERSION (8)
|
||||
// 硬件本号
|
||||
#define HW_VERSION (2)
|
||||
// 版本类型:0:0x04000;1:0x20000//不可修改
|
||||
|
|
Loading…
Reference in New Issue