Experimental Physics and
lowLevelWriteRead calls pasynOctetSyncIO->writeRead
This is the sequence of calls that lead to these messages:
Hi,I've been investigating an issue with the PMAC driver regarding reconnection via Ethernet. When the controller is powered off the IOC starts emitting messages like the following (as expected):
2018/02/12 12:00:14.826 pmacController::lowLevelWriteRead: Error from pasynOctetSyncIO->writeRead. command: #2 ? F P
2018/02/12 12:00:14.826 drvPmacAxisGetStatus: not all status values returned. Status: 3
Command :#2 ? F P
However, when the controller is powered on again, the IOC does not re-establish the connection (even though noAutoConnect is set to zero).
pasynOctetSyncIO->writeRead calls pasynManager->queueLockPort
pasynManager->queueLockPort calls pasynManager->queueRequest
queueRequest sets checkPortConnect = TRUE
Since the port is disconnected, queueRequest returns an error
If checkPortConnected was FALSE autoConnectDevice would be called later on and a new connection would be attempted. But for this particular call chain checkPortConnected is always set to TRUE.
Now, since queueRequest fails a request is never queued and pasynManager->portThread's autoConnectDevice is also not reached.
So my question is how to properly configure/trigger an auto connect?
PS.: I found this old thread that might be related:
|ANJ, 12 Feb 2018||
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·