I'm currently developping an application reading data from FPGA board (PXI-7851R) with NI-RIO driver (v13.0.0 in Linux) through target-to-host FIFO.
In normal situation, everything is working correctly: session is opened, data are read from FIFO and session is closed (I'm using only the onboard FIFO so no "ConfigureFifo", "StartFifo" and "StopFifo").
But if my application crashes (for other reason unrelated to NI) or if I kill it, sometimes the FIFO remains locked by the session (error -63082 : The operation could not complete because another session is accessing the FIFO. Close the other session and retry.).
As the application does not finish properly, I'm not able to release the FIFO and close nicely the session (at restart, all the information concerning the previous session are lost). I tried the "reset" and "run" command after the "session open" but didn't work as well.
I have to restart the computer to solve the issue.
I have few questions:
- Is there a way to know if a session is already running ? How can I recover session id ?
- Is there a way to force the FIFO to release.
Any feedbacks and comments are appreciated,
Thanks and regards,
I have a similar problem here on a myRIO. Trying to get 1Wire data up to the Host (PC). Error is thrown from the Fifo Read method on the host. But in my case I even don't know, what the other session could be that accesses the fifo. Don't instanciate any... And it also throws the error after fresh reboot.
Were you able to solve the problem anyhow?
Seems like it's gone away. Here's what I added, in case it helps anyone. Once you're in this state, the system needs to be reboot. Then, to prevent this, I added a Start FIFO call before my read, even though the help says it's optional. It's Linux, who knows? And also added a Stop FIFO to the close routine. Beyond that, I'm trying not to abort during execution, and shutdown cleanly so the Stop FIFO call runs. Haven't seen it since.