CARPLAY版本整理
This commit is contained in:
127
MXC_A27-PCB4.5-270T/app/moto/protocol/can_protocol.c
Normal file
127
MXC_A27-PCB4.5-270T/app/moto/protocol/can_protocol.c
Normal file
@ -0,0 +1,127 @@
|
||||
#include "awtk.h"
|
||||
#include "can_protocol.h"
|
||||
|
||||
uint8_t tcs_twinkle = 0;
|
||||
uint8_t tcs_switch = 0;
|
||||
|
||||
//37B
|
||||
void tcsworking_event_handing(int *buf){
|
||||
uint8_t data = 0;
|
||||
*(buf++);
|
||||
*(buf++);
|
||||
data = *(buf++);
|
||||
tcs_twinkle = getBitValue(data,7);//tcs闪烁控制指令 为1闪烁
|
||||
}
|
||||
|
||||
//12B
|
||||
void tcsswitch_event_handing(int *buf){
|
||||
uint8_t data = 0;
|
||||
uint8_t tcs_data = 0;
|
||||
data = *(buf++);
|
||||
tcs_data = getBit2Value(data,0);//tcs开关信号
|
||||
if(tcs_data<=1)
|
||||
tcs_switch = tcs_data;
|
||||
}
|
||||
//101
|
||||
void speed_event_handing(int *buf){
|
||||
uint16_t eng_temp = 0;
|
||||
uint16_t data = 0;
|
||||
uint8_t state_data = 0;
|
||||
double buf_value = 0;
|
||||
*(buf++);
|
||||
*(buf++);
|
||||
*(buf++);
|
||||
*(buf++);
|
||||
|
||||
data = *(buf++) &0xFF;
|
||||
data = (*(buf++)&0xFF) | data<<8;
|
||||
|
||||
buf_value = data;
|
||||
if(buf_value>5280)
|
||||
buf_value = 255;
|
||||
else if(buf_value>2730)
|
||||
buf_value = ((buf_value*0.1)-273);
|
||||
else
|
||||
buf_value = 0;
|
||||
eng_temp = (int)buf_value;
|
||||
Set_sys_can_temp(eng_temp);
|
||||
state_data = *(buf++);
|
||||
Set_sys_can_state(state_data);
|
||||
|
||||
}
|
||||
|
||||
//0xA5
|
||||
void abs_dtc_event_handing(int *buf){
|
||||
char dtc[5] = {0};
|
||||
dtc[4] = *(buf++)&0xFF;
|
||||
dtc[3] = *(buf++)&0xFF;
|
||||
dtc[2] = *(buf++)&0xFF;
|
||||
dtc[1] = *(buf++)&0xFF;
|
||||
dtc[0] = *(buf++)&0xFF;
|
||||
Set_can_abs_dtc(dtc);
|
||||
}
|
||||
|
||||
//0x402
|
||||
void ecu_dtc_event_handing2(int *buf){
|
||||
char dtc[5] = {0};
|
||||
dtc[4] = *(buf++)&0xFF;
|
||||
dtc[3] = *(buf++)&0xFF;
|
||||
dtc[2] = *(buf++)&0xFF;
|
||||
dtc[1] = *(buf++)&0xFF;
|
||||
dtc[0] = *(buf++)&0xFF;
|
||||
Set_can_abs_dtc(dtc);
|
||||
}
|
||||
|
||||
uint8_t dtc_flag = 0;
|
||||
void A59_dtc_event_handing(int *buf){
|
||||
uint32_t sum,sum1,sum2;
|
||||
sum = 0;
|
||||
sum1 = *(buf++)&0xFF;
|
||||
*(buf++)&0xFF;
|
||||
sum2 = *(buf++)&0xFF;
|
||||
////低位再前
|
||||
//sum = sum1 | sum2<<8;
|
||||
//高位再前
|
||||
sum = sum1<<8 | sum2;
|
||||
// if (sum !=0)
|
||||
Set_sys_now_defect_code(sum);
|
||||
|
||||
dtc_flag = *(buf++)&0xFF;
|
||||
|
||||
sum = 0;
|
||||
sum1 = *(buf++)&0xFF;
|
||||
*(buf++)&0xFF;
|
||||
sum2 = *(buf++)&0xFF;
|
||||
sum = sum1<<8 | sum2;
|
||||
// if (sum !=0)
|
||||
Set_sys_his_defect_code(sum);
|
||||
|
||||
}
|
||||
|
||||
//101
|
||||
void A59_speed_event_handing(int *buf){
|
||||
uint16_t eng_temp = 0;
|
||||
uint16_t data = 0;
|
||||
uint8_t state_data = 0;
|
||||
double buf_value = 0;
|
||||
*(buf++);
|
||||
*(buf++);
|
||||
*(buf++);
|
||||
*(buf++);
|
||||
|
||||
data = *(buf++) &0xFF;
|
||||
data = (*(buf++)&0xFF) | data<<8;
|
||||
|
||||
buf_value = data;
|
||||
if(buf_value>5280)
|
||||
buf_value = 255;
|
||||
else if(buf_value>2730)
|
||||
buf_value = ((buf_value*0.1)-273);
|
||||
else
|
||||
buf_value = 0;
|
||||
eng_temp = (int)buf_value;
|
||||
Set_sys_can_temp(eng_temp);
|
||||
state_data = *(buf++);
|
||||
Set_sys_can_state(state_data);
|
||||
|
||||
}
|
Reference in New Issue
Block a user