tkrebes / nisyscfg-python

NI System Configuration Python API
MIT License
4 stars 0 forks source link

Creating a Python API for PXI Chassis Fan Speed Control #48

Closed nahumpodokshik closed 1 year ago

nahumpodokshik commented 1 year ago

we use nisyscfg-python to remotely collect information about PXIe-1092 chassis fans, cooling profiles, and PXIe-4309 cards temperatures. it is a simple and effective solution for automatically detecting and alerting NI systems requiring immediate service or support. Is it possible to add to the same nisyscfg API the ability to control these fans and configure colling profiling?

thanks and best regards, Nahum

tkrebes commented 1 year ago

The API should already support for controlling fans. Below is a list of the PXI fan control properties. To control a fan, assign values to the appropriate properties and then invoke save_changes() to commit the settings.

# resource is a HardwareResource to a PXI chassis
resource.pxi.fan_mode  # (read/write) nisyscfg.enums.FanModes              
resource.pxi.fan_user_rpm  # (read/write) int
resource.pxi.supported_fan_modes  # (readonly) nisyscfg.enums.FanModes
resource.pxi.fan_manual_rpm_lower_bound  # (read/write) int
resource.pxi.fan_manual_rpm_upper_bound  # (read/write) int
resource.pxi.cooling_profile  # (read/write) nisyscfg.enums.CoolingProfiles
resource.pxi.cooling_profile_source  # (read/write?) nisyscfg.enums.CoolingProfileSource
resource.pxi.supported_cooling_profiles  # (readonly) nisyscfg.enums.CoolingProfiles
resource.pxi.enable_user_override_of_cooling_profile  # (read/write) bool

# Invoke save_changes() to write and save changes to device
resource.save_changes()

Also in PR #51, I recently changes the data typed returned by the following properties:

The value is an enum.IntFlag instead of a list of enum.IntEnum. Let me know if this change will cause you any trouble.

Regards, -Tyler

nahumpodokshik commented 1 year ago

Hi Tyler,

Great! Thank you very much for the fast and the professional help!!

Best regards, Nahum

From: Tyler Krehbiel @.> Sent: Tuesday, 23 May 2023 7:46 To: tkrebes/nisyscfg-python @.> Cc: Podokshik, Nahum @.>; Author @.> Subject: Re: [tkrebes/nisyscfg-python] Creating a Python API for PXI Chassis Fan Speed Control (Issue #48)

The API should already support for controlling fans. Below is a list of the PXI fan control properties. To control a fan, assign values to the appropriate properties and then invoke save_changes() to commit the settings.

resource is a HardwareResource to a PXI chassis

resource.pxi.fan_mode # (read/write) nisyscfg.enums.FanModes

resource.pxi.fan_user_rpm # (read/write) int

resource.pxi.supported_fan_modes # (readonly) nisyscfg.enums.FanModes

resource.pxi.fan_manual_rpm_lower_bound # (read/write) int

resource.pxi.fan_manual_rpm_upper_bound # (read/write) int

resource.pxi.cooling_profile # (read/write) nisyscfg.enums.CoolingProfiles

resource.pxi.cooling_profile_source # (read/write?) nisyscfg.enums.CoolingProfileSource

resource.pxi.supported_cooling_profiles # (readonly) nisyscfg.enums.CoolingProfiles

resource.pxi.enable_user_override_of_cooling_profile # (read/write) bool

Invoke save_changes() to write and save changes to device

resource.save_changes()

Also in PR #51https://github.com/tkrebes/nisyscfg-python/pull/51, I recently changes the data typed returned by the following properties:

The value is an enum.IntFlag instead of a list of enum.IntEnum. Let me know if this change will cause you any trouble.

Regards, -Tyler

— Reply to this email directly, view it on GitHubhttps://github.com/tkrebes/nisyscfg-python/issues/48#issuecomment-1558512520, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AW5ZF4P3NZXIVMQSNK7CHNTXHQ6JNANCNFSM6AAAAAAYJF5374. You are receiving this because you authored the thread.Message ID: @.**@.>>

Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.

nahumpodokshik commented 1 year ago

Hi Tyler,

sorry for the delay was disconnected. we partially evaluated the suggested code. it is working good. my colleague is working to integrate all components together. the solution scans daily all systems in lab, detects "overheat" and will send email/alert and will change colling and FAN settings to cover the issue until maintenance. we use PXIe-1092 chassis. can we use nisyscfg to activate front panel "yellow" LED on chassis to blink?

thanks and best regards!! Nahum