This article details potential failure cases stemming from DTC 105, Service Unavailable. This can occur during PolySync execution when an application requests a service (routine), resource or hardware device handle that is inaccessible, doesn't exist or is invalid.
DTC 105 often occurs while validating the hardware handle for a specific sensor, or generic hardware device (such as a joystick controller). For example while validating the PolySync dynamic driver interface for a supported sensor, DTC 105 is used to indicate that the driver was unable to communicate with the device in the early initialization stage.
$ polysync-dynamic-driver -n 8 -o DEBUG : polysync_core : build version 2.0.2-1458307255 DEBUG : polysync_lic : process_features -- license mode: pro - version: 2.99 - expiration: 03/29/2018 DEBUG : polysync_core : created participant - GUID: 0x0006000886D6B8FB d(1688886482221307) DEBUG : polysync_dds : message types loaded: 33 DEBUG : polysync_node : state: INIT - timestamp: 1459460591764515 DEBUG : velodyne_hdl32e_support : frame 4 - origin (0.650,0.000,1.550) - orientation (0.0000,0.0000,1.5500) ERROR : velodyne_hdl32e_interface : (1220) -- failed to validate interface '192.168.2.202' - check Ethernet connection, SDF configuration, and manager node status
In the example above the node enters the INIT state. Before the error occurred the dynamic driver first read the hardware channel (IP address in this case) the sensor was configured for, from the PolySync SDF. The dynamic driver then opens the socket and attempts to read data to validate the sensor interface or handle.
While troubleshooting DTC 105, verify point to point communication with the sensor. Like in the example above, it's possible the dynamic driver was able to connect to some device though it is likely not the device or sensor that was intended for that network or interface.
If you are creating your own hardware interface application you can reference the joystick commander application which demonstrates how to implement DTC 105 while polling for a hardware device.