// ****************************************************************************************** // ** ** // ** RAYTHEON PROPRIETARY: THIS DOCUMENT CONTAINS DATA OR INFORMATION ** // ** PROPRIETARY TO RAYTHEON COMPANY AND IS RESTRICTED TO USE ONLY BY PERSONS ** // ** AUTHORIZED BY RAYTHEON COMPANY IN WRITING TO USE IT.DISCLOSURE TO ** // ** UNAUTHORIZED PERSONS WOULD LIKELY CAUSE SUBSTANTIAL COMPETITIVE HARM TO ** // ** RAYTHEON COMPANY'S BUSINESS POSITION. NEITHER SAID DOCUMENT NOR ITS ** // ** CONTENTS SHALL BE FURNISHED OR DISCLOSED TO OR COPIED OR USED BY PERSONS ** // ** OUTSIDE RAYTHEON COMPANY WITHOUT THE EXPRESS WRITTEN APPROVAL OF RAYTHEON ** // ** COMPANY. ** // ** ** // ** THIS PROPRIETARY NOTICE IS NOT APPLICABLE IF DELIVERED TO THE U.S. ** // ** GOVERNMENT. ** // ** ** // ** UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY. ** // ** ** // ** WARNING: THIS DOCUMENT CONTAINS TECHNICAL DATA AND / OR TECHNOLOGY WHOSE ** // ** EXPORT OR DISCLOSURE TO NON-U.S.PERSONS, WHEREVER LOCATED, IS RESTRICTED ** // ** BY THE INTERNATIONAL TRAFFIC IN ARMS REGULATIONS (ITAR) (22 C.F.R.SECTION ** // ** 120-130) OR THE EXPORT ADMINISTRATION REGULATIONS(EAR) (15 C.F.R.SECTION ** // ** 730-774). THIS DOCUMENT CANNOT BE EXPORTED(E.G., PROVIDED TO A SUPPLIER ** // ** OUTSIDE OF THE UNITED STATES) OR DISCLOSED TO A NON-U.S.PERSON, WHEREVER ** // ** LOCATED, UNTIL A FINAL JURISDICTION AND CLASSIFICATION DETERMINATION HAS ** // ** BEEN COMPLETED AND APPROVED BY RAYTHEON, AND ANY REQUIRED U.S.GOVERNMENT ** // ** APPROVALS HAVE BEEN OBTAINED. VIOLATIONS ARE SUBJECT TO SEVERE CRIMINAL ** // ** PENALTIES. ** // ** ** // ** CAPITAL EQUIPMENT/SOFTWARE: THIS TECHNICAL DATA WAS DEVELOPED OR ACQUIRED ** // ** EXCLUSIVELY AT CONTRACTOR EXPENSE AND IS INTENDED FOR USE ON MULTIPLE ** // ** PROJECTS/PROGRAMS. ** // ** ** // ******************************************************************************************* using Raytheon.Communication; using Raytheon.Instruments.PowerSupply; using System.Collections.Generic; namespace Raytheon.Instruments { /// /// An interface for power systems to implement. /// [UmsContract] public interface IPowerSupplySystem : IInstrument { /// /// Get the power system error register /// /// The register value /// [UmsCommand( "IPowerSupplySystem.GetErrorCode" )] string GetErrorCode( out int errorCode ); /// /// Get a list of modules that belong to this power system /// /// A list of modules belonging to this system [UmsCommand( "IPowerSupplySystem.GetModuleNames" )] List GetModuleNames( ); /// /// Get the dictionary that contains configuration information for each module /// /// Dictionary GetPowerSupplyModuleInfoDict(string powerSystem); /// /// Retrieve the programmed OCP value of a module /// /// The module to query /// The programmed setting [UmsCommand( "IPowerSupplySystem.GetOverCurrentSetting" )] double GetOverCurrentSetting( string moduleName ); /// /// Retrieve the programmed OVP value of a module /// /// The module to query /// The programmed setting [UmsCommand( "IPowerSupplySystem.GetOverVoltageSetting" )] double GetOverVoltageSetting( string moduleName ); /// /// Retrieve the programmed slew value of a module /// /// The module to query /// The programmed setting [UmsCommand( "IPowerSupplySystem.GetSlewRate" )] double GetSlewRate( string name ); /// /// returns back system name /// /// [UmsCommand( "IPowerSupplySystem.GetSystemName" )] string GetSystemName( ); /// /// Retrieve the programmed voltage setpoint value of a module /// /// The module to query /// The programmed setting [UmsCommand( "IPowerSupplySystem.GetVoltageSetting" )] double GetVoltageSetting( string moduleName ); /// /// Query a supple to see if output is enabled /// /// The module to query /// true if output is on, false if it is off [UmsCommand( "IPowerSupplySystem.IsOutputOn" )] bool IsOutputOn( string moduleName ); /// /// Measure the current of a module /// /// The module to query /// The measured current [UmsCommand( "IPowerSupplySystem.MeasureCurrent" )] double MeasureCurrent( string moduleName ); /// /// Measure the voltage of a module /// /// The module to query /// The measured current [UmsCommand( "IPowerSupplySystem.MeasureVoltage" )] double MeasureVoltage( string moduleName ); /// /// Turn off a module output /// /// The module to turn off [UmsCommand( "IPowerSupplySystem.Off" )] void Off( string moduleName ); /// /// Turn on a module output /// /// The module to turn on [UmsCommand( "IPowerSupplySystem.On" )] void On( string moduleName ); /// /// Read the protection status register /// /// The module to read /// The register value [UmsCommand( "IPowerSupplySystem.ReadProtectionStatus" )] int ReadProtectionStatus( string moduleName ); /// /// Read the power data for a module /// /// The module to read /// THe Power Data [UmsCommand( "IPowerSupplySystem.ReadPowerData" )] void ReadPowerData( string moduleName, out double voltage, out double voltageSetpoint, out double current, out bool outputStatus, out int faultStatus ); /// /// Set the slew rate /// /// The module to set /// The slew rate [UmsCommand( "IPowerSupplySystem.SetSlewRate" )] void SetSlewRate( string moduleName, double commandedSlew ); /// /// Resets the setpoint voltage to that which was passed into the constructor /// /// The module to reset [UmsCommand( "IPowerSupplySystem.SetInitialVoltage" )] void SetInitialVoltage( string moduleName ); /// /// Set the voltage setpoint. Use this if you want to change the setpoint to a value that is different than what the module was initialized with /// /// The module to set /// The value to set it to [UmsCommand( "IPowerSupplySystem.SetVoltageSetpoint" )] void SetVoltageSetpoint( string moduleName, double volts ); /// /// Disable the system watchdog /// [UmsCommand( "IPowerSupplySystem.WatchdogDisable" )] void WatchdogDisable( ); /// /// Enable the system watchdog /// /// The time in seconds which the app must communicate with the power system before the system get inhibited [UmsCommand( "IPowerSupplySystem.WatchdogEnable" )] void WatchdogEnable( uint time ); /// /// Set the OCP. Use this if you want to change OCP to a value that is different than what the module was initialized with /// /// The module to set /// The value to set it to [UmsCommand( "IPowerSupplySystem.SetOverCurrentProtection" )] void SetOverCurrentProtection( string moduleName, double ocpValue ); /// /// Set the OVP. Use this if you want to change OVP to a value that is different than what the module was initialized with /// /// The module to set /// The value to set it to [UmsCommand( "IPowerSupplySystem.SetOverVoltageProtection" )] void SetOverVoltageProtection( string moduleName, double ovpValue ); /// /// Send a command and return the response /// /// /// [UmsCommand( "IPowerSupplySystem.IOQuery" )] string IOQuery( string command ); /// /// Send a command /// /// [UmsCommand( "IPowerSupplySystem.IOWrite" )] void IOWrite( string command ); /// /// Read the power data for a module /// /// The module to read /// THe Power Data [UmsCommand( "IPowerSupplySystem.ReadPowerData" )] PowerData ReadPowerData( string moduleName ); /// /// Control the power supply internal mechanical relay state /// /// The module to act on /// True to connect, false to disconnect [UmsCommand( "IPowerSupplySystem.MechanicalRelayOutputControl" )] void MechanicalRelayOutputControl( string moduleName, bool shallWeConnect ); } }