一、UDS Task处理
void UDSPeriodicTask(void) { //其它功能处理 if (mRequest_Received) { mRequest_Received = FALSE; UDS_CAN_Service_Manager(); } }
UDSPeriodicTask,是属于轮训功能的处理,当接收到数据时,就会对数据进行解析。
数据解析:
void UDS_CAN_Service_Manager(void) {
//对数据的解析操作,判断数据是否有效 switch (mFunctionType) { case PHYSICAL: SelectionSID(mBuffer_Ptr, mReceive_Len); break; case FUNCTIONAL: break; default: break; }
//其它功能操作
}
二、UDS接收数据
void UDS_Request_Received(u_uint16_t len, Sever_Function_Type_T type) {
//其它数据的设置,以及条件检查 mRequest_Received = TRUE; mReceive_Len = len; mFunctionType = type; }
其中,进行控制的就是mRequest_Received,UDS服务按照这个变量,判断是否进行数据处理操作。
标签:UDS,Received,--,void,mRequest,DoIp,break,数据 From: https://www.cnblogs.com/liuqiongcn/p/17272672.html