Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

Limited API coverage for nisyscfg C API on Linux host?

We are using a CompactRIO 9047 as part of a larger hardware deployment. The rest of the system is managed using an "Infrastructure as Code" approach and we are generally trying to use Linux wherever possible. I was keen to investigate if I could make use of the nisyscfg C API to reimage our device rather than relying on the GUI RAD tool so that we can provision it in a similar manner to our other linux systems. I installed the nisyscfg library from here http://www.ni.com/download/ni-linux-device-drivers-2019/8283/en/ into a centos 8 docker container and with a little fiddling and patching was able to get python bindings for the functions I needed (https://github.com/tkrebes/nisyscfg-python). When I try to call NISysCfgSetSystemImageFromFolder2 on a remote session I get the return code  -2147220364 "Command is not supported by given protocol".

 

I just wanted to confirm, is nisyscfg only partially implemented on linux hosts? Or is there likely an issue with my installation? I don't need to use docker, that was just a quick way to get a Centos 8 environment. If this is something that should work I can provide more details to reproduce.

0 Kudos
Message 1 of 2
(1,946 Views)

singulariti-ed, you might be encountering a library loading problem. To clarify some things,

 

  1. You installed the NI Linux Device Drivers 2019 repository add-on (new download link: https://www.ni.com/en-us/support/downloads/drivers/download.ni-linux-device-drivers.html#349661) and then installed ni-syscfg-runtime. Is that right?
  2. You are using the python source you referenced from github, or some portions thereof with modifications. Is that right? Can you provide a code snippet?
  3. And as quick test of some underlying runtime functionality please run 'lsni' and 'lsni -r <hostname_or_ip_of_your_cRIO_target>' and show the results.

Thanks.

0 Kudos
Message 2 of 2
(1,505 Views)