Sockets on Xavier doesn't recieve any data from a PCB firmware [via TCP/IP]

I have a PCB that communicates using CAN protocol. I am trying to use TCP sockets to read the data to decode them. But the socket.recv() keeps generating a [Transport endpoint is not connected] error. The PCB is connected to the same network as xavier via ethernet port and a non-POE switch. I have assigned proper gateways in the xavier and I am able to ping the PCB’s IP address.

Did anyone else face similar issues while communicating with different firmware or have any workarounds let me know.

hello nks,

please refer to developer guide, CAN (Controller Area Network) for using CAN.
you should also perform a loopback test to determine whether the controller is working.

Hi @JerryChang ,
Actually as mentioned in the previous post, the communication between the pcb board and the xavier is via ethernet (TCP/IP protocol). The internal communication of the pcb board is using CAN.
I don’t think setting up CAN on Xavier will solve my problem. Sorry about the ambiguity earlier. Let me know. Thanks.

Hi, you can ping the device but your program cannot establish the tcp connection?

Yes that is correct! Also when I use the command "arp -a ", I am able to see the PCB’s IP address in the network.

Could you use some test tools like telnet or nc to test the tcp connection?

The problem was that the Xavier was configured to operate in dhcp mode. While the PCB hardware was looking for a specific static IP address to send data to. Once I made Xavier’s IP address static at /etc/network/interfaces I was able to receive data.

1 Like