//>>*************************************************************************** // UNCLASSIFIED // // COPYRIGHT 2017 RAYTHEON MISSILE SYSTEMS // ALL RIGHTS RESERVED // This data was developed pursuant to Contract Number HQ0147-12-C-0004/1088370 // with the US Government. The US Government's rights in and to this // copyrighted data are as specified in DFAR 252.227-7013 // which was made part of the above contract. // // Distribution Statement: D -Distribution authorized to the DoD and DoD // contractors only based on Critical Technology Requirements, May 2001. // Other requests shall be referred to PEO THEATER AIR DEFENSE (PMS 422). // Warning: - This document contains technical data whose export is restricted // by the Arms Export Control Act (Title 22, U.S.C.) or Export // Administration Act of 1979, as amended (Title 50, U.S.C.). Violations // of these laws are subject to severe criminal penalties. Disseminate in // accordance with provisions of DoD 5230.25. // Destruction Notice: - For unclassified, limited distribution information, // destroy by any method that will prevent disclosure of contents or // reconstruction of the document. Classified information, destroy in // accordance with DoD-5220.22-M or OPNAVINST 5510.1h. //>>*************************************************************************** using System; using NLog; using Raytheon.Common; using Raytheon.Framework; namespace Raytheon.Instruments { /// /// public class SigGenSim : ISignalGenerator { #region PrivateMembers private State _state; private SelfTestResult _selfTestResult; private string _name; private readonly ILogger _logger; private readonly IConfigurationManager _configurationManager; private readonly IConfiguration _configuration; #endregion #region PrivateFunctions /// /// The Finalizer which will release resources if required /// ~SigGenSim() { Dispose(false); } /// /// Dispose of this object /// /// protected virtual void Dispose(bool disposing) { if (disposing) { if (_state == State.Ready) { Reset(); _state = State.Uninitialized; } } } #endregion /// /// PowerMeterKeysightScpi factory constructor /// /// /// public SigGenSim(string deviceName, IConfigurationManager configurationManager) { Name = deviceName; _logger = LogManager.GetLogger($"{this.GetType().Name} - {deviceName}"); _configurationManager = configurationManager; _configuration = _configurationManager.GetConfiguration(Name); _state = State.Uninitialized; _selfTestResult = SelfTestResult.Unknown; } /// /// /// /// public SigGenSim(string deviceName) { _name = deviceName; _logger = LogManager.GetLogger($"{this.GetType().Name} - {deviceName}"); _state = State.Uninitialized; _selfTestResult = SelfTestResult.Unknown; } /// /// /// /// public bool ClearErrors() { throw new NotImplementedException(); } /// /// /// public string DetailedStatus { get { return "This is a Scpi Sig Gen"; } } /// /// /// public bool DisplayEnabled { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } /// /// Dispose of this objects resources /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } /// /// /// /// /// public void Enable(bool enable) { } /// /// /// public bool FrontPanelEnabled { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } /// /// /// public InstrumentMetadata Info { get { throw new NotImplementedException(); } } /// /// /// public void Initialize() { // if we have not yet been initialized, go ahead and create the socket if (_state == State.Uninitialized) { Reset(); // we already connected to the instrument in the constructor _state = State.Ready; } else { throw new Exception("expected the state of System " + _name + " to be Uninitialized, state was: " + _state.ToString()); } } /// /// /// /// /// public string IOQuery(string command) { return "Junk Sim Data"; } /// /// /// /// public void IOWrite(string command, bool shallWeCheckForError = true) { } /// /// /// public string Name { get { return _name; } set { _name = value; } } /// /// /// public SelfTestResult SelfTestResult { get { return _selfTestResult; } } /// /// /// public State Status { get { return _state; } } /// /// /// /// public SelfTestResult PerformSelfTest() { try { _selfTestResult = SelfTestResult.Pass; return SelfTestResult.Pass; } catch (Exception) { throw; } } /// /// /// public void Reset() { } /// /// /// /// /// /// public void SetFrequency(UnitizedValue frequency) { } /// /// /// /// public void SetPowerLevel(UnitizedValue powerLevel) { } /// /// /// public void Shutdown() { string errorMsg = ""; if (_state == State.Ready) { try { //Reset System Reset(); } catch (Exception err) { errorMsg += err.Message + " "; } _state = State.Uninitialized; } } } }