Dear asyn and motor-record experts,
I have trouble with the lines 208 to 213 in the following file of the motorIMS driver:
https://github.com/epics-motor/motorIms/blob/master/imsApp/src/ImsMDrivePlusMotorController.cpp#L208
pasynOctetSyncIO->setInputEos(pAsynUserIMS, "\0", 1);
sprintf(cmd, "PR IS");
resp[0] = 0;
status = this->writeReadController(cmd, resp, sizeof(resp), &nread, IMS_TIMEOUT);
printf("%s\n", resp);
pasynOctetSyncIO->setInputEos(pAsynUserIMS, "\n", 1);
There the inputEOS is changed, because the controller's response to the "PR IS" contains information on the limit-switch configuration in multiple lines each teminated with \n. If one doesn't change the EOS, only the configuration of the first analog input
is read and info on the others is lost.
This works fine as long as there is just one motor controller on the RS-485 line. When multiple controllers are used, the change of the eos for the controller which is created interferes with the poll-routines of the other motors, which are already set-up.
I tried to lock the port during this step of the configuration with this->lock() before and this->unlock() after the mentioned lines of code, but it had no effect. Is there a way to lock the port, or to pause the polling of the
other controllers while the mentioned lines are executed.
Thanks a lot in advance!
Sebastian