#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); }