K.Wagner wrote: ↑Mon 10. Aug 2026, 11:04
Hello,
if I understood well, you want to define different DAQ-Ids for several ECUs. This is possible and it is explined in the chapter "
Introduction \ About XCP \ XCP on CAN". In short words, you can define one ID for each ECU to get DAQ messages. Having this like that, you should then get them over the Dequeue function.
XCP_DAQ.png
Hope to have helped you.
Hello,
My use case simply has one ECU. The A2L does not define a broadcast ID, so I guess it does not even support TRANSPORT_LAYER_CMD, as it was timeouting when calling the function you suggest.
But as mentioned in the first post, the A2L has a property EVENT_CAN_ID_LIST. In this case, when I start my freshly created dynamic DAQ list to some event channel, it will use the CAN ID defined in that property for the DTO stream, instead of the Slave ID used for CTO (CMD-RES) message exchange.
This means, my ECU uses three different CAN IDs for messaging, the slave CAN ID (CTO), CTO master CAN ID, and the slave CAN ID (DAQ). TRANSPORT_LAYER_CMD does not seem to be universally supported by ECUs.
I could for now solve this issue by calling "AddSlaveOnCan" two times - one with the (CTO) slave CAN ID and once with the DAQ event channel CAN ID. This way, it seems the DTO queue is receiving also from this other ID and not returning ERR_EMPTY_QUEUE. So I sort of configured two ECUs now... not sure if this is intentional use of the API, or is there another more generic way to change the message filtering of DequeuePacket() to receive from other CAN IDs than the slave ID (CTO), without assuming that TRANSPORT_LAYER_CMD would be supported by the ECU.