A270S版本路测100km差1.2km-V0.10版本
This commit is contained in:
@ -169,9 +169,7 @@ uint8_t Get_sys_display_theme(void)
|
||||
|
||||
void Set_sys_display_theme(uint8_t value)//光感控制主题
|
||||
{
|
||||
if(value == NULL ){
|
||||
custom_data.display_theme = 0;
|
||||
}else if(value != custom_data.display_theme){
|
||||
if(value != custom_data.display_theme){
|
||||
custom_data.display_theme = value;
|
||||
}
|
||||
}
|
||||
@ -201,9 +199,7 @@ uint8_t Get_sys_bt_connect_state(void)
|
||||
void Set_sys_bt_connect_state(uint8_t value)
|
||||
{
|
||||
// printf("Get_sys_bt_connect_state = %d .\r\n",value);
|
||||
if(value == NULL ){
|
||||
custom_data.bt_connect_state = 0;
|
||||
}else if(value != custom_data.bt_connect_state){
|
||||
if(value != custom_data.bt_connect_state){
|
||||
custom_data.bt_connect_state = value;
|
||||
}
|
||||
//gpio_direction_output(46,1);
|
||||
@ -217,9 +213,7 @@ uint8_t Get_sys_trip_unit(void)
|
||||
}
|
||||
void Set_sys_trip_unit(uint8_t value)
|
||||
{
|
||||
if(value == NULL ){
|
||||
custom_data.user_data.trip_unit = 0;
|
||||
}else if(value != custom_data.user_data.trip_unit){
|
||||
if(value != custom_data.user_data.trip_unit){
|
||||
custom_data.user_data.trip_unit = value;
|
||||
}
|
||||
}
|
||||
@ -230,9 +224,7 @@ uint8_t Get_sys_wireless(void)
|
||||
}
|
||||
void Set_sys_wireless(uint8_t value)
|
||||
{
|
||||
if(value == NULL ){
|
||||
custom_data.wireless = 0;
|
||||
}else if(value != custom_data.wireless){
|
||||
if(value != custom_data.wireless){
|
||||
custom_data.wireless = value;
|
||||
}
|
||||
}
|
||||
@ -257,10 +249,7 @@ uint16_t Get_sys_velocity(void)//速度
|
||||
}
|
||||
void Set_sys_velocity(uint16_t value)
|
||||
{
|
||||
if(value == NULL ){
|
||||
custom_data.velocity = 0;
|
||||
custom_data.display_velocity = 0;
|
||||
}else if(value != custom_data.velocity){
|
||||
if(value != custom_data.velocity){
|
||||
custom_data.velocity = value;
|
||||
custom_data.display_velocity = value;
|
||||
}
|
||||
@ -272,9 +261,7 @@ uint16_t Get_sys_display_velocity(void)//速度
|
||||
}
|
||||
void Set_sys_display_velocity(uint16_t value)
|
||||
{
|
||||
if(value == NULL ){
|
||||
custom_data.display_velocity = 0;
|
||||
}else if(value != custom_data.display_velocity){
|
||||
if(value != custom_data.display_velocity){
|
||||
custom_data.display_velocity = value;
|
||||
}
|
||||
}
|
||||
@ -298,11 +285,9 @@ uint16_t Get_sys_veer_velocity(void)//转速
|
||||
}
|
||||
void Set_sys_veer_velocity(uint16_t value)
|
||||
{
|
||||
// if(value == NULL ){
|
||||
// custom_data.veer_velocity = 0;
|
||||
// }else if(value != custom_data.veer_velocity){
|
||||
if(value != custom_data.veer_velocity){
|
||||
custom_data.veer_velocity = value;
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
uint16_t Get_sys_temp(void)//温度
|
||||
@ -333,19 +318,8 @@ uint16_t Get_sys_can_temp(void)//温度
|
||||
}
|
||||
void Set_sys_can_temp(uint16_t value)
|
||||
{
|
||||
if(value == NULL ){
|
||||
custom_data.eng_temp = 0;
|
||||
}else if(value != custom_data.eng_temp){
|
||||
/*if(value < custom_data.temp){
|
||||
if(custom_data.temp - value > THRESHOLD)
|
||||
custom_data.temp = value;
|
||||
}else{
|
||||
if( (value - custom_data.temp) > THRESHOLD)
|
||||
custom_data.temp = value;
|
||||
}*/
|
||||
if(value != custom_data.eng_temp){
|
||||
custom_data.eng_temp = value;
|
||||
//custom_data.temp = value;
|
||||
// DEBUG_PRINT("temp=%d ,",value);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
#define MOTO_ICMX_GB518_A270S_KP 4
|
||||
#define MOTO_ICMX_GB518_A272M 5
|
||||
|
||||
#define MOTO_WARE_HOSE MOTO_ICMX_GB518_A272M
|
||||
#define MOTO_WARE_HOSE MOTO_ICMX_GB518_A270S
|
||||
|
||||
#if (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270M)
|
||||
#define SOFT_WARE_HOST 1
|
||||
@ -38,7 +38,7 @@
|
||||
|
||||
#elif (MOTO_WARE_HOSE == MOTO_ICMX_GB518_A270S)
|
||||
#define SOFT_WARE_HOST 0
|
||||
#define SOFT_WARE_ORDER 4
|
||||
#define SOFT_WARE_ORDER 10
|
||||
#define HARD_WARE "MXC-A27-M V4.5"
|
||||
#define KEY_EXCHANGE 1
|
||||
#define MCU_INFO_LABEL "A270S"
|
||||
|
@ -15,6 +15,17 @@
|
||||
double total_mile = 0;
|
||||
double test_data = 0;
|
||||
|
||||
uint32_t test_total = 0;
|
||||
uint32_t mile_total = 0;
|
||||
uint8_t mile_kilometer = 0;
|
||||
static uint16_t veer_velocity = 0;
|
||||
static uint16_t eng_temp = 0;
|
||||
volatile double can_speed = 0;
|
||||
volatile double avg_can_speed = 0;//保存上一帧的速度值
|
||||
volatile double recan_speed = 0;//保存上一帧的速度值
|
||||
uint16_t diff_can_speed = 0;
|
||||
static uint16_t display_can_speed = 0;
|
||||
static uint16_t display_speed = 0;
|
||||
uint32_t flash_trip_mile = 0;
|
||||
uint32_t flash_total_mile = 0;
|
||||
|
||||
@ -119,9 +130,6 @@ void Unified_brightness_processing(uint8_t data,uint8_t type){
|
||||
switch(type){
|
||||
case 0:
|
||||
duty_ns = LIGHTVALUEDATAONE(data);
|
||||
/*if(Get_sys_veer_velocity() <1000){
|
||||
duty_ns = duty_ns/LOW_BRIGHTNESS_MODE;
|
||||
}*/
|
||||
Set_sys_light(LIGHTCALUEDATA(data));
|
||||
break;
|
||||
case 1:
|
||||
@ -245,7 +253,7 @@ ret_t on_key_test_theme(void* ctx, event_t* e){
|
||||
}
|
||||
#endif
|
||||
|
||||
void defect_code_event_handing(int *buf){
|
||||
void defect_code_event_handing(uint8_t *buf){
|
||||
uint32_t sum,sum1,sum2;
|
||||
uint8_t data;
|
||||
uint8_t result = 0;
|
||||
@ -278,6 +286,8 @@ void defect_code_event_handing(int *buf){
|
||||
|
||||
// 假设时间间隔为10毫秒(0.01秒)
|
||||
#define TIME_INTERVAL 0.01
|
||||
// 假设时间间隔为500毫秒(0.01秒)
|
||||
#define TIME_INTERVAL2 0.5
|
||||
uint8_t save_total_mile = 0;
|
||||
|
||||
uint32_t total_flag = 0;
|
||||
@ -297,200 +307,344 @@ double calculateTotalDistance(uint8_t count)
|
||||
return distance;
|
||||
}
|
||||
|
||||
// 计算总计里程
|
||||
double calculateTotalDistance2(uint8_t count)
|
||||
{
|
||||
// 将速度数据转换为米每秒的速度值
|
||||
double speed_mps = count * 1000.0 / 3600.0;
|
||||
|
||||
void ASB_speed_event_handing(int *buf){
|
||||
#ifdef UI_VIEW_QUICKLY_ARRANGE
|
||||
// 计算每次速度更新所行驶的距离
|
||||
double distance = speed_mps * TIME_INTERVAL2;
|
||||
|
||||
// 返回每次行驶的距离,可以在主程序中累加得到总计里程
|
||||
return distance;
|
||||
}
|
||||
|
||||
// extern volatile uint8_t cnt;
|
||||
static uint8_t livecounter=0;
|
||||
static int8_t relivecounter=-1;
|
||||
static uint8_t diff_livecounter = 0;
|
||||
void ASB_speed_event_handing(uint8_t *buf){
|
||||
// cnt=0;
|
||||
// printf("=%d.\r\n",cnt);
|
||||
uint8_t data = 0;
|
||||
uint8_t speed_data = 0;
|
||||
uint8_t speed_flag = 0;
|
||||
uint16_t speed = 0;
|
||||
uint32_t trip = 0;
|
||||
uint32_t total = 0;
|
||||
uint16_t display_speed = 0;
|
||||
|
||||
speed = *(buf++)&0xFF;
|
||||
data = *(buf++)&0xFF;
|
||||
speed = *(buf++);
|
||||
data = *(buf++);
|
||||
speed_data = getBit5Value(data,3);
|
||||
speed_flag = getBitValue(data,2);
|
||||
// printf("frontflag=%d.\r\n",speed_flag);
|
||||
//前轮速度有效
|
||||
// if(!speed_flag){
|
||||
if(0){
|
||||
// printf("front>speed_data=%05X,speed=%08X,",speed_data,speed);
|
||||
if(!speed_flag){
|
||||
speed = speed_data | speed<<5;
|
||||
// printf("rearspeed=%X.\r\n",speed);
|
||||
speed = (int)(speed * 0.05625);//偏移系数
|
||||
can_speed = (speed * 0.05625);//偏移系数
|
||||
mile_total += (uint32_t)can_speed;
|
||||
|
||||
display_speed = speed;//UI显示上浮8%
|
||||
// printf("display_speed=%X>%d,",speed,speed);
|
||||
speed = (int)(speed * 0.92);
|
||||
// printf("mile_speed=%X>%d.\r\n",speed,speed);
|
||||
(buf++);
|
||||
(buf++);
|
||||
(buf++);
|
||||
(buf++);
|
||||
|
||||
|
||||
total_mile += calculateTotalDistance(speed);
|
||||
if(display_speed>=255)
|
||||
display_speed = 255;
|
||||
Set_sys_velocity(display_speed);
|
||||
trip = flash_trip_mile + total_mile;
|
||||
total = flash_total_mile + total_mile;
|
||||
|
||||
if((int)(total_mile)>=1 && (((int)total_mile)%1000 ==0) && total != total_flag){
|
||||
save_total_mile = 1;
|
||||
total_flag = total;
|
||||
}
|
||||
|
||||
Set_sys_trip_mileage(trip);
|
||||
Set_sys_total_mileage(total);
|
||||
}else{
|
||||
speed = getBit2Value(data,0);
|
||||
// printf("rear>speed=%X,",speed);
|
||||
data = *(buf++)&0xFF;
|
||||
// printf("data=%08X,",data);
|
||||
data = *(buf++);
|
||||
speed = data | speed<<8;
|
||||
// printf("data2=%X,",speed);
|
||||
|
||||
data = *(buf++)&0xFF;
|
||||
|
||||
data = *(buf++);
|
||||
speed_data = getBit3Value(data,5);
|
||||
// printf("data3=%X.\r\n",speed_data);
|
||||
speed_flag = getBitValue(data,4);
|
||||
// printf("rearflag=%d.\r\n",speed_flag);
|
||||
// if(!speed_flag){
|
||||
if(1){
|
||||
if(!speed_flag){
|
||||
speed = speed_data | speed<<3;
|
||||
// printf("rearspeed=%X.\r\n",speed);
|
||||
|
||||
speed = (int)(speed * 0.05625);//偏移系数
|
||||
|
||||
display_speed = speed * 1.08;//UI显示上浮8%
|
||||
// printf("display_speed=%X>%d,",speed,speed);
|
||||
speed = (int)(speed);
|
||||
// printf("mile_speed=%X>%d.\r\n",speed,speed);
|
||||
|
||||
total_mile += calculateTotalDistance(speed);
|
||||
if(display_speed>=255)
|
||||
display_speed = 255;
|
||||
Set_sys_velocity(display_speed);
|
||||
trip = flash_trip_mile + total_mile;
|
||||
total = flash_total_mile + total_mile;
|
||||
|
||||
if((int)(total_mile)>=1 && (((int)total_mile)%1000 ==0) && total != total_flag){
|
||||
save_total_mile = 1;
|
||||
total_flag = total;
|
||||
}
|
||||
|
||||
Set_sys_trip_mileage(trip);
|
||||
Set_sys_total_mileage(total);
|
||||
can_speed = (speed * 0.05625);//偏移系数
|
||||
mile_total +=(uint32_t)can_speed;
|
||||
}
|
||||
(buf++);
|
||||
(buf++);
|
||||
}
|
||||
data = *(buf++);
|
||||
livecounter = getBit4Value(data,0);
|
||||
avg_can_speed = (uint16_t)((recan_speed+can_speed)/2);
|
||||
if(recan_speed){
|
||||
if(livecounter!=relivecounter){
|
||||
if(livecounter>relivecounter){//最小为1
|
||||
diff_livecounter = (livecounter-relivecounter-1);
|
||||
while(diff_livecounter){
|
||||
diff_livecounter--;
|
||||
mile_total +=avg_can_speed;
|
||||
}
|
||||
}else{
|
||||
diff_livecounter = relivecounter-livecounter;
|
||||
if(diff_livecounter!=15){//若为15则正常 F->0过度
|
||||
mile_total +=((avg_can_speed)*(15-diff_livecounter));
|
||||
}
|
||||
}
|
||||
}else{
|
||||
mile_total +=(avg_can_speed*14);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
relivecounter = livecounter;
|
||||
recan_speed = can_speed;//保存本次帧的值
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
// void ASB_speed_event_handing(uint8_t *buf){
|
||||
// #ifdef UI_VIEW_QUICKLY_ARRANGE
|
||||
// uint8_t data = 0;
|
||||
// uint8_t speed_data = 0;
|
||||
// uint8_t speed_flag = 0;
|
||||
// uint16_t speed = 0;
|
||||
// uint32_t trip = 0;
|
||||
// uint32_t total = 0;
|
||||
// uint16_t display_speed = 0;
|
||||
|
||||
void ASB_141_speed_event_handing(int *buf){
|
||||
#ifdef UI_VIEW_QUICKLY_ARRANGE
|
||||
// speed = *(buf++)&0xFF;
|
||||
// data = *(buf++)&0xFF;
|
||||
// speed_data = getBit5Value(data,3);
|
||||
// speed_flag = getBitValue(data,2);
|
||||
// // printf("frontflag=%d.\r\n",speed_flag);
|
||||
// //前轮速度有效
|
||||
// // if(!speed_flag){
|
||||
// if(0){
|
||||
// // printf("front>speed_data=%05X,speed=%08X,",speed_data,speed);
|
||||
// speed = speed_data | speed<<5;
|
||||
// // printf("rearspeed=%X.\r\n",speed);
|
||||
// speed = (int)(speed * 0.05625);//偏移系数
|
||||
|
||||
// display_speed = speed;//UI显示上浮8%
|
||||
// // printf("display_speed=%X>%d,",speed,speed);
|
||||
// speed = (int)(speed * 0.92);
|
||||
// // printf("mile_speed=%X>%d.\r\n",speed,speed);
|
||||
|
||||
// total_mile += calculateTotalDistance(speed);
|
||||
// if(display_speed>=255)
|
||||
// display_speed = 255;
|
||||
// Set_sys_velocity(display_speed);
|
||||
// trip = flash_trip_mile + total_mile;
|
||||
// total = flash_total_mile + total_mile;
|
||||
|
||||
// if((int)(total_mile)>=1 && (((int)total_mile)%1000 ==0) && total != total_flag){
|
||||
// save_total_mile = 1;
|
||||
// total_flag = total;
|
||||
// }
|
||||
|
||||
// Set_sys_trip_mileage(trip);
|
||||
// Set_sys_total_mileage(total);
|
||||
// }else{
|
||||
// speed = getBit2Value(data,0);
|
||||
// // printf("rear>speed=%X,",speed);
|
||||
// data = *(buf++)&0xFF;
|
||||
// // printf("data=%08X,",data);
|
||||
// speed = data | speed<<8;
|
||||
// // printf("data2=%X,",speed);
|
||||
|
||||
// data = *(buf++)&0xFF;
|
||||
// speed_data = getBit3Value(data,5);
|
||||
// // printf("data3=%X.\r\n",speed_data);
|
||||
// speed_flag = getBitValue(data,4);
|
||||
// // printf("rearflag=%d.\r\n",speed_flag);
|
||||
// // if(!speed_flag){
|
||||
// if(1){
|
||||
// speed = speed_data | speed<<3;
|
||||
// // printf("rearspeed=%X.\r\n",speed);
|
||||
|
||||
// speed = (int)(speed * 0.05625);//偏移系数
|
||||
|
||||
// display_speed = speed * 1.08;//UI显示上浮8%
|
||||
// // printf("display_speed=%X>%d,",speed,speed);
|
||||
// speed = (int)(speed);
|
||||
// // printf("mile_speed=%X>%d.\r\n",speed,speed);
|
||||
|
||||
// total_mile += calculateTotalDistance(speed);
|
||||
// if(display_speed>=255)
|
||||
// display_speed = 255;
|
||||
// Set_sys_velocity(display_speed);
|
||||
// trip = flash_trip_mile + total_mile;
|
||||
// total = flash_total_mile + total_mile;
|
||||
|
||||
// if((int)(total_mile)>=1 && (((int)total_mile)%1000 ==0) && total != total_flag){
|
||||
// save_total_mile = 1;
|
||||
// total_flag = total;
|
||||
// }
|
||||
|
||||
// Set_sys_trip_mileage(trip);
|
||||
// Set_sys_total_mileage(total);
|
||||
// }
|
||||
|
||||
|
||||
// }
|
||||
|
||||
// #endif
|
||||
// }
|
||||
|
||||
|
||||
void ASB_141_speed_event_handing(uint8_t *buf){
|
||||
uint8_t data = 0;
|
||||
uint8_t speed_data = 0;
|
||||
uint8_t speed_flag = 0;
|
||||
uint16_t speed = 0;
|
||||
uint32_t trip = 0;
|
||||
uint32_t total = 0;
|
||||
uint16_t display_speed = 0;
|
||||
|
||||
*(buf++)&0xFF;
|
||||
*(buf++)&0xFF;
|
||||
*(buf++)&0xFF;
|
||||
*(buf++)&0xFF;
|
||||
|
||||
speed = *(buf++)&0xFF;
|
||||
data = *(buf++)&0xFF;
|
||||
speed = *(buf++);
|
||||
data = *(buf++);
|
||||
speed_data = getBit5Value(data,3);
|
||||
speed = speed_data | speed<<5;
|
||||
speed_flag = getBitValue(data,2);
|
||||
// printf("frontflag=%d.\r\n",speed_flag);
|
||||
//前轮速度有效
|
||||
if(!speed_flag){
|
||||
speed = speed_data | speed<<5;
|
||||
can_speed = (speed * 0.05625);//偏移系数
|
||||
mile_total += (uint32_t)can_speed;
|
||||
|
||||
speed = (int)(speed * 0.05625);//偏移系数
|
||||
|
||||
display_speed = speed;//UI显示上浮8%
|
||||
// printf("display_speed=%X>%d,",speed,speed);
|
||||
speed = (int)(speed * 0.92);
|
||||
// printf("mile_speed=%X>%d.\r\n",speed,speed);
|
||||
|
||||
total_mile += calculateTotalDistance(speed);
|
||||
if(display_speed>=255)
|
||||
display_speed = 255;
|
||||
Set_sys_velocity(display_speed);
|
||||
trip = flash_trip_mile + total_mile;
|
||||
total = flash_total_mile + total_mile;
|
||||
|
||||
if((int)(total_mile)>=1 && (((int)total_mile)%1000 ==0) && total != total_flag){
|
||||
save_total_mile = 1;
|
||||
total_flag = total;
|
||||
(buf++);
|
||||
(buf++);
|
||||
(buf++);
|
||||
(buf++);
|
||||
|
||||
}else{
|
||||
(buf++);
|
||||
(buf++);
|
||||
speed = *(buf++);
|
||||
data = *(buf++);
|
||||
speed_data = getBit5Value(data,3);
|
||||
speed_flag = getBitValue(data,2);
|
||||
if(!speed_flag){
|
||||
speed = speed_data | speed<<5;
|
||||
can_speed = (speed * 0.05625);//偏移系数
|
||||
mile_total += (uint32_t)can_speed;
|
||||
}
|
||||
}
|
||||
|
||||
Set_sys_trip_mileage(trip);
|
||||
Set_sys_total_mileage(total);
|
||||
data = *(buf++);
|
||||
livecounter = getBit4Value(data,0);
|
||||
avg_can_speed = (uint16_t)((recan_speed+can_speed)/2);
|
||||
if(recan_speed){
|
||||
if(livecounter!=relivecounter){
|
||||
if(livecounter>relivecounter){//最小为1
|
||||
diff_livecounter = (livecounter-relivecounter-1);
|
||||
while(diff_livecounter){
|
||||
diff_livecounter--;
|
||||
mile_total +=avg_can_speed;
|
||||
}
|
||||
}else{
|
||||
diff_livecounter = relivecounter-livecounter;
|
||||
if(diff_livecounter!=15){//若为15则正常 F->0过度
|
||||
mile_total +=((avg_can_speed)*(15-diff_livecounter));
|
||||
}
|
||||
}
|
||||
}else{
|
||||
mile_total +=(avg_can_speed*14);
|
||||
}
|
||||
|
||||
}
|
||||
relivecounter = livecounter;
|
||||
recan_speed = can_speed;//保存本次帧的值
|
||||
|
||||
|
||||
}
|
||||
|
||||
// //用于备份
|
||||
// void ASB_141_speed_event_handing(uint8_t *buf){
|
||||
// #ifdef UI_VIEW_QUICKLY_ARRANGE
|
||||
// uint8_t data = 0;
|
||||
// uint8_t speed_data = 0;
|
||||
// uint8_t speed_flag = 0;
|
||||
// uint16_t speed = 0;
|
||||
// uint32_t trip = 0;
|
||||
// uint32_t total = 0;
|
||||
// uint16_t display_speed = 0;
|
||||
|
||||
// *(buf++)&0xFF;
|
||||
// *(buf++)&0xFF;
|
||||
// *(buf++)&0xFF;
|
||||
// *(buf++)&0xFF;
|
||||
|
||||
// speed = *(buf++)&0xFF;
|
||||
// data = *(buf++)&0xFF;
|
||||
// speed_data = getBit5Value(data,3);
|
||||
// speed = speed_data | speed<<5;
|
||||
|
||||
// speed = (int)(speed * 0.05625);//偏移系数
|
||||
|
||||
// display_speed = speed;//UI显示上浮8%
|
||||
// // printf("display_speed=%X>%d,",speed,speed);
|
||||
// speed = (int)(speed * 0.92);
|
||||
// // printf("mile_speed=%X>%d.\r\n",speed,speed);
|
||||
|
||||
// total_mile += calculateTotalDistance(speed);
|
||||
// if(display_speed>=255)
|
||||
// display_speed = 255;
|
||||
// Set_sys_velocity(display_speed);
|
||||
// trip = flash_trip_mile + total_mile;
|
||||
// total = flash_total_mile + total_mile;
|
||||
|
||||
// if((int)(total_mile)>=1 && (((int)total_mile)%1000 ==0) && total != total_flag){
|
||||
// save_total_mile = 1;
|
||||
// total_flag = total;
|
||||
// }
|
||||
|
||||
// Set_sys_trip_mileage(trip);
|
||||
// Set_sys_total_mileage(total);
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
}
|
||||
// #endif
|
||||
// }
|
||||
|
||||
void speed_event_handing(int *buf){
|
||||
uint16_t veer_velocity = 0;
|
||||
uint16_t eng_temp = 0;
|
||||
// uint8_t eng_flag = 0;
|
||||
|
||||
|
||||
veer_velocity = *(buf++) &0xFF;
|
||||
veer_velocity = (*(buf++)&0xFF) | veer_velocity<<8;
|
||||
veer_velocity *= 0.25;
|
||||
extern uint8_t speed_flag;
|
||||
|
||||
#if (MOTO_WARE_HOSE != MOTO_ICMX_GB518_A270M_KP && MOTO_WARE_HOSE != MOTO_ICMX_GB518_A270S_KP)
|
||||
uint8_t speed = 0;
|
||||
#define KILOMETER 3600000000 //一万公里
|
||||
void speed_convert_mile_calculation(void){
|
||||
uint32_t trip = 0;
|
||||
uint32_t total = 0;
|
||||
uint16_t display_speed = 0;
|
||||
speed = *(buf++)&0xFF;
|
||||
display_speed = speed;//UI显示上浮8%
|
||||
speed = (int)(speed * 0.92);
|
||||
#else
|
||||
*(buf++)&0xFF;
|
||||
#endif
|
||||
// printf("%d.\r\n",mile_total);
|
||||
|
||||
*(buf++);
|
||||
eng_temp = *(buf++) &0xFF;
|
||||
eng_temp = (*(buf++)&0xFF) | eng_temp<<8;
|
||||
if(mile_total>KILOMETER){//一万公里
|
||||
mile_kilometer++;
|
||||
mile_total-=KILOMETER;
|
||||
flash_total_mile+=KILOMETER;
|
||||
flash_trip_mile+=KILOMETER;
|
||||
}
|
||||
|
||||
// *(buf++);
|
||||
#if SPEED_DATA_CAN
|
||||
total = flash_total_mile + (uint32_t)(mile_total/360);
|
||||
trip = flash_trip_mile + (uint32_t)(mile_total/360);
|
||||
Set_sys_trip_mileage(trip);
|
||||
Set_sys_total_mileage(total);
|
||||
|
||||
if(speed_flag){
|
||||
display_speed = (uint32_t)(display_can_speed*1.08);//UI显示上浮8%
|
||||
if(display_speed>=255)
|
||||
display_speed = 255;
|
||||
Set_sys_velocity(display_speed);
|
||||
veer_velocity *= 0.25;
|
||||
if(veer_velocity>16384)
|
||||
veer_velocity = 16384;
|
||||
Set_sys_veer_velocity(veer_velocity);
|
||||
|
||||
#if (MOTO_WARE_HOSE != MOTO_ICMX_GB518_A270M_KP && MOTO_WARE_HOSE != MOTO_ICMX_GB518_A270S_KP)
|
||||
total_mile += calculateTotalDistance(speed);
|
||||
if(display_speed>=255)
|
||||
display_speed = 255;
|
||||
Set_sys_velocity(display_speed);
|
||||
trip = flash_trip_mile + total_mile;
|
||||
total = flash_total_mile + total_mile;
|
||||
|
||||
if((int)(total_mile)>=1 && (((int)total_mile)%1000 ==0) && total != total_flag){
|
||||
save_total_mile = 1;
|
||||
total_flag = total;
|
||||
}
|
||||
|
||||
Set_sys_trip_mileage(trip);
|
||||
Set_sys_total_mileage(total);
|
||||
#endif
|
||||
|
||||
|
||||
Set_sys_can_temp(eng_temp);
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void tcs_control_event_handing(int *buf){
|
||||
void speed_event_handing(uint8_t *buf){
|
||||
veer_velocity = *(buf++);
|
||||
veer_velocity = *(buf++) | veer_velocity<<8;
|
||||
|
||||
#if (MOTO_WARE_HOSE != MOTO_ICMX_GB518_A270M_KP && MOTO_WARE_HOSE != MOTO_ICMX_GB518_A270S_KP)
|
||||
// can_speed = *(buf++);
|
||||
// mile_total +=can_speed;
|
||||
display_can_speed = *(buf++);
|
||||
#else
|
||||
*(buf++);
|
||||
#endif
|
||||
|
||||
*(buf++);
|
||||
eng_temp = *(buf++);
|
||||
eng_temp = *(buf++) | eng_temp<<8;
|
||||
}
|
||||
|
||||
void tcs_control_event_handing(uint8_t *buf){
|
||||
/*uint8_t data = 0 ;
|
||||
uint8_t tcs_flag = 0;
|
||||
|
||||
@ -504,7 +658,7 @@ void tcs_control_event_handing(int *buf){
|
||||
*/
|
||||
}
|
||||
|
||||
void mil_control_event_handing(int *buf){
|
||||
void mil_control_event_handing(uint8_t *buf){
|
||||
uint8_t data = 0 ;
|
||||
uint8_t mil_flag = 0;
|
||||
|
||||
@ -521,7 +675,7 @@ void mil_control_event_handing(int *buf){
|
||||
|
||||
}
|
||||
|
||||
void kp_control_event_handing(int *buf){
|
||||
void kp_control_event_handing(uint8_t *buf){
|
||||
uint8_t data = 0;
|
||||
|
||||
*(buf++);
|
||||
|
@ -37,10 +37,10 @@ void return_demo(void);
|
||||
void new_refreshes(widget_t* child);
|
||||
void list_win_init(widget_t* child);
|
||||
void refresh_animate(widget_t* child);
|
||||
void defect_code_event_handing(int *buf);
|
||||
// void speed_event_handing(int *buf);
|
||||
void tcs_control_event_handing(int *buf);
|
||||
void mil_control_event_handing(int *buf);
|
||||
void defect_code_event_handing(uint8_t *buf);
|
||||
// void speed_event_handing(uint8_t *buf);
|
||||
void tcs_control_event_handing(uint8_t *buf);
|
||||
void mil_control_event_handing(uint8_t *buf);
|
||||
|
||||
|
||||
ret_t long_key_event_handling(uint8_t key);
|
||||
@ -76,7 +76,7 @@ void list_theme_button1_init(void);
|
||||
void list_theme_button2_init(void);
|
||||
void list_theme_button4_init(void);
|
||||
|
||||
void speed_event_handing(int *buf);
|
||||
void ASB_141_speed_event_handing(int *buf);
|
||||
void speed_event_handing(uint8_t *buf);
|
||||
void ASB_141_speed_event_handing(uint8_t *buf);
|
||||
|
||||
#endif
|
@ -29,6 +29,9 @@ extern uint8_t power_on_flag;
|
||||
static uint32_t idletick = 0;
|
||||
static uint32_t refresh500ms_idletick = 0;
|
||||
uint8_t refresh500ms_flag = 0;
|
||||
extern uint32_t mile_total;
|
||||
extern uint32_t test_total;
|
||||
|
||||
|
||||
/**
|
||||
* 注册自定义控件
|
||||
@ -361,6 +364,11 @@ static ret_t on_timer(const idle_info_t* idle){
|
||||
speed --;
|
||||
Set_sys_velocity(speed);
|
||||
}
|
||||
// speed_buffer[speed_count]=speed;
|
||||
// speed_count++;
|
||||
// if(speed_count>=10){//满足存储大小 计算均值
|
||||
// speed_count=0;
|
||||
// }
|
||||
}
|
||||
|
||||
if(mile_flag){
|
||||
@ -496,6 +504,8 @@ static ret_t on_timer(const idle_info_t* idle){
|
||||
dh = 0;
|
||||
}
|
||||
|
||||
printf("test_total=%d,mile_total=%d.\r\n",test_total,mile_total);
|
||||
|
||||
idletick = xTaskGetTickCount();
|
||||
}
|
||||
if(xTaskGetTickCount() - refresh500ms_idletick > 500){
|
||||
|
Reference in New Issue
Block a user