One PCAN channel to interact with several DUTs
Posted: Tue 25. Apr 2023, 11:23
Hi all,
I am new to PCAN-USB Pro device and PCAN UDS library.
Here, we want to use "one" PCAN channel to interact with several DUTs (our product). We have adjusted all their CAN IDs to avoid ID conflict.
First, I briefly describes some key features of the DUT:
1.a to keep a DUT in active state, we need keep sending a normal CAN message to the DUT in an approximate 200 ms period;
1.b a DUT will keep broadcasting "out" some normal CAN messages;
1.c to get the internal operating status of a DUT periodically, we have to send a UDS request to the DUT via physical address or functional address in a periodic way;
The application has to gather the UDS responses from all the DUTs and displays the statuses of all the DUTs.
For gathering several DUT statuses in active state, I have several questions and lists in the followings:
Q.1 for meeting 1.a and 1.c, the application not only has to send UDS requests but also has to send normal CAN messages. How to send a normal CAN message via PCAN-UDS API ?
Q.2 what is the default size of a receive queue allocated for one PCAN channel initialized by PCAN-UDS API ? Is there a way to adjust it ?
Q.3 what is the default size of a transmit queue allocated for one PCAN channel initialized by PCAN-UDS API ? Is there a way to adjust it ?
Q.4 is there any suggestion for preventing a receive queue from being saturated by the normal CAN messages originated from 1.b ?
Q.5 if sending a UDS request via functional address, what is the function of PCAN-UDS API to be invoked to read the responses from the receive queue ?
Q.6 if sending all UDS requests to all DUTs via physical addresses before reading any response, what is the function of PCAN-UDS API to be invoked to read the responses from the receive queue ?
Q.7 if sending a UDS request to one DUT via physical address, waiting for its response and read it, sending to another DUT, and ..., what is the function of PCAN-UDS API to be invoked to wait for the response and read it from the receive queue ?
Grateful for any help you can provide
Godel Sung
I am new to PCAN-USB Pro device and PCAN UDS library.
Here, we want to use "one" PCAN channel to interact with several DUTs (our product). We have adjusted all their CAN IDs to avoid ID conflict.
First, I briefly describes some key features of the DUT:
1.a to keep a DUT in active state, we need keep sending a normal CAN message to the DUT in an approximate 200 ms period;
1.b a DUT will keep broadcasting "out" some normal CAN messages;
1.c to get the internal operating status of a DUT periodically, we have to send a UDS request to the DUT via physical address or functional address in a periodic way;
The application has to gather the UDS responses from all the DUTs and displays the statuses of all the DUTs.
For gathering several DUT statuses in active state, I have several questions and lists in the followings:
Q.1 for meeting 1.a and 1.c, the application not only has to send UDS requests but also has to send normal CAN messages. How to send a normal CAN message via PCAN-UDS API ?
Q.2 what is the default size of a receive queue allocated for one PCAN channel initialized by PCAN-UDS API ? Is there a way to adjust it ?
Q.3 what is the default size of a transmit queue allocated for one PCAN channel initialized by PCAN-UDS API ? Is there a way to adjust it ?
Q.4 is there any suggestion for preventing a receive queue from being saturated by the normal CAN messages originated from 1.b ?
Q.5 if sending a UDS request via functional address, what is the function of PCAN-UDS API to be invoked to read the responses from the receive queue ?
Q.6 if sending all UDS requests to all DUTs via physical addresses before reading any response, what is the function of PCAN-UDS API to be invoked to read the responses from the receive queue ?
Q.7 if sending a UDS request to one DUT via physical address, waiting for its response and read it, sending to another DUT, and ..., what is the function of PCAN-UDS API to be invoked to wait for the response and read it from the receive queue ?
Grateful for any help you can provide
Godel Sung