During UDS communication I sometime get an error TPUDSStatus PUDS_ERROR_CAN_ERROR (0x80000000) (return value of WaitForService).
According to the documentation the CAN Basic error code should be ORed with the TPUDSStatus, but all I get is 0x80000000 (no other flags set).
Is the root cause for the PUDS_ERROR_CAN_ERROR available somewhere ?
UDS_WaitForServiceFunctional and UDS_WaitForService functions return PUDS_ERROR_CAN_ERROR when a network error occured.
Originally the functions returned Ok, but users tend to forget to check the value of the member RESULT of their retrieved UDS message.
As a result, when this error occur please check MessageRspBuffer->RESULT or MessageReqBuffer->RESULT: you should see an ISO-TP network error (timeout may have occured during the communication).