Major upgrade

This commit is contained in:
Duc
2025-10-24 15:18:11 -07:00
parent fd85735c93
commit ce583d1664
478 changed files with 237518 additions and 47610 deletions

View File

@@ -1,123 +0,0 @@
// **********************************************************************************************************
// IDisplay.cs
// 2/17/2023
// NGI - Next Generation Interceptor
//
// Contract No. HQ0856-21-C-0003/1022000209
//
// THIS DOCUMENT DOES NOT CONTAIN TECHNOLOGY OR TECHNICAL DATA CONTROLLED UNDER EITHER THE U.S.
// INTERNATIONAL TRAFFIC IN ARMS REGULATIONS OR THE U.S. EXPORT ADMINISTRATION REGULATIONS.
//
// 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.
//
// UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
//
// DESTRUCTION NOTICE: FOR CLASSIFIED DOCUMENTS FOLLOW THE PROCEDURES IN DOD 5220.22-M,
// NATIONAL INDUSTRIAL SECURITY PROGRAM OPERATING MANUAL, FEBRUARY 2006,
// INCORPORATING CHANGE 1, MARCH 28, 2013, CHAPTER 5, SECTION 7, OR DODM 5200.01-VOLUME 3,
// DOD INFORMATION SECURITY PROGRAM: PROTECTION OF CLASSIFIED INFORMATION, ENCLOSURE 3,
// SECTION 17. FOR CONTROLLED UNCLASSIFIED INFORMATION FOLLOW THE PROCEDURES IN DODM 5200.01-VOLUME 4,
// INFORMATION SECURITY PROGRAM: CONTROLLED UNCLASSIFIED INFORMATION.
//
// CONTROLLED BY: MISSILE DEFENSE AGENCY
// CONTROLLED BY: GROUND-BASED MIDCOURSE DEFENSE PROGRAM OFFICE
// CUI CATEGORY: CTI
// DISTRIBUTION/DISSEMINATION CONTROL: F
// POC: Alex Kravchenko (1118268)
// **********************************************************************************************************
using System.Collections.Generic;
namespace Raytheon.Common
{
/// <summary>
/// Enum for tagging the logged data.
/// </summary>
public enum LogLevel
{
/// <summary>
/// (Ordinal = 0) : Most verbose level. Used for development and seldom enabled in production.
/// </summary>
TRACE,
/// <summary>
/// (Ordinal = 1) : Debugging the application behavior from internal events of interest.
/// </summary>
DEBUG,
/// <summary>
/// An informational log statement.
/// (Ordinal = 2) : Information that highlights progress or application lifetime events.
/// </summary>
INFO,
/// <summary>
/// (Ordinal = 3) : Warnings about validation issues or temporary failures that can be recovered.
/// </summary>
WARN,
/// <summary>
/// (Ordinal = 4) : Errors where functionality has failed or <see cref="System.Exception"/> have been caught.
/// an error log statement.
/// </summary>
ERROR,
/// <summary>
/// (Ordinal = 5) : Most critical level. Application is about to abort.
/// </summary>
FATAL,
/// <summary>
/// Off log level (Ordinal = 6)
/// </summary>
OFF
}
public interface IDisplay
{
/// <summary>
/// user interface capability with error logger
/// </summary>
/// <param name="message"></param>
/// <param name="logLevel"></param>
void ShowMessage(string message, LogLevel logLevel = LogLevel.INFO);
}
public interface IChillerDisplay
{
void ChillerMonitorUiUpdate(ActiveHealthMonitorData data, int errorCode);
}
public interface IDioDisplay
{
void DioControlUiUpdate(List<string> inputNames, List<string> outputNames);
}
public interface IFpgaDisplay
{
void FpgaControlUiUpdate(List<string> fpgaNames);
}
public interface IPowerControlDisplay
{
void PowerControlUiUpdate(List<string> powerFormNames);
}
public interface IPowerMonitorDisplay
{
void PowerMonitorUiUpdate(List<PowerMonitorCallbackData> callBackDataList, int errorCode);
}
public interface IHealthMonitorDisplay
{
void HealthMonitorControlUiUpdate(List<ActiveHealthMonitorData> callBackDataList);
}
public interface INGIDisplay : IDisplay, IChillerDisplay, IDioDisplay, IFpgaDisplay, IPowerControlDisplay, IPowerMonitorDisplay, IHealthMonitorDisplay
{
}
public interface IHandleCriticalError
{
void HandleCriticalError(string message, bool shallWeStopThreads = true);
}
}

View File

@@ -1,52 +0,0 @@
// UNCLASSIFIED
/*-------------------------------------------------------------------------
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.
-------------------------------------------------------------------------*/
using System;
namespace Raytheon.Common
{
/// <summary>
/// An interface to a serial port device
/// </summary>
public interface ISerialPort : IDisposable
{
/// <summary>
/// Close the communication interface
/// </summary>
void Close();
/// <summary>
///
/// </summary>
void Open();
/// <summary>
///
/// </summary>
/// <param name="dataRead"></param>
/// <returns></returns>
UInt32 Read(ref byte[] dataRead);
/// <summary>
///
/// </summary>
/// <param name="dataToWrite"></param>
void Write(byte[] dataToWrite);
void Write(String dataToWrite);
}
}

View File

@@ -121,29 +121,22 @@ namespace Raytheon.Common
{
if (disposing)
{
try
_msgProcessorWorker.QuitWork();
Thread.Sleep(500);
_msgProcessorThread.Abort();
if (_msgProcessorThread.IsAlive)
{
_msgProcessorWorker.QuitWork();
Thread.Sleep(500);
_msgProcessorThread.Abort();
if (_msgProcessorThread.IsAlive)
{
_msgProcessorThread.Join();
}
_dataInBufferEvent.Dispose();
_msgProcessorWorker.Dispose();
_dataBuffer.Dispose();
}
catch (Exception err)
{
ErrorLogger.Instance().Write(err.Message + "\r\n" + err.StackTrace);
_msgProcessorThread.Join();
}
_dataInBufferEvent.Dispose();
_msgProcessorWorker.Dispose();
_dataBuffer.Dispose();
}
}