130 lines
2.6 KiB
C
130 lines
2.6 KiB
C
#include "awtk.h"
|
|
#include "can_protocol.h"
|
|
#include "moto_config.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);
|
|
|
|
}
|