PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

Programmatic PXI chassis numbering in MAX

We have multiple instances of a system and our software is setup to make an assumption about the number of a PXI chassis in MAX.  Sometimes, on certain systems, this chassis number is not as expected.  Changing it manually in NI MAX is simple enough, but wanted to ask if there is an automated or programmatic way to update this number.  I didn't see a way to do it with nisyscfg.  We've also tried ResetNIConfig.exe but it does not seem to affect chassis numbers.

0 Kudos
Message 1 of 8
(531 Views)

What do you mean by the chassis number? There is no chassis number in NI MAX. Do you mean the PXI1Slot2 in the Name field?

ZYOng_0-1708127423974.png

 

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 2 of 8
(496 Views)

Interested in updating the actual chassis number under Devices and Interfaces:

Capture.PNG

 

This can be done manually in NI MAX with a right-click of the chassis and selecting Renumber...

Untitled.png

 

I'm interested in doing this programmatically.  

0 Kudos
Message 3 of 8
(458 Views)

You can do this with a System Configuration Hardware Property node.

Captain_K_0-1708448309188.png

You may need to update PXI Platform Services to get these properties to show up.

Message 4 of 8
(450 Views)

Thanks Captain_K, unfortunately we are not using LabVIEW.  We would be able to use C++ or anything .NET, scripting would be ok too.

0 Kudos
Message 5 of 8
(443 Views)

NI System Configuration API does support .NET.

Installing NI System Configuration .NET Examples

-------------------------------------------------------
Control Lead | Intelline Inc
0 Kudos
Message 6 of 8
(424 Views)

So after installing PXI Platform Services, nisyscfg was updated to include nisyscfg_pxi.h which contains the property "NISysCfgPxiPropertyChassisNumber".  Its type is NISysCfgPxiProperty and I'm having a hard time figuring out how to use it with nisyscfg functions.  The NISysCfgGetResourceProperty and NISysCfgGetSystemProperty functions want a NISysCfgSystemProperty type.  Can I just typecast or is there a different function I should be using?  

 

I've looked through all of the documentation I can find and even tried a dumpbin on nisyscfg.lib to see if there were any functions I'm missing - it's not clear how to get/set PXI properties.

0 Kudos
Message 7 of 8
(415 Views)

I'll answer my own question.  We found just passing the value of NISysCfgPxiPropertyChassisNumber to NISysCfgSetResourceProperty worked correctly, I imagine casting the enum to a NISysCfgResourceProperty would also work

0 Kudos
Message 8 of 8
(405 Views)