Major upgrade
This commit is contained in:
45
Source/Program/DataDef/Coe.Datatypes.cs
Normal file
45
Source/Program/DataDef/Coe.Datatypes.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
// 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.
|
||||
-------------------------------------------------------------------------*/
|
||||
|
||||
namespace ProgramLib
|
||||
{
|
||||
/// <summary>
|
||||
/// Define all complex data types here for COE messaging
|
||||
/// </summary>
|
||||
internal static class Coe
|
||||
{
|
||||
// got this from SW\Algorithms\ngsri\MissionManager\Algorithm\MissionManagerTypes.hpp
|
||||
// repo: https://tfs.rms.ray.com/LWS/NGSRI/_git/MissileKit2.NGSRI
|
||||
public enum MmgrState
|
||||
{
|
||||
INIT, // Initialization including Power-on Bit
|
||||
COOL_DOWN, // TODO: Remove as this will be covered by PBit test
|
||||
CALIBRATION,
|
||||
ACQUISITION,
|
||||
PRELAUNCH,
|
||||
COMMIT,
|
||||
LAUNCH,
|
||||
MIDCOURSE,
|
||||
TERMINAL,
|
||||
ENDGAME, // Final nominal state
|
||||
SELF_DESTRUCT, // Off-nominal state to abort the mission post-launch
|
||||
|
||||
NOT_SET // this must be last
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,21 @@
|
||||
using Raytheon.Instruments.PowerSupply;
|
||||
/*-------------------------------------------------------------------------
|
||||
// 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 Raytheon.Instruments.PowerSupply;
|
||||
|
||||
namespace ProgramLib
|
||||
{
|
||||
@@ -8,7 +25,7 @@ namespace ProgramLib
|
||||
internal class PowerSupplyData
|
||||
{
|
||||
public double Voltage { get; set; }
|
||||
public double Current { get; set; }
|
||||
public double Current { get; set; }
|
||||
public PowerSupplyModuleInfo PowerSupplyModuleInfo { get; set; }
|
||||
public bool Initialized { get; set; }
|
||||
|
||||
|
||||
@@ -1,4 +1,22 @@
|
||||
using System.Collections.Generic;
|
||||
/*-------------------------------------------------------------------------
|
||||
// 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.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Raytheon.Instruments.PowerSupply;
|
||||
|
||||
namespace ProgramLib
|
||||
@@ -9,7 +27,7 @@ namespace ProgramLib
|
||||
internal class PowerSupplySharedData
|
||||
{
|
||||
private object syncObj = new object();
|
||||
private Dictionary<string,object> syncObjDict = new Dictionary<string, object>();
|
||||
private Dictionary<string, object> syncObjDict = new Dictionary<string, object>();
|
||||
private Dictionary<string, PowerSupplyData> _powerSupplyDataDict = new Dictionary<string, PowerSupplyData>();
|
||||
|
||||
/// <summary>
|
||||
@@ -65,6 +83,21 @@ namespace ProgramLib
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get all power modules
|
||||
/// </summary>
|
||||
public List<string> GetAllPowerModules()
|
||||
{
|
||||
List<string> powerModuleList = new List<string>();
|
||||
|
||||
lock (syncObj)
|
||||
{
|
||||
powerModuleList = _powerSupplyDataDict.Keys.ToList();
|
||||
}
|
||||
|
||||
return powerModuleList;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Set each power supply data to uninialized
|
||||
/// </summary>
|
||||
|
||||
45
Source/Program/DataDef/TestInfo.cs
Normal file
45
Source/Program/DataDef/TestInfo.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
// 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 ProgramLib
|
||||
{
|
||||
/// <summary>
|
||||
/// Store test information
|
||||
/// </summary>
|
||||
internal class TestInfo
|
||||
{
|
||||
// class variables
|
||||
public string TestType { get; set; }
|
||||
public string TestOperator { get; set; }
|
||||
public string TestName { get; set; }
|
||||
public DateTime TestStartDateTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The constructor
|
||||
/// </summary>
|
||||
public TestInfo(string testType, string testName, string testOperator = "DefaultTestOperator", DateTime testStartTime = default)
|
||||
{
|
||||
TestType = testType;
|
||||
TestName = testName;
|
||||
TestOperator = testOperator;
|
||||
TestStartDateTime = testStartTime;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
79
Source/Program/DataDef/UartMessages.cs
Normal file
79
Source/Program/DataDef/UartMessages.cs
Normal file
@@ -0,0 +1,79 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
// 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;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace ProgramLib
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
struct UartHandshakeMessage
|
||||
{
|
||||
public byte Id { get; set; }
|
||||
public UInt64 Pattern1 { get; set; }
|
||||
public UInt64 Pattern2 { get; set; }
|
||||
public byte Checksum { get; set; }
|
||||
|
||||
public UartHandshakeMessage(UInt64 pattern1, UInt64 pattern2)
|
||||
{
|
||||
Id = 0x0C;
|
||||
Pattern1 = pattern1;
|
||||
Pattern2 = pattern2;
|
||||
Checksum = 0;
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
struct UartAckNackMessage
|
||||
{
|
||||
public byte Id { get; set; }
|
||||
public byte AckId { get; set; }
|
||||
public byte Ack { get; set; }
|
||||
public byte Checksum { get; set; }
|
||||
|
||||
public UartAckNackMessage(byte ackId, byte ack)
|
||||
{
|
||||
Id = 0x03;
|
||||
AckId = ackId;
|
||||
Ack = ack;
|
||||
Checksum = 0;
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
struct UartPbitResultMessage
|
||||
{
|
||||
public byte Id { get; set; }
|
||||
public byte PbitFinalResult { get; set; }
|
||||
public UInt16 PbitAggregate { get; set; }
|
||||
public Int16 GspTemp { get; set; }
|
||||
public UInt32 LifetimeTime { get; set; }
|
||||
public byte LifetimeCount { get; set; }
|
||||
public byte Checksum { get; set; }
|
||||
|
||||
public UartPbitResultMessage()
|
||||
{
|
||||
Id = 0xC0;
|
||||
PbitFinalResult = 0;
|
||||
PbitAggregate = 0;
|
||||
GspTemp = 0;
|
||||
LifetimeTime = 0;
|
||||
LifetimeCount = 0;
|
||||
Checksum = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
148
Source/Program/DataDef/UutInfo.cs
Normal file
148
Source/Program/DataDef/UutInfo.cs
Normal file
@@ -0,0 +1,148 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
// 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;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Xml.XPath;
|
||||
|
||||
namespace ProgramLib
|
||||
{
|
||||
/// <summary>
|
||||
/// Store UUT information
|
||||
/// </summary>
|
||||
internal class UutInfo
|
||||
{
|
||||
public enum UniversalCable
|
||||
{
|
||||
W1,
|
||||
W2,
|
||||
NOT_SET
|
||||
}
|
||||
|
||||
public enum BuildLevel
|
||||
{
|
||||
GMA,
|
||||
AUR,
|
||||
SELF_TEST,
|
||||
NOT_SET
|
||||
}
|
||||
|
||||
public enum SacrificialCable
|
||||
{
|
||||
W3,
|
||||
W4,
|
||||
NOT_SET
|
||||
}
|
||||
|
||||
// class variables
|
||||
public string PartNumber { get; private set; }
|
||||
public string SerialNumber { get; private set; }
|
||||
public BuildLevel UutBuildLevel { get; set; }
|
||||
public UniversalCable UniversalCableId { get; set; }
|
||||
public SacrificialCable SacrificialCableId { get; set; }
|
||||
public Dictionary<string, List<UutTestMessageDataFieldInfo>> UutTestMessageDict { get; set; }
|
||||
public string UutTestMessageConfigFilePath { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// The constructor
|
||||
/// </summary>
|
||||
public UutInfo(string partNumber, string serialNumber)
|
||||
{
|
||||
PartNumber = partNumber;
|
||||
SerialNumber = serialNumber;
|
||||
|
||||
UutBuildLevel = BuildLevel.NOT_SET;
|
||||
|
||||
UniversalCableId = UniversalCable.NOT_SET;
|
||||
|
||||
SacrificialCableId = SacrificialCable.NOT_SET;
|
||||
|
||||
UutTestMessageDict = new Dictionary<string, List<UutTestMessageDataFieldInfo>>(StringComparer.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initialize
|
||||
/// </summary>
|
||||
public void Initialize()
|
||||
{
|
||||
ParseUutTestMessagesConfig();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Parse UUT Test Messages Config
|
||||
/// </summary>
|
||||
private void ParseUutTestMessagesConfig()
|
||||
{
|
||||
string configFileName = Program.Instance().ProgramGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.UUT_TEST_MESSAGES_CONFIG_FILE_NAME.ToString());
|
||||
UutTestMessageConfigFilePath = Path.Combine(Program.Instance().FileAndFolderManager.GetFolder(FileAndFolderManager.Folders.CONFIG), configFileName);
|
||||
|
||||
if (File.Exists(UutTestMessageConfigFilePath))
|
||||
{
|
||||
XPathDocument document = new XPathDocument(UutTestMessageConfigFilePath);
|
||||
XPathNavigator nav = document.CreateNavigator();
|
||||
|
||||
// move to root node
|
||||
nav.MoveToRoot();
|
||||
|
||||
// move to 1st and 2nd level node
|
||||
if (nav.MoveToFirstChild() && nav.MoveToFirstChild())
|
||||
{
|
||||
string messageName;
|
||||
do
|
||||
{
|
||||
messageName = nav.GetAttribute("name", String.Empty);
|
||||
|
||||
// move to 3rd level node
|
||||
if (nav.MoveToFirstChild())
|
||||
{
|
||||
UutTestMessageDict[messageName] = ProcessUutTestMessageData(nav);
|
||||
|
||||
nav.MoveToParent();
|
||||
}
|
||||
} while (nav.MoveToNext());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Process uut test message data
|
||||
/// </summary>
|
||||
static List<UutTestMessageDataFieldInfo> ProcessUutTestMessageData(XPathNavigator nav)
|
||||
{
|
||||
List<UutTestMessageDataFieldInfo> messageDataFieldList = new List<UutTestMessageDataFieldInfo>();
|
||||
UutTestMessageDataFieldInfo messageDataField;
|
||||
|
||||
do
|
||||
{
|
||||
messageDataField = new UutTestMessageDataFieldInfo();
|
||||
messageDataField.Name = nav.GetAttribute("name", String.Empty);
|
||||
if (Int32.TryParse(nav.GetAttribute("byte_count", String.Empty), out int byteCount))
|
||||
{
|
||||
messageDataField.ByteCount = byteCount;
|
||||
}
|
||||
messageDataField.Type = nav.GetAttribute("type", String.Empty);
|
||||
messageDataField.Value = nav.GetAttribute("value", String.Empty);
|
||||
|
||||
messageDataFieldList.Add(messageDataField);
|
||||
|
||||
} while (nav.MoveToNext());
|
||||
|
||||
return messageDataFieldList;
|
||||
}
|
||||
}
|
||||
}
|
||||
34
Source/Program/DataDef/UutTestMessageDataFieldInfo.cs
Normal file
34
Source/Program/DataDef/UutTestMessageDataFieldInfo.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
// 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.
|
||||
-------------------------------------------------------------------------*/
|
||||
namespace ProgramLib
|
||||
{
|
||||
/// <summary>
|
||||
/// Definition for a UUT Test Message Data Field
|
||||
/// </summary>
|
||||
internal class UutTestMessageDataFieldInfo
|
||||
{
|
||||
public UutTestMessageDataFieldInfo()
|
||||
{
|
||||
}
|
||||
|
||||
public string Name { get; set; }
|
||||
public int ByteCount { get; set; }
|
||||
public string Type { get; set; }
|
||||
public string Value { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user