|
Hi Abdalla,
You should add these commands after drvAsynIPPortConfigure
asynSetTraceIOMask, PORT, 0, ESCAPE
asynSetTraceIOTruncateSize, PORT, 0, 256
asynSetTraceMask, PORT, 0, DRIVER
asynSetTraceFile, PORT, 0, "mydriver.txt"
The file will get pretty big running at 200 Hz for 1 or 2 days!
When it hangs up run "tail" on the file and see if indeed the IOC stopped receiving data.
Mark
Hi Mark
Thanks for the info. I forgot to mention that the device is a serial port connected to a terminal server, and the device has been tested locally streaming data for periods longer than what we have so I don't think it just stopped sending data.
Best Regards
Abdalla.
Hi Abdalla,
It looks like the device streams data without needing to send a command, i.e. it is not a write/read operation, correct?
If it freezes then that suggests that the device has stopped sending data for some reason. That should mean that the asyn read operation timed out, and StreamDevice should be reporting that?
You can try adding this to the startup script after drvAsynIPPortConfigure:
asynSetOption($(PORT), 0, "disconnectOnReadTimeout", "Y")
That will disconnect the port when a read times out, which is equivalent to writing 0 to the CNCT field.
Mark
Hi
We have a device streaming data at 200 Hz controlled with stream device, parses the streamed data and writes to corresponding PVs. The problem is that every
day or two, the readings freeze. At first I had to restart the IOC but I noticed that the IOC does not show any error so I re-connect the asyn port through writing 0 to the CNCT field and it worked. The st.cmd file has the port configured:
drvAsynIPPortConfigure(“PORT”, “ip-address:port-number”, 0, 0, 0)
What could be the issue here? I am using EPICS base 7.0.9 and latest version of all modules.
Best Regards,
Abdalla Al-Dalleh
Control Engineer
SESAME
|