10-28-2022 02:48 PM
Hello. Anyone got a basic script for non-deterministically reading an writing to a channel in Python using the verion 2.0.x?
Even opening a simple channel reference like in the example documentation errors out with "Python.Runtime.PythonException: 'str' value cannot be converted to NationalInstruments.VeriStand.Data.DoubleValue" which is weird because if you go the ChannelReference function they specifically give an example that you pass it a str.
from niveristand import nivs_rt_sequence, realtimesequencetools
from niveristand.clientapi import ChannelReference
def readchannel():
mdlcount = ChannelReference('Targets/Controller/System Channels/Model Count')
print("This is the end")
if __name__ == '__main__':
readchannel()
The State Machine exmaple int he doc pretty much does the exact same thing when it does '
output = ChannelReference('Aliases/DesiredRPM')
Do I need to use the
@nivs_rt_sequence
decorator even if I am not doing an RT sequence?
A small example of read from and writing to a channel non-deterministically would be nice.
10-31-2022 11:25 AM
I suspect this is a bug regarding version compatibility that we are currently investigating. What versions of python, pythonnet, niveristand, and VeriStand are you using? I assume you installed python 3.7 or newer and niveristand 2.0.x, which likely installed pythonnet 3.0.0.post1. If you run py -m pip list, you should be able to confirm. I would then recommend that you downgrade pythonnet to 2.5.2 as preliminary testing in our investigation appears to show that resolves the issue.
10-31-2022 12:22 PM
virtual environment for reference
These were all defaults.
I rolled back to 3.0.0 and retested and still got the error. Then I tried to go back to 2.5.2 except when i try to install I get
-----------------------
Installed:
4 package(s) to packages.config projects
error: [WinError 2] The system cannot find the file specified
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pythonnet
error: subprocess-exited-with-error
Running setup.py install for pythonnet did not run successfully.
exit code: 1
[6 lines of output]
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help
error: option --single-version-externally-managed not recognized
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure
Encountered error while trying to install package.
-----------------------
Updated pip, wheel, and setuptools. Had no impact. How were you able to install it? Started looking into the error, but it very quickly got into a lot of tools I have never used.
11-07-2022 09:19 AM
Bump. Anyone got ideas.
11-18-2022 05:57 PM
Apologies for the delayed response, we have released a new version of niveristand-python that now pins the pythonnet support to 2.5.2. Unfortunately, I suspect you are using a newer version of python that only supports pythonnet 3.0.0 (i.e. python 3.10 or 3.11). If you are using 3.7-3.8, the new version should install properly. We do intend to update our package to support the latest versions of python and pythonnet.
02-16-2023 04:36 PM - edited 02-16-2023 04:36 PM
Following up on this post, we just released a new version of niveristand that adds compatibility with pythonnet 3.0.1 and python 3.9+ https://github.com/ni/niveristand-python/releases/tag/v2.1.0.