My XNET card and/or application is consistently freezing up and becoming inaccessible until after restarting the system.
Last time the error occurred I tried a self-test in MAX and got error 0xBFF63001. I've attached a screenshot of that and the error logs listed.
The error that occurs in my main application is from XNET Stop.vi and it says "NI-XNET: (Hex 0xBFF63166) You used an empty name for the XNET Session ...". I don't think my code is using an empty name.
What version of XNET do you have installed?
What information can you provide about your application? Is it a state machine? Do you start/stop your sessions in rapid succession or only at the beginning/end? Are you using TestStand to cycle through tests or is this a monolithic application? Do you know for sure that the session reference is valid when XNET stop.vi is being called, i.e. verified with a test?
Any additional information you can provide will help us to narrow down the root of the problem faster.
We're using XNET 16.1.
The main application is not a state machine. It consists of three VIs launched asynchronously to transmit CAN messages and a simple while loop to receive CAN messages.
The sessions are only started and stopped at the beginning and end of execution.
The vi is a stand-alone application that we also build into an executable to launch from C#. The problem occurs in both situations so I don't think C# is a factor.
I'm pretty sure the reference being passed is invalid. There's a disconnected error terminal somewhere and I think the original error is for an invalid interface. I'll make sure all errors are passed through and post the final error out later.
I'm working with Jaime on this project and I have a couple of things to add. I recently uninstalled all my NI software and then reinstalled it with the newest version of everything. I am using NI-XNET 17.0.1. I think the error handling has been changed slightly because the code is preforming the same, however there is a new error attributed with it. with 17.0.1 the error is now 0xBFF6308A. It says the error is caused by the names in the code not matching up with the names of the interface. Then when you look at the interface in NI-MAX the names of the PXI-8512 CAN card have changed from CAN1,CAN2 to CAN-1 CAN-1 and NI-MAX now shows an error with the card. I can't run a self test and I am unable to change the names back to CAN1 CAN2. The board seems to just lock up and NI-MAX displays some errors. Ive attached the view of NI-MAX so you can see the errors that it throws.
It sounds like there is a problem with the asynchronous nature of your VIs that is causing the firmware to do something un-expected. Once this initial problem occurs, the other errors are trickle down symptoms.
XNET Stop will stop the session first and then try to stop the interface if it is not being used by another session. Starting and stopping sessions asynchronously in different processes could cause this mechanism to behave unexpectedly or possibly cause the firmware to enter a bad state. Once the firmware is in a bad state, the system API won't be able to communicate with it and will re-assign the interface a default name of "CAN-1" and internal errors will then ensue.