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

5
.gitignore vendored
View File

@@ -3,8 +3,9 @@
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
Source/TestStand/Sequences/**/Report
Source/_Deployment
Source/HalTempFolder
Source/TestStand/Reports
Source/Nuget/cache/
Source/Nuget/SolutionPackages/*
!Source/Nuget/SolutionPackages/readme.txt
@@ -370,4 +371,4 @@ MigrationBackup/
# Fody - auto-generated XML schema
FodyWeavers.xsd
!**/HAL/Implementations/BIT/COEComm/build/**
!**/TSRealLib/Common/Raytheon.Common/COE/Dependecies/**

268
Source/.editorconfig Normal file
View File

@@ -0,0 +1,268 @@
# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true
# C# files
[*.cs]
#### Core EditorConfig Options ####
# Indentation and spacing
indent_size = 2
indent_style = space
tab_width = 2
# New line preferences
end_of_line = crlf
insert_final_newline = false
#### .NET Code Actions ####
# Type members
dotnet_hide_advanced_members = false
dotnet_member_insertion_location = with_other_members_of_the_same_kind
dotnet_property_generation_behavior = prefer_throwing_properties
# Symbol search
dotnet_search_reference_assemblies = true
#### .NET Coding Conventions ####
# Organize usings
dotnet_separate_import_directive_groups = false
dotnet_sort_system_directives_first = true
file_header_template = unset
# this. and Me. preferences
dotnet_style_qualification_for_event = false
dotnet_style_qualification_for_field = false
dotnet_style_qualification_for_method = false
dotnet_style_qualification_for_property = false
# Language keywords vs BCL types preferences
dotnet_style_predefined_type_for_locals_parameters_members = true
dotnet_style_predefined_type_for_member_access = true
# Parentheses preferences
dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity
dotnet_style_parentheses_in_other_operators = never_if_unnecessary
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity
# Modifier preferences
dotnet_style_require_accessibility_modifiers = for_non_interface_members
# Expression-level preferences
dotnet_prefer_system_hash_code = true
dotnet_style_coalesce_expression = true
dotnet_style_collection_initializer = true
dotnet_style_explicit_tuple_names = true
dotnet_style_namespace_match_folder = true
dotnet_style_null_propagation = true
dotnet_style_object_initializer = true
dotnet_style_operator_placement_when_wrapping = beginning_of_line
dotnet_style_prefer_auto_properties = true
dotnet_style_prefer_collection_expression = when_types_loosely_match
dotnet_style_prefer_compound_assignment = true
dotnet_style_prefer_conditional_expression_over_assignment = true
dotnet_style_prefer_conditional_expression_over_return = true
dotnet_style_prefer_foreach_explicit_cast_in_source = when_strongly_typed
dotnet_style_prefer_inferred_anonymous_type_member_names = true
dotnet_style_prefer_inferred_tuple_names = true
dotnet_style_prefer_is_null_check_over_reference_equality_method = true
dotnet_style_prefer_simplified_boolean_expressions = true
dotnet_style_prefer_simplified_interpolation = true
# Field preferences
dotnet_style_readonly_field = true
# Parameter preferences
dotnet_code_quality_unused_parameters = all
# Suppression preferences
dotnet_remove_unnecessary_suppression_exclusions = none
# New line preferences
dotnet_style_allow_multiple_blank_lines_experimental = true
dotnet_style_allow_statement_immediately_after_block_experimental = true
#### C# Coding Conventions ####
# var preferences
csharp_style_var_elsewhere = false
csharp_style_var_for_built_in_types = false
csharp_style_var_when_type_is_apparent = false
# Expression-bodied members
csharp_style_expression_bodied_accessors = true:silent
csharp_style_expression_bodied_constructors = false:silent
csharp_style_expression_bodied_indexers = true:silent
csharp_style_expression_bodied_lambdas = true:silent
csharp_style_expression_bodied_local_functions = false:silent
csharp_style_expression_bodied_methods = false:silent
csharp_style_expression_bodied_operators = false:silent
csharp_style_expression_bodied_properties = true:silent
# Pattern matching preferences
csharp_style_pattern_matching_over_as_with_null_check = true
csharp_style_pattern_matching_over_is_with_cast_check = true
csharp_style_prefer_extended_property_pattern = true
csharp_style_prefer_not_pattern = true
csharp_style_prefer_pattern_matching = true
csharp_style_prefer_switch_expression = true
# Null-checking preferences
csharp_style_conditional_delegate_call = true
# Modifier preferences
csharp_prefer_static_anonymous_function = true
csharp_prefer_static_local_function = true
csharp_preferred_modifier_order = public,private,protected,internal,file,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,required,volatile,async
csharp_style_prefer_readonly_struct = true
csharp_style_prefer_readonly_struct_member = true
# Code-block preferences
csharp_prefer_braces = true:silent
csharp_prefer_simple_using_statement = true:suggestion
csharp_prefer_system_threading_lock = true:suggestion
csharp_style_namespace_declarations = block_scoped:silent
csharp_style_prefer_method_group_conversion = true:silent
csharp_style_prefer_primary_constructors = true:suggestion
csharp_style_prefer_top_level_statements = true:silent
# Expression-level preferences
csharp_prefer_simple_default_expression = true:suggestion
csharp_style_deconstructed_variable_declaration = true
csharp_style_implicit_object_creation_when_type_is_apparent = true
csharp_style_inlined_variable_declaration = true
csharp_style_prefer_implicitly_typed_lambda_expression = true
csharp_style_prefer_index_operator = true
csharp_style_prefer_local_over_anonymous_function = true
csharp_style_prefer_null_check_over_type_check = true:suggestion
csharp_style_prefer_range_operator = true
csharp_style_prefer_tuple_swap = true
csharp_style_prefer_unbound_generic_type_in_nameof = true
csharp_style_prefer_utf8_string_literals = true
csharp_style_throw_expression = true:suggestion
csharp_style_unused_value_assignment_preference = discard_variable
csharp_style_unused_value_expression_statement_preference = discard_variable
# 'using' directive preferences
csharp_using_directive_placement = outside_namespace:silent
# New line preferences
csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental = true
csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental = true
csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental = true
csharp_style_allow_blank_lines_between_consecutive_braces_experimental = true
csharp_style_allow_embedded_statements_on_same_line_experimental = true
#### C# Formatting Rules ####
# New line preferences
csharp_new_line_before_catch = true
csharp_new_line_before_else = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_open_brace = all
csharp_new_line_between_query_expression_clauses = true
# Indentation preferences
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents = true
csharp_indent_case_contents_when_block = true
csharp_indent_labels = one_less_than_current
csharp_indent_switch_labels = true
# Space preferences
csharp_space_after_cast = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_after_dot = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_after_semicolon_in_for_statement = true
csharp_space_around_binary_operators = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_open_square_brackets = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_square_brackets = false
# Wrapping preferences
csharp_preserve_single_line_blocks = true
csharp_preserve_single_line_statements = true
#### Naming styles ####
# Naming rules
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
# Symbol specifications
dotnet_naming_symbols.interface.applicable_kinds = interface
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.interface.required_modifiers =
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.types.required_modifiers =
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
dotnet_naming_symbols.non_field_members.required_modifiers =
# Naming styles
dotnet_naming_style.pascal_case.required_prefix =
dotnet_naming_style.pascal_case.required_suffix =
dotnet_naming_style.pascal_case.word_separator =
dotnet_naming_style.pascal_case.capitalization = pascal_case
dotnet_naming_style.begins_with_i.required_prefix = I
dotnet_naming_style.begins_with_i.required_suffix =
dotnet_naming_style.begins_with_i.word_separator =
dotnet_naming_style.begins_with_i.capitalization = pascal_case
[*.{cs,vb}]
dotnet_style_operator_placement_when_wrapping = beginning_of_line
tab_width = 3
indent_size = 3
end_of_line = crlf
dotnet_style_coalesce_expression = true:suggestion
dotnet_style_null_propagation = true:suggestion
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion
dotnet_style_prefer_auto_properties = true:silent
dotnet_style_object_initializer = true:suggestion
dotnet_style_collection_initializer = true:suggestion
dotnet_style_prefer_simplified_boolean_expressions = true:suggestion
dotnet_style_prefer_conditional_expression_over_assignment = true:silent
dotnet_style_prefer_conditional_expression_over_return = true:silent
dotnet_style_explicit_tuple_names = true:suggestion
dotnet_style_prefer_inferred_tuple_names = true:suggestion
dotnet_style_prefer_collection_expression = true:suggestion
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion
dotnet_style_prefer_compound_assignment = true:suggestion
dotnet_style_prefer_simplified_interpolation = true:suggestion
dotnet_style_namespace_match_folder = true:suggestion

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,253 @@
/*-------------------------------------------------------------------------
// 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.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows;
using System.Xml;
using NLog;
using ProgramLib.GUI.Model;
using ProgramLib.GUI.View;
using ProgramLib.GUI.ViewModel;
using Raytheon.Common.PdelWriter.Utilities;
using static MeasurementManagerLib.SwitchMeasurementManager;
namespace ProgramLib
{
/// <summary>
/// Perform Safe-to-turn-on (STTO)
/// </summary>
internal class PerformSttoAction : BasicAction
{
private List<string> _dmmResistanceMeasurements = new List<string>();
private static NLog.ILogger _logger;
private Exception _exceptionFromSuportThread;
public PerformSttoAction()
{
_logger = LogManager.GetCurrentClassLogger();
}
/// <summary>
/// Run the action
/// </summary>
public override void Run()
{
// No need to perform STTO when connected to real missile because signals are not looped back to the switch matrix
if (!Program.Instance().IsThereHardware || Program.Instance().UutInfo.UutBuildLevel == UutInfo.BuildLevel.SELF_TEST)
{
ParseDmmResistanceMeasurementList();
Task.Factory.StartNew(() => PerformSttoTask());
ProgramLib.Program.Instance().GuiManager[ProgramGuiManager.WINDOWS.DEFAULT].Dispatcher.Invoke((Action)delegate
{
ProgramLib.Program.Instance().GuiManager[ProgramGuiManager.WINDOWS.IMPEDANCE_CHECK].ShowDialog();
});
if (_exceptionFromSuportThread != null)
{
throw new Exception("Check inner exception.", _exceptionFromSuportThread);
}
RecordDateOfSucessfulSelfTestRunToLog();
}
else
throw new Exception("Please connect W5 cable to perform STTO checks");
}
/// <summary>
/// Record date of successful self test run to log
/// </summary>
private void RecordDateOfSucessfulSelfTestRunToLog()
{
if (Program.Instance().IsThereHardware)
{
XmlDocumentWrapper doc = new XmlDocumentWrapper(Program.Instance().FileAndFolderManager.GetFile(FileAndFolderManager.Files.CABLE_SELF_TEST_RUN_LOG));
XmlNode node = doc.GetNode(CableSelfTestConfigXml.SelfTestPath);
bool existingNodeFound = false;
while (node != null)
{
if (node.Attributes[CableSelfTestConfigXml.UniversalCableAttributeName] != null && String.Equals(node.Attributes[CableSelfTestConfigXml.UniversalCableAttributeName].Value, Program.Instance().UutInfo.UniversalCableId.ToString(), StringComparison.OrdinalIgnoreCase)
&& node.Attributes[CableSelfTestConfigXml.SacrificialCableAttributeName] != null && String.Equals(node.Attributes[CableSelfTestConfigXml.SacrificialCableAttributeName].Value, Program.Instance().UutInfo.SacrificialCableId.ToString(), StringComparison.OrdinalIgnoreCase))
{
Dictionary<string, string> attributesDict = new Dictionary<string, string>();
attributesDict[CableSelfTestConfigXml.LastRunDateAttributeName] = DateTime.Now.ToString("MM/dd/yyyy");
doc.ChangeNode(node, attributesDict);
existingNodeFound = true;
break;
}
node = node.NextSibling;
}
if (!existingNodeFound)
{
Dictionary<string, string> attributesDict = new Dictionary<string, string>();
attributesDict[CableSelfTestConfigXml.UniversalCableAttributeName] = Program.Instance().UutInfo.UniversalCableId.ToString();
attributesDict[CableSelfTestConfigXml.SacrificialCableAttributeName] = Program.Instance().UutInfo.SacrificialCableId.ToString();
attributesDict[CableSelfTestConfigXml.LastRunDateAttributeName] = DateTime.Now.ToString("MM/dd/yyyy");
doc.AddNode(CableSelfTestConfigXml.SelfTestPath, attributesDict);
}
doc.SaveToFile();
}
}
/// <summary>
/// Parse resistance measurement list
/// </summary>
private void ParseDmmResistanceMeasurementList()
{
string SECTION_NAME = "_STTO";
string cable = "W3";
if (ProgramLib.Program.Instance().UutInfo.SacrificialCableId == UutInfo.SacrificialCable.W4)
{
cable = "W4";
}
SECTION_NAME = cable + SECTION_NAME;
List<string> keys = Program.Instance().ProgramSpecificConfig.ReadAllKeys(SECTION_NAME);
foreach (string key in keys)
{
_dmmResistanceMeasurements.Add(Program.Instance().ProgramSpecificConfig.ReadValue(SECTION_NAME, key));
}
}
/// <summary>
/// Perform Safe-to-turn-on checks
/// </summary>
private void PerformSttoTask()
{
ImpedanceDataModel impedanceDataModel;
ImpedanceCheckWindow impedanceCheckWindow = (ImpedanceCheckWindow)ProgramLib.Program.Instance().GuiManager[ProgramGuiManager.WINDOWS.IMPEDANCE_CHECK];
bool sttoSuccess = true;
int firstFailIndex = -1;
try
{
_logger?.Debug($"{this.GetType().Name}::PerformSttoTask() running...");
string measurementStatus = "PASSED";
ImpedanceCheckWindowViewModel.Images passFailImage = ImpedanceCheckWindowViewModel.Images.PASS_CHECK;
impedanceCheckWindow.ViewModel.ClearData();
string sttoFailMsg = String.Empty;
int loopCount = 0;
foreach (string measurement in _dmmResistanceMeasurements)
{
TestResult pdelResultInfo = new TestResult();
measurementStatus = "PASSED";
passFailImage = ImpedanceCheckWindowViewModel.Images.PASS_CHECK;
impedanceDataModel = new ImpedanceDataModel();
DMMResistanceMeasurementFields dmmResistanceMeasurementInfo = Program.Instance().MalMeasurementLibManager.SwitchMeasurementManager.DmmResistanceMeasurements[measurement];
double testResult = Program.Instance().MalMeasurementLibManager.SwitchMeasurementManager.DmmReadResistance(measurement);
if (testResult < dmmResistanceMeasurementInfo._lowerLimit || testResult > dmmResistanceMeasurementInfo._upperLimit)
{
passFailImage = ImpedanceCheckWindowViewModel.Images.FAIL_CHECK;
measurementStatus = "FAILED";
sttoSuccess = false;
}
string cableAndPinId = dmmResistanceMeasurementInfo._cableAndPinId;
if (Program.Instance().UutInfo.UniversalCableId == UutInfo.UniversalCable.W2)
cableAndPinId = Regex.Replace(cableAndPinId, UutInfo.UniversalCable.W1.ToString() + @"_", UutInfo.UniversalCable.W2.ToString() + @"_", RegexOptions.IgnoreCase);
impedanceDataModel.PassFailImagePath = impedanceCheckWindow.ViewModel.ImageToResourcePathDict[passFailImage];
impedanceDataModel.Description = $"{measurement}, {cableAndPinId} Measured {Util.AutoFormatNumberToString(testResult)} Range [{Util.AutoFormatNumberToString(dmmResistanceMeasurementInfo._lowerLimit)}, {Util.AutoFormatNumberToString(dmmResistanceMeasurementInfo._upperLimit)}]";
if (sttoSuccess == false && String.IsNullOrEmpty(sttoFailMsg))
{
sttoFailMsg = impedanceDataModel.Description;
}
if (Program.TestStandSeqContext != null)
{
Program.TestStandSeqContext.Step.AdditionalResults.CustomResults.Insert($"\"{measurement}, {cableAndPinId}\"", $"\"Measured: {Util.AutoFormatNumberToString(testResult)} Range [{Util.AutoFormatNumberToString(dmmResistanceMeasurementInfo._lowerLimit)}, {Util.AutoFormatNumberToString(dmmResistanceMeasurementInfo._upperLimit)}] - {measurementStatus}\"");
TestStand.ProgramManager.SaveOriginalStepSetting(ProgramLib.Program.TestStandSeqContext.Step.StepIndex, ProgramLib.Program.TestStandSeqContext.StepGroup, ProgramLib.Program.TestStandSeqContext.Step.PostExpression, true);
}
impedanceCheckWindow.ViewModel.AddData(impedanceDataModel);
pdelResultInfo.PCode = dmmResistanceMeasurementInfo._pcode;
pdelResultInfo.TestName = dmmResistanceMeasurementInfo._cableAndPinId;
pdelResultInfo.MeasuredValue = Math.Round(testResult, 5);
pdelResultInfo.Result = PassFailStatus.Fail;
if (measurementStatus == "PASSED")
{
pdelResultInfo.Result = PassFailStatus.Pass;
}
ProgramLib.Program.Instance().PcodeTestResultList.List.Add(pdelResultInfo);
if (!sttoSuccess && firstFailIndex == -1)
{
firstFailIndex = loopCount;
}
loopCount++;
}
if (!sttoSuccess)
{
throw new Exception(sttoFailMsg);
}
}
catch (Exception ex)
{
_exceptionFromSuportThread = ex;
}
finally
{
ProgramLib.Program.Instance().PdelData.TestStopTime = DateTime.Now;
if (!sttoSuccess)
{
impedanceCheckWindow.Dispatcher.Invoke((Action)delegate
{
impedanceCheckWindow.btnClose.Visibility = Visibility.Visible;
// scroll to the first failed item
if (firstFailIndex != -1)
{
impedanceCheckWindow.lvImpedanceCheck.ScrollIntoView(impedanceCheckWindow.lvImpedanceCheck.Items.GetItemAt(firstFailIndex));
}
});
}
else
{
impedanceCheckWindow.Dispatcher.Invoke((Action)delegate
{
impedanceCheckWindow.Hide();
});
}
_logger?.Debug($"{this.GetType().Name}::PerformSttoTask() exiting...");
}
}
}
}

View File

@@ -0,0 +1,302 @@
/*-------------------------------------------------------------------------
// 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.Linq;
using System.Threading;
using NLog;
using Raytheon.Instruments;
namespace ProgramLib
{
/// <summary>
/// Send Test Messages to UUT via TCP sockets
/// </summary>
internal class PerformTacticalUartCommAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private ICommDevice _serialDevice;
private List<byte> _receiveByteList = new List<byte>();
private int _expectedPbitAggregate;
#endregion
/// <summary>
/// Constructor
/// </summary>
/// <returns></returns>
public PerformTacticalUartCommAction()
{
string expectedPbitAggregate;
_logger = LogManager.GetCurrentClassLogger();
string serialDeviceInstanceName = Program.Instance().ProgramSpecificConfig.ReadValue("UART_INFO", "SERIAL_DEVICE_INSTANCE_NAME");
expectedPbitAggregate = Program.Instance().ProgramSpecificConfig.ReadValue("PBIT_INFO", "SUCCESSFUL_PBIT_AGGREGATE_VALUE");
_expectedPbitAggregate = Convert.ToInt32(expectedPbitAggregate, 16);
_serialDevice = (ICommDevice)Program.Instance().InstrumentManager.GetGenericInstrument(serialDeviceInstanceName);
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (Program.Instance().IsUutPwrOn)
{
SendHandshakeAndGetResponse();
SendAckNackAndGetResponse();
}
else
{
throw new Exception("Cannot send message to UUT because UUT is not powered on.");
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Send AckNack message and get response
/// </summary>
/// <returns></returns>
public void SendAckNackAndGetResponse()
{
UartAckNackMessage msg = new UartAckNackMessage(0x0C, 1);
List<byte> msgByteList = Util.StructToByteList(msg).ToList();
// remove checksum byte
msgByteList.RemoveAt(msgByteList.Count - 1);
msgByteList.Add(Util.GetTwosComplimentChecksum(msgByteList.ToArray()));
_serialDevice.Write(msgByteList.ToArray(), (uint)msgByteList.Count);
_logger.Info($"Raw AckNackMsg Sent: {Util.ByteArrayToHexString(msgByteList.ToArray())}");
UartPbitResultMessage pbitMsg = new UartPbitResultMessage();
List<byte> pbitMsgByteList = Util.StructToByteList(pbitMsg).ToList();
_logger.Info($"Waiting for PBIT Result from UUT");
byte[] byteArray;
DateTime startDateTime = DateTime.Now;
TimeSpan ts = DateTime.Now - startDateTime;
const int MAX_PBIT_WAIT_SEC = 7;
List<byte> pBitReceivedByteList = new List<byte>();
bool pBitMsgFound = false;
while (ts.TotalSeconds < MAX_PBIT_WAIT_SEC)
{
ts = DateTime.Now - startDateTime;
if (TacticalUartReadThread._byteQueue.Count > 0)
{
TacticalUartReadThread._byteQueue.TryDequeue(out byteArray);
_receiveByteList.AddRange(byteArray);
}
else
Thread.Sleep(100);
if (_receiveByteList.Count < pbitMsgByteList.Count)
{
continue;
}
int index = 0;
bool needMoreData = false;
do
{
if (_receiveByteList[index] == pbitMsg.Id)
{
pBitReceivedByteList = _receiveByteList.Skip(index).Take(_receiveByteList.Count - index).ToList();
if (pBitReceivedByteList.Count < pbitMsgByteList.Count)
{
_receiveByteList = pBitReceivedByteList;
needMoreData = true;
break;
}
pBitReceivedByteList = pBitReceivedByteList.Skip(0).Take(pbitMsgByteList.Count).ToList();
if (Util.GetTwosComplimentChecksum(pBitReceivedByteList.Skip(0).Take(pbitMsgByteList.Count - 1).ToArray()) != pBitReceivedByteList[pBitReceivedByteList.Count - 1])
{
index++;
}
else
{
int numBytesToRemove = index + pBitReceivedByteList.Count;
if (numBytesToRemove == _receiveByteList.Count)
_receiveByteList.Clear();
else
_receiveByteList = _receiveByteList.Skip(numBytesToRemove).Take(_receiveByteList.Count - numBytesToRemove).ToList();
pBitMsgFound = true;
break;
}
}
else
index++;
if (index == _receiveByteList.Count)
{
_receiveByteList.Clear();
needMoreData = true;
break;
}
}
while (true);
if (!needMoreData)
{
break;
}
}
if (pBitMsgFound)
{
_logger.Info($"Raw Msg Received: {Util.ByteArrayToHexString(pBitReceivedByteList.ToArray(), pbitMsgByteList.Count)}");
UartPbitResultMessage rsp = Util.ByteArrayToStruct<UartPbitResultMessage>(pBitReceivedByteList.ToArray());
_logger.Info($"PbitResult Fields: PbitFinalResult={rsp.PbitFinalResult}, PbitAggregate=0x{rsp.PbitAggregate.ToString("X4")}, GSP_Temp={rsp.GspTemp} C, Lifetime_Time={rsp.LifetimeTime} sec, Lifetime_Count={rsp.LifetimeCount}");
if (rsp.PbitAggregate != _expectedPbitAggregate)
{
_logger.Error("UUT's PBIT failed.");
}
}
else
{
throw new Exception("Timed out waiting for PBIT result.");
}
}
/// <summary>
/// Send Handshake message and get response
/// </summary>
/// <returns></returns>
public void SendHandshakeAndGetResponse()
{
UartHandshakeMessage handshakeMsg = new UartHandshakeMessage(0xCCAAFFEEDDAAEEDD, 0xDDEEAADDEEFFAACC);
List<byte> handshakeMsgByteList = Util.StructToByteList(handshakeMsg).ToList();
// remove checksum byte
handshakeMsgByteList.RemoveAt(handshakeMsgByteList.Count - 1);
handshakeMsgByteList.Add(Util.GetTwosComplimentChecksum(handshakeMsgByteList.ToArray()));
_serialDevice.Write(handshakeMsgByteList.ToArray(), (uint)handshakeMsgByteList.Count);
_logger.Info($"Raw HandshakeMsg Sent: {Util.ByteArrayToHexString(handshakeMsgByteList.ToArray())}");
_logger.Info($"Waiting for HandshakeMsg from UUT");
byte[] byteArray;
DateTime startDateTime = DateTime.Now;
TimeSpan ts = DateTime.Now - startDateTime;
const int MAX_HANDSHAKE_WAIT_SEC = 7;
List<byte> handshakeReceivedByteList = new List<byte>();
bool handshakeMsgFound = false;
double secondCount = 0.0;
while (ts.TotalSeconds < MAX_HANDSHAKE_WAIT_SEC)
{
ts = DateTime.Now - startDateTime;
if (ts.TotalSeconds > secondCount)
{
_serialDevice.Write(handshakeMsgByteList.ToArray(), (uint)handshakeMsgByteList.Count);
_logger.Info($"Raw HandshakeMsg Sent: {Util.ByteArrayToHexString(handshakeMsgByteList.ToArray())}");
secondCount = ts.TotalSeconds;
}
if (TacticalUartReadThread._byteQueue.Count > 0)
{
TacticalUartReadThread._byteQueue.TryDequeue(out byteArray);
_receiveByteList.AddRange(byteArray);
}
else
Thread.Sleep(100);
if (_receiveByteList.Count < handshakeMsgByteList.Count)
{
continue;
}
int index = 0;
bool needMoreData = false;
do
{
if (_receiveByteList[index] == handshakeMsg.Id)
{
handshakeReceivedByteList = _receiveByteList.Skip(index).Take(_receiveByteList.Count - index).ToList();
if (handshakeReceivedByteList.Count < handshakeMsgByteList.Count)
{
_receiveByteList = handshakeReceivedByteList;
needMoreData = true;
break;
}
handshakeReceivedByteList = handshakeReceivedByteList.Skip(0).Take(handshakeMsgByteList.Count).ToList();
if (Util.GetTwosComplimentChecksum(handshakeReceivedByteList.Skip(0).Take(handshakeMsgByteList.Count - 1).ToArray()) != handshakeReceivedByteList[handshakeReceivedByteList.Count - 1])
{
index++;
}
else
{
int numBytesToRemove = index + handshakeReceivedByteList.Count;
if (numBytesToRemove == _receiveByteList.Count)
_receiveByteList.Clear();
else
_receiveByteList = _receiveByteList.Skip(numBytesToRemove).Take(_receiveByteList.Count - numBytesToRemove).ToList();
handshakeMsgFound = true;
break;
}
}
else
index++;
if (index == _receiveByteList.Count)
{
_receiveByteList.Clear();
needMoreData = true;
break;
}
}
while (true);
if (!needMoreData)
{
break;
}
}
if (handshakeMsgFound)
{
_logger.Info($"Raw Msg Received: {Util.ByteArrayToHexString(handshakeReceivedByteList.ToArray(), handshakeMsgByteList.Count)}");
UartHandshakeMessage rsp = Util.ByteArrayToStruct<UartHandshakeMessage>(handshakeReceivedByteList.ToArray());
_logger.Info($"Handshake Fields: Pattern1=0x{rsp.Pattern1.ToString("X8")}, Pattern2=0x{rsp.Pattern2.ToString("X8")}");
}
else
{
throw new Exception("Timed out waiting for HandshakeMsg.");
}
}
}
}

View File

@@ -0,0 +1,130 @@
/*-------------------------------------------------------------------------
// 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.Threading;
using NLog;
using Raytheon.Common.Coe;
using Raytheon.Instruments;
namespace ProgramLib
{
/// <summary>
/// Send COE Message to UUT
/// </summary>
internal class SendCoeAdnucMsgToUutAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private string _coeDeviceName;
private string _msgName = "NgsriAdnucStateMsg";
public static Coe.MmgrState mMgrState = Coe.MmgrState.NOT_SET;
#endregion
/// <summary>
/// Constructor
/// </summary>
/// <param name="coeDeviceName">name of COE device</param>
/// <returns></returns>
public SendCoeAdnucMsgToUutAction(string coeDeviceName)
{
_logger = LogManager.GetCurrentClassLogger();
_coeDeviceName = coeDeviceName;
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (Program.Instance().IsUutPwrOn)
{
CoeResponseMsgData missionManagerMsg = null;
bool firstMissionManagerMsgReceived = false;
const int MAX_RETRIES = 5;
int retry = 0;
CoeFieldData val = null;
mMgrState = Coe.MmgrState.NOT_SET;
Coe.MmgrState desiredMmgrState = Coe.MmgrState.CALIBRATION;
string missionManagerMessageName = "MissionManagerMsgLL";
_logger.Info($"Waiting for message {missionManagerMessageName}");
do
{
Thread.Sleep(1000);
missionManagerMsg = Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.GetNextResponseInQueue(_coeDeviceName, missionManagerMessageName);
if (missionManagerMsg != null)
{
if (!firstMissionManagerMsgReceived)
firstMissionManagerMsgReceived = true;
val = missionManagerMsg.GetFieldData("data.mmgrState");
if (Enum.TryParse(val.FieldValue, out mMgrState))
{
_logger.Info($"Current mission state: {mMgrState.ToString()}");
if (mMgrState == desiredMmgrState)
break;
}
else
{
_logger.Warn($"Invalid mission state: {val.FieldValue}");
}
}
} while (retry++ < MAX_RETRIES && (missionManagerMsg == null || mMgrState != desiredMmgrState));
if (!firstMissionManagerMsgReceived)
{
throw new Exception($"Timed out waiting for Mission Manager's state message");
}
if (mMgrState != desiredMmgrState)
{
throw new Exception($"Timed out waiting for Mission Manager to transition to {desiredMmgrState}");
}
Thread.Sleep(1000);
Message msg = Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.CreateMessage(_coeDeviceName, _msgName);
string adnucState = "2";
msg.Set("data.adnucState", adnucState);
var parms = msg.GetParameters();
_logger.Info($"Sending {_msgName}, adnucState={adnucState}");
Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.SendMessage(_coeDeviceName, _msgName, parms);
}
else
{
throw new Exception("Cannot send message to UUT because UUT is not powered on.");
}
}
catch (Exception)
{
throw;
}
}
}
}

View File

@@ -0,0 +1,130 @@
/*-------------------------------------------------------------------------
// 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.Threading;
using NLog;
using Raytheon.Common.Coe;
using Raytheon.Instruments;
namespace ProgramLib
{
/// <summary>
/// Send COE Message to UUT
/// </summary>
internal class SendCoeBatteryGoodMsgToUutAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private string _coeDeviceName;
private string _msgName = "UmbilicalRetractBatteryGoodMsg";
#endregion
/// <summary>
/// Constructor
/// </summary>
/// <param name="coeDeviceName">name of COE device</param>
/// <returns></returns>
public SendCoeBatteryGoodMsgToUutAction(string coeDeviceName)
{
_logger = LogManager.GetCurrentClassLogger();
_coeDeviceName = coeDeviceName;
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (Program.Instance().IsUutPwrOn)
{
if (SendCoeUncageMsgToUutAction.mMgrState == Coe.MmgrState.ACQUISITION)
{
CoeResponseMsgData missionManagerMsg = null;
bool firstMissionManagerMsgReceived = false;
const int MAX_RETRIES = 5;
int retry = 0;
CoeFieldData val = null;
Coe.MmgrState mMgrState = Coe.MmgrState.NOT_SET;
Coe.MmgrState desiredMmgrState = Coe.MmgrState.PRELAUNCH;
string missionManagerMessageName = "MissionManagerMsgLL";
_logger.Info($"Waiting for message {missionManagerMessageName}");
do
{
Thread.Sleep(1000);
missionManagerMsg = Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.GetNextResponseInQueue(_coeDeviceName, missionManagerMessageName);
if (missionManagerMsg != null)
{
if (!firstMissionManagerMsgReceived)
firstMissionManagerMsgReceived = true;
val = missionManagerMsg.GetFieldData("data.mmgrState");
if (Enum.TryParse(val.FieldValue, out mMgrState))
{
_logger.Info($"Current mission state: {mMgrState.ToString()}");
if (mMgrState == desiredMmgrState)
break;
}
else
{
_logger.Warn($"Invalid mission state: {val.FieldValue}");
}
}
} while (retry++ < MAX_RETRIES && (missionManagerMsg == null || mMgrState != desiredMmgrState));
if (!firstMissionManagerMsgReceived)
{
throw new Exception($"Timed out waiting for Mission Manager's state message");
}
if (mMgrState != desiredMmgrState)
{
throw new Exception($"Timed out waiting for Mission Manager to transition to {desiredMmgrState}");
}
Message msg = Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.CreateMessage(_coeDeviceName, _msgName);
string batteryGoodState = "1";
msg.Set("data.umbilicalRetractBatteryGood", batteryGoodState);
var parms = msg.GetParameters();
_logger.Info($"Sending {_msgName}, umbilicalRetractBatteryGood={batteryGoodState}");
Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.SendMessage(_coeDeviceName, _msgName, parms);
}
}
else
{
throw new Exception("Cannot send message to UUT because UUT is not powered on.");
}
}
catch (Exception)
{
throw;
}
}
}
}

View File

@@ -0,0 +1,132 @@
/*-------------------------------------------------------------------------
// 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.Threading;
using NLog;
using Raytheon.Common.Coe;
using Raytheon.Instruments;
namespace ProgramLib
{
/// <summary>
/// Send COE Message to UUT
/// </summary>
internal class SendCoeUncageMsgToUutAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private string _coeDeviceName;
private string _msgName = "CageStateMsg";
public static Coe.MmgrState mMgrState = Coe.MmgrState.NOT_SET;
#endregion
/// <summary>
/// Constructor
/// </summary>
/// <param name="coeDeviceName">name of COE device</param>
/// <returns></returns>
public SendCoeUncageMsgToUutAction(string coeDeviceName)
{
_logger = LogManager.GetCurrentClassLogger();
_coeDeviceName = coeDeviceName;
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (Program.Instance().IsUutPwrOn)
{
if (SendCoeAdnucMsgToUutAction.mMgrState == Coe.MmgrState.CALIBRATION)
{
CoeResponseMsgData missionManagerMsg = null;
bool firstMissionManagerMsgReceived = false;
const int MAX_RETRIES = 5;
int retry = 0;
CoeFieldData val = null;
mMgrState = Coe.MmgrState.NOT_SET;
Coe.MmgrState desiredMmgrState = Coe.MmgrState.ACQUISITION;
string missionManagerMessageName = "MissionManagerMsgLL";
_logger.Info($"Waiting for message {missionManagerMessageName}");
do
{
Thread.Sleep(1000);
missionManagerMsg = Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.GetNextResponseInQueue(_coeDeviceName, missionManagerMessageName);
if (missionManagerMsg != null)
{
if (!firstMissionManagerMsgReceived)
firstMissionManagerMsgReceived = true;
val = missionManagerMsg.GetFieldData("data.mmgrState");
if (Enum.TryParse(val.FieldValue, out mMgrState))
{
_logger.Info($"Current mission state: {mMgrState.ToString()}");
if (mMgrState == desiredMmgrState)
break;
}
else
{
_logger.Warn($"Invalid mission state: {val.FieldValue}");
}
}
} while (retry++ < MAX_RETRIES && (missionManagerMsg == null || mMgrState != desiredMmgrState));
if (!firstMissionManagerMsgReceived)
{
throw new Exception($"Timed out waiting for Mission Manager's state message");
}
if (mMgrState != desiredMmgrState)
{
throw new Exception($"Timed out waiting for Mission Manager to transition to {desiredMmgrState}");
}
Message msg = Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.CreateMessage(_coeDeviceName, _msgName);
string cageState = "1";
msg.Set("data.uncaged", cageState);
var parms = msg.GetParameters();
_logger.Info($"Sending {_msgName}, uncaged={cageState}");
Program.Instance().MalMeasurementLibManager.CoeMeasurementManager.SendMessage(_coeDeviceName, _msgName, parms);
}
}
else
{
throw new Exception("Cannot send message to UUT because UUT is not powered on.");
}
}
catch (Exception)
{
throw;
}
}
}
}

View File

@@ -0,0 +1,234 @@
/*-------------------------------------------------------------------------
// 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.Text;
using NLog;
using ProgramLib.GUI.View;
namespace ProgramLib
{
/// <summary>
/// Send Test Messages to UUT via TCP sockets
/// </summary>
internal class SendTestMessageToUutAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private string _messageName;
private string _iniKeyForData;
#endregion
/// <summary>
/// Constructor
/// </summary>
/// <param name="messageName">name of the message that is defined in the UutTestMessages.XML file</param>
/// <param name="iniKeyForData">section name in the ProgramSpecific.ini that specifies the values for data fields in this message</param>
/// <returns></returns>
public SendTestMessageToUutAction(string messageName, string iniKeyForData = null)
{
_logger = LogManager.GetCurrentClassLogger();
_messageName = messageName;
_iniKeyForData = iniKeyForData;
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (Program.Instance().IsUutPwrOn)
{
SendMessageToUut();
}
else
{
throw new Exception("Cannot send message to UUT because UUT is not powered on.");
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Send message to UUT
/// </summary>
/// <returns></returns>
private void SendMessageToUut()
{
string msfrTestCase = null;
if (Program.Instance().EthernetSocketManager.GetTcpClient(TcpClientNames.UUT_TEST_PORT) != null)
{
if (String.Equals(_messageName, "MSFRParameterMsg", StringComparison.OrdinalIgnoreCase))
{
MsfrTestCasesWindow win = (MsfrTestCasesWindow)ProgramLib.Program.Instance().GuiManager[ProgramLib.ProgramGuiManager.WINDOWS.MSFR_TEST_CASES];
ProgramLib.Program.Instance().GuiManager[ProgramGuiManager.WINDOWS.DEFAULT].Dispatcher.Invoke((Action)delegate
{
if (win.cbMsfrTestCases.SelectedItem != null)
msfrTestCase = win.cbMsfrTestCases.SelectedValue.ToString();
});
if (!String.IsNullOrEmpty(msfrTestCase))
{
int index = msfrTestCase.IndexOf('.');
_iniKeyForData = $"TEST_CASE_{msfrTestCase.Substring(0, index)}";
}
else
throw new Exception("No MSFR test case was specified");
}
byte[] byteArray = ConstructByteArrayFromMessageData();
Program.Instance().EthernetSocketManager.GetTcpClient(TcpClientNames.UUT_TEST_PORT).Write(byteArray);
string desc = $"Sent {_messageName}.";
if (String.Equals(_messageName, "MSFRParameterMsg", StringComparison.OrdinalIgnoreCase))
desc += $" Test case: {msfrTestCase}";
_logger.Info(desc);
}
else
{
throw new Exception("Cannot send message to UUT because socket connection hasn't been established.");
}
}
/// <summary>
/// Pack all data in the message to byte array to be sent
/// </summary>
/// <returns></returns>
private byte[] ConstructByteArrayFromMessageData()
{
List<byte> byteList = new List<byte>();
string val = String.Empty;
string sourceError = String.Empty;
if (Program.Instance().UutInfo.UutTestMessageDict.ContainsKey(_messageName))
{
string[] dataArray = Program.Instance().ProgramSpecificConfig.ReadValue(_messageName, _iniKeyForData).Split(',');
int dataArrayIndex = -1;
if (String.Equals(_messageName, "MSFRParameterMsg", StringComparison.OrdinalIgnoreCase))
dataArrayIndex++;
foreach (UutTestMessageDataFieldInfo item in Program.Instance().UutInfo.UutTestMessageDict[_messageName])
{
dataArrayIndex++;
val = item.Value;
if (String.Equals(item.Value, "not_set", StringComparison.OrdinalIgnoreCase))
{
sourceError = $"Key: {_iniKeyForData}. Section: {_messageName}. File: {Program.Instance().ProgramSpecificConfig.FileName}";
val = dataArray[dataArrayIndex].Trim();
}
else
{
sourceError = $"Message: {_messageName}. Data Field: {item.Name}. File: {Program.Instance().UutInfo.UutTestMessageConfigFilePath}";
}
string type = item.Type.ToLower();
switch (type)
{
case "string":
if (val.Length > item.ByteCount)
{
throw new Exception($"The value {val} exceeds the allowable length of {item.ByteCount} characters. {sourceError}");
}
else if (val.Length < item.ByteCount)
{
for (int i = val.Length; i < item.ByteCount; i++)
{
val += '\0';
}
}
byteList.AddRange(Encoding.ASCII.GetBytes(val));
break;
case "bool":
if (val == "1")
val = "true";
else if (val == "0")
val = "false";
if (bool.TryParse(val, out bool boolVal))
{
byteList.Add(Convert.ToByte(boolVal));
}
else
{
throw new Exception($"The value {val} is not of type {item.Type}. It must be either true/false. {sourceError}");
}
break;
case "uint8":
if (byte.TryParse(val, out byte byteVal))
{
byteList.Add(byteVal);
}
else
{
throw new Exception($"The value {val} is not of type {item.Type}. {sourceError}");
}
break;
case "uint32":
if (UInt32.TryParse(val, out UInt32 uint32Val))
{
byteList.AddRange(BitConverter.GetBytes(uint32Val));
}
else
{
throw new Exception($"The value {val} is not of type {item.Type}. {sourceError}");
}
break;
case "double":
if (Double.TryParse(val, out Double doubleVal))
{
byteList.AddRange(BitConverter.GetBytes(doubleVal));
}
else
{
throw new Exception($"The value {val} is not of type {item.Type}. {sourceError}");
}
break;
case "float":
if (float.TryParse(val, out float floatVal))
{
byteList.AddRange(BitConverter.GetBytes(floatVal));
}
else
{
throw new Exception($"The value {val} is not of type {item.Type}. {sourceError}");
}
break;
default:
throw new Exception($"{item.Type} is not a supported type. {sourceError}");
}
}
}
else
{
throw new Exception($"Message {_messageName} does not exist in {Program.Instance().UutInfo.UutTestMessageConfigFilePath}.");
}
return byteList.ToArray();
}
}
}

View File

@@ -16,54 +16,45 @@ GOVERNMENT.
UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
using NLog;
namespace ProgramLib
{
/// <summary>
/// Store UUT information
/// </summary>
internal class UutInfo
/// Start tactical UART read thread
/// </summary>
internal class StartTacticalUartReadThreadAction : BasicAction
{
#region PublicMembers
#endregion
#region PrivateClassMembers
// class variables
private readonly string _partNumber;
private readonly string _serialNumber;
private static NLog.ILogger _logger;
#endregion
#region PrivateFuctions
/// <summary>
/// The constructor
/// Constructor
/// </summary>
public UutInfo(string partNumber, string serialNumber)
public StartTacticalUartReadThreadAction()
{
_partNumber = partNumber;
_serialNumber = serialNumber;
_logger = LogManager.GetCurrentClassLogger();
}
#endregion
#region PublicFuctions
/// <summary>
///
/// Run the action
/// </summary>
/// <returns></returns>
internal string GetPartNumber()
public override void Run()
{
return _partNumber;
}
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
/// <summary>
///
/// </summary>
/// <returns></returns>
internal string GetSerialNumber()
{
return _serialNumber;
TacticalUartReadThread tacticalUartReadThread = new TacticalUartReadThread();
tacticalUartReadThread.Start();
}
catch (Exception)
{
throw;
}
}
#endregion
}
}

View File

@@ -0,0 +1,137 @@
/*-------------------------------------------------------------------------
// 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.Linq;
using NLog;
using Raytheon.Instruments;
namespace ProgramLib
{
/// <summary>
/// Perform UART loopback test
/// </summary>
internal class UartLoopBackAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private ICommDevice _serialDevice;
#endregion
/// <summary>
/// Constructor
/// </summary>
/// <returns></returns>
public UartLoopBackAction()
{
_logger = LogManager.GetCurrentClassLogger();
string serialDeviceInstanceName = Program.Instance().ProgramSpecificConfig.ReadValue("UART_INFO", "SERIAL_DEVICE_INSTANCE_NAME");
_serialDevice = (ICommDevice)Program.Instance().InstrumentManager.GetGenericInstrument(serialDeviceInstanceName);
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
SendCommandAndGetResponse();
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Send commnd and get response
/// </summary>
/// <returns></returns>
public void SendCommandAndGetResponse()
{
UartHandshakeMessage msg = new UartHandshakeMessage(0xCCAAFFEEDDAAEEDD, 0xDDEEAADDEEFFAACC);
List<byte> msgByteList = Util.StructToByteList(msg).ToList();
// remove checksum byte
msgByteList.RemoveAt(msgByteList.Count - 1);
msgByteList.Add(Util.GetTwosComplimentChecksum(msgByteList.ToArray()));
_serialDevice.Write(msgByteList.ToArray(), (uint)msgByteList.Count);
_logger.Info($"Raw message sent: {Util.ByteArrayToHexString(msgByteList.ToArray())}");
List<byte> receiveByteList = new List<byte>();
byte[] receiveByteArray = null;
uint totalBytesRead = 0;
_logger.Info($"Waiting for message to be looped back...");
uint numBytesRead = _serialDevice.Read(ref receiveByteArray);
// this is for loopback, we read too fast and we're only getting partial data
if (numBytesRead < msgByteList.Count)
{
_serialDevice.SetReadTimeout(100);
try
{
do
{
totalBytesRead += numBytesRead;
receiveByteList.AddRange(receiveByteArray.Skip(0).Take((int)numBytesRead).ToArray());
receiveByteArray = null;
numBytesRead = _serialDevice.Read(ref receiveByteArray);
}
while (true);
}
catch { }
// reset to default timeout
_serialDevice.SetReadTimeout();
receiveByteArray = receiveByteList.ToArray();
}
else
totalBytesRead = numBytesRead;
_logger.Info($"Raw Msg Received: {Util.ByteArrayToHexString(receiveByteArray, (int)totalBytesRead)}");
if (totalBytesRead != msgByteList.Count)
{
throw new Exception($"Unexpected message size. Expected msg size: {msgByteList.Count}. Actual msg size: {totalBytesRead}");
}
bool loopbackSuccess = true;
for (int i = 0; i < totalBytesRead; i++)
{
if (msgByteList[i] != receiveByteArray[i])
{
loopbackSuccess = false;
break;
}
}
if (!loopbackSuccess)
{
throw new Exception($"Messages sent and received don't match");
}
_logger.Info($"UART loopback is successful.");
}
}
}

View File

@@ -1,222 +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 NLog;
using ProgramLib.GUI.Model;
using ProgramLib.GUI.View;
using ProgramLib.GUI.ViewModel;
using System;
using System.Threading.Tasks;
using System.Windows;
namespace ProgramLib
{
internal class UutPowerAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private static object powerSyncObj = new object();
private bool _sttoSuccess = true;
private string fatalErrorMsg;
#endregion
public UutPowerAction()
{
_logger = LogManager.GetCurrentClassLogger();
}
~UutPowerAction()
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() ...");
}
/// <summary>
/// Power off UUT
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public void UutPowerOff()
{
try
{
lock (powerSyncObj)
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (Program.Instance()._isUutPwrOn)
{
Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.OutputDisable("STE_PVM_5V");
// enable front panel
Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.DisplayEnable("STE_POWER_SUPPLY_SYSTEM");
ProgramLib.Program.Instance().GetGuiManager()[ProgramGuiManager.WINDOWS.LIVE_DATA].Dispatcher.Invoke((Action)delegate
{
ProgramLib.Program.Instance().GetGuiManager()[ProgramGuiManager.WINDOWS.LIVE_DATA].Hide();
});
Program.Instance().EventManager[EventManager.Events.UUT_POWER_ON].Reset();
Program.Instance().EventManager[EventManager.Events.UUT_POWER_OFF].Set();
Program.Instance()._isUutPwrOn = false;
}
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Power on UUT
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public void UutPowerOn()
{
try
{
lock (powerSyncObj)
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (!Program.Instance()._isUutPwrOn)
{
Task.Factory.StartNew(() => PerformSttoTask());
ProgramLib.Program.Instance().GetGuiManager()[ProgramGuiManager.WINDOWS.IMPEDANCE_CHECK].Dispatcher.Invoke((Action)delegate
{
ProgramLib.Program.Instance().GetGuiManager()[ProgramGuiManager.WINDOWS.LIVE_DATA].Hide();
ProgramLib.Program.Instance().GetGuiManager()[ProgramGuiManager.WINDOWS.IMPEDANCE_CHECK].ShowDialog();
});
if (_sttoSuccess)
{
Program.Instance().PowerSupplySharedData.ResetAll();
ProgramLib.Program.Instance().GetGuiManager()[ProgramGuiManager.WINDOWS.IMPEDANCE_CHECK].Dispatcher.Invoke((Action)delegate
{
ProgramLib.Program.Instance().GetGuiManager()[ProgramGuiManager.WINDOWS.LIVE_DATA].Show();
});
Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.OutputEnable("STE_PVM_5V");
// disable front panel
Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.DisplayDisable("STE_POWER_SUPPLY_SYSTEM");
Program.Instance().EventManager[EventManager.Events.UUT_POWER_OFF].Reset();
Program.Instance().EventManager[EventManager.Events.UUT_POWER_ON].Set();
Program.Instance()._isUutPwrOn = true;
}
else
{
throw new Exception(fatalErrorMsg);
}
}
else
{
throw new Exception("UUT power is already on.");
}
}
}
catch (Exception)
{
throw;
}
}
private async void PerformSttoTask()
{
ImpedanceDataModel impedanceDataModel;
ImpedanceCheckWindow impedanceCheckWindow = (ImpedanceCheckWindow)ProgramLib.Program.Instance().GetGuiManager()[ProgramGuiManager.WINDOWS.IMPEDANCE_CHECK];
try
{
_logger?.Debug($"{this.GetType().Name}::PerformSttoTask() running...");
bool forceFail = false;
string measurementStatus = "PASSED";
ImpedanceCheckWindowViewModel.Images passFailImage = ImpedanceCheckWindowViewModel.Images.PASS_CHECK;
impedanceCheckWindow.ViewModel.ClearData();
int MAX_ITERATION = 15;
int cableNum = 17;
int cablePin1 = 5;
int cablePin2 = 7;
int measurement = 5;
string measurementName;
for (int i = 1; i <= MAX_ITERATION; i++)
{
measurementName = $"P{cableNum}_P{cablePin1++}_P{cableNum++}_P{cablePin2++}";
impedanceDataModel = new ImpedanceDataModel();
if (i == MAX_ITERATION / 2 && forceFail)
{
passFailImage = ImpedanceCheckWindowViewModel.Images.FAIL_CHECK;
measurementStatus = "FAILED";
_sttoSuccess = false;
}
impedanceDataModel.PassFailImagePath = impedanceCheckWindow.ViewModel.ImageToResourcePathDict[passFailImage];
impedanceDataModel.Description = $"{measurementName} Measured {measurement} Range [0,50]";
if (Program.Instance().TestStandSeqContext != null)
{
Program.Instance().TestStandSeqContext.Step.AdditionalResults.CustomResults.Insert($"\"{measurementName}\"", $"\"Measured: {measurement++} Range [0,50] - {measurementStatus}\"");
}
impedanceCheckWindow.ViewModel.AddData(impedanceDataModel);
if (!_sttoSuccess)
{
fatalErrorMsg = impedanceDataModel.Description;
throw new Exception(fatalErrorMsg);
}
await Task.Delay(300);
}
}
catch (Exception ex)
{
_logger.Error(ex.Message + "\n" + ex.StackTrace);
}
finally
{
if (!_sttoSuccess)
{
impedanceCheckWindow.Dispatcher.Invoke((Action)delegate
{
impedanceCheckWindow.btnClose.Visibility = Visibility.Visible;
});
}
else
{
impedanceCheckWindow.Dispatcher.Invoke((Action)delegate
{
impedanceCheckWindow.Hide();
});
}
_logger?.Debug($"{this.GetType().Name}::PerformSttoTask() exiting...");
}
}
}
}

View File

@@ -0,0 +1,128 @@
/*-------------------------------------------------------------------------
// 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.Linq;
using System.Xml;
using NLog;
namespace ProgramLib
{
/// <summary>
/// Power off UUT
/// </summary>
internal class UutPowerOffAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private static object _syncObj = new object();
#endregion
/// <summary>
/// Constructor
/// </summary>
public UutPowerOffAction()
{
_logger = LogManager.GetCurrentClassLogger();
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
lock (_syncObj)
{
if (Program.Instance().IsUutPwrOn)
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
foreach (var item in ProgramLib.Program.Instance().PowerModulesToBePowered)
Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.OutputDisable(item);
RecordPowerOffTimeToFile();
// enable front panel
//Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.DisplayEnable("STE_POWER_SUPPLY_SYSTEM");
Program.Instance().EventManager[EventManager.Events.UUT_POWER_ON].Reset();
Program.Instance().EventManager[EventManager.Events.UUT_POWER_OFF].Set();
Program.Instance().IsUutPwrOn = false;
}
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Parse ini file for modules to be powered on
/// </summary>
public void ParseProgramSpecificConfig()
{
try
{
List<string> keys = Program.Instance().ProgramSpecificConfig.ReadAllKeys(ProgramSpecificConfigIni.POWER_MODULES_TO_BE_POWERED.ToString());
foreach (string key in keys)
{
string powerSupplyModule = Program.Instance().ProgramSpecificConfig.ReadValue(ProgramSpecificConfigIni.POWER_MODULES_TO_BE_POWERED.ToString(), key);
if (!Program.Instance().PowerModulesToBePowered.Contains(powerSupplyModule, StringComparer.OrdinalIgnoreCase))
Program.Instance().PowerModulesToBePowered.Add(powerSupplyModule);
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Record power off time
/// </summary>
private void RecordPowerOffTimeToFile()
{
XmlDocumentWrapper doc = new XmlDocumentWrapper(Program.Instance().FileAndFolderManager.GetFile(FileAndFolderManager.Files.TEST_RUN_LOG));
XmlNode node = doc.GetNode(TestRunConfigXml.TestRunPowerPath);
XmlAttribute onDateAttr = node.Attributes[TestRunConfigXml.TestRunPowerOnDateAttributeName];
XmlAttribute onTimeAttr = node.Attributes[TestRunConfigXml.TestRunPowerOnTimeAttributeName];
DateTime powerOnDateTime = DateTime.Parse($"{onDateAttr.Value} {onTimeAttr.Value}");
DateTime dt = DateTime.Now;
int duration = (int)dt.Subtract(powerOnDateTime).TotalSeconds;
Dictionary<string, string> attributesDict = new Dictionary<string, string>();
attributesDict[TestRunConfigXml.TestRunPowerOffDateAttributeName] = dt.ToString("MM/dd/yyyy");
attributesDict[TestRunConfigXml.TestRunPowerOffTimeAttributeName] = dt.ToString("HH:mm:ss");
attributesDict[TestRunConfigXml.TestRunPowerOnDurationAttributeName] = duration.ToString();
doc.ChangeNode(node, attributesDict);
doc.SaveToFile();
}
}
}

View File

@@ -0,0 +1,130 @@
/*-------------------------------------------------------------------------
// 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.Linq;
using NLog;
namespace ProgramLib
{
/// <summary>
/// Power on UUT
/// </summary>
internal class UutPowerOnAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private static object _syncObj = new object();
#endregion
/// <summary>
/// Constructor
/// </summary>
public UutPowerOnAction()
{
_logger = LogManager.GetCurrentClassLogger();
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
lock (_syncObj)
{
if (!Program.Instance().IsUutPwrOn)
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
Program.Instance().TestStation.VerifyCableSelfTestHasRun();
if (Program.Instance().PowerModulesToBePowered.Count == 0)
{
ParseProgramSpecificConfig();
}
Program.Instance().PowerSupplySharedData.ResetAll();
foreach (var item in ProgramLib.Program.Instance().PowerModulesToBePowered)
Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.OutputEnable(item);
RecordPowerOnTimeToFile();
// disable front panel
//Program.Instance().MalMeasurementLibManager.PowerSupplyMeasurementManager.DisplayDisable("STE_POWER_SUPPLY_SYSTEM");
Program.Instance().EventManager[EventManager.Events.UUT_POWER_OFF].Reset();
Program.Instance().EventManager[EventManager.Events.UUT_POWER_ON].Set();
Program.Instance().IsUutPwrOn = true;
}
else
{
throw new Exception("UUT power is already on.");
}
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Parse ini file for modules to be powered on
/// </summary>
public void ParseProgramSpecificConfig()
{
try
{
List<string> keys = Program.Instance().ProgramSpecificConfig.ReadAllKeys(ProgramSpecificConfigIni.POWER_MODULES_TO_BE_POWERED.ToString());
foreach (string key in keys)
{
string powerSupplyModule = Program.Instance().ProgramSpecificConfig.ReadValue(ProgramSpecificConfigIni.POWER_MODULES_TO_BE_POWERED.ToString(), key);
if (!Program.Instance().PowerModulesToBePowered.Contains(powerSupplyModule, StringComparer.OrdinalIgnoreCase))
Program.Instance().PowerModulesToBePowered.Add(powerSupplyModule);
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Record power on time
/// </summary>
private void RecordPowerOnTimeToFile()
{
XmlDocumentWrapper doc = new XmlDocumentWrapper(Program.Instance().FileAndFolderManager.GetFile(FileAndFolderManager.Files.TEST_RUN_LOG));
Dictionary<string, string> attributesDict = new Dictionary<string, string>();
attributesDict[TestRunConfigXml.TestRunPowerOnDateAttributeName] = DateTime.Now.ToString("MM/dd/yyyy");
attributesDict[TestRunConfigXml.TestRunPowerOnTimeAttributeName] = DateTime.Now.ToString("HH:mm:ss");
doc.AddNode(TestRunConfigXml.TestRunPowerPath, attributesDict, null, XmlDocumentWrapper.AddNodePosition.First);
doc.SaveToFile();
}
}
}

View File

@@ -0,0 +1,93 @@
/*-------------------------------------------------------------------------
// 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 NLog;
namespace ProgramLib
{
/// <summary>
/// Start TCP client and connect to the UUT
/// </summary>
internal class UutTestPortConnectAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
private string _uutIpAddress = String.Empty;
private int _uutTestPortTcp = -1;
#endregion
/// <summary>
/// Constructor
/// </summary>
public UutTestPortConnectAction()
{
_logger = LogManager.GetCurrentClassLogger();
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (Program.Instance().IsUutPwrOn)
{
if (Program.Instance().EthernetSocketManager.GetTcpClient(TcpClientNames.UUT_TEST_PORT) == null)
{
ParseProgramSpecificConfig();
TcpClient tcpClient = new TcpClient(_uutIpAddress, _uutTestPortTcp);
tcpClient.Initialize();
tcpClient.Connect();
Program.Instance().EthernetSocketManager.AddTcpClient(TcpClientNames.UUT_TEST_PORT, tcpClient);
}
else
Program.Instance().EthernetSocketManager.GetTcpClient(TcpClientNames.UUT_TEST_PORT).Connect();
}
else
{
throw new Exception("Cannot connect to UUT test port because UUT is not powered on.");
}
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// Parse ini file
/// </summary>
public void ParseProgramSpecificConfig()
{
try
{
_uutIpAddress = Program.Instance().ProgramSpecificConfig.ReadValue(ProgramSpecificConfigIni.UUT_INFO.ToString(), ProgramSpecificConfigIni.UUT_IP_ADDRESS.ToString());
Int32.TryParse(Program.Instance().ProgramSpecificConfig.ReadValue(ProgramSpecificConfigIni.UUT_INFO.ToString(), ProgramSpecificConfigIni.UUT_TEST_PORT_TCP.ToString()), out _uutTestPortTcp);
}
catch (Exception)
{
throw;
}
}
}
}

View File

@@ -0,0 +1,65 @@
/*-------------------------------------------------------------------------
// 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 NLog;
namespace ProgramLib
{
/// <summary>
/// Disconnect TCP connection from UUT
/// </summary>
internal class UutTestPortDisconnectAction : BasicAction
{
#region PrivateClassMembers
private static NLog.ILogger _logger;
#endregion
/// <summary>
/// Constructor
/// </summary>
public UutTestPortDisconnectAction()
{
_logger = LogManager.GetCurrentClassLogger();
}
/// <summary>
/// Run the action
/// </summary>
/// <returns></returns>
public override void Run()
{
try
{
_logger?.Debug($"Entering {this.GetType().Name}::{System.Reflection.MethodBase.GetCurrentMethod().Name}() method...");
if (Program.Instance().IsUutPwrOn)
{
if (Program.Instance().EthernetSocketManager.GetTcpClient(TcpClientNames.UUT_TEST_PORT) != null)
{
Program.Instance().EthernetSocketManager.GetTcpClient(TcpClientNames.UUT_TEST_PORT).Disconnect();
}
}
}
catch (Exception)
{
throw;
}
}
}
}

View File

@@ -16,22 +16,10 @@ GOVERNMENT.
UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
using ProgramLib;
using Raytheon.Common;
namespace ProgramLib
{
internal abstract class BasicTest
internal abstract class BasicAction
{
protected abstract void CheckPrerequisite();
protected abstract void ExecuteTest();
public void RunTest()
{
CheckPrerequisite();
ExecuteTest();
}
abstract public void Run();
}
}

View File

@@ -15,12 +15,7 @@ GOVERNMENT.
UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ProgramLib
{
@@ -31,12 +26,14 @@ namespace ProgramLib
{
protected Thread _thread;
protected ManualResetEvent _quitEvent = new ManualResetEvent(false);
/// <summary>
/// Spawn thread and start it
/// </summary>
/// <param name=""></param>
/// <returns></returns>
public void Start()
public void Start()
{
_thread = new Thread(new ThreadStart(DoWork));
_thread.Start();
@@ -55,15 +52,18 @@ namespace ProgramLib
/// </summary>
/// <param name=""></param>
/// <returns></returns>
public virtual void Quit() { }
public virtual void Quit()
{
_quitEvent.Set();
}
/// <summary>
/// Wait for thread to exit
/// </summary>
/// <param name=""></param>
/// <returns></returns>
public virtual void WaitForExit()
{
public virtual void WaitForExit()
{
if (_thread != null)
{
// wait for thread to terminate

View File

@@ -0,0 +1,226 @@
/*-------------------------------------------------------------------------
// 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.Net;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Text.RegularExpressions;
namespace ProgramLib
{
/// <summary>
/// Class for controlling a TCP client communication device
/// </summary>
internal class TcpClient
{
#region PrivateClassMembers
private Socket _sock;
private string _remoteAddress;
private int _remotePort;
private IPEndPoint _remoteEP = null;
private IPAddress _ipAddress = null;
private object _syncObj = new object();
#endregion
#region Public Functions
/// <summary>
/// Constructor
/// </summary>
/// <param name="remoteAddress"></param>
/// <param name="remotePort"></param>
public TcpClient(string remoteAddress, int remotePort)
{
_remoteAddress = remoteAddress;
_remotePort = remotePort;
}
/// <summary>
/// initialize instrument
/// </summary>
public void Initialize()
{
// if remoteAddress is a hostname
if (!IPAddress.TryParse(_remoteAddress, out _ipAddress))
{
string preferredSubnet = "";
IPHostEntry host = Dns.GetHostEntry(_remoteAddress);
foreach (IPAddress ip in host.AddressList)
{
AddressFamily af = ip.AddressFamily;
if (af == AddressFamily.InterNetwork)
{
if (preferredSubnet != String.Empty)
{
if (Regex.IsMatch(ip.ToString(), preferredSubnet, RegexOptions.IgnoreCase))
_ipAddress = ip;
}
else
_ipAddress = ip;
if (_ipAddress != null)
break;
}
}
}
if (_ipAddress != null)
{
if (_remoteEP == null)
_remoteEP = new IPEndPoint(_ipAddress, _remotePort);
}
else
throw new Exception($"Unable to create IPEndPoint to {_remoteAddress}, port {_remotePort}");
if (_sock == null)
_sock = new Socket(_ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
}
/// <summary>
/// Connect to remote host
/// </summary>
/// <returns></returns>
public void Connect()
{
lock (_syncObj)
{
try
{
if (!_sock.Connected && IsRemoteHostAlive())
_sock.Connect(_remoteEP);
}
catch (ObjectDisposedException)
{
_sock = new Socket(_ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
if (IsRemoteHostAlive())
_sock.Connect(_remoteEP);
}
catch (Exception) { throw; }
}
}
/// <summary>
/// Disconnect from remote host
/// </summary>
/// <returns></returns>
public void Disconnect()
{
lock (_syncObj)
{
if (_sock.Connected)
{
_sock.Shutdown(SocketShutdown.Both);
_sock.Disconnect(true);
_sock.Close();
}
}
}
/// <summary>
/// Ping if remote host is alive
/// </summary>
/// <returns>true/false</returns>
bool IsRemoteHostAlive()
{
bool isRemoteHostAlive = true;
//Do a ping test to see if the server is reachable
try
{
Ping pingTest = new Ping();
PingReply reply = pingTest.Send(_ipAddress);
if (reply.Status != IPStatus.Success)
isRemoteHostAlive = false;
}
catch (PingException)
{
isRemoteHostAlive = false;
}
//See if the tcp state is ok
if (_sock.Poll(5000, SelectMode.SelectRead) && (_sock.Available == 0))
{
isRemoteHostAlive = false;
}
return isRemoteHostAlive;
}
/// <summary>
/// Read data from the device.
/// </summary>
/// <param name="dataBuf"></param>
/// <param name="responseTimeOutMs"></param>
/// <returns>The number of bytes read</returns>
public uint Read(ref byte[] dataBuf)
{
int bytesRec = 0;
lock (_syncObj)
{
try
{
bytesRec = _sock.Receive(dataBuf);
}
catch (SocketException)
{
bytesRec = 0;
}
}
return (uint)bytesRec;
}
/// <summary>
/// Sets the read timeout
/// </summary>
/// <param name="timeoutMs"></param>
public void SetReadTimeout(uint timeoutMs)
{
_sock.ReceiveTimeout = (int)timeoutMs;
}
/// <summary>
/// Write data to device.
/// </summary>
/// <param name="dataBuf"></param>
/// <returns>The number of bytes written</returns>
public uint Write(byte[] dataBuf)
{
int bytesWritten = 0;
lock (_syncObj)
{
try
{
bytesWritten = _sock.Send(dataBuf, dataBuf.Length, SocketFlags.None);
}
catch (SocketException)
{
bytesWritten = 0;
}
}
return (uint)bytesWritten;
}
#endregion
}
}

View 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>
/// Define non-specific constants
/// </summary>
internal static class CableSelfTestConfigXml
{
// define all paths here
public const string RootPath = "/root";
public const string SelfTestPath = RootPath + "/selftest";
// define all attribute names here
public const string UniversalCableAttributeName = "universal_cable";
public const string SacrificialCableAttributeName = "sacrificial_cable";
public const string LastRunDateAttributeName = "last_run_date";
}
}

View File

@@ -0,0 +1,53 @@
/*-------------------------------------------------------------------------
// 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 the sections and keys that exists in the INI file
/// </summary>
internal enum ProgramGeneralConfigIni
{
// list all the sections below
GENERAL,
// list all the keys below
// file names
PROGRAM_SPECIFIC_CONFIG_FILE_NAME,
SWITCH_MEASUREMENT_MANAGER_CONFIG_FILE_NAME,
COE_MEASUREMENT_MANAGER_CONFIG_FILE_NAME,
UUT_TEST_MESSAGES_CONFIG_FILE_NAME,
CABLE_SELF_TEST_RUN_LOG_FILE_NAME,
TEST_RUN_LOG_FILE_NAME,
// file name prefix
NLOG_FILE_NAME_PREFIX,
// folder names
NLOG_FOLDER_NAME,
TESTSTAND_FOLDER_NAME,
HARDWARE_CONFIG_FOLDER_NAME,
SIM_CONFIG_FOLDER_NAME,
INSTRUMENT_CONFIG_FOLDER_NAME,
MEASUREMENT_CONFIG_FOLDER_NAME,
PDEL_FOLDER_NAME,
// teststand variable names
DESTINATION_TEST_REPORT_PATH_VAR_NAME,
}
}

View File

@@ -0,0 +1,75 @@
/*-------------------------------------------------------------------------
// 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 the sections and keys that exists in the INI file
/// </summary>
internal enum ProgramSpecificConfigIni
{
// list all the sections below
CABLE_ID_RELAYS,
FILE_NAMES,
GENERAL,
POLL_RATES,
POWER_MODULES_TO_BE_POWERED,
POWER_MODULES_TO_BE_DISPLAYED,
UUT_INFO,
// list all the keys below
// general
PRIMARY_DRIVE,
SECONDARY_DRIVE,
DATA_BASE_FOLDER,
DATA_GENERAL_FOLDER_NAME,
DATA_GENERAL_TEMP_FOLDER_NAME,
APP_RELEASE_CONTROLLED_FOLDER,
LOG_DASHBOARD_APP_PATH,
ENFORCE_CABLE_SELF_TEST_IS_RUN,
// relays
W1_CABLE_PART_NUMBER,
W1_CABLE_SERIAL_NUMBER,
W2_CABLE_PART_NUMBER,
W2_CABLE_SERIAL_NUMBER,
W3_CABLE_PART_NUMBER,
W3_CABLE_SERIAL_NUMBER,
W4_CABLE_PART_NUMBER,
W4_CABLE_SERIAL_NUMBER,
W5_CABLE_PART_NUMBER,
W5_CABLE_SERIAL_NUMBER,
// poll rates
POWER_SUPPLY_LOG_RATE,
POWER_SUPPLY_READ_RATE,
PASSTHROUGH_DATA_UPDATE_RATE,
// File names
POWER_SUPPLY_LOG_PREFIX,
POWER_SUPPLY_LOG_FILE_EXTENSION,
// UUT info
UUT_IP_ADDRESS,
UUT_TEST_PORT_TCP,
}
}

View 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 non-specific constants
/// </summary>
internal static class TestRunConfigXml
{
// define all paths here
public const string RootPath = "/root";
public const string TestRunPath = RootPath + "/test_run";
public const string TestRunPowerPath = TestRunPath + "/power";
// define all attribute names here
public const string TestRunPathAttributeName = "path";
public const string TestRunTestNameAttributeName = "test_name";
public const string TestRunTesterAttributeName = "tester";
public const string TestRunStartDateAttributeName = "start_date";
public const string TestRunStartTimeAttributeName = "start_time";
public const string TestRunEndDateAttributeName = "end_date";
public const string TestRunEndTimeAttributeName = "end_time";
public const string TestRunPowerOnDateAttributeName = "on_date";
public const string TestRunPowerOnTimeAttributeName = "on_time";
public const string TestRunPowerOffDateAttributeName = "off_date";
public const string TestRunPowerOffTimeAttributeName = "off_time";
public const string TestRunPowerOnDurationAttributeName = "duration_sec";
}
}

View File

@@ -1,4 +1,5 @@
// UNCLASSIFIED
/*-------------------------------------------------------------------------
// UNCLASSIFIED
/*-------------------------------------------------------------------------
RAYTHEON PROPRIETARY: THIS DOCUMENT CONTAINS DATA OR INFORMATION
PROPRIETARY TO RAYTHEON COMPANY AND IS RESTRICTED TO USE ONLY BY PERSONS
@@ -14,39 +15,25 @@ GOVERNMENT.
UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
namespace Raytheon.Common
namespace ProgramLib
{
/// <summary>
/// An interface to a serial port device
/// Exception for support threads to throw to signal to main thread of a fatal failure
/// </summary>
public interface ISerialPort : IDisposable
internal class FatalFailureException : Exception
{
/// <summary>
/// Close the communication interface
/// </summary>
void Close();
protected FatalFailureException() { }
/// <summary>
///
/// </summary>
void Open();
public FatalFailureException(string message)
: base(message)
{
}
/// <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);
public FatalFailureException(string message, Exception innerException)
: base(message, innerException)
{
}
}
}

View File

@@ -0,0 +1,75 @@
/*-------------------------------------------------------------------------
// 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;
namespace ProgramLib
{
internal enum TcpClientNames
{
UUT_TEST_PORT
}
/// <summary>
/// Stores global events that any thread can use to wait on
/// </summary>
internal class EthernetSocketManager
{
private Dictionary<TcpClientNames, TcpClient> _tcpClientsDict = new Dictionary<TcpClientNames, TcpClient>();
/// <summary>
/// The private constructor
/// </summary>
public EthernetSocketManager()
{
}
/// <summary>
/// Destructor
/// </summary>
~EthernetSocketManager()
{
foreach (KeyValuePair<TcpClientNames, TcpClient> item in _tcpClientsDict)
{
item.Value.Disconnect();
}
}
/// <summary>
/// Get Tcp Client Socket
/// </summary>
public TcpClient GetTcpClient(TcpClientNames tcpClientName)
{
TcpClient tcpClient = null;
if (_tcpClientsDict.ContainsKey(tcpClientName))
tcpClient = _tcpClientsDict[tcpClientName];
return tcpClient;
}
/// <summary>
/// Add Tcp Client Socket
/// </summary>
public void AddTcpClient(TcpClientNames tcpClientName, TcpClient tcpClient)
{
if (!_tcpClientsDict.ContainsKey(tcpClientName))
_tcpClientsDict[tcpClientName] = tcpClient;
}
}
}

View File

@@ -18,9 +18,7 @@ UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ProgramLib
{
@@ -57,7 +55,7 @@ namespace ProgramLib
/// if (id == Events.EVENT1){}
///
/// </summary>
internal class EventGroup<T1,T2>
internal class EventGroup<T1, T2>
{
Dictionary<T1, T2> _eventDict = null;
T2[] _eventArray = null;

View File

@@ -15,12 +15,6 @@ GOVERNMENT.
UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProgramLib
{
/// <summary>

View File

@@ -16,16 +16,13 @@ GOVERNMENT.
UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ProgramLib
{
/// <summary>
/// Stores global events that any thread can use to monitor
/// Stores global events that any thread can use to wait on
/// </summary>
internal partial class EventManager
{

View File

@@ -15,12 +15,6 @@ GOVERNMENT.
UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProgramLib
{
/// <summary>
@@ -32,12 +26,19 @@ namespace ProgramLib
{
// List data folder + its subfolders
DATA,
DATA_TEMP,
DATA_GENERAL,
DATA_GENERAL_TEMP,
DATA_TEST,
CONFIG,
CONFIG_MEASUREMENT
}
public enum Files
{
POWER_SUPPLY_SELF_TEST_DATETIME
NLOG_TEMP,
CABLE_SELF_TEST_RUN_LOG,
TEST_RUN_LOG
}
}
}

View File

@@ -0,0 +1,227 @@
/*-------------------------------------------------------------------------
// 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.Reflection;
using System.Text.RegularExpressions;
using Raytheon.Common;
namespace ProgramLib
{
/// <summary>
/// Partial class... this is the main class responsible for parsing config.ini in order
/// to construct file paths and folder paths
/// </summary>
internal partial class FileAndFolderManager
{
private Dictionary<Folders, string> foldersDict = new Dictionary<Folders, string>();
private Dictionary<Files, string> filesDict = new Dictionary<Files, string>();
private IConfigurationFile _programGeneralConfig;
private IConfigurationFile _programSpecificConfig;
private bool _isThereHardware;
private string _configSubFolderName;
/// <summary>
/// Constructor
/// </summary>
/// <param name="programGeneralConfig">the UUT part number</param>
public FileAndFolderManager(IConfigurationFile programGeneralConfig, out IConfigurationFile programSpecificConfig, bool isThereHardware, string configSubFolderName)
{
_programGeneralConfig = programGeneralConfig;
_isThereHardware = isThereHardware;
_configSubFolderName = configSubFolderName;
ConstructFolderPaths();
CreateFolders();
ConstructFilePaths();
programSpecificConfig = _programSpecificConfig;
}
/// <summary>
/// Destructor
/// </summary>
~FileAndFolderManager()
{
if (foldersDict.ContainsKey(Folders.DATA_TEST))
{
if (Directory.Exists(foldersDict[Folders.DATA_TEST]) && Directory.Exists(foldersDict[Folders.DATA]))
{
// delete all empty test folders
if (foldersDict[Folders.DATA_TEST].Contains(foldersDict[Folders.DATA]))
{
string parentFolder = Path.GetFullPath(Path.Combine(foldersDict[Folders.DATA_TEST], ".."));
while (!String.Equals(parentFolder, foldersDict[Folders.DATA], StringComparison.OrdinalIgnoreCase))
{
string[] dirs = Directory.GetDirectories(parentFolder);
foreach (string dir in dirs)
{
if (Util.IsDirectoryEmpty(dir))
Directory.Delete(dir, true);
}
if (Util.IsDirectoryEmpty(parentFolder))
Directory.Delete(parentFolder, true);
parentFolder = Path.GetFullPath(Path.Combine(parentFolder, ".."));
}
}
}
}
}
public void ConstructTestFolder(UutInfo uutInfo, TestInfo testInfo)
{
string buildLevel = uutInfo.UutBuildLevel.ToString();
if (uutInfo.UutBuildLevel == UutInfo.BuildLevel.NOT_SET)
{
buildLevel = "NO_UUT";
}
foldersDict[Folders.DATA_TEST] = Path.Combine(foldersDict[Folders.DATA], buildLevel, uutInfo.PartNumber,
uutInfo.SerialNumber, testInfo.TestType.ToLower(), testInfo.TestStartDateTime.ToString("yyyy_MM_dd"),
testInfo.TestName, testInfo.TestStartDateTime.ToString("HH_mm_ss"));
CreateFolders();
}
/// <summary>
/// Build folder paths so we can acccess them later
/// </summary>
/// <returns></returns>
private void ConstructFolderPaths()
{
string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string configHardwareOrSimSubFolderName = _programGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.SIM_CONFIG_FOLDER_NAME.ToString());
if (_isThereHardware)
configHardwareOrSimSubFolderName = _programGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.HARDWARE_CONFIG_FOLDER_NAME.ToString());
foldersDict[Folders.CONFIG] = Path.Combine(assemblyFolder, GeneralConstants.ConfigFolderName, configHardwareOrSimSubFolderName, _configSubFolderName);
string measurementConfigFolderName = _programGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.MEASUREMENT_CONFIG_FOLDER_NAME.ToString());
foldersDict[Folders.CONFIG_MEASUREMENT] = Path.Combine(foldersDict[Folders.CONFIG], measurementConfigFolderName);
string programSpecificConfigFilePath = Path.Combine(GetFolder(Folders.CONFIG), _programGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.PROGRAM_SPECIFIC_CONFIG_FILE_NAME.ToString()));
_programSpecificConfig = new ConfigurationFile(programSpecificConfigFilePath);
string dataRootPath;
// If primary drive exists on machine, all TE software files and folders should be located on that drive
string drive = _programSpecificConfig.ReadValue(ProgramSpecificConfigIni.GENERAL.ToString(), ProgramSpecificConfigIni.PRIMARY_DRIVE.ToString());
if (!Directory.Exists(drive))
{
drive = _programSpecificConfig.ReadValue(ProgramSpecificConfigIni.GENERAL.ToString(), ProgramSpecificConfigIni.SECONDARY_DRIVE.ToString());
}
dataRootPath = Path.Combine(drive, _programSpecificConfig.ReadValue(ProgramSpecificConfigIni.GENERAL.ToString(), ProgramSpecificConfigIni.DATA_BASE_FOLDER.ToString()));
if (!Path.IsPathRooted(dataRootPath))
dataRootPath = Path.Combine(assemblyFolder, dataRootPath);
else
{
Match regexMatch;
regexMatch = Regex.Match(dataRootPath, @"^([a-zA-Z]:\\).+", RegexOptions.IgnoreCase);
if (regexMatch.Success)
{
string driveLetter = regexMatch.Groups[1].Value;
if (!Directory.Exists(driveLetter))
{
string err = $@"Invalid drive: {driveLetter}. Please provide a valid drive, ie C:\. File: {programSpecificConfigFilePath}. Section: {ProgramSpecificConfigIni.GENERAL.ToString()}. Key: {ProgramSpecificConfigIni.PRIMARY_DRIVE.ToString()} and Key: {ProgramSpecificConfigIni.SECONDARY_DRIVE.ToString()} were invalid drives.";
throw new Exception(err);
}
}
else
{
string err = $@"Invalid path: {dataRootPath}. Please specify desired folder name, i.e. Data. File: {programSpecificConfigFilePath}. Section: {ProgramSpecificConfigIni.GENERAL.ToString()}. Key: {ProgramSpecificConfigIni.DATA_BASE_FOLDER.ToString()}";
throw new Exception(err);
}
}
foldersDict[Folders.DATA] = Path.GetFullPath(dataRootPath);
string val = _programSpecificConfig.ReadValue(ProgramSpecificConfigIni.GENERAL.ToString(), ProgramSpecificConfigIni.DATA_GENERAL_FOLDER_NAME.ToString());
foldersDict[Folders.DATA_GENERAL] = Path.Combine(dataRootPath, val);
val = _programSpecificConfig.ReadValue(ProgramSpecificConfigIni.GENERAL.ToString(), ProgramSpecificConfigIni.DATA_GENERAL_TEMP_FOLDER_NAME.ToString());
foldersDict[Folders.DATA_GENERAL_TEMP] = Path.Combine(foldersDict[Folders.DATA_GENERAL], val);
}
/// <summary>
/// We create all the necessary folders
/// </summary>
/// <returns></returns>
private void CreateFolders()
{
// create all the folders if they don't exist
foreach (KeyValuePair<Folders, string> entry in foldersDict)
{
Directory.CreateDirectory(entry.Value);
}
}
/// <summary>
/// Build file paths so we can acccess them later
/// </summary>
/// <returns></returns>
private void ConstructFilePaths()
{
string nlogFileNamePrefix = _programGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.NLOG_FILE_NAME_PREFIX.ToString());
filesDict[Files.NLOG_TEMP] = Path.Combine(GetFolder(FileAndFolderManager.Folders.DATA_GENERAL_TEMP), _programGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.NLOG_FOLDER_NAME.ToString()), DateTime.Now.ToString("yyyy_MM_dd"), Util.GenerateUniqueFilenameUsingDateTime(nlogFileNamePrefix, "log"));
filesDict[Files.CABLE_SELF_TEST_RUN_LOG] = Path.Combine(GetFolder(FileAndFolderManager.Folders.DATA_GENERAL), _programGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.CABLE_SELF_TEST_RUN_LOG_FILE_NAME.ToString()));
filesDict[Files.TEST_RUN_LOG] = Path.Combine(GetFolder(FileAndFolderManager.Folders.DATA_GENERAL), _programGeneralConfig.ReadValue(ProgramGeneralConfigIni.GENERAL.ToString(), ProgramGeneralConfigIni.TEST_RUN_LOG_FILE_NAME.ToString()));
}
/// <summary>
/// Return the full folder path
/// </summary>
/// <param name="folder"></param>
/// <returns></returns>
public string GetFolder(Folders folder)
{
if (foldersDict.ContainsKey(folder))
{
return foldersDict[folder];
}
else
throw new Exception($"{folder.ToString()} is invalid");
}
/// <summary>
/// Return the full file path
/// </summary>
/// <returns></returns>
public string GetFile(Files file)
{
if (filesDict.ContainsKey(file))
{
return filesDict[file];
}
else
throw new Exception($"{file.ToString()} is invalid");
}
}
}

View File

@@ -15,12 +15,6 @@ GOVERNMENT.
UNPUBLISHED WORK - COPYRIGHT RAYTHEON COMPANY.
-------------------------------------------------------------------------*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProgramLib
{
/// <summary>
@@ -28,8 +22,8 @@ namespace ProgramLib
/// </summary>
internal static class GeneralConstants
{
public const string ProgramConfigFilename = "config.ini";
public const string TestMethodConfigFolderName = "TestMethodConfig";
public const string TestMethodConfigFileName = "Test_Method_Configuration.ini";
public const string ConfigFolderName = "ConfigFiles";
public const string ProgramGeneralConfigFilename = "ProgramGeneral.ini";
}
}

View File

@@ -0,0 +1,307 @@
/*-------------------------------------------------------------------------
// 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.DirectoryServices;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using NLog;
namespace ProgramLib
{
/// <summary>
/// Provides utility functions for other classes to use
/// </summary>
internal static class Util
{
/// <summary>
/// Check if directory is empty
/// </summary>
public static bool IsDirectoryEmpty(string path)
{
return !Directory.EnumerateFileSystemEntries(path).Any();
}
/// <summary>
/// Generate random fractional part
/// </summary>
public static float GenerateRandomFraction()
{
Random rnd = new Random();
int randNum = 0;
const int minimum = 1;
randNum = rnd.Next(20);
if (randNum <= minimum)
{
randNum += minimum;
}
return (float)(1.0 / (float)randNum);
}
/// <summary>
/// Generate unique file name
/// Format: [Prefix]_YYYY_MM_DD_HH_MM_SS.[ext]
/// </summary>
public static string GenerateUniqueFilenameUsingDateTime(string prefix, string fileExtension)
{
string filename = prefix + "_" + DateTime.Now.ToString("yyyy_MM_dd") + "_" + DateTime.Now.ToString("HH_mm_ss");
if (fileExtension[0] != '.')
{
fileExtension = "." + fileExtension;
}
filename += fileExtension;
return filename;
}
/// <summary>
/// Log Exception
/// </summary>
public static string LogException(Exception ex, ILogger logger)
{
string errorMsg = ex.Message;
string stackTrace = ex.StackTrace;
Exception innerEx = ex.InnerException;
while (innerEx != null)
{
errorMsg = innerEx.Message;
stackTrace = innerEx.StackTrace + "\r\n" + stackTrace;
innerEx = innerEx.InnerException;
}
logger.Error(errorMsg + "\r\n" + stackTrace);
return errorMsg;
}
/// <summary>
/// Auto format any numeric type to string
/// </summary>
/// <param name="wholeNumberMaxDigits">number of digits to display for the whole number before it display in scientific notation</param>
public static string AutoFormatNumberToString<T>(T o, int wholeNumberMaxDigits = 3, int numDecimalPlaces = 2) where T : IConvertible
{
try
{
if (Convert.ChangeType(o, typeof(double)) is double @double)
{
string originalStr = @double.ToString("G"); // Most compact
string tempStr = originalStr;
int indexOfDecimalPoint = tempStr.IndexOf(".");
if (indexOfDecimalPoint == -1)
tempStr += ".0";
indexOfDecimalPoint = tempStr.IndexOf(".");
int tempStrIndex = 0;
int indexOfMinusSign = tempStr.IndexOf("-");
if (indexOfMinusSign != -1)
tempStrIndex = 1;
int wholeNumberNumDigits = tempStr.Substring(tempStrIndex, indexOfDecimalPoint - tempStrIndex).Length;
int fractionalNumDigits = tempStr.Substring(indexOfDecimalPoint + 1, tempStr.Length - (indexOfDecimalPoint + 1)).Length;
if (wholeNumberNumDigits > wholeNumberMaxDigits || tempStr.IndexOf("E") != -1)
{
string decimalPlaces = String.Empty;
for (int i = 1; i <= numDecimalPlaces; i++)
{
decimalPlaces += "#";
}
var custom = @double.ToString($"0.{decimalPlaces}E0").Replace("E+", "E");
while (custom.Contains("E0")) custom = custom.Replace("E0", "E");
while (custom.Contains("-0")) custom = custom.Replace("-0", "-");
if ((@double < 0) && custom[0] != '-')
{
custom.Insert(0, "-");
}
return custom;
}
else if (fractionalNumDigits > numDecimalPlaces)
{
return @double.ToString("0.##");
}
else
{
return originalStr;
}
}
}
catch { }
return o.ToString();
}
/// <summary>
/// Get full name of windows user
/// </summary>
public static string GetWindowsUserFullName(string domain, string userName)
{
string name = "";
try
{
DirectoryEntry userEntry = new DirectoryEntry("WinNT://" + domain + "/" + userName + ",User");
name = (string)userEntry.Properties["fullname"].Value;
}
catch
{
name = userName;
}
return name;
}
/// <summary>
/// Convert struct to byte array
/// </summary>
public static byte[] StructToByteList<T>(T data)
{
int size = Marshal.SizeOf(data);
byte[] arr = new byte[size];
GCHandle h = default(GCHandle);
try
{
h = GCHandle.Alloc(arr, GCHandleType.Pinned);
Marshal.StructureToPtr(data, h.AddrOfPinnedObject(), false);
}
finally
{
if (h.IsAllocated)
{
h.Free();
}
}
return arr;
}
/// <summary>
/// Convert byte array to struct
/// </summary>
public static T ByteArrayToStruct<T>(byte[] array)
{
object obj;
GCHandle h = default(GCHandle);
try
{
h = GCHandle.Alloc(array, GCHandleType.Pinned);
obj = Marshal.PtrToStructure(h.AddrOfPinnedObject(), typeof(T));
}
finally
{
if (h.IsAllocated)
{
h.Free();
}
}
return (T)obj;
}
/// <summary>
/// Get Two's Compliment Checksum
/// </summary>
public static byte GetTwosComplimentChecksum(byte[] array)
{
return (byte)(0x100u - ComputeSum(array));
}
/// <summary>
/// Add up all bytes in a byte array
/// </summary>
public static byte ComputeSum(byte[] array)
{
byte sum = 0;
for (int i = 0; i < array.Length; i++)
sum += array[i];
return sum;
}
/// <summary>
/// Display each byte in byte array as hex string
/// </summary>
public static string ByteArrayToHexString(byte[] bytes, int numBytes = -1)
{
StringBuilder Result = new StringBuilder(bytes.Length * 2);
string HexAlphabet = "0123456789ABCDEF";
if (numBytes < 1)
{
numBytes = bytes.Length;
}
for (int i = 0; i < numBytes; i++)
{
Result.Append("0x" + HexAlphabet[(int)(bytes[i] >> 4)]);
Result.Append(HexAlphabet[(int)(bytes[i] & 0xF)] + " ");
}
return Result.ToString();
}
/// <summary>
/// Given a variable of type TimeSpan, describe the time in days, hours, mins, seconds
/// </summary>
public static string DescribeTimeElapsed(TimeSpan ts)
{
string describe = "";
if (ts.Days > 0)
describe += ts.Days.ToString() + " d";
if (ts.Hours > 0)
{
if (describe.Length > 0)
describe += " ";
describe += ts.Hours.ToString() + " h";
}
if (ts.Minutes > 0)
{
if (describe.Length > 0)
describe += " ";
describe += ts.Minutes.ToString() + " m";
}
if (ts.Seconds > 0)
{
if (describe.Length > 0)
describe += " ";
describe += ts.Seconds.ToString() + " s";
}
if (describe.Length == 0)
describe = "0 s";
return describe;
}
}
}

View File

@@ -0,0 +1,237 @@
/*-------------------------------------------------------------------------
// 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.Linq;
using System.Text;
using System.Xml;
namespace ProgramLib
{
/// <summary>
/// A XML Wrapper class to create/modify XML files
/// </summary>
internal class XmlDocumentWrapper
{
public enum AddNodePosition
{
First,
Last
}
private XmlDocument _xmlDoc = null;
private string _xmlFilePath = String.Empty;
private object _syncObj = new object();
/// <summary>
/// Constructor
/// </summary>
/// <param name="xmlFilePath">XML file path</param>
/// <param name="rootNodeName">name of the root node.</param>
public XmlDocumentWrapper(string xmlFilePath, string rootNodeName = "root")
{
_xmlFilePath = xmlFilePath;
CreateXmlDocument(rootNodeName);
_xmlDoc = new XmlDocument();
_xmlDoc.Load(xmlFilePath);
}
/// <summary>
/// Create XML document if it doesn't exist
/// </summary>
private void CreateXmlDocument(string rootNodeName)
{
if (!File.Exists(_xmlFilePath))
{
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement(rootNodeName);
doc.AppendChild(root);
using (TextWriter sw = new StreamWriter(_xmlFilePath, false, Encoding.UTF8))
{
doc.Save(sw);
}
}
}
/// <summary>
/// Save XML document to file
/// </summary>
public void SaveToFile()
{
lock (_syncObj)
{
using (TextWriter sw = new StreamWriter(_xmlFilePath, false, Encoding.UTF8))
{
_xmlDoc.Save(sw);
}
}
}
/// <summary>
/// Add a node defined by {path}
/// </summary>
/// <param name="path">example: /root/node1/node2</param>
/// <param name="attributesDict">a dictionary of [name,value] pairs</param>
/// <param name="innerText">text of the node</param>
public void AddNode(string path, Dictionary<string, string> attributesDict = null, string innerText = null, AddNodePosition addNodePosition = AddNodePosition.Last)
{
lock (_syncObj)
{
XmlElement elem = (XmlElement)MakeXPath(_xmlDoc, path, addNodePosition);
if (!String.IsNullOrEmpty(innerText))
elem.InnerText = innerText;
if (attributesDict != null)
{
List<XmlAttribute> attributes = new List<XmlAttribute>();
foreach (KeyValuePair<string, string> item in attributesDict)
{
XmlAttribute attr = _xmlDoc.CreateAttribute(item.Key);
attr.Value = item.Value;
attributes.Add(attr);
}
SetAttrSafe(elem, attributes.ToArray());
}
}
}
/// <summary>
/// Remove a node
/// </summary>
public void RemoveNode(XmlNode node)
{
lock (_syncObj)
{
node.ParentNode.RemoveChild(node);
}
}
/// <summary>
/// Change attributes and/or inner text of an existing node
/// </summary>
public void ChangeNode(XmlNode node, Dictionary<string, string> attributesDict = null, string innerText = null)
{
lock (_syncObj)
{
if (!String.IsNullOrEmpty(innerText))
node.InnerText = innerText;
if (attributesDict != null)
{
List<XmlAttribute> attributes = new List<XmlAttribute>();
foreach (KeyValuePair<string, string> item in attributesDict)
{
XmlAttribute attr = _xmlDoc.CreateAttribute(item.Key);
attr.Value = item.Value;
attributes.Add(attr);
}
SetAttrSafe(node, attributes.ToArray());
}
}
}
/// <summary>
/// Get the first node in {path}
/// Useful for iterating through the sibling nodes to find the node with a specific attribute so we can modify the node
/// </summary>
/// <param name="path">example: /root/node1/node2</param>
public XmlNode GetNode(string path)
{
lock (_syncObj)
{
return _xmlDoc.SelectSingleNode(path);
}
}
/// <summary>
/// Get all the nodes matching the path
/// Useful for iterating through the matched nodes
/// </summary>
/// <param name="path">example: /root/node1/node2</param>
public XmlNodeList GetNodes(string path)
{
lock (_syncObj)
{
return _xmlDoc.SelectNodes(path);
}
}
/// <summary>
/// Set attribute
/// </summary>
private void SetAttrSafe(XmlNode node, XmlAttribute[] attrList)
{
foreach (var attr in attrList)
{
if (node.Attributes[attr.Name] != null)
{
node.Attributes[attr.Name].Value = attr.Value;
}
else
{
node.Attributes.Append(attr);
}
}
}
/// <summary>
/// Add a node using {xpath}
/// </summary>
/// <param name="xpath">example: /root/node1/node2</param>
private XmlNode MakeXPath(XmlDocument doc, string xpath, AddNodePosition addNodePosition)
{
return MakeXPath(doc, doc as XmlNode, xpath, addNodePosition);
}
/// <summary>
/// Iterate through each node in {xpath} and create them
/// </summary>
private XmlNode MakeXPath(XmlDocument doc, XmlNode parent, string xpath, AddNodePosition addNodePosition)
{
// grab the next node name in the xpath; or return parent if empty
string[] partsOfXPath = xpath.Trim('/').Split('/');
string nextNodeInXPath = partsOfXPath.First();
if (string.IsNullOrEmpty(nextNodeInXPath))
return parent;
// get or create the node from the name
XmlNode node = parent.SelectSingleNode(nextNodeInXPath);
if (partsOfXPath.Length == 1)
{
if (addNodePosition == AddNodePosition.Last)
node = parent.AppendChild(doc.CreateElement(nextNodeInXPath));
else
node = parent.PrependChild(doc.CreateElement(nextNodeInXPath));
}
// rejoin the remainder of the array as an xpath expression and recurse
string rest = String.Join("/", partsOfXPath.Skip(1).ToArray());
return MakeXPath(doc, node, rest, addNodePosition);
}
}
}

View File

@@ -1,120 +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 Raytheon.Common;
using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
namespace ProgramLib
{
/// <summary>
/// Partial class... this is the main class responsible for parsing config.ini in order
/// to construct file paths and folder paths
/// </summary>
internal partial class FileAndFolderManager
{
private Dictionary<Folders, string> foldersDict = new Dictionary<Folders, string>();
private Dictionary<Files, string> filesDict = new Dictionary<Files, string>();
private IConfigurationFile _programConfig;
/// <summary>
/// The private constructor
/// </summary>
/// <param name="programConfig">the UUT part number</param>
public FileAndFolderManager(IConfigurationFile programConfig)
{
_programConfig = programConfig;
ConstructFolderPaths();
CreateFolders();
ConstructFilePaths();
}
/// <summary>
/// Build folder paths so we can acccess them later
/// </summary>
/// <param name="iniObj"></param>
/// <returns></returns>
private void ConstructFolderPaths()
{
string assemblyFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string dataRootPath = _programConfig.ReadValue(ProgramConfigIni.GENERAL.ToString(), ProgramConfigIni.DATA_BASE_PATH.ToString(), "NOT SET");
if (!Path.IsPathRooted(dataRootPath))
dataRootPath = Path.Combine(assemblyFolder, dataRootPath);
foldersDict[Folders.DATA] = Path.GetFullPath(dataRootPath);
string val = _programConfig.ReadValue(ProgramConfigIni.GENERAL.ToString(), ProgramConfigIni.DATA_TEMP_PATH.ToString(), "NOT SET");
foldersDict[Folders.DATA_TEMP] = Path.Combine(dataRootPath, val);
}
/// <summary>
/// We create all the necessary folders
/// </summary>
/// <param name="iniObj"></param>
/// <returns></returns>
private void CreateFolders()
{
Directory.CreateDirectory(foldersDict[Folders.DATA_TEMP]);
}
/// <summary>
/// Build file paths so we can acccess them later
/// </summary>
/// <param name="iniObj"></param>
/// <returns></returns>
private void ConstructFilePaths()
{
string val = _programConfig.ReadValue(ProgramConfigIni.GENERAL.ToString(), ProgramConfigIni.POWER_SUPPLY_SELF_TEST_DATETIME.ToString(), "NOT SET");
filesDict[Files.POWER_SUPPLY_SELF_TEST_DATETIME] = Path.Combine(foldersDict[Folders.DATA_TEMP], val);
}
/// <summary>
/// Return the full folder path
/// </summary>
/// <param name="folder"></param>
/// <returns></returns>
public string getFolder(Folders folder)
{
if (foldersDict.ContainsKey(folder))
{
return foldersDict[folder];
}
else
throw new Exception($"{folder.ToString()} is invalid");
}
/// <summary>
/// Return the full file path
/// </summary>
/// <param name="iniObj"></param>
/// <returns></returns>
public string getFile(Files file)
{
if (filesDict.ContainsKey(file))
{
return filesDict[file];
}
else
throw new Exception($"{file.ToString()} is invalid");
}
}
}

View File

@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="Parameters">
<!-- value attribute: UDP or TCP -->
<!-- if UDP: all transactions occur in UDP -->
<!-- if TCP:
1. Connection and keep-alive transactions occur in TCP
2. Message subscription occurs in UDP
2. COE messagining occur in TCP or UDP depending on TCP_SELECT_VALUE
-->
<key name="DriverType" value="TCP" />
<key name="MaxMessageSize" value="4096" />
<key name="EPQueueDepth" value="50" />
<key name="CheckForMessageIntervalMs" value="10" />
<key name="AlwaysSendDefaults" value="True" />
</section>
<section name="ROUTER_CONFIG">
<key name="NODE_ID" value="0" />
<key name="DISPLAY_DEBUG_STATE" value="0" />
<key name="DISPLAY_DEBUG_LABEL_MESSAGE" value="0" />
<key name="DISPLAY_DEBUG_BRIDGE_REGISTRATION" value="0" />
<key name="DISPLAY_DEBUG_ROUTER_DATABASE" value="0" />
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
<key name="BUFFER_SIZE" value="4096" />
<key name="ENABLE_REGISTRATION_MESSAGES" value="1" />
<key name="THREAD_STACK_SIZE" value="16384" />
<key name="TRANSMIT_OPTIONS" value="0" />
</section>
<section name="ROUTER_PROTOCOL_CONFIG">
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
<key name="THREAD_STACK_SIZE" value="16384" />
</section>
<section name="ROUTER_BUFFER_POOLS">
<key name="POOL_ENTRY" value="100,128|50,256|50,1024|50,8192|5,65535" />
</section>
<section name="BASIC_REGISTRATION_CONFIG">
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_SEND_BUFFER" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
<key name="DISPLAY_DEBUG_RECV_BUFFER" value="0" />
<key name="DISPLAY_DEBUG_STATE" value="0" />
<key name="DISPLAY_DEBUG_PING_SEND" value="0" />
<key name="DISPLAY_DEBUG_PING_RECV" value="0" />
<key name="THREAD_STACK_SIZE" value="16384" />
</section>
<section name="UDP_MEDIA_BINDING_CONFIG">
<key name="LOCAL_IP_ADDRESS" value="127.0.0.1" />
<key name="REMOTE_IP_ADDRESS" value="127.0.0.1" />
<key name="LOCAL_SEND_PORT" value="32011" />
<key name="LOCAL_RECV_PORT" value="32021" />
<key name="REMOTE_SEND_PORT" value="32010" />
<key name="REMOTE_RECV_PORT" value="32020" />
<key name="RECV_TIMEOUT" value="200" />
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
<key name="MTU_SIZE" value="1472" />
<key name="THREAD_STACK_SIZE" value="16384" />
<key name="THREAD_NAME" value="UDP_MB_RCV" />
</section>
<section name="TCP_MEDIA_BINDING_CONFIG">
<key name="SERVER_ADDRESS" value="192.168.1.45:9990" />
<key name="LOCAL_PORT" value="9991" />
<key name="NUM_PORTS" value="32" />
<key name="NUM_DYNAMIC_NODES" value="32" />
<key name="UDP_TX_BUFFER_SIZE" value="32768" />
<key name="UDP_RX_BUFFER_SIZE" value="32768" />
<key name="TCP_TX_BUFFER_SIZE" value="32768" />
<key name="TCP_RX_BUFFER_SIZE" value="32768" />
<key name="PACKET_SIZE" value="5128" />
<!-- When using TCP binding, COE unmanaged library opens both TCP and UDP ports.
Connection and keep alive is done through TCP. COE messaging can be done
on TCP or UDP. Set TCP_SELECT_VALUE = 1 forces COE messaging through TCP.
Set TCP_SELECT_VALUE = 0 forces COE messaging through UDP -->
<key name="TCP_SELECT_VALUE" value="0" />
<key name="DISABLE_NAG_DELAY" value="1" />
<key name="TIMER_RATE" value="1000" />
<key name="CONNECT_KA_RATE" value="1" />
<key name="RECV_KA_RATE" value="0" />
<key name="SERVER_CONNECT_RATE" value="1" />
<key name="RECV_THREAD_STACK_SIZE" value="16384" />
<key name="RECV_THREAD_PRIORITY" value="0" />
<key name="RECV_THREAD_AFFINITY" value="0" />
<key name="DISPLAY_DEBUG_SEND" value="1" />
<key name="DISPLAY_DEBUG_SEND_BUFFER" value="1" />
<key name="DISPLAY_DEBUG_UDP_RECV" value="1" />
<key name="DISPLAY_DEBUG_UDP_RECV_BUFFER" value="1" />
<key name="DISPLAY_DEBUG_TCP_RECV" value="1" />
<key name="DISPLAY_DEBUG_TCP_RECV_BUFFER" value="1" />
<key name="DISPLAY_DEBUG_RECV" value="1" />
<key name="DISPLAY_DEBUG_RECV_BUFFER" value="1" />
</section>
<section name="SERIAL_MEDIA_BINDING_CONFIG">
<key name="DEVICE_NAME" value="COM1" />
<key name="DATA_BITS" value="8" />
<key name="STOP_BITS" value="1" />
<key name="PARITY" value="0" />
<key name="FLOW_CONTROL" value="0" />
<key name="MTU_SIZE" value="256" />
<key name="RECV_PROCESSING_DELAY" value="100" />
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
</section>
</IniConfiguration>
<XmlConfigurations>
<!-- Every time any message comes in, we receive a notification. If high rate message comes in,
there will be too many notifications of "Message Received..." Let's slow it down" -->
<XmlConfiguration name="IncomingMessageNotificationIntervalInSec">10</XmlConfiguration>
<!-- Each incoming message is assigned a queue. This specifies the max queue size for each message -->
<XmlConfiguration name="MaxQueueSizePerResponseMsg">100</XmlConfiguration>
<XmlConfiguration name="CoeXmlFiles">
<FilePaths>
<FilePath>./CoeXmlFiles/NGSRI/GimbalMsgs.xml</FilePath>
<FilePath>./CoeXmlFiles/NGSRI/NgsriUmbilicalMsgs.xml</FilePath>
<FilePath>./CoeXmlFiles/NGSRI/NgsriMissionManagerMsgs.xml</FilePath>
<FilePath>./CoeXmlFiles/NGSRI/NgsriFirmwareMsg.xml</FilePath>
</FilePaths>
</XmlConfiguration>
<!-- Specify all the messages we're interested in listening to -->
<XmlConfiguration name="ResponseMessageIds">
<ResponseLabels>
<ResponseLabel>MissionManagerMsgLL</ResponseLabel>
</ResponseLabels>
</XmlConfiguration>
<!-- Specify logging options for messages. Mostly to slow down logging for high-rate messages.
Each set of options specified applies to both incoming and outgoing messages -->
<XmlConfiguration name="MessageLogOptions">
<!-- Tag value: Message name -->
<!-- Log attribute: true/false - whether we want to log this message or not -->
<!-- LogIntervalInSec attribute: Number of seconds to log between 2 consecutive messages of the same ID -->
<Message Log="true" LogIntervalInSec="1">MissionManagerMsgLL</Message>
</XmlConfiguration>
</XmlConfigurations>
</Configurations>

View File

@@ -0,0 +1,491 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<UnlimitedRights>-->
<!--=========================================================================-->
<!-- Copyright 2024 Raytheon Company. -->
<!-- This software was developed pursuant to Contract Number AMTC 22-06-002 -->
<!-- with the U.S. government. The U.S. government's rights in and to this -->
<!-- copyrighted software are as specified in DFARS 252.227-7014 which was -->
<!-- made part of the above contract. -->
<!--=========================================================================-->
<!--\\<\UnlimitedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="relative">VipConfigDataMsg.xml</file>
<file location="system">cstdint</file>
</include>
<namespace>
<name>ngsri</name>
<constant>
<comment>The number of VIP bit voltages defined by the enum VipBitVoltages</comment>
<type>uint32_t</type>
<name>NUMBER_OF_VIP_BIT_VOLTAGES</name>
<value>29</value>
</constant>
<structure>
<name>VoltageBitRspData</name>
<struct_item>
<arrayLength>ngsri::NUMBER_OF_VIP_BIT_VOLTAGES</arrayLength>
<default>0.0</default>
<item_name>voltages</item_name>
<type>float</type>
</struct_item>
</structure>
<structure>
<name>CasBitRspMsgData</name>
<comment>Valid ACU states: STANDBY</comment>
<struct_item>
<default>0x43u</default>
<item_name>ID</item_name>
<type>uint8_t</type>
<comment>Message Identity</comment>
</struct_item>
<struct_item>
<default>0x0Au</default>
<item_name>BC</item_name>
<type>uint8_t</type>
<comment>Byte count (number of bytes to follow the byte command)</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>STS</item_name>
<type>uint8_t</type>
<comment>Incomplete or corrupt message response and the status of the BIT operation</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>BIT_RESULT</item_name>
<type>uint8_t</type>
<comment>Shows the BIT results. bit 0 is PBIT result, bit 1 is IBIT result, and bit 2 is SBIT result. Bit 3 is a spare. Bits 4:5 tells the last BIT performed, and bits 6:7 tells the BIT diagnostic log results</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>BIT_LOG_DIAG1A</item_name>
<type>uint8_t</type>
<comment>Bit 0 is the DSP PLL and DSP ID Test, pass = 1, fail = 0; Bit 1 is the RAM Integrity Test, pass = 1, fail = 0; Bit 2 is the ROM Program CRC Test, pass = 1, fail = 0; Bit 3 is the ROM CRC Tables Test, pass = 1, fail = 0; Bit 4 is the ROM Calibration Tables Test, pass = 1, fail = 0; Bit 5 is the DSP Timer Test, pass = 1, fail = 0; Bits 6:7 are reserved, value = 0</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>BIT_LOG_DIAG1B</item_name>
<type>uint8_t</type>
<comment>Bit 0 is the DSP Analog-to-Digital (ADC) Test, pass = 1, FAIL = 0; Bit 1 is the Actuator Battery Voltage Test, pass = 1, fail = 0; Bits 2:7 are reserved bits, value = 0</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>BIT_LOG_DIAG1C</item_name>
<type>uint8_t</type>
<comment>Bit 0 is the Channel A Motor Phase Drive Test, pass = 1, fail = 0; Bit 1 is the Channel B Motor Phase Drive Test, pass = 1, fail = 0; Bit 2 is the Channel C Motor Phase Drive Test, pass = 1, fail = 0; Bit 3 is a reserved bit, value = 0; Bit 4 is the Channel A Motor Position Sensor test, pass = 1, fail = 0; Bit 5 is the Channel B Motor Position Sensor test, pass = 1, fail = 0; Bit 6 is the Channel C Motor Position Sensor test, pass = 1, fail = 0; Bit 7 is a reserved bit, value = 0</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>BIT_LOG_DIAG1D</item_name>
<type>uint8_t</type>
<comment>Reserved, value = 0</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>BIT_LOG_SPARE1</item_name>
<type>uint8_t</type>
<comment>Spare, value = 0</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>BIT_LOG_SPARE2</item_name>
<type>uint8_t</type>
<comment>Spare, value = 0</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>Spare</item_name>
<type>uint8_t</type>
<comment>Spare, value = 0</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>CSUM</item_name>
<type>uint8_t</type>
<comment>Checksum: 0 - (Modulo 256 byte-wise addition of bytes 0 to 10)</comment>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>padding_cas</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<structure>
<name>GspBitRspMsgData</name>
<comment>GSP BIT Response Message</comment>
<struct_item>
<default>0u</default>
<item_name>encResult</item_name>
<type>uint8_t</type>
<comment>Encoder PBIT Result</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>gspResult</item_name>
<type>uint8_t</type>
<comment>GSP PBIT Result. Positioned before imuResult to comply with the 2-byte struct alignment rule, reference the IDD for true byte order</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>imuResult</item_name>
<type>uint16_t</type>
<comment>IMU PBIT Result</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>voltage5p15</item_name>
<type>int16_t</type>
<comment>Raw 5p15 voltage value in mV</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>voltage3p3</item_name>
<type>int16_t</type>
<comment>Raw 3p3 voltage value in mV</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tempGsp</item_name>
<type>int16_t</type>
<comment>Raw GSP temperature value in Celcius</comment>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>padding_gsp</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<structure>
<name>MccBitResultsData</name>
<struct_item>
<default>0.0f</default>
<item_name>voltageP20V</item_name>
<type>float</type>
<comment>P20 voltage in V</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>voltageN20V</item_name>
<type>float</type>
<comment>N20 voltage in V</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>voltageP3V3</item_name>
<type>float</type>
<comment>3v3 voltage in V</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>voltageP1V2</item_name>
<type>float</type>
<comment>1v2 voltage in V</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>voltage12V</item_name>
<type>float</type>
<comment>12V voltage in V</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>tempMCC</item_name>
<type>float</type>
<comment>MCC temperature value in Celsius</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>testResults</item_name>
<type>uint8_t</type>
<comment>MCC Bit Result Data</comment>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>padding_mcc</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<structure>
<name>SicBitRspMsgData</name>
<struct_item>
<default>0.0f</default>
<item_name>idaTempVolt</item_name>
<type>float</type>
<comment>SIC ADC AIN channel 0: IDA temperature in Voltage: Expected range: [0.567V, 0.889V]</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>idaPowerSysVolt0</item_name>
<type>float</type>
<comment>SIC ADC AIN channel 1: IDA power system. Nominal V: 1.08V | band: +-5%</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>idaPowerSysVolt1</item_name>
<type>float</type>
<comment>SIC ADC AIN channel 2: IDA power system. Nominal V: 1.98V | band: +-5%</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>idaPowerSysVolt2</item_name>
<type>float</type>
<comment>SIC ADC AIN channel 3: IDA power system. Nominal V: 2.0256V | band: +-5%</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>idaCurrFlowVolt0</item_name>
<type>float</type>
<comment>SIC ADC AIN channel 4: IDA current flow. Nominal V: 1.1443V | band: -50%</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>idaCurrFlowVolt1</item_name>
<type>float</type>
<comment>SIC ADC AIN channel 5: IDA current flow. Nominal V: 1.2851V | band: -50%</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>idaCurrFlowVolt2</item_name>
<type>float</type>
<comment>SIC ADC AIN channel 6: IDA current flow. Nominal V: 1.1525V | band: -50%</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>idaAbitVolt</item_name>
<type>float</type>
<comment>SIC ADC AIN channel 7: IDA ABIT. Nominal voltage: 1.65V | +-5%</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>tempCelsius</item_name>
<type>float</type>
<comment>SIC ADC die temperature in degrees Celsius: [-40.0 degrees Celsius, 125.0 degrees Celsius]</comment>
</struct_item>
</structure>
<structure>
<name>IdaBitResponseMsgData</name>
<struct_item>
<default>0u</default>
<item_name>dBit</item_name>
<type>uint8_t</type>
<comment>DBIT from the IDA. 1 means DBIT passed, 0 means DBIT failed.</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>padding_ida</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<structure>
<name>ProxBitRspMsgData</name>
<struct_item>
<default>0u</default>
<item_name>resultData</item_name>
<type>uint8_t</type>
<comment>Prox Bit Result Data</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>maxTimeOfFlightExtEcho</item_name>
<type>uint8_t</type>
<comment>Prox echoing back the received time of flight extension value</comment>
</struct_item>
<struct_item>
<default>0u</default>
<item_name>proxSwVersion</item_name>
<type>uint8_t</type>
<comment>Proximity Sensors SW version</comment>
</struct_item>
</structure>
<structure>
<name>PolarFireBitRspMsgData</name>
<struct_item>
<default>0.0f</default>
<item_name>channel_0_V</item_name>
<type>float</type>
<comment>PolarFire TVS CH0 (1.0V rail) in Volts</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>channel_1_V</item_name>
<type>float</type>
<comment>PolarFire TVS CH1 (1.8V rail) in Volts</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>channel_2_V</item_name>
<type>float</type>
<comment>PolarFire TVS CH2 (2.5V rail) in Volts</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>channel_3_dieTemp_Celsius</item_name>
<type>float</type>
<comment>PolarFire TVS CH3 temperature in Celcius</comment>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>tmp102_Celsius</item_name>
<type>float</type>
<comment>PolarFire chip temperature in Celsius</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::VERSION_STRLEN</arrayLength>
<default>0</default>
<item_name>fwVers</item_name>
<type>char</type>
<comment>PolarFire FW Build Version</comment>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>padding_pf</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<structure>
<name>LieBitRspMsgData</name>
<struct_item>
<default>0</default>
<item_name>resultData</item_name>
<type>uint8_t</type>
<comment>LIE Bit Result Data</comment>
</struct_item>
</structure>
<message>
<name>CasBitRspMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ac8333</label>
<instruLabel>CasBitRspMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::CasBitRspMsgData</type>
</msg_item>
</message>
<message>
<name>GspBitRspMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x005f0f77</label>
<instruLabel>GspBitRspMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::GspBitRspMsgData</type>
</msg_item>
</message>
<message>
<name>MccBitResultsMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x007e92a0</label>
<instruLabel>MccBitResultsMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::MccBitResultsData</type>
</msg_item>
</message>
<message>
<name>ProxBitRspMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00a6a23a</label>
<instruLabel>ProxBitRspMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::ProxBitRspMsgData</type>
</msg_item>
</message>
<message>
<name>LieBitRspMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x000a49f8</label>
<instruLabel>LieBitRspMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::LieBitRspMsgData</type>
</msg_item>
</message>
<message>
<name>UmbilicalSendMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00d330b4</label>
<instruLabel>UmbilicalSendMsg</instruLabel>
<msg_item>
<default>0</default>
<item_name>payload</item_name>
<type>uint32_t</type>
<comment>Data not used, reciept of message triggers UmbilicalComp to send data to Launcher over UART.</comment>
</msg_item>
</message>
<message>
<name>SicBitResponseMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ee71c8</label>
<instruLabel>SicBitResponseMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::SicBitRspMsgData</type>
<comment>message sent by the SicComp after receiveing BIT results from the SIC</comment>
</msg_item>
</message>
<message>
<name>IdaBitResponseMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ce8feb</label>
<instruLabel>IdaBitResponseMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::IdaBitResponseMsgData</type>
<comment>message sent by the FwSigProcComp after receiveing DBIT results from the IDA</comment>
</msg_item>
</message>
<message>
<name>PolarFireBitRspMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00902841</label>
<instruLabel>PolarFireBitRspMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::PolarFireBitRspMsgData</type>
</msg_item>
</message>
<message>
<name>VoltageBitRspMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00b642bc</label>
<instruLabel>VoltageBitRspMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::VoltageBitRspData</type>
<comment>VIP voltage registers</comment>
</msg_item>
</message>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,649 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>wosa</name>
<constant>
<type>uint32_t</type>
<name>MAX_EFFECTOR_COUNT</name>
<value>8</value>
</constant>
<constant>
<type>uint32_t</type>
<name>MAX_MSG_PROD</name>
<value>500</value>
</constant>
<constant>
<type>uint32_t</type>
<name>MAX_NUM_TARGETS</name>
<value>10</value>
</constant>
<constant>
<type>uint32_t</type>
<name>VALID</name>
<value>0</value>
</constant>
<constant>
<type>uint32_t</type>
<name>INVALID</name>
<value>1</value>
</constant>
<constant>
<type>uint32_t</type>
<name>ALL_VALID</name>
<value>0</value>
</constant>
<constant>
<type>uint32_t</type>
<name>ALL_INVALID</name>
<value>0xFFFFFFFF</value>
</constant>
<enum>
<name>EffectorType</name>
<enum_item>
<item_name>ACM</item_name>
<value>0x01</value>
</enum_item>
<enum_item>
<item_name>SURFACE</item_name>
<value>0x02</value>
</enum_item>
</enum>
<enum>
<name>MDT_File_Number</name>
<comment>Allowable enumerations for the MDT File Type to be used by the WIM Defined DMN_Initialization Message</comment>
<enum_item>
<item_name>ALMANAC</item_name>
<value>4</value>
</enum_item>
<enum_item>
<item_name>EPHEMERIS</item_name>
<value>5</value>
</enum_item>
<enum_item>
<item_name>COMPLEMENTARYNAV</item_name>
<value>19</value>
</enum_item>
<enum_item>
<item_name>MISSIONDATA</item_name>
<value>20</value>
</enum_item>
<enum_item>
<item_name>WDL_KEY_1</item_name>
<value>25</value>
</enum_item>
<enum_item>
<item_name>WDL_KEY_2</item_name>
<value>26</value>
</enum_item>
<enum_item>
<item_name>WDL_KEY_3</item_name>
<value>27</value>
</enum_item>
</enum>
<enum>
<name>BIT_Report_e</name>
<comment>Allowable enumerations for the DMN_Status_Monitor.Subsystem_BIT_Report field. All other values are Reserved or WIM defined.</comment>
<enum_item>
<item_name>BIT_PASS</item_name>
<value>0</value>
</enum_item>
<enum_item>
<item_name>BIT_DEGRADED</item_name>
<value>1</value>
</enum_item>
<enum_item>
<item_name>BIT_FAILED</item_name>
<value>2</value>
</enum_item>
<enum_item>
<item_name>NO_RESULTS</item_name>
<value>3</value>
</enum_item>
</enum>
<structure>
<name>Message_Rate</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>messageID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved2</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>msgUpdateRateHz</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>msgVersionNumber</item_name>
<type>uint32_t</type>
</struct_item>
</structure>
<structure>
<name>Target_Priority</name>
<struct_item>
<default>0</default>
<item_name>targetIdPriority</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved2</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<structure>
<name>Target_State_ECEF</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>timeValidNanoSec</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtPosEcefX</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtPosEcefY</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtPosEcefZ</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtPosCovEcef</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtVelEcefX</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtVelEcefY</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtVelEcefZ</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtVelCovEcef</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtAccEcefX</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtAccEcefY</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtAccEcefZ</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtAccCovEcef</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtId</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtType</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtPriority</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved2</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtIntention</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>clusterIndicator</item_name>
<type>uint32_t</type>
</struct_item>
</structure>
<structure>
<name>Target_State_LOS</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>timeValidNanoSec</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRange</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRangeRate</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelXrot</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelYrot</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelZrot</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtLosCov</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelXrotRate</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelYrotRate</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelZrotRate</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtLosRateCov</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtId</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtType</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtIntention</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtPriority</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>refLocX</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>refLocY</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>refLocZ</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>refCov</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>clusterIndicator</item_name>
<type>uint32_t</type>
</struct_item>
</structure>
<structure>
<name>Header</name>
<struct_item>
<default>0</default>
<item_name>domainID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>instanceID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>elementID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>messageID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>messageCount</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>payloadLengthBytes</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>timeStampNanoSec</item_name>
<type>uint64_t</type>
</struct_item>
</structure>
<structure>
<name>Trailer</name>
<struct_item>
<default>0</default>
<item_name>messageCRC</item_name>
<type>uint32_t</type>
</struct_item>
</structure>
<structure>
<name>DMN_LookTo_ECEF</name>
<struct_item>
<default>0</default>
<item_name>numTgts</item_name>
<type>uint8_t</type>
<comment>Number of Target ECEF cues</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>wosa::MAX_NUM_TARGETS</arrayLength>
<item_name>targetStateEcef</item_name>
<type>wosa::Target_State_ECEF</type>
</struct_item>
</structure>
<structure>
<name>DMN_LookTo_LOS</name>
<struct_item>
<default>0</default>
<item_name>numTgts</item_name>
<type>uint8_t</type>
<comment>Number of Targets Look To LOS</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>wosa::MAX_NUM_TARGETS</arrayLength>
<item_name>targetStateLos</item_name>
<type>wosa::Target_State_LOS</type>
</struct_item>
</structure>
<structure>
<name>DMN_Metamodule_Message</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vendorRegistry</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vendorSystemNumber</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vendorModel</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vendorSoftware</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>numMsgsProduced</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>wosa::MAX_MSG_PROD</arrayLength>
<item_name>messageRate</item_name>
<type>wosa::Message_Rate</type>
</struct_item>
</structure>
<structure>
<name>DMN_Priority</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>numTgts</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>wosa::MAX_NUM_TARGETS</arrayLength>
<item_name>targetPriority</item_name>
<type>wosa::Target_Priority</type>
</struct_item>
</structure>
<structure>
<name>DMN_Status_Monitor</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>subsystemBITreport</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord1</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord2</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord3</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord4</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord5</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>msnExecControlAck</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>reserved</item_name>
<type>uint16_t</type>
</struct_item>
</structure>
<structure>
<name>DMN_Initialization</name>
<struct_item>
<default>0</default>
<item_name>MDT_File_Number</item_name>
<type>uint16_t</type>
<comment>Enumeration: Type of MDT File (4 = Almanac, 5 = Ephemeris, etc)</comment>
</struct_item>
<struct_item>
<default>64</default>
<item_name>numberOfRecords</item_name>
<type>uint16_t</type>
<comment>Width of 2D Array</comment>
</struct_item>
<struct_item>
<default>29</default>
<item_name>numberOfBlocks</item_name>
<type>uint16_t</type>
<comment>Height of 2D Array</comment>
</struct_item>
<struct_item>
<arrayLength>64</arrayLength>
<arrayLength>29</arrayLength>
<default>0</default>
<item_name>MDT_Data</item_name>
<type>uint16_t</type>
<comment>WIM Specified Initialization Data, typically this data structure is defined in an external standard and only used for initialization [unitless]</comment>
</struct_item>
</structure>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<constant>
<comment>roll and nod</comment>
<type>uint32_t</type>
<name>N_AXES</name>
<value>2</value>
</constant>
<structure>
<name>Bits</name>
<struct_item>
<default>0</default>
<item_name>posLoop</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>velLoop</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>velCmd</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>injCur</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>injVel</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>injPos</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>fricComp</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
</structure>
<structure>
<name>AxisMode</name>
<struct_item>
<item_name>b</item_name>
<type>Bits</type>
</struct_item>
</structure>
<structure>
<name>Axis</name>
<struct_item>
<item_name>mode</item_name>
<type>AxisMode</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>pos</item_name>
<type>double</type>
<comment>rad</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vel</item_name>
<type>double</type>
<comment>rad/sec</comment>
</struct_item>
</structure>
<structure>
<name>AlgorithmProcAxis</name>
<struct_item>
<default>0.0</default>
<item_name>posFltRad</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>velFltRps</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>CurrentMeasurements</name>
<struct_item>
<default>0.0</default>
<item_name>dvtCurrAdcSec</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measPhaseACurrAdcA</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measPhaseBCurrAdcA</item_name>
<type>double</type>
</struct_item>
</structure>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,323 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="relative">Gimbal.xml</file>
<file location="system">cstdint</file>
</include>
<structure>
<name>GimbalCommandDataType</name>
<comment>\\&lt;EximItarRestricted&gt; ----------------------------------------------------------------------------// WARNING - This document contains Technical Data 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 Sections 120-130). Violations // are subject to severe criminal penalties. // ----------------------------------------------------------------------------// \\&lt;\EximItarRestricted&gt;</comment>
<struct_item>
<default>0</default>
<item_name>time</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>valid</item_name>
<type>unsigned int</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>cmdGimbalAzFromHousingInBody</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>cmdGimbalElFromHousingInBody</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>GimbalStateDataType</name>
<struct_item>
<default>0.0</default>
<item_name>measTime</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measRoll</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measNod</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>CageDataType</name>
<struct_item>
<default>0</default>
<item_name>cagedPitch</item_name>
<type>int32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>cagedRoll</item_name>
<type>int32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>uncaged</item_name>
<type>int</type>
</struct_item>
</structure>
<structure>
<name>GimbalCurrentCommandDataType</name>
<struct_item>
<arrayLength>N_AXES</arrayLength>
<default>0.0</default>
<item_name>currentCommands</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmRollPhaseA</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmRollPhaseB</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmRollPhaseC</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmNodPos</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmNodNeg</item_name>
<type>float</type>
</struct_item>
</structure>
<structure>
<name>GimbalCurrentMeasurementDataType</name>
<struct_item>
<arrayLength>N_AXES</arrayLength>
<item_name>curr</item_name>
<type>CurrentMeasurements</type>
</struct_item>
</structure>
<structure>
<name>GimbalSensorProcessorTmStruct</name>
<comment>Telemetry payload struct for the GSPComp</comment>
<struct_item>
<default>-1.0</default>
<item_name>encoderMeasTime</item_name>
<type>double</type>
<comment>Time (s) at which the encoder measurement was taken</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>imuValidityTimeNs</item_name>
<type>uint64_t</type>
<comment>Time in nanoseconds that the IMU measurement is valid for. See SW/DataModel/WOSA/IMU.xml</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>nodEncoderData</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>rollEncoderData</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>ImuAccelData</item_name>
<type>float</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>ImuGyroData</item_name>
<type>float</type>
</struct_item>
</structure>
<structure>
<name>GimbalMisalignmentDataType</name>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>pTa</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>gTp</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>tTg</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>dTp</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>r1</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>r2</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>r3</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>n1</item_name>
<type>double</type>
</struct_item>
</structure>
<message>
<name>GimbalCommandMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ec42cf</label>
<instruLabel>GimbalCommandMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalCommandDataType</type>
</msg_item>
</message>
<message>
<name>GimbalStateMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x001d4cb3</label>
<instruLabel>GimbalStateMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalStateDataType</type>
</msg_item>
</message>
<message>
<name>EncoderHwifMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00e98a9d</label>
<instruLabel>EncoderHwifMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalStateDataType</type>
<comment>Message sent from GspHwif to itself after delay</comment>
</msg_item>
</message>
<message>
<name>CageStateMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x006baa07</label>
<instruLabel>CageStateMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>CageDataType</type>
</msg_item>
</message>
<message>
<name>GimbalCurrentCommandMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00a8e517</label>
<instruLabel>GimbalCurrentCommandMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalCurrentCommandDataType</type>
</msg_item>
</message>
<message>
<name>GimbalCurrentMeasurementMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00fc6b48</label>
<instruLabel>GimbalCurrentMeasurementMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalCurrentMeasurementDataType</type>
</msg_item>
</message>
<message>
<name>GimbalSensorProcessorTmMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00753580</label>
<instruLabel>GimbalSensorProcessorTmMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalSensorProcessorTmStruct</type>
</msg_item>
</message>
<message>
<name>GimbalMisalignmentDataMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x0031549b</label>
<instruLabel>GimbalMisalignmentDataMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalMisalignmentDataType</type>
</msg_item>
</message>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,171 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>ngsri</name>
<constant>
<comment>With input from SP, maximum expected segements in the scene is 500</comment>
<type>uint32_t</type>
<name>MAX_SEGMENT_SIZE</name>
<value>500</value>
</constant>
<structure>
<name>NgsriSegmentData</name>
<struct_item>
<default>0</default>
<item_name>numSegments</item_name>
<type>uint16_t</type>
<comment>The actual number of segments</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentRow</item_name>
<type>uint8_t</type>
<comment>The row of the segment in the original image</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentBeginCol</item_name>
<type>uint8_t</type>
<comment>The column of the first pixel in the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentEndCol</item_name>
<type>uint8_t</type>
<comment>The column after the last pixel of the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentLength</item_name>
<type>uint8_t</type>
<comment>The number of pixels in the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentColMoment</item_name>
<type>uint32_t</type>
<comment>The sum of the columns of the pixels in the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0.0f</default>
<item_name>segmentMaxIntensity</item_name>
<type>float</type>
<comment>The highest intensity out of the pixels in the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0.0f</default>
<item_name>segmentSumIntensity</item_name>
<type>float</type>
<comment>The sum of pixel intensities within segment</comment>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tov</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>frameNumber</item_name>
<type>unsigned int</type>
</struct_item>
</structure>
<structure>
<name>NgsriAdnucStateData</name>
<struct_item>
<default>0</default>
<item_name>adnucState</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>padding</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<message>
<name>NgsriRobSegmentsMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x002142e2</label>
<instruLabel>NgsriRobSegmentsMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::NgsriSegmentData</type>
</msg_item>
</message>
<message>
<name>NgsriLogSegmentsMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00d3adbe</label>
<instruLabel>NgsriLogSegmentsMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::NgsriSegmentData</type>
</msg_item>
</message>
<message>
<name>NgsriAdnucStateMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ee7d81</label>
<instruLabel>NgsriAdnucStateMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::NgsriAdnucStateData</type>
</msg_item>
</message>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,323 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<UnlimitedRights>-->
<!--=========================================================================-->
<!-- Copyright 2023 Raytheon Company. -->
<!-- This software was developed pursuant to Contract Number AMTC 22-06-002 -->
<!-- with the U.S. government. The U.S. government's rights in and to this -->
<!-- copyrighted software are as specified in DFARS 252.227-7014 which was -->
<!-- made part of the above contract. -->
<!--=========================================================================-->
<!--\\<\UnlimitedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>ngsri</name>
<enum>
<name>MissionMode</name>
<enum_item>
<item_name>TACTICAL</item_name>
<value>0</value>
</enum_item>
<enum_item>
<item_name>MSFR</item_name>
<value>1</value>
</enum_item>
<enum_item>
<item_name>PATHFINDER</item_name>
<value>2</value>
</enum_item>
<enum_item>
<item_name>RTF</item_name>
<value>3</value>
</enum_item>
<enum_item>
<item_name>LBT</item_name>
<value>4</value>
</enum_item>
<enum_item>
<item_name>CFT</item_name>
<value>5</value>
</enum_item>
<enum_item>
<item_name>GFT</item_name>
<value>6</value>
</enum_item>
</enum>
<structure>
<name>MissionManagerDataTypeLL</name>
<struct_item>
<default>0</default>
<item_name>CTS</item_name>
<type>unsigned int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>pad_one</item_name>
<type>unsigned int</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtPosLocal</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtVelLocal</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtAccLocal</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtPosCovNED</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtVelCovNED</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtAccCovNED</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>timeOfValidity</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>guideState</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>seekerState</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>seekerReady</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>cageState</item_name>
<type>int</type>
<comment>bool</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>adnucState</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>mmgrState</item_name>
<type>uint8_t</type>
<comment>See MissionManagerTypes.hpp</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>pad_two</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>recage</item_name>
<type>int</type>
<comment>bool</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>mmgrMode</item_name>
<type>uint8_t</type>
<comment>Mission manager mode of operation</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>pad_three</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>99999.0</default>
<item_name>tacticalLaunchTimeSec</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>MissionManagerAdnucType</name>
<struct_item>
<default>0</default>
<item_name>adnucState</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>startAdnuc</item_name>
<type>unsigned int</type>
<comment>bool</comment>
</struct_item>
</structure>
<structure>
<name>MissionManagerCoarseAlignType</name>
<struct_item>
<default>0</default>
<item_name>AlignmentDuration</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>MissionManagerCompTmType</name>
<struct_item>
<default>0</default>
<item_name>mmgrState</item_name>
<type>uint8_t</type>
<comment>See MissionManagerTypes.hpp</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>adnucState</item_name>
<type>uint8_t</type>
<comment>See MissionManagerTypes.hpp</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>testListSize</item_name>
<type>uint64_t</type>
<comment>Part of MissileKit CommonEmbeddedTest framework</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>testListStatus</item_name>
<type>uint64_t</type>
<comment>Part of MissileKit CommonEmbeddedTest framework</comment>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measTime</item_name>
<type>double</type>
<comment>See TimeUtility.hpp getTimeNow_sec(). This field is needed to align measurements from other packets without introducing in variation from the Telemetry component</comment>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>navTime</item_name>
<type>float</type>
</struct_item>
</structure>
<structure>
<name>MissionManagerSyncReqData</name>
<struct_item>
<default>0</default>
<item_name>activateSyncs</item_name>
<type>uint8_t</type>
<comment>Enables the FSync and GSync pulses in FW</comment>
</struct_item>
</structure>
<message>
<name>MissionManagerMsgLL</name>
<labelGroup>0x00</labelGroup>
<label>0x004110bd</label>
<instruLabel>MissionManagerMsgLL</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerDataTypeLL</type>
</msg_item>
</message>
<message>
<name>MissionManagerAdnucMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x005bed3d</label>
<instruLabel>MissionManagerAdnucMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerAdnucType</type>
</msg_item>
</message>
<message>
<name>MissionManagerAlignmentMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ee8dea</label>
<instruLabel>MissionManagerAlignmentMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerCoarseAlignType</type>
</msg_item>
</message>
<message>
<name>MissionManagerCompTmMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00e54b8a</label>
<instruLabel>MissionManagerCompTmMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerCompTmType</type>
</msg_item>
</message>
<message>
<name>MissionManagerSyncReqMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x0031321f</label>
<instruLabel>MissionManagerSyncReqMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerSyncReqData</type>
</msg_item>
</message>
<message>
<name>MissionManagerIdaTempReqMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00a41a67</label>
<instruLabel>MissionManagerIdaTempReqMsg</instruLabel>
<msg_item>
<default>0</default>
<item_name>payload</item_name>
<type>uint32_t</type>
<comment>Sent to IdaComp to determine if IDA temp is overthreshold. No payload, message receipt dictates behavior</comment>
</msg_item>
</message>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>ngsri</name>
<structure>
<name>UmbilicalRetractBatteryGoodDataType</name>
<struct_item>
<default>0</default>
<item_name>umbilicalRetractBatteryGood</item_name>
<type>unsigned int</type>
<comment>bool</comment>
</struct_item>
</structure>
<structure>
<name>UmbilicalTmDataType</name>
<comment>Telemetry payload struct for the UmbilicalComp</comment>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>losData</item_name>
<type>int32_t</type>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>cageVectorPitchRollData</item_name>
<type>int32_t</type>
<comment>roll and pitch units where roll is 1 rotation about X and pitch is 2 rotation about Y in bits per degrees notation</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>uncageData</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>cageCount</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>toneData</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>umbilicalRetractBatteryGoodData</item_name>
<type>unsigned int</type>
<comment>bool</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>orientationRspData</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>lifetimeTime</item_name>
<type>uint32_t</type>
<comment>seconds</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>lifetimeCount</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<message>
<name>UmbilicalRetractBatteryGoodMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00225955</label>
<instruLabel>UmbilicalRetractBatteryGoodMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::UmbilicalRetractBatteryGoodDataType</type>
</msg_item>
</message>
<message>
<name>UmbilicalTmMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x0032303f</label>
<instruLabel>UmbilicalTmMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::UmbilicalTmDataType</type>
</msg_item>
</message>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<UnlimitedRights>-->
<!--=========================================================================-->
<!-- Copyright 2025 Raytheon Company. -->
<!-- This software was developed pursuant to Contract Number AMTC 22-06-002 -->
<!-- with the U.S. government. The U.S. government's rights in and to this -->
<!-- copyrighted software are as specified in DFARS 252.227-7014 which was -->
<!-- made part of the above contract. -->
<!--=========================================================================-->
<!--\\<\UnlimitedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>ngsri</name>
<constant>
<comment>Length of the version string including the null character - compliant with the Digital Product Version Convention.</comment>
<type>uint8_t</type>
<name>VERSION_STRLEN</name>
<value>14</value>
</constant>
<structure>
<name>VipConfigData</name>
<struct_item>
<arrayLength>ngsri::VERSION_STRLEN</arrayLength>
<default>0</default>
<item_name>fwVers</item_name>
<type>char</type>
<comment>Firmware Build Version</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::VERSION_STRLEN</arrayLength>
<default>0</default>
<item_name>swVers</item_name>
<type>char</type>
<comment>Software Build Version</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::VERSION_STRLEN</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>char</type>
<comment>May be used for 'Hardware Model' or other use case</comment>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>padding_vip</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>ImageCrc</item_name>
<type>uint32_t</type>
<comment>32-bit CRC value for the combined .text and .data sections of software binary</comment>
</struct_item>
</structure>
<structure>
<name>GspVerData</name>
<struct_item>
<arrayLength>ngsri::VERSION_STRLEN</arrayLength>
<default>0</default>
<item_name>verStr</item_name>
<type>char</type>
<comment>GSP Build Version</comment>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>padding_gsp</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>imageCrc</item_name>
<type>uint32_t</type>
<comment>32-bit CRC value for the GSP software binary</comment>
</struct_item>
</structure>
<structure>
<name>MccVerData</name>
<struct_item>
<arrayLength>ngsri::VERSION_STRLEN</arrayLength>
<default>0</default>
<item_name>verStr</item_name>
<type>char</type>
<comment>MCC Build Version</comment>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>padding_mcc</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>core0Crc</item_name>
<type>uint32_t</type>
<comment>32-bit CRC value for the MCC Core 0 software binary</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>core1Crc</item_name>
<type>uint32_t</type>
<comment>32-bit CRC value for the MCC Core 1 software binary</comment>
</struct_item>
</structure>
<message>
<name>VipConfigDataMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x0044a956</label>
<instruLabel>VipConfigDataMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::VipConfigData</type>
</msg_item>
</message>
<message>
<name>GspVerDataMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00192340</label>
<instruLabel>GspVerDataMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::GspVerData</type>
</msg_item>
</message>
<message>
<name>MccVerDataMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00e6c955</label>
<instruLabel>MccVerDataMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::MccVerData</type>
</msg_item>
</message>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,25 @@
; ===============================================================================================================
; This name must match the name specified in the Instrument.xml for an instrument of type DIO
[PICKERING_DIO_1]
LXI_IP_ADDRESS = 192.168.1.15
DEVICE_NUMBER = 15
BUS_NUMBER = 3
SHALL_WE_DRIVE_OUTPUT_UPON_INITIALIZATION = false
; number channels per port
NUM_CHANNELS_PER_PORT=8
; either 0 or 1 as the starting channel index
CHANNEL_START_INDEX=0
NUM_OUTPUT_CHANNELS = 32
NUM_INPUT_CHANNELS = 32
;format is <signal_name> = <Channel Number>|<Initial State>
;<Initial State> is either 0 or 1 or 2(Logic Z)
[PICKERING_DIO_1.OUTPUT_SIGNALS]
SIGNAL_1 = 0|1
SIGNAL_2 = 1|0
;format is <signal_name> = <Channel Number>
[PICKERING_DIO_1.INPUT_SIGNALS]
SIGNAL_3 = 0
SIGNAL_4 = 0

View File

@@ -8,29 +8,37 @@
<XmlConfigurations>
<XmlConfiguration name="Instruments">
<Instrument>
<Name>STE_POWER_SUPPLY_SYSTEM</Name>
<Factory>PowerSupplySystemKeysightFactory</Factory>
<Name>CoeDeviceNodeTCP</Name>
<Factory>CoeCommDeviceFactory</Factory>
</Instrument>
<Instrument>
<Name>UUT_POWER_SUPPLY_SYSTEM</Name>
<Name>UUT_POWER_SUPPLY_SYSTEM_20V</Name>
<Factory>PowerSupplySystemKeysightFactory</Factory>
</Instrument>
<Instrument>
<Name>PICKERING_DIO_1</Name>
<Factory>DIOPickering40xFactory</Factory>
</Instrument>
<!-- <Instrument>
<Name>PICKERING_RELAY_SWITCH_16CH</Name>
<Factory>SwitchPickeringLxi60_522_SoapFactory</Factory>
</Instrument> -->
<!-- <Instrument>
<Name>PICKERING_RELAY_SWITCH_32CH</Name>
<Factory>SwitchPickeringLxi60_522_SoapFactory</Factory>
</Instrument> -->
<Instrument>
<Name>ADVANTECH_DIO_1</Name>
<Factory>DIOAdvantechFactory</Factory>
</Instrument>
<Instrument>
<Name>PICKERING_SWITCH_1</Name>
<Factory>SwitchPickeringPipx40Factory</Factory>
<Name>PICKERING_SWITCH_MATRIX_64X4</Name>
<Factory>SwitchMatrixPickering40xFactory</Factory>
</Instrument>
<Instrument>
<Name>KEYSIGHT_DMM_1</Name>
<Factory>DMMKeysightScpiFactory</Factory>
</Instrument>
<Instrument>
<Name>SERIAL_COM_PORT_1</Name>
<Factory>CommDeviceSerialFactory</Factory>
</Instrument>
</XmlConfiguration>
</XmlConfigurations>
</Configurations>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_SWITCH_1">
<section name="KEYSIGHT_DMM_1">
<key name="IP_ADDRESS" value="192.168.1.27" />
</section>
</IniConfiguration>
<XmlConfigurations />

View File

@@ -2,7 +2,7 @@
<Configurations>
<IniConfiguration>
<section name="PICKERING_DIO_1">
<key name="DIO_MODULE_DEF_FILEPATH" value=".\InstrumentConfig\DIO_MODULES.ini" />
<key name="DIO_MODULE_DEF_FILEPATH" value="DIO_MODULES.ini" />
</section>
</IniConfiguration>
<XmlConfigurations />

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_RELAY_SWITCH_16CH">
<key name="LXI_IP_ADDRESS" value="192.168.1.15" />
<key name="DEVICE_NUMBER" value="11" />
<key name="BUS_NUMBER" value="3" />
<key name="SUB_UNIT" value="0" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_RELAY_SWITCH_32CH">
<key name="LXI_IP_ADDRESS" value="192.168.1.15" />
<key name="DEVICE_NUMBER" value="14" />
<key name="BUS_NUMBER" value="3" />
<key name="SUB_UNIT" value="0" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_SWITCH_MATRIX_64X4">
<key name="LXI_IP_ADDRESS" value="192.168.1.15" />
<key name="DEVICE_NUMBER" value="13" />
<key name="BUS_NUMBER" value="3" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,32 @@
; ===============================================================================================================
; This name must match the name specified in the Instrument.xml that is associated with the power supply system
[UUT_POWER_SUPPLY_SYSTEM_20V]
SCPI_DEF_FILEPATH = KEYSIGHT_POWER_SUPPLY_SCPI_DEF.ini
ETHERNET_ADDRESS = 192.168.1.19
ETHERNET_PORT = 5025
MODULE_DEFINITION = P20V, N20V
; 0 means no coupled modules.
; couple means turning on/off any one of the module, turns on/off the others
COUPLED_MODULES = P20V, N20V
; 0 means no grouped modules.
; group means turning combining 2 or more modules thus acting as one module
GROUPED_MODULES = 0
INTERFACE = ETHERNET
[UUT_POWER_SUPPLY_SYSTEM_20V.P20V]
INDEX = 1
OCP = 8.5
OVP = 25.0
VOLTAGE_SETPOINT = 20.0
MIN_VOLTAGE = 16.0
MAX_VOLTAGE = 24.0
[UUT_POWER_SUPPLY_SYSTEM_20V.N20V]
INDEX = 2
OCP = 8.5
OVP = 25.0
VOLTAGE_SETPOINT = 20.0
MIN_VOLTAGE = 16.0
MAX_VOLTAGE = 24.0

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="SERIAL_COM_PORT_1">
<key name="COMPortName" value="COM4" />
<key name="BaudRate" value="312500" />
<key name="Parity" value="Even" />
<key name="DataBits" value="8" />
<key name="StopBits" value="1" />
<key name="ReadTimeout" value="5000" />
<key name="BufferSize" value="1024" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="STE_POWER_SUPPLY_SYSTEM">
<key name="POWER_SUPPLY_SYSTEM_DEF_FILEPATH" value=".\InstrumentConfig\POWER_SUPPLY_SYSTEMS.ini" />
<section name="UUT_POWER_SUPPLY_SYSTEM_20V">
<key name="POWER_SUPPLY_SYSTEM_DEF_FILEPATH" value="POWER_SUPPLY_SYSTEMS.ini" />
</section>
</IniConfiguration>
<XmlConfigurations />

View File

@@ -0,0 +1,2 @@
[GENERAL]
CheckForMessageIntervalMs = 10

View File

@@ -0,0 +1,36 @@
;format is name = range|resolution|delay(ms)|scale factor|relays|voltRange|numReads
;Use device number to identifiy switch card... see switch configuration
[DmmReadFrequency]
;format is signal_name = range|resolution|min_delay(ms)|max_delay(ms)|scale factor|relays|type|cable, connector and pin id|lower_limit|upper_limit
;Type is TWO or FOUR for two wire and four wire measurements
;Relay Format: [Card_Name]-[Relay_Channel#],[Card_Name]-[Path1],[Path2]
; [Card_Name] - must match the name of the switch card defined in the Instrument.xml
; [Path]
; For a simple relay switch: [channel_id]
; For a 2-d switch matrix: [subUnit].[channel_x].[channel_y]
;Cable and Pin Id Format: [Cable_Id]_[Connecto_Id][Pin_Id]_[Cable_Id]_[Connector_Id]_[Pin_Id]
[DmmReadResistance]
; Cable IDs
W1_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.59.1,0.60.2|TWO|W1_P1_J13_W1_P1_J14|950.0|1100.0
W1_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.63.1,0.64.2|TWO|W1_P1_J15_W1_P1_J16|950.0|1050.0
W2_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.59.1,0.60.2|TWO|W1_P1_J13_W1_P1_J14|1950.0|2100.0
W2_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.63.1,0.64.2|TWO|W1_P1_J15_W1_P1_J16|950.0|1050.0
W3_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.57.1,0.58.2|TWO|W1_P3_63_W1_P3_64|2900.0|3100.0
W3_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.61.1,0.62.2|TWO|W1_P3_65_W1_P3_66|950.0|1050.0
W4_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.57.1,0.58.2|TWO|W1_P3_63_W1_P3_64|3900.0|4100.0
W4_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.61.1,0.62.2|TWO|W1_P3_65_W1_P3_66|950.0|1050.0
W5_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.5.1,0.8.2|TWO|W1_P4_50_W1_P4_51|4900.0|5100.0
W5_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.22.1,0.43.2|TWO|W1_P4_13_W1_P4_52|950.0|1050.0
;format is name = range|resolution|delay(ms)|scale factor|relays
[DmmReadVoltage]
;format is name = relays|channelNumber|edge|timePerDivision|timeOffset(S)|triggerLevel|voltageOffset(V)|voltageScale(V)|InputImpedance|Delay After Closing Relays(ms)|ShallImageBeSaved (True or False)|Max trigger Wait Time (ms)
;edge can be FALLING or RISING or HOLDING
[ScopeReadFrequency]
;format is name = relays|channelNumber|edge|timePerDivision|timeOffset(S)|triggerLevel|voltageOffset(V)|voltageScale(V)|InputImpedance|Delay After Closing Relays(ms)|ShallImageBeSaved (True or False)|Max trigger Wait Time (ms)
;edge can be FALLING or RISING or HOLDING
[ScopeReadPulseWidth]

View File

@@ -0,0 +1,681 @@
[GENERAL]
; specify data folder and all subfolders in it
PRIMARY_DRIVE = D:\
SECONDARY_DRIVE = C:\
DATA_BASE_FOLDER = Data_NGSRI
DATA_GENERAL_FOLDER_NAME = General
DATA_GENERAL_TEMP_FOLDER_NAME = Temp
; this is the path where formal ATP runs use to run MTS software
APP_RELEASE_CONTROLLED_FOLDER = Release_NGSRI
LOG_DASHBOARD_APP_PATH = Release_NGSRI\LogDashboard\Raytheon.LogDashboard.exe
; make sure self test is run before powering on UUT
; value: true or false
ENFORCE_CABLE_SELF_TEST_IS_RUN = FALSE
[UUT_INFO]
UUT_IP_ADDRESS = 192.168.1.45
UUT_TEST_PORT_TCP = 65500
[CABLE_ID_RELAYS]
W1_CABLE_PART_NUMBER = W1_CABLE_PART_NUMBER
W1_CABLE_SERIAL_NUMBER = W1_CABLE_SERIAL_NUMBER
W2_CABLE_PART_NUMBER = W2_CABLE_PART_NUMBER
W2_CABLE_SERIAL_NUMBER = W2_CABLE_SERIAL_NUMBER
W3_CABLE_PART_NUMBER = W3_CABLE_PART_NUMBER
W3_CABLE_SERIAL_NUMBER = W3_CABLE_SERIAL_NUMBER
W4_CABLE_PART_NUMBER = W4_CABLE_PART_NUMBER
W4_CABLE_SERIAL_NUMBER = W4_CABLE_SERIAL_NUMBER
W5_CABLE_PART_NUMBER = W5_CABLE_PART_NUMBER
W5_CABLE_SERIAL_NUMBER = W5_CABLE_SERIAL_NUMBER
;=====================================================================================================================
[POLL_RATES]
; seconds
POWER_SUPPLY_LOG_RATE = 1
; seconds
POWER_SUPPLY_READ_RATE = 1
; seconds
PASSTHROUGH_DATA_UPDATE_RATE = 1
;=====================================================================================================================
[FILE_NAMES]
POWER_SUPPLY_LOG_PREFIX = PowerSupplyLog
POWER_SUPPLY_LOG_FILE_EXTENSION = csv
;=====================================================================================================================
[POWER_MODULES_TO_BE_POWERED]
MODULE_1 = P20V
[POWER_MODULES_TO_BE_DISPLAYED]
MODULE_1 = P20V
MODULE_2 = N20V
;=====================================================================================================================
[UART_INFO]
SERIAL_DEVICE_INSTANCE_NAME = SERIAL_COM_PORT_1
;=====================================================================================================================
[PBIT_INFO]
SUCCESSFUL_PBIT_AGGREGATE_VALUE = 0x3F
;=====================================================================================================================
[TestModeMsg]
DATA_1 = TestMode,MODE,SHCK,1
;=====================================================================================================================
[MSFRParameterMsg]
TEST_CASE_1 = Open Loop Polarity - Roll Channel,TestMode,MSFR,1,1,0,0,0,4,1,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,10,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_2 = Open Loop Polarity - Pitch Channel,TestMode,MSFR,1,1,0,0,0,5,1,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,10,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_3 = Open Loop Polarity - Yaw Channel,TestMode,MSFR,1,1,0,0,0,6,1,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,10,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_4 = Open Loop Polarity - Gimbal Channel,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,0.5,0,0.087266463,0.087266463,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_5 = Open Loop Test - Gimbal Stabilized,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_6a = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_6b = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_6c = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_6d = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_6e = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_6f = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_6g = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_6h = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_7a = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_7b = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_7c = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_7d = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_7e = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_7f = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_7g = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_7h = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_8a = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_8b = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_8c = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_8d = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_8e = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_8f = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_8g = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_8h = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_9a = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_9b = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_9c = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_9d = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_9e = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_9f = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_9g = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_9h = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_10a = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_10b = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_10c = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_10d = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_10e = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_10f = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_10g = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_10h = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_11a = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_11b = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_11c = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_11d = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_11e = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_11f = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_11g = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_11h = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_12a = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_12b = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_12c = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_12d = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_12e = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_12f = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_12g = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_12h = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_13a = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_13b = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_13c = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_13d = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_13e = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_13f = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_13g = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_13h = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_14a = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_14b = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_14c = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_14d = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_14e = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_14f = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_14g = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_14h = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_15a = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_15b = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_15c = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_15d = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_15e = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_15f = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_15g = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_15h = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_16a = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_16b = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_16c = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_16d = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_16e = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_16f = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_16g = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_16h = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_17a = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_17b = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_17c = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_17d = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_17e = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_17f = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_17g = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_17h = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_18a = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_18b = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_18c = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_18d = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_18e = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_18f = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_18g = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_18h = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_19a = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_19b = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_19c = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_19d = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_19e = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_19f = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_19g = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_19h = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,90,200,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_20a = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_20b = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_20c = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_20d = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_20e = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_20f = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_20g = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_20h = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_21a = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_21b = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_21c = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_21d = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_21e = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_21f = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_21g = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_21h = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_22a = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_22b = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_22c = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_22d = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_22e = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_22f = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_22g = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_22h = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_23a = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_23b = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_23c = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_23d = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_23e = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_23f = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_23g = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_23h = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_24a = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_24b = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_24c = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_24d = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_24e = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_24f = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_24g = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_24h = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_25a = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_25b = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_25c = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_25d = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_25e = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_25f = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_25g = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_25h = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_26a = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_26b = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_26c = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_26d = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_26e = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_26f = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_26g = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_26h = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_27a = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_27b = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_27c = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_27d = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_27e = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_27f = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_27g = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_27h = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_28a = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_28b = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_28c = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_28d = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_28e = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_28f = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_28g = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_28h = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_29a = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_29b = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_29c = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_29d = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_29e = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_29f = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_29g = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_29h = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_30a = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_30b = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_30c = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_30d = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_30e = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_30f = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_30g = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_30h = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_31a = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_31b = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_31c = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_31d = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_31e = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_31f = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_31g = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_31h = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_32a = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_32b = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_32c = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_32d = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_32e = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_32f = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_32g = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_32h = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,10,180,0,0.008726646,0.000872665,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_33a = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_33b = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_33c = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_33d = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_33e = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_33f = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_33g = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_33h = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,70,150,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_34a = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_34b = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_34c = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_34d = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_34e = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_34f = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_34g = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_34h = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_35a = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_35b = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_35c = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_35d = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_35e = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_35f = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_35g = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_35h = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,60,160,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_36a = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_36b = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_36c = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_36d = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_36e = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_36f = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_36g = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_36h = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,120,500,0,0.000872665,8.73E-05,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_37a = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_37b = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_37c = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_37d = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_37e = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_37f = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_37g = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_37h = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_38a = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_38b = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_38c = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_38d = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_38e = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_38f = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_38g = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_38h = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_39a = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_39b = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_39c = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_39d = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_39e = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_39f = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_39g = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_39h = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,400,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_40a = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_40b = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_40c = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_40d = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_40e = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_40f = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_40g = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_40h = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,40,240,0,0.003490659,0.000698132,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_41a = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_41b = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_41c = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_41d = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_41e = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_41f = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_41g = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_41h = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_42a = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_42b = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_42c = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_42d = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_42e = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_42f = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_42g = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_42h = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_43a = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_43b = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_43c = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_43d = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_43e = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_43f = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_43g = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_43h = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,150,300,0,5,5,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_44a = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_44b = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_44c = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_44d = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_44e = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_44f = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_44g = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_44h = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,2.5,20,90,130,0,0.005585054,0.002792527,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_45a = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_46a = Gain Margin Test - Iso Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_45b = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_46b = Gain Margin Test - Iso Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_45c = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_46c = Gain Margin Test - Iso Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_45d = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_46d = Gain Margin Test - Iso Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_45e = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_46e = Gain Margin Test - Iso Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_45f = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_46f = Gain Margin Test - Iso Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_45g = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_46g = Gain Margin Test - Iso Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_45h = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_46h = Gain Margin Test - Iso Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_47a = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_48a = Gain Margin Test - Iso Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_47b = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_48b = Gain Margin Test - Iso Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_47c = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_48c = Gain Margin Test - Iso Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_47d = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_48d = Gain Margin Test - Iso Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_47e = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_48e = Gain Margin Test - Iso Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_47f = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_48f = Gain Margin Test - Iso Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_47g = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_48g = Gain Margin Test - Iso Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_47h = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_48h = Gain Margin Test - Iso Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_49a = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_50a = Gain Margin Test - Iso Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_49b = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_50b = Gain Margin Test - Iso Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_49c = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_50c = Gain Margin Test - Iso Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_49d = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_50d = Gain Margin Test - Iso Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_49e = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_50e = Gain Margin Test - Iso Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_49f = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_50f = Gain Margin Test - Iso Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_49g = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_50g = Gain Margin Test - Iso Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_49h = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_50h = Gain Margin Test - Iso Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_51a = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_52a = Gain Margin Test - Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_51b = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_52b = Gain Margin Test - Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_51c = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_52c = Gain Margin Test - Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_51d = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_52d = Gain Margin Test - Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_51e = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_52e = Gain Margin Test - Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_51f = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_52f = Gain Margin Test - Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_51g = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_52g = Gain Margin Test - Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_51h = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_52h = Gain Margin Test - Roll - P14 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_53a = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_54a = Gain Margin Test - Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_53b = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_54b = Gain Margin Test - Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_53c = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_54c = Gain Margin Test - Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_53d = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_54d = Gain Margin Test - Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_53e = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_54e = Gain Margin Test - Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_53f = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_54f = Gain Margin Test - Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_53g = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_54g = Gain Margin Test - Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_53h = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_54h = Gain Margin Test - Pitch - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_55a = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_56a = Gain Margin Test - Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_55b = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_56b = Gain Margin Test - Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_55c = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_56c = Gain Margin Test - Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_55d = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_56d = Gain Margin Test - Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_55e = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_56e = Gain Margin Test - Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_55f = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_56f = Gain Margin Test - Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_55g = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_56g = Gain Margin Test - Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_55h = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_56h = Gain Margin Test - Yaw - P11 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,11,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_57a = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_58a = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_57b = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_58b = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_57c = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_58c = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_57d = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_58d = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_57e = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_58e = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_57f = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_58f = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_57g = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_58g = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_57h = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_58h = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_59a = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_60a = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_59b = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_60b = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_59c = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_60c = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_59d = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_60d = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_59e = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_60e = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_59f = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_60f = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_59g = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_60g = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_59h = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_60h = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_61a = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_62a = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_61b = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_62b = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_61c = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_62c = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_61d = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_62d = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_61e = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_62e = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_61f = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_62f = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_61g = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_62g = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_61h = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_62h = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_63a = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_64a = Gain Margin Test - Iso Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_63b = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_64b = Gain Margin Test - Iso Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_63c = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_64c = Gain Margin Test - Iso Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_63d = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_64d = Gain Margin Test - Iso Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_63e = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_64e = Gain Margin Test - Iso Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_63f = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_64f = Gain Margin Test - Iso Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_63g = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_64g = Gain Margin Test - Iso Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_63h = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_64h = Gain Margin Test - Iso Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_65a = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_66a = Gain Margin Test - Iso Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_65b = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_66b = Gain Margin Test - Iso Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_65c = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_66c = Gain Margin Test - Iso Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_65d = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_66d = Gain Margin Test - Iso Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_65e = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_66e = Gain Margin Test - Iso Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_65f = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_66f = Gain Margin Test - Iso Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_65g = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_66g = Gain Margin Test - Iso Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_65h = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_66h = Gain Margin Test - Iso Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_67a = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_68a = Gain Margin Test - Iso Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_67b = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_68b = Gain Margin Test - Iso Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_67c = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_68c = Gain Margin Test - Iso Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_67d = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_68d = Gain Margin Test - Iso Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_67e = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_68e = Gain Margin Test - Iso Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_67f = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_68f = Gain Margin Test - Iso Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_67g = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_68g = Gain Margin Test - Iso Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_67h = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_68h = Gain Margin Test - Iso Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_69a = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_70a = Gain Margin Test - Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_69b = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_70b = Gain Margin Test - Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_69c = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_70c = Gain Margin Test - Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_69d = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_70d = Gain Margin Test - Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_69e = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_70e = Gain Margin Test - Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_69f = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_70f = Gain Margin Test - Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_69g = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_70g = Gain Margin Test - Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_69h = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_70h = Gain Margin Test - Roll - P14 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,14,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_71a = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_72a = Gain Margin Test - Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_71b = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_72b = Gain Margin Test - Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_71c = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_72c = Gain Margin Test - Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_71d = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_72d = Gain Margin Test - Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_71e = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_72e = Gain Margin Test - Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_71f = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_72f = Gain Margin Test - Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_71g = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_72g = Gain Margin Test - Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_71h = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_72h = Gain Margin Test - Pitch - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_73a = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_74a = Gain Margin Test - Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_73b = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_74b = Gain Margin Test - Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_73c = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_74c = Gain Margin Test - Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_73d = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_74d = Gain Margin Test - Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_73e = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_74e = Gain Margin Test - Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_73f = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_74f = Gain Margin Test - Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_73g = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_74g = Gain Margin Test - Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_73h = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_74h = Gain Margin Test - Yaw - P7 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,7,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_75a = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_76a = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_75b = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_76b = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_75c = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_76c = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_75d = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_76d = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_75e = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_76e = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_75f = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_76f = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_75g = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_76g = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_75h = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_76h = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_77a = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_78a = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_77b = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_78b = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_77c = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_78c = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_77d = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_78d = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_77e = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_78e = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_77f = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_78f = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_77g = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_78g = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_77h = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_78h = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_79a = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_80a = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_79b = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_80b = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_79c = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_80c = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_79d = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_80d = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_79e = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_80e = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_79f = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_80f = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_79g = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_80g = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_79h = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_80h = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0

View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<message name="TestModeMsg">
<field name="Header" byte_count="8" type="string" value="TestMode"/>
<field name="messageType" byte_count="4" type="string" value="MODE"/>
<field name="modeType" byte_count="4" type="string" value="MSFR"/>
<field name="configuration" byte_count="1" type="uint8" value="0"/>
</message>
<message name="MSFRParameterMsg">
<field name="Header" byte_count="8" type="string" value="TestMode"/>
<field name="messageType" byte_count="4" type="string" value="MSFR"/>
<field name="testEnable" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testEnableSignalGenerator" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testEnableGainFactor" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testEnableRollFilter" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testEnableLatFilter" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testSignalChannel" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testSignalType" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testRampInitValue" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testHoldFinalValue" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testApplyRateLimit" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testAnalyticRateLimit" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testNumberOfDwells" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testCyclesPerDwell" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testGmtDoubletLength" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testGmtDwellFrames" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testStartDelay" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalDuration" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalStartFrequency" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalEndFrequency" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalBias" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalStartAmplitude" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalEndAmplitude" byte_count="8" type="double" value="NOT_SET"/>
<field name="testPhase" byte_count="8" type="double" value="NOT_SET"/>
<field name="testRateLimit" byte_count="8" type="double" value="NOT_SET"/>
<field name="testGmtDoubletSize" byte_count="8" type="double" value="NOT_SET"/>
<field name="testGmtInitialGain" byte_count="8" type="double" value="NOT_SET"/>
<field name="testRampDownDuration" byte_count="8" type="double" value="NOT_SET"/>
<field name="testRollCompN0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompN1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompN2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompD0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompD1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompD2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassN0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassN1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassN2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassD0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassD1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassD2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testBurnRatio" byte_count="4" type="float" value="NOT_SET"/>
<field name="testAltitude" byte_count="4" type="float" value="NOT_SET"/>
<field name="testMachNumber" byte_count="4" type="float" value="NOT_SET"/>
<field name="testAlpha" byte_count="4" type="float" value="NOT_SET"/>
<field name="testBetaM" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRoll" byte_count="4" type="float" value="NOT_SET"/>
<field name="testP" byte_count="4" type="float" value="NOT_SET"/>
<field name="testAngleControlMode" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testGimbalRollAngle" byte_count="8" type="double" value="NOT_SET"/>
<field name="testGimbalNodAngle" byte_count="8" type="double" value="NOT_SET"/>
<field name="testAngleControlSignalDuration" byte_count="8" type="double" value="NOT_SET"/>
</message>
</root>

View File

@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="Parts">
<key name="Location" value="C:\Program Files (x86)\Raytheon\RINSS\Parts" />
</section>
</IniConfiguration>
<XmlConfigurations>
<XmlConfiguration name="Instruments">
<Instrument>
<Name>UUT_POWER_SUPPLY_SYSTEM_20V</Name>
<Factory>PowerSupplySystemKeysightFactory</Factory>
</Instrument>
<Instrument>
<Name>PICKERING_SWITCH_MATRIX_64X4</Name>
<Factory>SwitchMatrixPickering40xFactory</Factory>
</Instrument>
<Instrument>
<Name>KEYSIGHT_DMM_1</Name>
<Factory>DMMKeysightScpiFactory</Factory>
</Instrument>
</XmlConfiguration>
</XmlConfigurations>
</Configurations>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="KEYSIGHT_DMM_1">
<key name="IP_ADDRESS" value="192.168.1.27" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,56 @@
[SYSTEM]
;system commands
CLEAR_CMD = *CLS
RESET_CMD = *RST
SELFTEST_CMD = *TST?
READ_ERROR_CODE_CMD = SYST:ERR?
REBOOT_CMD = SYST:REB
;panel disable/enable commands
SET_FRONTPANEL_DISABLE_CMD = SYST:COMM:RLST RWL
SET_FRONTPANEL_ENABLE_CMD = SYST:COMM:RLST REM
;watchdog commands
SET_WATCHDOGDELAY_CMD = OUTP:PROT:WDOG:DEL
SET_WATCHDOGON_CMD = OUTP:PROT:WDOG ON
SET_WATCHDOGOFF_CMD = OUTP:PROT:WDOG OFF
;coupling commands
SET_COUPLE_CHANNELS_CMD = OUTP:COUP:CHAN
SET_COUPLE_ON_CMD = OUTP:COUP ON
SET_COUPLE_OUTPUT_PROTECT_ON_CMD = OUTP:PROT:COUP ON
QUERY_COUPLE_CHANNELS = OUTP:COUP:CHAN?
QUERY_COUPLE_STATE = OUTP:COUP?
; Grouping Commands
SET_GROUP_DEFINE_CMD = SYST:GRO:DEF
UNGROUP_ALL_CHANNELS_CMD = SYST:GRO:DEL:ALL
QUERY_GROUP_CHANNELS = SYST:GRO:CAT?
[MODULE]
; current commands
SET_INRUSH_DELAY_CMD = CURR:PROT:DEL
READ_INRUSH_DELAY_CMD = CURR:PROT:DEL?
READ_CURRENT_CMD = MEAS:CURR?
SET_OCP_CMD = CURR:LEV
READ_OCP_CMD = CURR:LEV?
SET_OCP_ON_CMD = CURR:PROT:STAT ON
; voltage commands
SET_OVP_CMD = VOLT:PROT
SET_VOLTAGE_SLEW_CMD = VOLT:SLEW
SET_VOLTAGE_SETPOINT_CMD = VOLT:LEV
SET_CONSTANT_VOLTAGE_CMD = STAT:OPER:ENAB 1
READ_VOLTAGE_CMD = MEAS:VOLT?
READ_VOLTAGE_SETPOINT_CMD = VOLT?
READ_OVP_CMD = VOLT:PROT?
READ_VOLTAGE_SLEW_CMD = VOLT:SLEW?
; set output commands
SET_OUTPUT_DISABLE_CMD = OUTP OFF
SET_OUTPUT_ENABLE_CMD = OUTP ON
; query status
READ_OUTPUT_STATUS_CMD = OUTP?
READ_ERROR_STATUS_CMD = SYST:ERR?
READ_PROTECTION_STATUS_CMD = STAT:QUES:COND?

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_SWITCH_MATRIX_64X4">
<key name="LXI_IP_ADDRESS" value="192.168.1.15" />
<key name="DEVICE_NUMBER" value="13" />
<key name="BUS_NUMBER" value="3" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,32 @@
; ===============================================================================================================
; This name must match the name specified in the Instrument.xml that is associated with the power supply system
[UUT_POWER_SUPPLY_SYSTEM_20V]
SCPI_DEF_FILEPATH = KEYSIGHT_POWER_SUPPLY_SCPI_DEF.ini
ETHERNET_ADDRESS = 192.168.1.19
ETHERNET_PORT = 5025
MODULE_DEFINITION = P20V, N20V
; 0 means no coupled modules.
; couple means turning on/off any one of the module, turns on/off the others
COUPLED_MODULES = P20V, N20V
; 0 means no grouped modules.
; group means turning combining 2 or more modules thus acting as one module
GROUPED_MODULES = 0
INTERFACE = ETHERNET
[UUT_POWER_SUPPLY_SYSTEM_20V.P20V]
INDEX = 1
OCP = 8.5
OVP = 25.0
VOLTAGE_SETPOINT = 20.0
MIN_VOLTAGE = 16.0
MAX_VOLTAGE = 24.0
[UUT_POWER_SUPPLY_SYSTEM_20V.N20V]
INDEX = 2
OCP = 8.5
OVP = 25.0
VOLTAGE_SETPOINT = 20.0
MIN_VOLTAGE = 16.0
MAX_VOLTAGE = 24.0

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="UUT_POWER_SUPPLY_SYSTEM_20V">
<key name="POWER_SUPPLY_SYSTEM_DEF_FILEPATH" value="POWER_SUPPLY_SYSTEMS.ini" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,153 @@
;format is name = range|resolution|delay(ms)|scale factor|relays|voltRange|numReads
;Use device number to identifiy switch card... see switch configuration
[DmmReadFrequency]
;format is signal_name = range|resolution|min_delay(ms)|max_delay(ms)|scale factor|relays|type|cable, connector and pin id|lower_limit|upper_limit
;Type is TWO or FOUR for two wire and four wire measurements
;Relay Format: [Card_Name]-[Relay_Channel#],[Card_Name]-[Path1],[Path2]
; [Card_Name] - must match the name of the switch card defined in the Instrument.xml
; [Path]
; For a simple relay switch: [channel_id]
; For a 2-d switch matrix: [subUnit].[channel_x].[channel_y]
;Cable and Pin Id Format: [Cable_Id]_[Connecto_Id][Pin_Id]_[Cable_Id]_[Connector_Id]_[Pin_Id]
[DmmReadResistance]
; Cable IDs
W1_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.59.1,0.60.2|TWO|W1_P1_J13_W1_P1_J14|950.0|1100.0
W1_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.63.1,0.64.2|TWO|W1_P1_J15_W1_P1_J16|950.0|1050.0
W2_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.59.1,0.60.2|TWO|W1_P1_J13_W1_P1_J14|1950.0|2100.0
W2_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.63.1,0.64.2|TWO|W1_P1_J15_W1_P1_J16|950.0|1050.0
W3_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.57.1,0.58.2|TWO|W1_P3_63_W1_P3_64|2900.0|3100.0
W3_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.61.1,0.62.2|TWO|W1_P3_65_W1_P3_66|950.0|1050.0
W4_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.57.1,0.58.2|TWO|W1_P3_63_W1_P3_64|3900.0|4100.0
W4_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.61.1,0.62.2|TWO|W1_P3_65_W1_P3_66|950.0|1050.0
W5_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.5.1,0.8.2|TWO|W1_P4_50_W1_P4_51|4900.0|5100.0
W5_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.22.1,0.43.2|TWO|W1_P4_13_W1_P4_52|950.0|1050.0
; W3 Continuity
W3_AUD_GDNC_FILTER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.16.2|TWO|W1_P3_52_W1_P4_4|0.0|5.0
W3_TIMER_START = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.39.1,0.56.2|TWO|W1_P3_5_W1_P4_7|0.0|5.0
W3_SIGNAL_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.56.1,0.19.2|TWO|W1_P3_7_W1_P4_8|0.0|5.0
W3_GEU_TO_EMULATOR_UART = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.55.1,0.20.2|TWO|W1_P3_9_W1_P4_9|0.0|5.0
W3_TIMER_START_TO_SIGNAL_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.39.1,0.19.2|TWO|W1_P3_5_W1_P4_8|0.0|5.0
; W3 Resistance
W3_P20VDC_TEST_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.47.1,0.1.2|TWO|W1_P4_71_W1_P4_1|70.0|90.0
W3_N20VDC_TEST_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.48.1,0.1.2|TWO|W1_P4_72_W1_P4_1|70.0|90.0
W3_P20VDC_TEST_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.47.1,0.48.2|TWO|W1_P4_71_W1_P4_72|150.0|170.0
W3_BATTERY_ACTIVATE_P3_TO_N20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.9.1,0.26.2|TWO|W1_P4_18_W1_P4_17|70.0|90.0
W3_BATTERY_ACTIVATE_P3_TO_N20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.9.1,0.29.2|TWO|W1_P4_18_W1_P4_21|70.0|90.0
W3_BATTERY_ACTIVATE_P3_TO_N20VDC_TEST_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.9.1,0.30.2|TWO|W1_P4_18_W1_P4_22|70.0|90.0
W3_BATTERY_ACTIVATE_P3_TO_P20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.9.1,0.32.2|TWO|W1_P4_18_W1_P4_24|70.0|90.0
W3_BATTERY_ACTIVATE_P3_TO_P20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.9.1,0.35.2|TWO|W1_P4_18_W1_P4_28|70.0|90.0
; W3 AUD_GDNC_FILTER Isolation checks
W3_AUD_GDNC_FILTER_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.47.2|TWO|W1_P3_52_W1_P4_71|9.9E+30|9.9E+40
W3_AUD_GDNC_FILTER_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.26.2|TWO|W1_P3_52_W1_P4_72|9.9E+30|9.9E+40
W3_AUD_GDNC_FILTER_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.1.2|TWO|W1_P3_52_W1_P4_1|9.9E+30|9.9E+40
; W3 SIGNAL_RETURN Isolation checks
; DO NOT perform isolation checks on signals that are tied to SIGNAL_RETURN
; Signals tied to SIGNAL_RETURN: TIMER START
W3_SIGNAL_RETURN_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.56.1,0.47.2|TWO|W1_P3_7_W1_P4_71|9.9E+30|9.9E+40
W3_SIGNAL_RETURN_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.56.1,0.48.2|TWO|W1_P3_7_W1_P4_72|9.9E+30|9.9E+40
W3_SIGNAL_RETURN_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.56.1,0.1.2|TWO|W1_P3_7_W1_P4_1|9.9E+30|9.9E+40
; W3 GEU_TO_EMULATOR_UART Isolation checks
W3_GEU_TO_EMULATOR_UART_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.55.1,0.47.2|TWO|W1_P3_9_W1_P4_71|9.9E+30|9.9E+40
W3_GEU_TO_EMULATOR_UART_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.55.1,0.48.2|TWO|W1_P3_9_W1_P4_72|9.9E+30|9.9E+40
W3_GEU_TO_EMULATOR_UART_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.55.1,0.1.2|TWO|W1_P3_9_W1_P4_1|9.9E+30|9.9E+40
; W3 N20V_EXTERNAL Isolation checks
W3_N20V_EXTERNAL_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.14.1,0.47.2|TWO|W1_P4_2_W1_P4_71|9.9E+30|9.9E+40
W3_N20V_EXTERNAL_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.14.1,0.48.2|TWO|W1_P4_2_W1_P4_72|9.9E+30|9.9E+40
W3_N20V_EXTERNAL_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.14.1,0.1.2|TWO|W1_P4_2_W1_P4_1|9.9E+30|9.9E+40
; W3 P20V_EXTERNAL Isolation checks
W3_P20V_EXTERNAL_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.15.1,0.47.2|TWO|W1_P4_3_W1_P4_71|9.9E+30|9.9E+40
W3_P20V_EXTERNAL_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.15.1,0.48.2|TWO|W1_P4_3_W1_P4_72|9.9E+30|9.9E+40
W3_P20V_EXTERNAL_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.15.1,0.1.2|TWO|W1_P4_3_W1_P4_1|9.9E+30|9.9E+40
; W3 ARM_IFC_SQUIB_P Isolation checks
W3_ARM_IFC_SQUIB_P_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.11.1,0.47.2|TWO|W1_P4_32_W1_P4_71|9.9E+30|9.9E+40
W3_ARM_IFC_SQUIB_P_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.11.1,0.48.2|TWO|W1_P4_32_W1_P4_72|9.9E+30|9.9E+40
W3_ARM_IFC_SQUIB_P_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.11.1,0.1.2|TWO|W1_P4_32_W1_P4_1|9.9E+30|9.9E+40
; W3 ARM_IFC_SQUIB_N Isolation checks
W3_ARM_IFC_SQUIB_N_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.12.1,0.47.2|TWO|W1_P4_67_W1_P4_71|9.9E+30|9.9E+40
W3_ARM_IFC_SQUIB_N_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.12.1,0.48.2|TWO|W1_P4_67_W1_P4_72|9.9E+30|9.9E+40
W3_ARM_IFC_SQUIB_N_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.12.1,0.1.2|TWO|W1_P4_67_W1_P4_1|9.9E+30|9.9E+40
; W3 BATTERY_ACTIVATE_P3 Isolation checks
W3_BATTERY_ACTIVATE_P3_TO_BATTERY_ACTIVATE_P2 = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.9.1,0.3.2|TWO|W1_P4_18_W1_P4_7|9.9E+30|9.9E+40
; W3 POWER_RETURN Isolation checks
W3_POWER_RETURN_TO_BATTERY_ACTIVATE_P2 = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.1.1,0.3.2|TWO|W1_P4_1_W1_P4_7|9.9E+30|9.9E+40
W3_POWER_RETURN_TO_LAUNCHER_INTERLOCK = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.1.1,0.42.2|TWO|W1_P4_1_W1_P4_11|9.9E+30|9.9E+40
W3_POWER_RETURN_TO_FUZE_INTERLOCK = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.1.1,0.7.2|TWO|W1_P4_1_W1_P4_12|9.9E+30|9.9E+40
; W3 ETH_SPE_P Isolation checks
W3_ETH_SPE_P_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.40.1,0.47.2|TWO|W1_P4_10_W1_P4_71|9.9E+30|9.9E+40
W3_ETH_SPE_P_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.40.1,0.48.2|TWO|W1_P4_10_W1_P4_72|9.9E+30|9.9E+40
W3_ETH_SPE_P_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.40.1,0.1.2|TWO|W1_P4_10_W1_P4_1|9.9E+30|9.9E+40
; W3 ETH_SPE_N Isolation checks
W3_ETH_SPE_N_TO_P20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.23.1,0.47.2|TWO|W1_P4_14_W1_P4_71|9.9E+30|9.9E+40
W3_ETH_SPE_N_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.23.1,0.48.2|TWO|W1_P4_14_W1_P4_72|9.9E+30|9.9E+40
W3_ETH_SPE_N_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.23.1,0.1.2|TWO|W1_P4_14_W1_P4_1|9.9E+30|9.9E+40
; W4 Continuity
W4_LAUNCH_MOTOR_INIT_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.41.1,0.1.2|TWO|W1_P4_16_W1_P4_1|0.0|5.0
W4_LAUNCH_MOTOR_INIT_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.52.1,0.1.2|TWO|W1_P4_25_W1_P4_1|0.0|5.0
W4_BATTERY_INIT_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.36.1,0.1.2|TWO|W1_P4_29_W1_P4_1|0.0|5.0
W4_BATTERY_INIT_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.13.1,0.1.2|TWO|W1_P4_33_W1_P4_1|0.0|5.0
W4_LIE_N20V = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.19.1,0.48.2|TWO|W1_P4_8_W1_P4_72|0.0|5.0
W4_CAGE_COIL_OUT = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.32.2|TWO|W1_P3_51_W1_P4_24|0.0|5.0
W4_AUD_GDNC_FILTER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.33.2|TWO|W1_P3_52_W1_P4_26|0.0|5.0
W4_AUDIO_OUTPUT_LOW = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.24.2|TWO|W1_P3_8_W1_P4_15|0.0|5.0
; W4 Resistance
W4_P20VDC_EXTERNAL_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.47.1,0.1.2|TWO|W1_P4_71_W1_P4_1|70.0|90.0
W4_N20VDC_EXTERNAL_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.48.1,0.1.2|TWO|W1_P4_72_W1_P4_1|70.0|90.0
W4_P20VDC_TEST_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.47.1,0.48.2|TWO|W1_P4_71_W1_P4_72|150.0|170.0
; W4 CAGE_COIL_OUT Isolation checks
W4_CAGE_COIL_OUT_TO_P20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.47.2|TWO|W1_P3_51_W1_P4_71|9.9E+30|9.9E+40
W4_CAGE_COIL_OUT_TO_N20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.48.2|TWO|W1_P3_51_W1_P4_72|9.9E+30|9.9E+40
W4_CAGE_COIL_OUT_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.1.2|TWO|W1_P3_51_W1_P4_1|9.9E+30|9.9E+40
; W4 AUD_GDNC_FILTER Isolation checks
W4_AUD_GDNC_FILTER_TO_P20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.47.2|TWO|W1_P3_52_W1_P4_71|9.9E+30|9.9E+40
W4_AUD_GDNC_FILTER_TO_N20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.48.2|TWO|W1_P3_52_W1_P4_72|9.9E+30|9.9E+40
W4_AUD_GDNC_FILTER_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.1.2|TWO|W1_P3_52_W1_P4_1|9.9E+30|9.9E+40
; W4 AUDIO_OUTPUT_LOW Isolation checks
W4_AUDIO_OUTPUT_LOW_TO_P20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.47.2|TWO|W1_P3_8_W1_P4_71|9.9E+30|9.9E+40
W4_AUDIO_OUTPUT_LOW_TO_N20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.48.2|TWO|W1_P3_8_W1_P4_72|9.9E+30|9.9E+40
W4_AUDIO_OUTPUT_LOW_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.1.2|TWO|W1_P3_8_W1_P4_1|9.9E+30|9.9E+40
; W4 AUDIO_OUTPUT_HIGH Isolation checks
W4_AUDIO_OUTPUT_HIGH_TO_P20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.21.1,0.47.2|TWO|W1_P3_4_W1_P4_71|9.9E+30|9.9E+40
W4_AUDIO_OUTPUT_HIGH_TO_N20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.21.1,0.48.2|TWO|W1_P3_4_W1_P4_72|9.9E+30|9.9E+40
W4_AUDIO_OUTPUT_HIGH_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.21.1,0.1.2|TWO|W1_P3_4_W1_P4_1|9.9E+30|9.9E+40
; W4 ETH_SPE_P Isolation checks
W4_ETH_SPE_P_TO_P20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.39.1,0.47.2|TWO|W1_P4_5_W1_P4_71|9.9E+30|9.9E+40
W4_ETH_SPE_P_TO_N20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.39.1,0.48.2|TWO|W1_P4_5_W1_P4_72|9.9E+30|9.9E+40
W4_ETH_SPE_P_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.39.1,0.1.2|TWO|W1_P4_5_W1_P4_1|9.9E+30|9.9E+40
; W4 ETH_SPE_N Isolation checks
W4_ETH_SPE_N_TO_P20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.18.1,0.47.2|TWO|W1_P4_6_W1_P4_71|9.9E+30|9.9E+40
W4_ETH_SPE_N_TO_N20VDC_EXTERNAL = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.18.1,0.48.2|TWO|W1_P4_6_W1_P4_72|9.9E+30|9.9E+40
W4_ETH_SPE_N_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|1500|1|PICKERING_SWITCH_MATRIX_64X4:0.18.1,0.1.2|TWO|W1_P4_6_W1_P4_1|9.9E+30|9.9E+40
;format is name = range|resolution|delay(ms)|scale factor|relays
[DmmReadVoltage]
;format is name = relays|channelNumber|edge|timePerDivision|timeOffset(S)|triggerLevel|voltageOffset(V)|voltageScale(V)|InputImpedance|Delay After Closing Relays(ms)|ShallImageBeSaved (True or False)|Max trigger Wait Time (ms)
;edge can be FALLING or RISING or HOLDING
[ScopeReadFrequency]
;format is name = relays|channelNumber|edge|timePerDivision|timeOffset(S)|triggerLevel|voltageOffset(V)|voltageScale(V)|InputImpedance|Delay After Closing Relays(ms)|ShallImageBeSaved (True or False)|Max trigger Wait Time (ms)
;edge can be FALLING or RISING or HOLDING
[ScopeReadPulseWidth]

View File

@@ -0,0 +1,149 @@
[GENERAL]
; specify data folder and all subfolders in it
PRIMARY_DRIVE = D:\
SECONDARY_DRIVE = C:\
DATA_BASE_FOLDER = Data_NGSRI
DATA_GENERAL_FOLDER_NAME = General
DATA_GENERAL_TEMP_FOLDER_NAME = Temp
; this is the path where formal ATP runs use to run MTS software
APP_RELEASE_CONTROLLED_FOLDER = Release_NGSRI
LOG_DASHBOARD_APP_PATH = Release_NGSRI\LogDashboard\Raytheon.LogDashboard.exe
[CABLE_ID_RELAYS]
W1_CABLE_PART_NUMBER = W1_CABLE_PART_NUMBER
W1_CABLE_SERIAL_NUMBER = W1_CABLE_SERIAL_NUMBER
W2_CABLE_PART_NUMBER = W2_CABLE_PART_NUMBER
W2_CABLE_SERIAL_NUMBER = W2_CABLE_SERIAL_NUMBER
W3_CABLE_PART_NUMBER = W3_CABLE_PART_NUMBER
W3_CABLE_SERIAL_NUMBER = W3_CABLE_SERIAL_NUMBER
W4_CABLE_PART_NUMBER = W4_CABLE_PART_NUMBER
W4_CABLE_SERIAL_NUMBER = W4_CABLE_SERIAL_NUMBER
W5_CABLE_PART_NUMBER = W5_CABLE_PART_NUMBER
W5_CABLE_SERIAL_NUMBER = W5_CABLE_SERIAL_NUMBER
;=====================================================================================================================
[POLL_RATES]
; seconds
POWER_SUPPLY_LOG_RATE = 1
; seconds
POWER_SUPPLY_READ_RATE = 1
; seconds
PASSTHROUGH_DATA_UPDATE_RATE = 1
;=====================================================================================================================
[FILE_NAMES]
POWER_SUPPLY_LOG_PREFIX = PowerSupplyLog
POWER_SUPPLY_LOG_FILE_EXTENSION = csv
;=====================================================================================================================
[POWER_MODULES_TO_BE_POWERED]
MODULE_1 = P20V
[POWER_MODULES_TO_BE_DISPLAYED]
MODULE_1 = P20V
MODULE_2 = N20V
;=====================================================================================================================
[W3_STTO]
R01 = W3_AUD_GDNC_FILTER
R02 = W3_TIMER_START
R03 = W3_SIGNAL_RETURN
R04 = W3_GEU_TO_EMULATOR_UART
R05 = W3_TIMER_START_TO_SIGNAL_RETURN
; W3 Resistance
R06 = W3_P20VDC_TEST_TO_POWER_RETURN
R07 = W3_N20VDC_TEST_TO_POWER_RETURN
R08 = W3_P20VDC_TEST_TO_N20VDC_TEST
R09 = W3_BATTERY_ACTIVATE_P3_TO_N20VDC_TEST_1
R10 = W3_BATTERY_ACTIVATE_P3_TO_N20VDC_TEST_2
R11 = W3_BATTERY_ACTIVATE_P3_TO_N20VDC_TEST_3
R12 = W3_BATTERY_ACTIVATE_P3_TO_P20VDC_TEST_1
R13 = W3_BATTERY_ACTIVATE_P3_TO_P20VDC_TEST_2
; W3 AUD_GDNC_FILTER Isolation checks
R14 = W3_AUD_GDNC_FILTER_TO_P20VDC_TEST
R15 = W3_AUD_GDNC_FILTER_TO_N20VDC_TEST
R16 = W3_AUD_GDNC_FILTER_TO_POWER_RETURN
; W3 SIGNAL_RETURN Isolation checks
R17 = W3_SIGNAL_RETURN_TO_P20VDC_TEST
R18 = W3_SIGNAL_RETURN_TO_N20VDC_TEST
R19 = W3_SIGNAL_RETURN_TO_POWER_RETURN
; W3 GEU_TO_EMULATOR_UART Isolation checks
R20 = W3_GEU_TO_EMULATOR_UART_TO_P20VDC_TEST
R21 = W3_GEU_TO_EMULATOR_UART_TO_N20VDC_TEST
R22 = W3_GEU_TO_EMULATOR_UART_TO_POWER_RETURN
; W3 N20V_EXTERNAL Isolation checks
R23 = W3_N20V_EXTERNAL_TO_P20VDC_TEST
R24 = W3_N20V_EXTERNAL_TO_N20VDC_TEST
R25 = W3_N20V_EXTERNAL_TO_POWER_RETURN
; W3 P20V_EXTERNAL Isolation checks
R26 = W3_P20V_EXTERNAL_TO_P20VDC_TEST
R27 = W3_P20V_EXTERNAL_TO_N20VDC_TEST
R28 = W3_P20V_EXTERNAL_TO_POWER_RETURN
; W3 ARM_IFC_SQUIB_P Isolation checks
R29 = W3_ARM_IFC_SQUIB_P_TO_P20VDC_TEST
R30 = W3_ARM_IFC_SQUIB_P_TO_N20VDC_TEST
R31 = W3_ARM_IFC_SQUIB_P_TO_POWER_RETURN
; W3 ARM_IFC_SQUIB_N Isolation checks
R32 = W3_ARM_IFC_SQUIB_N_TO_P20VDC_TEST
R33 = W3_ARM_IFC_SQUIB_N_TO_N20VDC_TEST
R34 = W3_ARM_IFC_SQUIB_N_TO_POWER_RETURN
; W3 BATTERY_ACTIVATE_P3 Isolation checks
R35 = W3_BATTERY_ACTIVATE_P3_TO_BATTERY_ACTIVATE_P2
; W3 POWER_RETURN Isolation checks
R36 = W3_POWER_RETURN_TO_BATTERY_ACTIVATE_P2
R37 = W3_POWER_RETURN_TO_LAUNCHER_INTERLOCK
R38 = W3_POWER_RETURN_TO_FUZE_INTERLOCK
;=====================================================================================================================
[W4_STTO]
R01 = W4_LAUNCH_MOTOR_INIT_1
R02 = W4_LAUNCH_MOTOR_INIT_2
R03 = W4_BATTERY_INIT_1
R04 = W4_BATTERY_INIT_2
R05 = W4_LIE_N20V
R06 = W4_CAGE_COIL_OUT
R07 = W4_AUD_GDNC_FILTER
R08 = W4_AUDIO_OUTPUT_LOW
; W4 Resistance
R09 = W4_P20VDC_EXTERNAL_TO_POWER_RETURN
R10 = W4_N20VDC_EXTERNAL_TO_POWER_RETURN
R11 = W4_P20VDC_TEST_TO_N20VDC_TEST
; W4 CAGE_COIL_OUT Isolation checks
R12 = W4_CAGE_COIL_OUT_TO_P20VDC_EXTERNAL
R13 = W4_CAGE_COIL_OUT_TO_N20VDC_EXTERNAL
R14 = W4_CAGE_COIL_OUT_TO_POWER_RETURN
; W4 AUD_GDNC_FILTER Isolation checks
R15 = W4_AUD_GDNC_FILTER_TO_P20VDC_EXTERNAL
R16 = W4_AUD_GDNC_FILTER_TO_N20VDC_EXTERNAL
R17 = W4_AUD_GDNC_FILTER_TO_POWER_RETURN
; W4 AUDIO_OUTPUT_LOW Isolation checks
R18 = W4_AUDIO_OUTPUT_LOW_TO_P20VDC_EXTERNAL
R19 = W4_AUDIO_OUTPUT_LOW_TO_N20VDC_EXTERNAL
R20 = W4_AUDIO_OUTPUT_LOW_TO_POWER_RETURN
; W4 AUDIO_OUTPUT_HIGH Isolation checks
R21 = W4_AUDIO_OUTPUT_HIGH_TO_P20VDC_EXTERNAL
R22 = W4_AUDIO_OUTPUT_HIGH_TO_N20VDC_EXTERNAL
R23 = W4_AUDIO_OUTPUT_HIGH_TO_POWER_RETURN

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">
<!--
See http://nlog-project.org/wiki/Configuration_file
for information on customizing logging rules and outputs.
-->
<!-- add your targets here -->
<targets>
<default-wrapper xsi:type="AsyncWrapper" batchSize="1000" overflowAction="Grow" timeToSleepBetweenBatches="1"/>
<target type="FallbackGroup" name="FusionLogging" returnToFirstOnSuccess="true">
<target type="File" name="FileBackup" fileName="${specialFolder:CommonApplicationData}/Raytheon/logs/${shortdate}/${logger}.log" layout="${longdate} | ${logger} | ${message} ${exception}"/>
<target type="File" name="LocalFileBackup" fileName="${basedir}/logs/${shortdate}/${logger}.log" layout="${longdate} | ${logger} | ${message} ${exception}"/>
</target>
<target name="logDashboard" type="Chainsaw" address="udp://127.0.0.1:7777" />
<target xsi:type="File" name="logFiles" fileName="${specialfolder:folder=CommonApplicationData}/Raytheon/logs/${shortdate}/${logger:fsNormalize=true}.log" layout="${log4jxmlevent}" />
<target xsi:type="File" name="RunFile" filename="NLog\${shortdate}\nlog_${processinfo:StartTime:format=ddMMyyyy_HHmmss:cached=true}.log" layout="${log4jxmlevent}" />
<target name="console" type="ColoredConsole" layout="${longdate} | ${logger} | ${message} ${exception}"/>
<target name="blackHole" xsi:type="Null" />
</targets>
<!-- add your logging rules here
Log level (lowest to highest):
1. TRACE
2. DEBUG
3. INFO
4. WARN
5. ERROR
6. FATAL
-->
<rules>
<!-- Enable/Disable log level here
To Disable a log level, set "enable" attribute to true
To Enable a log level, set "enable" attribute to false -->
<logger levels="Trace" name="*" writeTo="blackHole" final="true" enabled="false" />
<logger levels="Info" name="*" writeTo="blackHole" final="true" enabled="false" />
<logger levels="Debug" name="*" writeTo="blackHole" final="true" enabled="false" />
<!-- ======================================= -->
<logger name="*" minlevel="Trace" writeTo="RunFile,console,LogDashboard" />
</rules>
</nlog>

View File

@@ -0,0 +1,23 @@
[GENERAL]
; file names
PROGRAM_SPECIFIC_CONFIG_FILE_NAME = ProgramSpecific.ini
SWITCH_MEASUREMENT_MANAGER_CONFIG_FILE_NAME = SwitchMeasurementManager.ini
COE_MEASUREMENT_MANAGER_CONFIG_FILE_NAME = CoeMeasurementManager.ini
UUT_TEST_MESSAGES_CONFIG_FILE_NAME = UutTestMessages.xml
CABLE_SELF_TEST_RUN_LOG_FILE_NAME = Cable_SelfTest_Run_Log.xml
TEST_RUN_LOG_FILE_NAME = Test_Run_Log.xml
; file name prefix
NLOG_FILE_NAME_PREFIX = Mts
; folder names
NLOG_FOLDER_NAME = _NLog
TESTSTAND_FOLDER_NAME = _TestStand
HARDWARE_CONFIG_FOLDER_NAME = Hardware
SIM_CONFIG_FOLDER_NAME = Sim
INSTRUMENT_CONFIG_FOLDER_NAME = Instruments
MEASUREMENT_CONFIG_FOLDER_NAME = Measurements
PDEL_FOLDER_NAME = PDEL
; teststand variable names
DESTINATION_TEST_REPORT_PATH_VAR_NAME = DestinationTestReportPath

View File

@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="Parameters">
<!-- value attribute: UDP or TCP -->
<!-- if UDP: all transactions occur in UDP -->
<!-- if TCP:
1. Connection and keep-alive transactions occur in TCP
2. Message subscription occurs in UDP
2. COE messagining occur in TCP or UDP depending on TCP_SELECT_VALUE
-->
<key name="DriverType" value="TCP" />
<key name="MaxMessageSize" value="4096" />
<key name="EPQueueDepth" value="50" />
<key name="CheckForMessageIntervalMs" value="10" />
<key name="AlwaysSendDefaults" value="True" />
</section>
<section name="ROUTER_CONFIG">
<key name="NODE_ID" value="0" />
<key name="DISPLAY_DEBUG_STATE" value="0" />
<key name="DISPLAY_DEBUG_LABEL_MESSAGE" value="0" />
<key name="DISPLAY_DEBUG_BRIDGE_REGISTRATION" value="0" />
<key name="DISPLAY_DEBUG_ROUTER_DATABASE" value="0" />
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
<key name="BUFFER_SIZE" value="4096" />
<key name="ENABLE_REGISTRATION_MESSAGES" value="1" />
<key name="THREAD_STACK_SIZE" value="16384" />
<key name="TRANSMIT_OPTIONS" value="0" />
</section>
<section name="ROUTER_PROTOCOL_CONFIG">
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
<key name="THREAD_STACK_SIZE" value="16384" />
</section>
<section name="ROUTER_BUFFER_POOLS">
<key name="POOL_ENTRY" value="100,128|50,256|50,1024|50,8192|5,65535" />
</section>
<section name="BASIC_REGISTRATION_CONFIG">
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_SEND_BUFFER" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
<key name="DISPLAY_DEBUG_RECV_BUFFER" value="0" />
<key name="DISPLAY_DEBUG_STATE" value="0" />
<key name="DISPLAY_DEBUG_PING_SEND" value="0" />
<key name="DISPLAY_DEBUG_PING_RECV" value="0" />
<key name="THREAD_STACK_SIZE" value="16384" />
</section>
<section name="UDP_MEDIA_BINDING_CONFIG">
<key name="LOCAL_IP_ADDRESS" value="127.0.0.1" />
<key name="REMOTE_IP_ADDRESS" value="127.0.0.1" />
<key name="LOCAL_SEND_PORT" value="32011" />
<key name="LOCAL_RECV_PORT" value="32021" />
<key name="REMOTE_SEND_PORT" value="32010" />
<key name="REMOTE_RECV_PORT" value="32020" />
<key name="RECV_TIMEOUT" value="200" />
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
<key name="MTU_SIZE" value="1472" />
<key name="THREAD_STACK_SIZE" value="16384" />
<key name="THREAD_NAME" value="UDP_MB_RCV" />
</section>
<section name="TCP_MEDIA_BINDING_CONFIG">
<key name="SERVER_ADDRESS" value="127.0.0.1:9990" />
<key name="LOCAL_PORT" value="9991" />
<key name="NUM_PORTS" value="32" />
<key name="NUM_DYNAMIC_NODES" value="32" />
<key name="UDP_TX_BUFFER_SIZE" value="32768" />
<key name="UDP_RX_BUFFER_SIZE" value="32768" />
<key name="TCP_TX_BUFFER_SIZE" value="32768" />
<key name="TCP_RX_BUFFER_SIZE" value="32768" />
<key name="PACKET_SIZE" value="5128" />
<!-- When using TCP binding, COE unmanaged library opens both TCP and UDP ports.
Connection and keep alive is done through TCP. COE messaging can be done
on TCP or UDP. Set TCP_SELECT_VALUE = 1 forces COE messaging through TCP.
Set TCP_SELECT_VALUE = 0 forces COE messaging through UDP -->
<key name="TCP_SELECT_VALUE" value="0" />
<key name="DISABLE_NAG_DELAY" value="1" />
<key name="TIMER_RATE" value="1000" />
<key name="CONNECT_KA_RATE" value="1" />
<key name="RECV_KA_RATE" value="0" />
<key name="SERVER_CONNECT_RATE" value="1" />
<key name="RECV_THREAD_STACK_SIZE" value="16384" />
<key name="RECV_THREAD_PRIORITY" value="0" />
<key name="RECV_THREAD_AFFINITY" value="0" />
<key name="DISPLAY_DEBUG_SEND" value="1" />
<key name="DISPLAY_DEBUG_SEND_BUFFER" value="1" />
<key name="DISPLAY_DEBUG_UDP_RECV" value="1" />
<key name="DISPLAY_DEBUG_UDP_RECV_BUFFER" value="1" />
<key name="DISPLAY_DEBUG_TCP_RECV" value="1" />
<key name="DISPLAY_DEBUG_TCP_RECV_BUFFER" value="1" />
<key name="DISPLAY_DEBUG_RECV" value="1" />
<key name="DISPLAY_DEBUG_RECV_BUFFER" value="1" />
</section>
<section name="SERIAL_MEDIA_BINDING_CONFIG">
<key name="DEVICE_NAME" value="COM1" />
<key name="DATA_BITS" value="8" />
<key name="STOP_BITS" value="1" />
<key name="PARITY" value="0" />
<key name="FLOW_CONTROL" value="0" />
<key name="MTU_SIZE" value="256" />
<key name="RECV_PROCESSING_DELAY" value="100" />
<key name="DISPLAY_DEBUG_SEND" value="0" />
<key name="DISPLAY_DEBUG_RECV" value="0" />
</section>
</IniConfiguration>
<XmlConfigurations>
<!-- Every time any message comes in, we receive a notification. If high rate message comes in,
there will be too many notifications of "Message Received..." Let's slow it down" -->
<XmlConfiguration name="IncomingMessageNotificationIntervalInSec">10</XmlConfiguration>
<!-- Each incoming message is assigned a queue. This specifies the max queue size for each message -->
<XmlConfiguration name="MaxQueueSizePerResponseMsg">100</XmlConfiguration>
<XmlConfiguration name="CoeXmlFiles">
<FilePaths>
<FilePath>./CoeXmlFiles/NGSRI/GimbalMsgs.xml</FilePath>
<FilePath>./CoeXmlFiles/NGSRI/NgsriUmbilicalMsgs.xml</FilePath>
<FilePath>./CoeXmlFiles/NGSRI/NgsriMissionManagerMsgs.xml</FilePath>
<FilePath>./CoeXmlFiles/NGSRI/NgsriFirmwareMsg.xml</FilePath>
</FilePaths>
</XmlConfiguration>
<!-- Specify all the messages we're interested in listening to -->
<XmlConfiguration name="ResponseMessageIds">
<ResponseLabels>
<ResponseLabel>MissionManagerMsgLL</ResponseLabel>
</ResponseLabels>
</XmlConfiguration>
<!-- Specify logging options for messages. Mostly to slow down logging for high-rate messages.
Each set of options specified applies to both incoming and outgoing messages -->
<XmlConfiguration name="MessageLogOptions">
<!-- Tag value: Message name -->
<!-- Log attribute: true/false - whether we want to log this message or not -->
<!-- LogIntervalInSec attribute: Number of seconds to log between 2 consecutive messages of the same ID -->
<Message Log="true" LogIntervalInSec="1">MissionManagerMsgLL</Message>
</XmlConfiguration>
</XmlConfigurations>
</Configurations>

View File

@@ -0,0 +1,200 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<UnclassifiedCUI>-->
<!--=========================================================================-->
<!-- UNCLASSIFIEDCONTROLLED UNCLASSIFIED INFORMATION -->
<!--=========================================================================-->
<!--\\<\UnclassifiedCUI>-->
<!--\\<UnlimitedRights>-->
<!--============================================================================-->
<!-- 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. -->
<!-- -->
<!-- DISTRIBUTION STATEMENT F: FURTHER DISSEMINATION ONLY AS DIRECTED BY -->
<!-- MISSILE DEFENSE AGENCY, MDA/GMY NEXT GENERATION INTERCEPTOR PROJECT OFFICE -->
<!-- (DATE OF DETERMINATION 14 JUNE 2021) OR HIGHER DOD AUTHORITY. OTHER -->
<!-- REQUESTS FOR THIS DOCUMENT SHALL BE REFERRED TO: -->
<!-- MISSILE DEFENSE AGENCY, CONTRACTS DIRECTORATE -->
<!-- ATTN: GMY-K -->
<!-- BLDG. 5222 MARTIN ROAD -->
<!-- REDSTONE ARSENAL, AL 35898. -->
<!-- -->
<!-- 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. -->
<!--============================================================================-->
<!--\\<\UnlimitedRights>-->
<!--\\<EximNgiUndetermined>-->
<!--===========================================================================-->
<!-- WARNING: THIS DOCUMENT CONTAINS TECHNICAL DATA WHOSE EXPORT IS RESTRICTED -->
<!-- BY THE ARMS EXPORT CONTROL ACT (TITLE 22, U.S.C., SECTION 2751, ET SEQ.) -->
<!-- OR THE EXPORT ADMINISTRATION ACT OF 1979 (TITLE 50 U.S.C. APP. 2401 ET -->
<!-- SEQ.), AS AMENDED. VIOLATIONS OF THESE EXPORT LAWS ARE SUBJECT TO SEVERE -->
<!-- CRIMINAL PENALTIES. DISSEMINATE IN ACCORDANCE WITH PROVISIONS OF DOD -->
<!-- DIRECTIVE 5230.25. -->
<!--===========================================================================-->
<!--\\<\EximNgiUndetermined>-->
<interface>
<include>
<file>cstdint.xml</file>
</include>
<constant>
<type>unsigned int</type>
<name>PDATA_BYTE_SIZE</name>
<value>512</value>
</constant>
<structure>
<name>MTestConfigLwirBiasPacket</name>
<struct_item>
<default>0</default>
<item_name>lwirSensorPower</item_name>
<type>unsigned char</type>
<maxRange>1</maxRange>
</struct_item>
<struct_item>
<default>3.2901</default>
<item_name>vpD3p3</item_name>
<type>float</type>
<minRange>3.18999</minRange>
<maxRange>3.430001</maxRange>
</struct_item>
<struct_item>
<default>3.32</default>
<item_name>vpA3p3</item_name>
<type>float</type>
<minRange>3.1899</minRange>
<maxRange>3.4301</maxRange>
</struct_item>
<struct_item>
<default>1.1835</default>
<item_name>vpD1p2</item_name>
<type>float</type>
<minRange>1.07999</minRange>
<maxRange>1.3201</maxRange>
</struct_item>
<struct_item>
<default>1.157</default>
<item_name>vpA1p2</item_name>
<type>float</type>
<minRange>1.07999</minRange>
<maxRange>1.32001</maxRange>
</struct_item>
<struct_item>
<default>1.22</default>
<item_name>vpOCX</item_name>
<type>float</type>
<minRange>1.16049</minRange>
<maxRange>1.2701</maxRange>
</struct_item>
<struct_item>
<default>1.22</default>
<item_name>vpDIO</item_name>
<type>float</type>
<minRange>1.16049</minRange>
<maxRange>1.2701</maxRange>
</struct_item>
<struct_item>
<default>1.2</default>
<item_name>vDetCom_Band1</item_name>
<type>float</type>
<minRange>0.8999</minRange>
<maxRange>1.5001</maxRange>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vDetCom_Band2</item_name>
<type>float</type>
<minRange>-0.3001</minRange>
<maxRange>0.30001</maxRange>
</struct_item>
</structure>
<structure>
<name>MTestConfigLwirDroicPacket</name>
<struct_item>
<arrayLength>PDATA_BYTE_SIZE</arrayLength>
<default>0</default>
<item_name>pDataControlWord</item_name>
<type>unsigned char</type>
</struct_item>
</structure>
<message>
<name>ConfigureLwirSensorBiasVoltageCmdMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00e721ff</label>
<instruLabel>ConfigureLwirSensorBiasVoltageCmdMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>MTestConfigLwirBiasPacket</type>
<comment>Payload should be named "data"</comment>
</msg_item>
</message>
<message>
<name>ConfigureLwirSensorBiasVoltageCmdRsp</name>
<labelGroup>0x00</labelGroup>
<label>0x007daca3</label>
<instruLabel>ConfigureLwirSensorBiasVoltageCmdRsp</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>MTestConfigLwirBiasPacket</type>
<comment>Payload should be named "data"</comment>
</msg_item>
</message>
<message>
<name>ConfigureLwirSensorDroicCmdMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x007d61e7</label>
<instruLabel>ConfigureLwirSensorDroicCmdMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>MTestConfigLwirDroicPacket</type>
<comment>Payload should be named "data"</comment>
</msg_item>
</message>
<message>
<name>ConfigureLwirSensorDroicCmdRsp</name>
<labelGroup>0x00</labelGroup>
<label>0x00d94247</label>
<instruLabel>ConfigureLwirSensorDroicCmdRsp</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>MTestConfigLwirDroicPacket</type>
<comment>Payload should be named "data"</comment>
</msg_item>
</message>
<structure>
<name>NackPacket</name>
<struct_item>
<default>0</default>
<item_name>item1</item_name>
<type>unsigned int</type>
</struct_item>
</structure>
<message>
<name>NackRspMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00bb65bc</label>
<instruLabel>NackRspMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>NackPacket</type>
</msg_item>
</message>
</interface>
<!--\\<UnclassifiedCUI>-->
<!--=========================================================================-->
<!-- UNCLASSIFIEDCONTROLLED UNCLASSIFIED INFORMATION -->
<!--=========================================================================-->
<!--\\<\UnclassifiedCUI>-->

View File

@@ -0,0 +1,52 @@
<interface>
<structure>
<name>uint32_t</name>
<struct_item>
<item_name>type</item_name>
<type>unsignedint</type>
</struct_item>
</structure>
<structure>
<name>uint16_t</name>
<struct_item>
<item_name>type</item_name>
<type>unsignedshort</type>
</struct_item>
</structure>
<structure>
<name>uint64_t</name>
<struct_item>
<item_name>type</item_name>
<type>unsignedlonglong</type>
</struct_item>
</structure>
<structure>
<name>uint8_t</name>
<struct_item>
<item_name>type</item_name>
<type>unsignedchar</type>
</struct_item>
</structure>
<structure>
<name>int32_t</name>
<struct_item>
<item_name>type</item_name>
<type>int</type>
</struct_item>
</structure>
<structure>
<name>int16_t</name>
<struct_item>
<item_name>type</item_name>
<type>short</type>
</struct_item>
</structure>
<structure>
<name>int64_t</name>
<struct_item>
<item_name>type</item_name>
<type>longlong</type>
</struct_item>
</structure>
</interface>

View File

@@ -0,0 +1,649 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>wosa</name>
<constant>
<type>uint32_t</type>
<name>MAX_EFFECTOR_COUNT</name>
<value>8</value>
</constant>
<constant>
<type>uint32_t</type>
<name>MAX_MSG_PROD</name>
<value>500</value>
</constant>
<constant>
<type>uint32_t</type>
<name>MAX_NUM_TARGETS</name>
<value>10</value>
</constant>
<constant>
<type>uint32_t</type>
<name>VALID</name>
<value>0</value>
</constant>
<constant>
<type>uint32_t</type>
<name>INVALID</name>
<value>1</value>
</constant>
<constant>
<type>uint32_t</type>
<name>ALL_VALID</name>
<value>0</value>
</constant>
<constant>
<type>uint32_t</type>
<name>ALL_INVALID</name>
<value>0xFFFFFFFF</value>
</constant>
<enum>
<name>EffectorType</name>
<enum_item>
<item_name>ACM</item_name>
<value>0x01</value>
</enum_item>
<enum_item>
<item_name>SURFACE</item_name>
<value>0x02</value>
</enum_item>
</enum>
<enum>
<name>MDT_File_Number</name>
<comment>Allowable enumerations for the MDT File Type to be used by the WIM Defined DMN_Initialization Message</comment>
<enum_item>
<item_name>ALMANAC</item_name>
<value>4</value>
</enum_item>
<enum_item>
<item_name>EPHEMERIS</item_name>
<value>5</value>
</enum_item>
<enum_item>
<item_name>COMPLEMENTARYNAV</item_name>
<value>19</value>
</enum_item>
<enum_item>
<item_name>MISSIONDATA</item_name>
<value>20</value>
</enum_item>
<enum_item>
<item_name>WDL_KEY_1</item_name>
<value>25</value>
</enum_item>
<enum_item>
<item_name>WDL_KEY_2</item_name>
<value>26</value>
</enum_item>
<enum_item>
<item_name>WDL_KEY_3</item_name>
<value>27</value>
</enum_item>
</enum>
<enum>
<name>BIT_Report_e</name>
<comment>Allowable enumerations for the DMN_Status_Monitor.Subsystem_BIT_Report field. All other values are Reserved or WIM defined.</comment>
<enum_item>
<item_name>BIT_PASS</item_name>
<value>0</value>
</enum_item>
<enum_item>
<item_name>BIT_DEGRADED</item_name>
<value>1</value>
</enum_item>
<enum_item>
<item_name>BIT_FAILED</item_name>
<value>2</value>
</enum_item>
<enum_item>
<item_name>NO_RESULTS</item_name>
<value>3</value>
</enum_item>
</enum>
<structure>
<name>Message_Rate</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>messageID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved2</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>msgUpdateRateHz</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>msgVersionNumber</item_name>
<type>uint32_t</type>
</struct_item>
</structure>
<structure>
<name>Target_Priority</name>
<struct_item>
<default>0</default>
<item_name>targetIdPriority</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved2</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<structure>
<name>Target_State_ECEF</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>timeValidNanoSec</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtPosEcefX</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtPosEcefY</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtPosEcefZ</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtPosCovEcef</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtVelEcefX</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtVelEcefY</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtVelEcefZ</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtVelCovEcef</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtAccEcefX</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtAccEcefY</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtAccEcefZ</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtAccCovEcef</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtId</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtType</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtPriority</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved2</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtIntention</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>clusterIndicator</item_name>
<type>uint32_t</type>
</struct_item>
</structure>
<structure>
<name>Target_State_LOS</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>timeValidNanoSec</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRange</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRangeRate</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelXrot</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelYrot</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelZrot</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtLosCov</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelXrotRate</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelYrotRate</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tgtRelZrotRate</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtLosRateCov</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtId</item_name>
<type>uint64_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtType</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtIntention</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>tgtPriority</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>refLocX</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>refLocY</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>refLocZ</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>refCov</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>clusterIndicator</item_name>
<type>uint32_t</type>
</struct_item>
</structure>
<structure>
<name>Header</name>
<struct_item>
<default>0</default>
<item_name>domainID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>instanceID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>elementID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>messageID</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>messageCount</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>payloadLengthBytes</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>timeStampNanoSec</item_name>
<type>uint64_t</type>
</struct_item>
</structure>
<structure>
<name>Trailer</name>
<struct_item>
<default>0</default>
<item_name>messageCRC</item_name>
<type>uint32_t</type>
</struct_item>
</structure>
<structure>
<name>DMN_LookTo_ECEF</name>
<struct_item>
<default>0</default>
<item_name>numTgts</item_name>
<type>uint8_t</type>
<comment>Number of Target ECEF cues</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>wosa::MAX_NUM_TARGETS</arrayLength>
<item_name>targetStateEcef</item_name>
<type>wosa::Target_State_ECEF</type>
</struct_item>
</structure>
<structure>
<name>DMN_LookTo_LOS</name>
<struct_item>
<default>0</default>
<item_name>numTgts</item_name>
<type>uint8_t</type>
<comment>Number of Targets Look To LOS</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>wosa::MAX_NUM_TARGETS</arrayLength>
<item_name>targetStateLos</item_name>
<type>wosa::Target_State_LOS</type>
</struct_item>
</structure>
<structure>
<name>DMN_Metamodule_Message</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vendorRegistry</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vendorSystemNumber</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vendorModel</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vendorSoftware</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>numMsgsProduced</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>wosa::MAX_MSG_PROD</arrayLength>
<item_name>messageRate</item_name>
<type>wosa::Message_Rate</type>
</struct_item>
</structure>
<structure>
<name>DMN_Priority</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>numTgts</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>reserved</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>wosa::MAX_NUM_TARGETS</arrayLength>
<item_name>targetPriority</item_name>
<type>wosa::Target_Priority</type>
</struct_item>
</structure>
<structure>
<name>DMN_Status_Monitor</name>
<struct_item>
<default>0xFFFFFFFF</default>
<item_name>messageInvalidityBitFlags</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>subsystemBITreport</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord1</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord2</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord3</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord4</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>storeStatusWord5</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>msnExecControlAck</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>reserved</item_name>
<type>uint16_t</type>
</struct_item>
</structure>
<structure>
<name>DMN_Initialization</name>
<struct_item>
<default>0</default>
<item_name>MDT_File_Number</item_name>
<type>uint16_t</type>
<comment>Enumeration: Type of MDT File (4 = Almanac, 5 = Ephemeris, etc)</comment>
</struct_item>
<struct_item>
<default>64</default>
<item_name>numberOfRecords</item_name>
<type>uint16_t</type>
<comment>Width of 2D Array</comment>
</struct_item>
<struct_item>
<default>29</default>
<item_name>numberOfBlocks</item_name>
<type>uint16_t</type>
<comment>Height of 2D Array</comment>
</struct_item>
<struct_item>
<arrayLength>64</arrayLength>
<arrayLength>29</arrayLength>
<default>0</default>
<item_name>MDT_Data</item_name>
<type>uint16_t</type>
<comment>WIM Specified Initialization Data, typically this data structure is defined in an external standard and only used for initialization [unitless]</comment>
</struct_item>
</structure>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<constant>
<comment>roll and nod</comment>
<type>uint32_t</type>
<name>N_AXES</name>
<value>2</value>
</constant>
<structure>
<name>Bits</name>
<struct_item>
<default>0</default>
<item_name>posLoop</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>velLoop</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>velCmd</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>injCur</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>injVel</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>injPos</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>fricComp</item_name>
<type>uint32_t</type>
<comment>bit</comment>
</struct_item>
</structure>
<structure>
<name>AxisMode</name>
<struct_item>
<item_name>b</item_name>
<type>Bits</type>
</struct_item>
</structure>
<structure>
<name>Axis</name>
<struct_item>
<item_name>mode</item_name>
<type>AxisMode</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>pos</item_name>
<type>double</type>
<comment>rad</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>vel</item_name>
<type>double</type>
<comment>rad/sec</comment>
</struct_item>
</structure>
<structure>
<name>AlgorithmProcAxis</name>
<struct_item>
<default>0.0</default>
<item_name>posFltRad</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>velFltRps</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>CurrentMeasurements</name>
<struct_item>
<default>0.0</default>
<item_name>dvtCurrAdcSec</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measPhaseACurrAdcA</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measPhaseBCurrAdcA</item_name>
<type>double</type>
</struct_item>
</structure>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,323 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="relative">Gimbal.xml</file>
<file location="system">cstdint</file>
</include>
<structure>
<name>GimbalCommandDataType</name>
<comment>\\&lt;EximItarRestricted&gt; ----------------------------------------------------------------------------// WARNING - This document contains Technical Data 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 Sections 120-130). Violations // are subject to severe criminal penalties. // ----------------------------------------------------------------------------// \\&lt;\EximItarRestricted&gt;</comment>
<struct_item>
<default>0</default>
<item_name>time</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>valid</item_name>
<type>unsigned int</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>cmdGimbalAzFromHousingInBody</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>cmdGimbalElFromHousingInBody</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>GimbalStateDataType</name>
<struct_item>
<default>0.0</default>
<item_name>measTime</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measRoll</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measNod</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>CageDataType</name>
<struct_item>
<default>0</default>
<item_name>cagedPitch</item_name>
<type>int32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>cagedRoll</item_name>
<type>int32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>uncaged</item_name>
<type>int</type>
</struct_item>
</structure>
<structure>
<name>GimbalCurrentCommandDataType</name>
<struct_item>
<arrayLength>N_AXES</arrayLength>
<default>0.0</default>
<item_name>currentCommands</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmRollPhaseA</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmRollPhaseB</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmRollPhaseC</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmNodPos</item_name>
<type>float</type>
</struct_item>
<struct_item>
<default>0.0f</default>
<item_name>pwmNodNeg</item_name>
<type>float</type>
</struct_item>
</structure>
<structure>
<name>GimbalCurrentMeasurementDataType</name>
<struct_item>
<arrayLength>N_AXES</arrayLength>
<item_name>curr</item_name>
<type>CurrentMeasurements</type>
</struct_item>
</structure>
<structure>
<name>GimbalSensorProcessorTmStruct</name>
<comment>Telemetry payload struct for the GSPComp</comment>
<struct_item>
<default>-1.0</default>
<item_name>encoderMeasTime</item_name>
<type>double</type>
<comment>Time (s) at which the encoder measurement was taken</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>imuValidityTimeNs</item_name>
<type>uint64_t</type>
<comment>Time in nanoseconds that the IMU measurement is valid for. See SW/DataModel/WOSA/IMU.xml</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>nodEncoderData</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>rollEncoderData</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>ImuAccelData</item_name>
<type>float</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>ImuGyroData</item_name>
<type>float</type>
</struct_item>
</structure>
<structure>
<name>GimbalMisalignmentDataType</name>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>pTa</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>gTp</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>tTg</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>dTp</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>r1</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>r2</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>r3</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>n1</item_name>
<type>double</type>
</struct_item>
</structure>
<message>
<name>GimbalCommandMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ec42cf</label>
<instruLabel>GimbalCommandMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalCommandDataType</type>
</msg_item>
</message>
<message>
<name>GimbalStateMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x001d4cb3</label>
<instruLabel>GimbalStateMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalStateDataType</type>
</msg_item>
</message>
<message>
<name>EncoderHwifMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00e98a9d</label>
<instruLabel>EncoderHwifMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalStateDataType</type>
<comment>Message sent from GspHwif to itself after delay</comment>
</msg_item>
</message>
<message>
<name>CageStateMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x006baa07</label>
<instruLabel>CageStateMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>CageDataType</type>
</msg_item>
</message>
<message>
<name>GimbalCurrentCommandMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00a8e517</label>
<instruLabel>GimbalCurrentCommandMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalCurrentCommandDataType</type>
</msg_item>
</message>
<message>
<name>GimbalCurrentMeasurementMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00fc6b48</label>
<instruLabel>GimbalCurrentMeasurementMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalCurrentMeasurementDataType</type>
</msg_item>
</message>
<message>
<name>GimbalSensorProcessorTmMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00753580</label>
<instruLabel>GimbalSensorProcessorTmMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalSensorProcessorTmStruct</type>
</msg_item>
</message>
<message>
<name>GimbalMisalignmentDataMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x0031549b</label>
<instruLabel>GimbalMisalignmentDataMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>GimbalMisalignmentDataType</type>
</msg_item>
</message>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,171 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>ngsri</name>
<constant>
<comment>With input from SP, maximum expected segements in the scene is 500</comment>
<type>uint32_t</type>
<name>MAX_SEGMENT_SIZE</name>
<value>500</value>
</constant>
<structure>
<name>NgsriSegmentData</name>
<struct_item>
<default>0</default>
<item_name>numSegments</item_name>
<type>uint16_t</type>
<comment>The actual number of segments</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentRow</item_name>
<type>uint8_t</type>
<comment>The row of the segment in the original image</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentBeginCol</item_name>
<type>uint8_t</type>
<comment>The column of the first pixel in the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentEndCol</item_name>
<type>uint8_t</type>
<comment>The column after the last pixel of the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentLength</item_name>
<type>uint8_t</type>
<comment>The number of pixels in the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0</default>
<item_name>segmentColMoment</item_name>
<type>uint32_t</type>
<comment>The sum of the columns of the pixels in the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0.0f</default>
<item_name>segmentMaxIntensity</item_name>
<type>float</type>
<comment>The highest intensity out of the pixels in the segment</comment>
</struct_item>
<struct_item>
<arrayLength>ngsri::MAX_SEGMENT_SIZE</arrayLength>
<default>0.0f</default>
<item_name>segmentSumIntensity</item_name>
<type>float</type>
<comment>The sum of pixel intensities within segment</comment>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>tov</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>frameNumber</item_name>
<type>unsigned int</type>
</struct_item>
</structure>
<structure>
<name>NgsriAdnucStateData</name>
<struct_item>
<default>0</default>
<item_name>adnucState</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>padding</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<message>
<name>NgsriRobSegmentsMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x002142e2</label>
<instruLabel>NgsriRobSegmentsMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::NgsriSegmentData</type>
</msg_item>
</message>
<message>
<name>NgsriLogSegmentsMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00d3adbe</label>
<instruLabel>NgsriLogSegmentsMsg</instruLabel>
<msg_item>
<item_name>payload</item_name>
<type>ngsri::NgsriSegmentData</type>
</msg_item>
</message>
<message>
<name>NgsriAdnucStateMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ee7d81</label>
<instruLabel>NgsriAdnucStateMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::NgsriAdnucStateData</type>
</msg_item>
</message>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,323 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<UnlimitedRights>-->
<!--=========================================================================-->
<!-- Copyright 2023 Raytheon Company. -->
<!-- This software was developed pursuant to Contract Number AMTC 22-06-002 -->
<!-- with the U.S. government. The U.S. government's rights in and to this -->
<!-- copyrighted software are as specified in DFARS 252.227-7014 which was -->
<!-- made part of the above contract. -->
<!--=========================================================================-->
<!--\\<\UnlimitedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>ngsri</name>
<enum>
<name>MissionMode</name>
<enum_item>
<item_name>TACTICAL</item_name>
<value>0</value>
</enum_item>
<enum_item>
<item_name>MSFR</item_name>
<value>1</value>
</enum_item>
<enum_item>
<item_name>PATHFINDER</item_name>
<value>2</value>
</enum_item>
<enum_item>
<item_name>RTF</item_name>
<value>3</value>
</enum_item>
<enum_item>
<item_name>LBT</item_name>
<value>4</value>
</enum_item>
<enum_item>
<item_name>CFT</item_name>
<value>5</value>
</enum_item>
<enum_item>
<item_name>GFT</item_name>
<value>6</value>
</enum_item>
</enum>
<structure>
<name>MissionManagerDataTypeLL</name>
<struct_item>
<default>0</default>
<item_name>CTS</item_name>
<type>unsigned int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>pad_one</item_name>
<type>unsigned int</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtPosLocal</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtVelLocal</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtAccLocal</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtPosCovNED</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtVelCovNED</item_name>
<type>double</type>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<arrayLength>3</arrayLength>
<default>0.0</default>
<item_name>tgtAccCovNED</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>timeOfValidity</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>guideState</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>seekerState</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>seekerReady</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>cageState</item_name>
<type>int</type>
<comment>bool</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>adnucState</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>mmgrState</item_name>
<type>uint8_t</type>
<comment>See MissionManagerTypes.hpp</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>pad_two</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>recage</item_name>
<type>int</type>
<comment>bool</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>mmgrMode</item_name>
<type>uint8_t</type>
<comment>Mission manager mode of operation</comment>
</struct_item>
<struct_item>
<arrayLength>3</arrayLength>
<default>0</default>
<item_name>pad_three</item_name>
<type>uint8_t</type>
</struct_item>
<struct_item>
<default>99999.0</default>
<item_name>tacticalLaunchTimeSec</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>MissionManagerAdnucType</name>
<struct_item>
<default>0</default>
<item_name>adnucState</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>startAdnuc</item_name>
<type>unsigned int</type>
<comment>bool</comment>
</struct_item>
</structure>
<structure>
<name>MissionManagerCoarseAlignType</name>
<struct_item>
<default>0</default>
<item_name>AlignmentDuration</item_name>
<type>double</type>
</struct_item>
</structure>
<structure>
<name>MissionManagerCompTmType</name>
<struct_item>
<default>0</default>
<item_name>mmgrState</item_name>
<type>uint8_t</type>
<comment>See MissionManagerTypes.hpp</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>adnucState</item_name>
<type>uint8_t</type>
<comment>See MissionManagerTypes.hpp</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>testListSize</item_name>
<type>uint64_t</type>
<comment>Part of MissileKit CommonEmbeddedTest framework</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>testListStatus</item_name>
<type>uint64_t</type>
<comment>Part of MissileKit CommonEmbeddedTest framework</comment>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>measTime</item_name>
<type>double</type>
<comment>See TimeUtility.hpp getTimeNow_sec(). This field is needed to align measurements from other packets without introducing in variation from the Telemetry component</comment>
</struct_item>
<struct_item>
<default>0.0</default>
<item_name>navTime</item_name>
<type>float</type>
</struct_item>
</structure>
<structure>
<name>MissionManagerSyncReqData</name>
<struct_item>
<default>0</default>
<item_name>activateSyncs</item_name>
<type>uint8_t</type>
<comment>Enables the FSync and GSync pulses in FW</comment>
</struct_item>
</structure>
<message>
<name>MissionManagerMsgLL</name>
<labelGroup>0x00</labelGroup>
<label>0x004110bd</label>
<instruLabel>MissionManagerMsgLL</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerDataTypeLL</type>
</msg_item>
</message>
<message>
<name>MissionManagerAdnucMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x005bed3d</label>
<instruLabel>MissionManagerAdnucMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerAdnucType</type>
</msg_item>
</message>
<message>
<name>MissionManagerAlignmentMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00ee8dea</label>
<instruLabel>MissionManagerAlignmentMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerCoarseAlignType</type>
</msg_item>
</message>
<message>
<name>MissionManagerCompTmMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00e54b8a</label>
<instruLabel>MissionManagerCompTmMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerCompTmType</type>
</msg_item>
</message>
<message>
<name>MissionManagerSyncReqMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x0031321f</label>
<instruLabel>MissionManagerSyncReqMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::MissionManagerSyncReqData</type>
</msg_item>
</message>
<message>
<name>MissionManagerIdaTempReqMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00a41a67</label>
<instruLabel>MissionManagerIdaTempReqMsg</instruLabel>
<msg_item>
<default>0</default>
<item_name>payload</item_name>
<type>uint32_t</type>
<comment>Sent to IdaComp to determine if IDA temp is overthreshold. No payload, message receipt dictates behavior</comment>
</msg_item>
</message>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="message.xsl"?>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->
<!--\\<RestrictedRights>-->
<!--=========================================================================-->
<!-- Restricted Rights -->
<!-- Contract Number AMTC 22-06-002 -->
<!-- Contractor Name Raytheon Missiles & Defense -->
<!-- Contractor Address 1151 E Hermans Rd., Tucson, AZ 85756 -->
<!-- -->
<!-- The government's rights to use, modify, reproduce, release, perform, -->
<!-- display, or disclose this software are restricted by paragraph (b)(3) -->
<!-- of the Rights in Noncommercial Computer Software and Noncommercial -->
<!-- Computer Software Documentation clause contained in the above -->
<!-- identified contract. Any reproduction of software or portions thereof -->
<!-- marked with this legend must also reproduce the markings. Any person, -->
<!-- other than the government, who has been provided access to such -->
<!-- software, must promptly notify the above named Contractor. -->
<!-- -->
<!-- Unpublished Work - Copyright Raytheon Company. -->
<!--=========================================================================-->
<!--\\<\RestrictedRights>-->
<!--\\<EximUndetermined>-->
<!--=========================================================================-->
<!-- 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. -->
<!--=========================================================================-->
<!--\\<\EximUndetermined>-->
<interface>
<include>
<file location="system">cstdint</file>
</include>
<namespace>
<name>ngsri</name>
<structure>
<name>UmbilicalRetractBatteryGoodDataType</name>
<struct_item>
<default>0</default>
<item_name>umbilicalRetractBatteryGood</item_name>
<type>unsigned int</type>
<comment>bool</comment>
</struct_item>
</structure>
<structure>
<name>UmbilicalTmDataType</name>
<comment>Telemetry payload struct for the UmbilicalComp</comment>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>losData</item_name>
<type>int32_t</type>
</struct_item>
<struct_item>
<arrayLength>2</arrayLength>
<default>0</default>
<item_name>cageVectorPitchRollData</item_name>
<type>int32_t</type>
<comment>roll and pitch units where roll is 1 rotation about X and pitch is 2 rotation about Y in bits per degrees notation</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>uncageData</item_name>
<type>int</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>cageCount</item_name>
<type>uint32_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>toneData</item_name>
<type>double</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>umbilicalRetractBatteryGoodData</item_name>
<type>unsigned int</type>
<comment>bool</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>orientationRspData</item_name>
<type>uint16_t</type>
</struct_item>
<struct_item>
<default>0</default>
<item_name>lifetimeTime</item_name>
<type>uint32_t</type>
<comment>seconds</comment>
</struct_item>
<struct_item>
<default>0</default>
<item_name>lifetimeCount</item_name>
<type>uint8_t</type>
</struct_item>
</structure>
<message>
<name>UmbilicalRetractBatteryGoodMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x00225955</label>
<instruLabel>UmbilicalRetractBatteryGoodMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::UmbilicalRetractBatteryGoodDataType</type>
</msg_item>
</message>
<message>
<name>UmbilicalTmMsg</name>
<labelGroup>0x00</labelGroup>
<label>0x0032303f</label>
<instruLabel>UmbilicalTmMsg</instruLabel>
<msg_item>
<item_name>data</item_name>
<type>ngsri::UmbilicalTmDataType</type>
</msg_item>
</message>
</namespace>
</interface>
<!--\\<CUI>-->
<!--=========================================================================-->
<!-- CUI -->
<!--=========================================================================-->
<!--\\<\CUI>-->

View File

@@ -1,7 +1,10 @@
; ===============================================================================================================
; This name must match the name specified in the Instrument.xml for an instrument of type DIO
[PICKERING_DIO_1]
PXI_CARD_SLOT_INDEX = 0
LXI_IP_ADDRESS = 192.160.1.15
DEVICE_NUMBER = 14
BUS_NUMBER = 3
SHALL_WE_DRIVE_OUTPUT_UPON_INITIALIZATION = false
; number channels per port
NUM_CHANNELS_PER_PORT=8
@@ -42,4 +45,28 @@ SIGNAL_6 = 1|0
;format is <signal_name> = <Channel Number>
[ADVANTECH_DIO_1.INPUT_SIGNALS]
SIGNAL_7 = 0
SIGNAL_8 = 0
SIGNAL_8 = 0
; ===============================================================================================================
; This name must match the name specified in the Instrument.xml for an instrument of type DIO
[ICS8003_DIO_1]
DIO_ADDRESS = localhost
DIO_PORT = 23
SHALL_WE_DRIVE_OUTPUT_UPON_INITIALIZATION = false
; number channels per port
NUM_CHANNELS_PER_PORT=8
; either 0 or 1 as the starting channel index
CHANNEL_START_INDEX=0
NUM_OUTPUT_CHANNELS = 32
NUM_INPUT_CHANNELS = 32
;format is <signal_name> = <Channel Number>|<Initial State>
;<Initial State> is either 0 or 1 or 2(Logic Z)
[ICS8003_DIO_1.OUTPUT_SIGNALS]
SIGNAL_9 = 0|1
SIGNAL_10 = 1|0
;format is <signal_name> = <Channel Number>
[ICS8003_DIO_1.INPUT_SIGNALS]
SIGNAL_11 = 0
SIGNAL_12 = 0

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="ICS8003_DIO_1">
<key name="DIO_MODULE_DEF_FILEPATH" value="DIO_MODULES.ini" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="Parts">
<key name="Location" value="C:\Program Files (x86)\Raytheon\RINSS\Parts" />
</section>
</IniConfiguration>
<XmlConfigurations>
<XmlConfiguration name="Instruments">
<Instrument>
<Name>CoeDeviceNodeTCP</Name>
<Factory>CoeCommDeviceFactory</Factory>
</Instrument>
<Instrument>
<Name>UUT_POWER_SUPPLY_SYSTEM_20V</Name>
<Factory>PowerSupplySystemKeysightFactory</Factory>
</Instrument>
<Instrument>
<Name>UUT_POWER_SUPPLY_SYSTEM_5V</Name>
<Factory>PowerSupplySystemKeysightFactory</Factory>
</Instrument>
<Instrument>
<Name>PICKERING_DIO_1</Name>
<Factory>DIOPickering40xFactory</Factory>
</Instrument>
<Instrument>
<Name>PICKERING_RELAY_SWITCH_16CH</Name>
<Factory>SwitchPickeringLxi60_522_SoapFactory</Factory>
</Instrument>
<Instrument>
<Name>PICKERING_RELAY_SWITCH_32CH</Name>
<Factory>SwitchPickeringLxi60_522_SoapFactory</Factory>
</Instrument>
<Instrument>
<Name>PICKERING_SWITCH_MATRIX_64X4</Name>
<Factory>SwitchMatrixPickering40xFactory</Factory>
</Instrument>
<Instrument>
<Name>KEYSIGHT_DMM_1</Name>
<Factory>DMMKeysightScpiFactory</Factory>
</Instrument>
<Instrument>
<Name>PICKERING_SWITCH_MULTIPLEXER_96X4</Name>
<Factory>SwitchMultiplexerPickering60xFactory</Factory>
</Instrument>
<Instrument>
<Name>ICS8003_DIO_1</Name>
<Factory>DIOIcs8003Factory</Factory>
</Instrument>
<Instrument>
<Name>SERIAL_COM_PORT_1</Name>
<Factory>CommDeviceSerialFactory</Factory>
</Instrument>
</XmlConfiguration>
</XmlConfigurations>
</Configurations>

View File

@@ -2,7 +2,7 @@
<Configurations>
<IniConfiguration>
<section name="KEYSIGHT_DMM_1">
<key name="IP_ADDRESS" value="127.0.0.1" />
</section>
</IniConfiguration>
<XmlConfigurations />

View File

@@ -0,0 +1,56 @@
[SYSTEM]
;system commands
CLEAR_CMD = *CLS
RESET_CMD = *RST
SELFTEST_CMD = *TST?
READ_ERROR_CODE_CMD = SYST:ERR?
REBOOT_CMD = SYST:REB
;panel disable/enable commands
SET_FRONTPANEL_DISABLE_CMD = SYST:COMM:RLST RWL
SET_FRONTPANEL_ENABLE_CMD = SYST:COMM:RLST REM
;watchdog commands
SET_WATCHDOGDELAY_CMD = OUTP:PROT:WDOG:DEL
SET_WATCHDOGON_CMD = OUTP:PROT:WDOG ON
SET_WATCHDOGOFF_CMD = OUTP:PROT:WDOG OFF
;coupling commands
SET_COUPLE_CHANNELS_CMD = OUTP:COUP:CHAN
SET_COUPLE_ON_CMD = OUTP:COUP ON
SET_COUPLE_OUTPUT_PROTECT_ON_CMD = OUTP:PROT:COUP ON
QUERY_COUPLE_CHANNELS = OUTP:COUP:CHAN?
QUERY_COUPLE_STATE = OUTP:COUP?
; Grouping Commands
SET_GROUP_DEFINE_CMD = SYST:GRO:DEF
UNGROUP_ALL_CHANNELS_CMD = SYST:GRO:DEL:ALL
QUERY_GROUP_CHANNELS = SYST:GRO:CAT?
[MODULE]
; current commands
SET_INRUSH_DELAY_CMD = CURR:PROT:DEL
READ_INRUSH_DELAY_CMD = CURR:PROT:DEL?
READ_CURRENT_CMD = MEAS:CURR?
SET_OCP_CMD = CURR:LEV
READ_OCP_CMD = CURR:LEV?
SET_OCP_ON_CMD = CURR:PROT:STAT ON
; voltage commands
SET_OVP_CMD = VOLT:PROT
SET_VOLTAGE_SLEW_CMD = VOLT:SLEW
SET_VOLTAGE_SETPOINT_CMD = VOLT:LEV
SET_CONSTANT_VOLTAGE_CMD = STAT:OPER:ENAB 1
READ_VOLTAGE_CMD = MEAS:VOLT?
READ_VOLTAGE_SETPOINT_CMD = VOLT?
READ_OVP_CMD = VOLT:PROT?
READ_VOLTAGE_SLEW_CMD = VOLT:SLEW?
; set output commands
SET_OUTPUT_DISABLE_CMD = OUTP OFF
SET_OUTPUT_ENABLE_CMD = OUTP ON
; query status
READ_OUTPUT_STATUS_CMD = OUTP?
READ_ERROR_STATUS_CMD = SYST:ERR?
READ_PROTECTION_STATUS_CMD = STAT:QUES:COND?

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_DIO_1">
<key name="DIO_MODULE_DEF_FILEPATH" value="DIO_MODULES.ini" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_RELAY_SWITCH_16CH">
<key name="LXI_IP_ADDRESS" value="192.168.1.15" />
<key name="DEVICE_NUMBER" value="13" />
<key name="BUS_NUMBER" value="3" />
<key name="SUB_UNIT" value="0" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_RELAY_SWITCH_32CH">
<key name="LXI_IP_ADDRESS" value="192.168.1.15" />
<key name="DEVICE_NUMBER" value="12" />
<key name="BUS_NUMBER" value="3" />
<key name="SUB_UNIT" value="0" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_SWITCH_MATRIX_64X4">
<key name="LXI_IP_ADDRESS" value="192.168.1.15" />
<key name="DEVICE_NUMBER" value="13" />
<key name="BUS_NUMBER" value="3" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="PICKERING_SWITCH_MULTIPLEXER_96X4">
<key name="LXI_IP_ADDRESS" value="206.0.13.212" />
<key name="IS_SINGLE_CARD_MODE" value="True" />
<key name="CARD_NUMBER_WITH_CONNECTED_DMM" value="1" />
<key name="BUS_SELECT_MATRIX_CHANNEL_NUMBER" value="1" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -1,30 +1,30 @@
; ===============================================================================================================
; This name must match the name specified in the Instrument.xml that is associated with the power supply system
[STE_POWER_SUPPLY_SYSTEM]
SCPI_DEF_FILEPATH = .\InstrumentConfig\KEYSIGHT_SCPI_DEF.ini
[UUT_POWER_SUPPLY_SYSTEM_5V]
SCPI_DEF_FILEPATH = KEYSIGHT_POWER_SUPPLY_SCPI_DEF.ini
ETHERNET_ADDRESS = localhost
ETHERNET_PORT = 5025
MODULE_DEFINITION = UUT_REF_3_3V, STE_PVM_5V, STE_GU_INTERFACE_RELAYS_25V, STE_GU_INTERFACE_RF_INTERFACE_5V
MODULE_DEFINITION = MODULE_1, MODULE_2
; 0 means no coupled modules.
; couple means turning on/off any one of the module, turns on/off the others
COUPLED_MODULES = STE_PVM_5V, STE_GU_INTERFACE_RELAYS_25V, STE_GU_INTERFACE_RF_INTERFACE_5V
COUPLED_MODULES = 0
; 0 means no grouped modules.
; group means turning combining 2 or more modules thus acting as one module
GROUPED_MODULES = 0
INTERFACE = ETHERNET
[STE_POWER_SUPPLY_SYSTEM.UUT_REF_3_3V]
[UUT_POWER_SUPPLY_SYSTEM_5V.MODULE_1]
INDEX = 1
OCP = 2.0
OVP = 4.0
VOLTAGE_SETPOINT = 3.3
VOLTAGE_SETPOINT = 3.0
MIN_VOLTAGE = 3.0
MAX_VOLTAGE = 3.75
MAX_CURRENT = 2.0
MIN_CURRENT = -0.25
[STE_POWER_SUPPLY_SYSTEM.STE_PVM_5V]
[UUT_POWER_SUPPLY_SYSTEM_5V.MODULE_2]
INDEX = 2
OCP = 2.0
OVP = 8.0
@@ -35,35 +35,14 @@ MAX_VOLTAGE = 5.5
MAX_CURRENT = 1.5
MIN_CURRENT = -.25
[STE_POWER_SUPPLY_SYSTEM.STE_GU_INTERFACE_RELAYS_25V]
INDEX = 3
OCP = 3.0
OVP = 34.0
VOLTAGE_SETPOINT = 25.0
MIN_VOLTAGE = 22.0
MAX_VOLTAGE = 30.0
MAX_CURRENT = 3.0
MIN_CURRENT = -0.25
[STE_POWER_SUPPLY_SYSTEM.STE_GU_INTERFACE_RF_INTERFACE_5V]
INDEX = 4
OCP = 5.0
OVP = 6.5
VOLTAGE_SETPOINT = 5.0
MIN_VOLTAGE = 4.0
MAX_VOLTAGE = 6.3
MAX_CURRENT = 4.5
MIN_CURRENT = -.25
; ===============================================================================================================
; This name must match the name specified in the Instrument.xml that is associated with the power supply system
[UUT_POWER_SUPPLY_SYSTEM]
SCPI_DEF_FILEPATH = .\InstrumentConfig\KEYSIGHT_SCPI_DEF.ini
[UUT_POWER_SUPPLY_SYSTEM_20V]
SCPI_DEF_FILEPATH = KEYSIGHT_POWER_SUPPLY_SCPI_DEF.ini
ETHERNET_ADDRESS = localhost
ETHERNET_PORT = 5026
MODULE_DEFINITION = UUT_P20V, UUT_N20V
MODULE_DEFINITION = P20V, N20V
; 0 means no coupled modules.
; couple means turning on/off any one of the module, turns on/off the others
COUPLED_MODULES = 0
@@ -72,18 +51,18 @@ COUPLED_MODULES = 0
GROUPED_MODULES = 0
INTERFACE = ETHERNET
[UUT_POWER_SUPPLY_SYSTEM.UUT_P20V]
[UUT_POWER_SUPPLY_SYSTEM_20V.P20V]
INDEX = 1
OCP = 1.5
OVP = 22.0
VOLTAGE_SETPOINT = 20.0
VOLTAGE_SETPOINT = 21.0
MIN_VOLTAGE = 19.0
MAX_VOLTAGE = 22.75
MAX_CURRENT = 2.3
MIN_CURRENT = -0.25
[UUT_POWER_SUPPLY_SYSTEM.UUT_N20V]
[UUT_POWER_SUPPLY_SYSTEM_20V.N20V]
INDEX = 2
OCP = 1.8
OVP = 22.5

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="SERIAL_COM_PORT_1">
<key name="COMPortName" value="COM1" />
<key name="BaudRate" value="115200" />
<key name="Parity" value="0" />
<key name="DataBits" value="8" />
<key name="StopBits" value="1" />
<key name="ReadTimeout" value="5000" />
<key name="BufferSize" value="1024" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="UUT_POWER_SUPPLY_SYSTEM_20V">
<key name="POWER_SUPPLY_SYSTEM_DEF_FILEPATH" value="POWER_SUPPLY_SYSTEMS.ini" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Configurations>
<IniConfiguration>
<section name="UUT_POWER_SUPPLY_SYSTEM_5V">
<key name="POWER_SUPPLY_SYSTEM_DEF_FILEPATH" value="POWER_SUPPLY_SYSTEMS.ini" />
</section>
</IniConfiguration>
<XmlConfigurations />
</Configurations>

View File

@@ -0,0 +1,2 @@
[GENERAL]
CheckForMessageIntervalMs = 10

View File

@@ -0,0 +1,118 @@
;format is name = range|resolution|delay(ms)|scale factor|relays|voltRange|numReads
;Use device number to identifiy switch card... see switch configuration
[DmmReadFrequency]
F1 = 10|0.001|100|1|PICKERING_RELAY_SWITCH_16CH:97,98|10|1
;format is signal_name = range|resolution|min_delay(ms)|max_delay(ms)|scale factor|relays|type|cable, connector and pin id|lower_limit|upper_limit
;Type is TWO or FOUR for two wire and four wire measurements
;Relay Format: [Card_Name]-[Relay_Channel#],[Card_Name]-[Path1],[Path2]
; [Card_Name] - must match the name of the switch card defined in the Instrument.xml
; [Path]
; For a simple relay switch: [channel_id]
; For a 2-d switch matrix: [subUnit].[channel_x].[channel_y]
;Cable and Pin Id Format: [Cable_Id]_[Connecto_Id][Pin_Id]_[Cable_Id]_[Connector_Id]_[Pin_Id]
[DmmReadResistance]
; Cable IDs
W1_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.59.1,0.60.2|TWO|W1_P1_J13_W1_P1_J14|0.0|200000.0
W1_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.63.1,0.64.2|TWO|W1_P1_J15_W1_P1_J16|0.0|200000.0
W2_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.59.1,0.60.2|TWO|W1_P1_J13_W1_P1_J14|0.0|200000.0
W2_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.63.1,0.64.2|TWO|W1_P1_J15_W1_P1_J16|0.0|200000.0
W3_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.57.1,0.58.2|TWO|W1_P3_63_W1_P3_64|0.0|200000.0
W3_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.61.1,0.62.2|TWO|W1_P3_65_W1_P3_66|0.0|200000.0
W4_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.57.1,0.58.2|TWO|W1_P3_63_W1_P3_64|0.0|200000.0
W4_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.61.1,0.62.2|TWO|W1_P3_65_W1_P3_66|0.0|200000.0
W5_CABLE_PART_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.5.1,0.8.2|TWO|W1_P4_50_W1_P4_51|0.0|200000.0
W5_CABLE_SERIAL_NUMBER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.22.1,0.43.2|TWO|W1_P4_13_W1_P4_52|0.0|200000.0
; W3 Continuity
W3_AUD_GDNC_FILTER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.16.2|TWO|W1_P3_52_W1_P4_4|-2.0|2.0
W3_TIMER_START = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.56.1,0.39.2|TWO|W1_P3_7_W1_P4_5|-2.0|2.0
W3_SIGNAL_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.56.1,0.19.2|TWO|W1_P3_7_W1_P4_8|-2.0|2.0
W3_GEU_TO_EMULATOR_UART = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.55.1,0.20.2|TWO|W1_P3_9_W1_P4_9|-2.0|2.0
W3_POWER_RETURN_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.1.1,0.24.2|TWO|W1_P4_1_W1_P4_15|-2.0|2.0
W3_POWER_RETURN_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.1.1,0.27.2|TWO|W1_P4_1_W1_P4_19|0.0|2.0
W3_POWER_RETURN_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.1.1,0.28.2|TWO|W1_P4_1_W1_P4_20|0.0|2.0
W3_P20VDC_TEST = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.47.1,0.32.2|TWO|W1_P4_71_W1_P4_24|0.0|2.0
W3_P20VDC_TEST_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.47.1,0.1.2|TWO|W1_P4_71_W1_P4_1|70.0|85.0
W3_N20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.48.1,0.26.2|TWO|W1_P4_72_W1_P4_17|0.0|2.0
W3_N20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.48.1,0.29.2|TWO|W1_P4_72_W1_P4_21|0.0|2.0
W3_N20VDC_TEST_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.48.1,0.30.2|TWO|W1_P4_72_W1_P4_22|0.0|2.0
W3_N20VDC_TEST_TO_POWER_RETURN = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.48.1,0.1.2|TWO|W1_P4_72_W1_P4_1|70.0|85.0
W3_P20VDC_TEST_TO_N20VDC_TEST = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.47.1,0.48.2|TWO|W1_P4_71_W1_P4_72|140.0|170.0
W3_P20VDC_TEST_TO_N20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.32.1,0.26.2|TWO|W1_P4_24_W1_P4_17|140.0|170.0
W3_ARM_IFC_SQUIB_N = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.12.1,0.38.2|TWO|W1_P4_67_W1_P4_31|0.0|2.0
W3_ARM_IFC_SQUIB_P_TO_ARM_IFC_SQUIB_N = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.53.1,0.12.2|TWO|W1_P4_68_W1_P4_67|0.0|2.0
W3_BATTERY_ACTIVATE_P3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.9.1,0.10.2|TWO|W1_P4_18_W1_P4_66|0.0|2.0
W3_LAUNCHER_INTERLOCK = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.42.1,0.6.2|TWO|W1_P4_11_W1_P4_64|0.0|2.0
W3_FUZE_INTERLOCK = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.7.1,0.46.2|TWO|W1_P4_12_W1_P4_65|0.0|2.0
W3_BATTERY_ACTIVATE_P2_TO_LAUNCHER_INTERLOCK = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.3.1,0.42.2|TWO|W1_P4_7_W1_P4_11|0.0|2.0
W3_BATTERY_ACTIVATE_P2_TO_FUZE_INTERLOCK = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.3.1,0.7.2|TWO|W1_P4_7_W1_P4_12|0.0|2.0
; W3 AUD_GDNC_FILTER Isolation checks
W3_AUD_GDNC_FILTER_TO_POWER_RETURN_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.24.2|TWO|W1_P3_52_W1_P4_15|9.9E+10|9.9E+40
W3_AUD_GDNC_FILTER_TO_N20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.26.2|TWO|W1_P3_52_W1_P4_17|9.9E+10|9.9E+40
W3_AUD_GDNC_FILTER_TO_POWER_RETURN_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.27.2|TWO|W1_P3_52_W1_P4_19|9.9E+10|9.9E+40
W3_AUD_GDNC_FILTER_TO_POWER_RETURN_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.28.2|TWO|W1_P3_52_W1_P4_20|9.9E+10|9.9E+40
W3_AUD_GDNC_FILTER_TO_N20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.29.2|TWO|W1_P3_52_W1_P4_21|9.9E+10|9.9E+40
W3_AUD_GDNC_FILTER_TO_N20VDC_TEST_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.30.2|TWO|W1_P3_52_W1_P4_22|9.9E+10|9.9E+40
W3_AUD_GDNC_FILTER_TO_P20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.32.2|TWO|W1_P3_52_W1_P4_24|9.9E+10|9.9E+40
W3_AUD_GDNC_FILTER_TO_P20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.35.2|TWO|W1_P3_52_W1_P4_28|9.9E+10|9.9E+40
; W4 Continuity
W4_LAUNCH_MOTOR_INIT_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.41.1,0.1.2|TWO|W1_P4_16_W1_P4_1|-2.0|2.0
W4_LAUNCH_MOTOR_INIT_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.52.1,0.1.2|TWO|W1_P4_25_W1_P4_1|-2.0|2.0
W4_BATTERY_INIT_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.36.1,0.1.2|TWO|W1_P4_29_W1_P4_1|-2.0|2.0
W4_BATTERY_INIT_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.13.1,0.1.2|TWO|W1_P4_33_W1_P4_1|-2.0|2.0
W4_LIE_N20V = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.19.1,0.48.2|TWO|W1_P4_8_W1_P4_72|-2.0|2.0
W4_CAGE_COIL_OUT = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.32.2|TWO|W1_P3_51_W1_P4_24|-2.0|2.0
W4_AUD_GDNC_FILTER = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.33.2|TWO|W1_P3_52_W1_P4_26|-2.0|2.0
W4_AUDIO_OUTPUT_LOW = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.24.2|TWO|W1_P3_8_W1_P4_15|-2.0|2.0
; W4 CAGE_COIL_OUT Isolation checks
W4_CAGE_COIL_OUT_TO_POWER_RETURN_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.24.2|TWO|W1_P3_51_W1_P4_15|9.9E+10|9.9E+40
W4_CAGE_COIL_OUT_TO_N20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.26.2|TWO|W1_P3_51_W1_P4_17|9.9E+10|9.9E+40
W4_CAGE_COIL_OUT_TO_POWER_RETURN_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.27.2|TWO|W1_P3_51_W1_P4_19|9.9E+10|9.9E+40
W4_CAGE_COIL_OUT_TO_POWER_RETURN_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.28.2|TWO|W1_P3_51_W1_P4_20|9.9E+10|9.9E+40
W4_CAGE_COIL_OUT_TO_N20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.29.2|TWO|W1_P3_51_W1_P4_21|9.9E+10|9.9E+40
W4_CAGE_COIL_OUT_TO_N20VDC_TEST_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.30.2|TWO|W1_P3_51_W1_P4_22|9.9E+10|9.9E+40
W4_CAGE_COIL_OUT_TO_P20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.25.1,0.35.2|TWO|W1_P3_51_W1_P4_28|9.9E+10|9.9E+40
; W4 AUD_GDNC_FILTER Isolation checks
W4_AUD_GDNC_FILTER_TO_POWER_RETURN_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.24.2|TWO|W1_P3_52_W1_P4_15|9.9E+10|9.9E+40
W4_AUD_GDNC_FILTER_TO_N20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.26.2|TWO|W1_P3_52_W1_P4_17|9.9E+10|9.9E+40
W4_AUD_GDNC_FILTER_TO_POWER_RETURN_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.27.2|TWO|W1_P3_52_W1_P4_19|9.9E+10|9.9E+40
W4_AUD_GDNC_FILTER_TO_POWER_RETURN_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.28.2|TWO|W1_P3_52_W1_P4_20|9.9E+10|9.9E+40
W4_AUD_GDNC_FILTER_TO_N20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.29.2|TWO|W1_P3_52_W1_P4_21|9.9E+10|9.9E+40
W4_AUD_GDNC_FILTER_TO_N20VDC_TEST_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.30.2|TWO|W1_P3_52_W1_P4_22|9.9E+10|9.9E+40
W4_AUD_GDNC_FILTER_TO_P20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.32.2|TWO|W1_P3_52_W1_P4_24|9.9E+10|9.9E+40
W4_AUD_GDNC_FILTER_TO_P20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.17.1,0.35.2|TWO|W1_P3_52_W1_P4_28|9.9E+10|9.9E+40
; W4 AUDIO_OUTPUT_LOW Isolation checks
W4_AUDIO_OUTPUT_LOW_TO_N20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.26.2|TWO|W1_P3_8_W1_P4_17|9.9E+10|9.9E+40
W4_AUDIO_OUTPUT_LOW_TO_POWER_RETURN_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.27.2|TWO|W1_P3_8_W1_P4_19|9.9E+10|9.9E+40
W4_AUDIO_OUTPUT_LOW_TO_POWER_RETURN_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.28.2|TWO|W1_P3_8_W1_P4_20|9.9E+10|9.9E+40
W4_AUDIO_OUTPUT_LOW_TO_N20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.29.2|TWO|W1_P3_8_W1_P4_21|9.9E+10|9.9E+40
W4_AUDIO_OUTPUT_LOW_TO_N20VDC_TEST_3 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.30.2|TWO|W1_P3_8_W1_P4_22|9.9E+10|9.9E+40
W4_AUDIO_OUTPUT_LOW_TO_P20VDC_TEST_1 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.32.2|TWO|W1_P3_8_W1_P4_24|9.9E+10|9.9E+40
W4_AUDIO_OUTPUT_LOW_TO_P20VDC_TEST_2 = NO_PCODE|-1|0.001|100|100|1|PICKERING_SWITCH_MATRIX_64X4:0.54.1,0.35.2|TWO|W1_P3_8_W1_P4_28|9.9E+10|9.9E+40
;format is name = range|resolution|delay(ms)|scale factor|relays
[DmmReadVoltage]
V1 = 100|0.01|1|1|PICKERING_RELAY_SWITCH_16CH:65|DC
;format is name = relays|channelNumber|edge|timePerDivision|timeOffset(S)|triggerLevel|voltageOffset(V)|voltageScale(V)|InputImpedance|Delay After Closing Relays(ms)|ShallImageBeSaved (True or False)|Max trigger Wait Time (ms)
;edge can be FALLING or RISING or HOLDING
[ScopeReadFrequency]
F1 = PICKERING_RELAY_SWITCH_16CH:56,57|2|FALLING|1.0|2.0|3.0|4.0|5.0|DC|100|False|1500
F2 = PICKERING_RELAY_SWITCH_16CH:56,57|2|FALLING|1.0|2.0|3.0|4.0|5.0|DC|100|False|1500
;format is name = relays|channelNumber|edge|timePerDivision|timeOffset(S)|triggerLevel|voltageOffset(V)|voltageScale(V)|InputImpedance|Delay After Closing Relays(ms)|ShallImageBeSaved (True or False)|Max trigger Wait Time (ms)
;edge can be FALLING or RISING or HOLDING
[ScopeReadPulseWidth]
P1 = PICKERING_RELAY_SWITCH_16CH:56,57|2|FALLING|1.0|2.0|3.0|4.0|5.0|DC|100|False|1500
P2 = PICKERING_RELAY_SWITCH_16CH:56,-57|2|FALLING|1.0|2.0|3.0|4.0|5.0|DC|100|False|1500
; define all the relays we want to control
[RELAYS]
R1 = PICKERING_RELAY_SWITCH_16CH:65
R2 = PICKERING_RELAY_SWITCH_16CH:66

View File

@@ -0,0 +1,756 @@
[GENERAL]
; specify data folder and all subfolders in it
PRIMARY_DRIVE = D:\
SECONDARY_DRIVE = C:\
DATA_BASE_FOLDER = Data_NGSRI
DATA_GENERAL_FOLDER_NAME = General
DATA_GENERAL_TEMP_FOLDER_NAME = Temp
; this is the path where formal ATP runs use to run MTS software
APP_RELEASE_CONTROLLED_FOLDER = Release_NGSRI
LOG_DASHBOARD_APP_PATH = Release_NGSRI\LogDashboard\Raytheon.LogDashboard.exe
; make sure self test is run before powering on UUT
; value: true or false
ENFORCE_CABLE_SELF_TEST_IS_RUN = TRUE
[UUT_INFO]
UUT_IP_ADDRESS = localhost
UUT_TEST_PORT_TCP = 5025
[CABLE_ID_RELAYS]
W1_CABLE_PART_NUMBER = W1_CABLE_PART_NUMBER
W1_CABLE_SERIAL_NUMBER = W1_CABLE_SERIAL_NUMBER
W2_CABLE_PART_NUMBER = W2_CABLE_PART_NUMBER
W2_CABLE_SERIAL_NUMBER = W2_CABLE_SERIAL_NUMBER
W3_CABLE_PART_NUMBER = W3_CABLE_PART_NUMBER
W3_CABLE_SERIAL_NUMBER = W3_CABLE_SERIAL_NUMBER
W4_CABLE_PART_NUMBER = W4_CABLE_PART_NUMBER
W4_CABLE_SERIAL_NUMBER = W4_CABLE_SERIAL_NUMBER
W5_CABLE_PART_NUMBER = W5_CABLE_PART_NUMBER
W5_CABLE_SERIAL_NUMBER = W5_CABLE_SERIAL_NUMBER
;=====================================================================================================================
[POLL_RATES]
; seconds
POWER_SUPPLY_LOG_RATE = 1
; seconds
POWER_SUPPLY_READ_RATE = 1
; seconds
PASSTHROUGH_DATA_UPDATE_RATE = 1
;=====================================================================================================================
[FILE_NAMES]
POWER_SUPPLY_LOG_PREFIX = PowerSupplyLog
POWER_SUPPLY_LOG_FILE_EXTENSION = csv
;=====================================================================================================================
[POWER_MODULES_TO_BE_POWERED]
MODULE_1 = P20V
MODULE_2 = N20V
[POWER_MODULES_TO_BE_DISPLAYED]
MODULE_1 = P20V
MODULE_2 = N20V
;=====================================================================================================================
[UART_INFO]
SERIAL_DEVICE_INSTANCE_NAME = SERIAL_COM_PORT_1
;=====================================================================================================================
[PBIT_INFO]
SUCCESSFUL_PBIT_AGGREGATE_VALUE = 0x3F
;=====================================================================================================================
[W3_STTO]
R01 = W3_AUD_GDNC_FILTER
R02 = W3_TIMER_START
R03 = W3_SIGNAL_RETURN
R04 = W3_GEU_TO_EMULATOR_UART
R05 = W3_POWER_RETURN_1
R06 = W3_POWER_RETURN_2
R07 = W3_POWER_RETURN_3
R08 = W3_P20VDC_TEST
R09 = W3_P20VDC_TEST_TO_POWER_RETURN
R10 = W3_N20VDC_TEST_1
R11 = W3_N20VDC_TEST_2
R12 = W3_N20VDC_TEST_3
R13 = W3_N20VDC_TEST_TO_POWER_RETURN
R14 = W3_P20VDC_TEST_TO_N20VDC_TEST
R15 = W3_P20VDC_TEST_TO_N20VDC_TEST_2
R16 = W3_ARM_IFC_SQUIB_N
R17 = W3_ARM_IFC_SQUIB_P_TO_ARM_IFC_SQUIB_N
R18 = W3_BATTERY_ACTIVATE_P3
R19 = W3_LAUNCHER_INTERLOCK
R20 = W3_FUZE_INTERLOCK
R21 = W3_BATTERY_ACTIVATE_P2_TO_LAUNCHER_INTERLOCK
R22 = W3_BATTERY_ACTIVATE_P2_TO_FUZE_INTERLOCK
; ; W3 AUD_GDNC_FILTER Isolation checks
R23 = W3_AUD_GDNC_FILTER_TO_POWER_RETURN_1
R24 = W3_AUD_GDNC_FILTER_TO_N20VDC_TEST_1
R25 = W3_AUD_GDNC_FILTER_TO_POWER_RETURN_2
R26 = W3_AUD_GDNC_FILTER_TO_POWER_RETURN_3
R27 = W3_AUD_GDNC_FILTER_TO_N20VDC_TEST_2
R28 = W3_AUD_GDNC_FILTER_TO_N20VDC_TEST_3
R29 = W3_AUD_GDNC_FILTER_TO_P20VDC_TEST_1
R30 = W3_AUD_GDNC_FILTER_TO_P20VDC_TEST_2
;=====================================================================================================================
[W4_STTO]
R01 = W4_LAUNCH_MOTOR_INIT_1
R02 = W4_LAUNCH_MOTOR_INIT_2
R03 = W4_BATTERY_INIT_1
R04 = W4_BATTERY_INIT_2
R05 = W4_LIE_N20V
R06 = W4_CAGE_COIL_OUT
R07 = W4_AUD_GDNC_FILTER
R08 = W4_AUDIO_OUTPUT_LOW
; W4 CAGE_COIL_OUT Isolation checks
; R09 = W4_CAGE_COIL_OUT_TO_POWER_RETURN_1
; R10 = W4_CAGE_COIL_OUT_TO_N20VDC_TEST_1
; R11 = W4_CAGE_COIL_OUT_TO_POWER_RETURN_2
; R12 = W4_CAGE_COIL_OUT_TO_POWER_RETURN_3
; R13 = W4_CAGE_COIL_OUT_TO_N20VDC_TEST_2
; R14 = W4_CAGE_COIL_OUT_TO_N20VDC_TEST_3
; R15 = W4_CAGE_COIL_OUT_TO_P20VDC_TEST_2
; W4 AUD_GDNC_FILTER Isolation checks
; R16 = W4_AUD_GDNC_FILTER_TO_POWER_RETURN_1
; R17 = W4_AUD_GDNC_FILTER_TO_N20VDC_TEST_1
; R18 = W4_AUD_GDNC_FILTER_TO_POWER_RETURN_2
; R19 = W4_AUD_GDNC_FILTER_TO_POWER_RETURN_3
; R20 = W4_AUD_GDNC_FILTER_TO_N20VDC_TEST_2
; R21 = W4_AUD_GDNC_FILTER_TO_N20VDC_TEST_3
; R22 = W4_AUD_GDNC_FILTER_TO_P20VDC_TEST_1
; R23 = W4_AUD_GDNC_FILTER_TO_P20VDC_TEST_2
; W4 AUDIO_OUTPUT_LOW Isolation checks
; R24 = W4_AUDIO_OUTPUT_LOW_TO_N20VDC_TEST_1
; R25 = W4_AUDIO_OUTPUT_LOW_TO_POWER_RETURN_2
; R26 = W4_AUDIO_OUTPUT_LOW_TO_POWER_RETURN_3
; R27 = W4_AUDIO_OUTPUT_LOW_TO_N20VDC_TEST_2
; R28 = W4_AUDIO_OUTPUT_LOW_TO_N20VDC_TEST_3
; R29 = W4_AUDIO_OUTPUT_LOW_TO_P20VDC_TEST_1
; R30 = W4_AUDIO_OUTPUT_LOW_TO_P20VDC_TEST_2
;=====================================================================================================================
[TestModeMsg]
DATA_1 = TestMode,MODE,SHCK,1
[MSFRParameterMsg]
TEST_CASE_1 = Open Loop Polarity - Roll Channel,TestMode,MSFR,1,1,0,0,0,4,1,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,10,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_2 = Open Loop Polarity - Pitch Channel,TestMode,MSFR,1,1,0,0,0,5,1,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,10,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_3 = Open Loop Polarity - Yaw Channel,TestMode,MSFR,1,1,0,0,0,6,1,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,10,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_4 = Open Loop Polarity - Gimbal Channel,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,0.5,0,0.087266463,0.087266463,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_5 = Open Loop Test - Gimbal Stabilized,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_6a = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_6b = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_6c = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_6d = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_6e = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_6f = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_6g = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_6h = Closed Loop Test - Isolated Roll,TestMode,MSFR,1,1,1,0,0,4,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_7a = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_7b = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_7c = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_7d = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_7e = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_7f = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_7g = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_7h = Closed Loop Test - Isolated Pitch,TestMode,MSFR,1,1,1,0,0,5,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_8a = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_8b = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_8c = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_8d = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_8e = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_8f = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_8g = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_8h = Closed Loop Test - Isolated Yaw,TestMode,MSFR,1,1,1,0,0,6,0,0,0,0,0,1,0,1,0,1,20,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_9a = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_9b = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_9c = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_9d = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_9e = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_9f = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_9g = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_9h = Closed Loop Polarity Test - Roll,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_10a = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_10b = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_10c = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_10d = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_10e = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_10f = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_10g = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_10h = Closed Loop Polarity Test - Pitch,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_11a = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_11b = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_11c = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_11d = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_11e = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_11f = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_11g = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_11h = Closed Loop Polarity Test - Yaw,TestMode,MSFR,1,1,1,0,0,2,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_12a = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_12b = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_12c = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_12d = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_12e = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_12f = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_12g = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_12h = Closed Loop Polarity Test - Gimbal Closed,TestMode,MSFR,1,1,1,0,0,1,0,0,0,0,0,1,0,1,0,1,60,0.5,0.5,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_13a = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_13b = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_13c = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_13d = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_13e = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_13f = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_13g = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_13h = Frequency Response - Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_14a = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_14b = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_14c = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_14d = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_14e = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_14f = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_14g = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_14h = Frequency Response - Pitch - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_15a = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_15b = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_15c = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_15d = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_15e = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_15f = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_15g = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_15h = Frequency Response - Yaw - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_16a = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_16b = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_16c = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_16d = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_16e = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_16f = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_16g = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_16h = Frequency Response - Gimbal Roll - Log Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_17a = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_17b = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_17c = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_17d = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_17e = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_17f = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_17g = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_17h = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_18a = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_18b = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_18c = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_18d = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_18e = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_18f = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_18g = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_18h = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_19a = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_19b = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_19c = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_19d = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_19e = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_19f = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_19g = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_19h = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,75,95,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_20a = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,75,95,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_20b = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,75,95,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_20c = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,75,95,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_20d = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,75,95,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_20e = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,75,95,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_20f = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,75,95,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_20g = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,75,95,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_20h = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,75,95,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_21a = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_21b = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_21c = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_21d = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_21e = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_21f = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_21g = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_21h = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_22a = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_22b = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_22c = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_22d = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_22e = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_22f = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_22g = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_22h = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_23a = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_23b = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_23c = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_23d = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_23e = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_23f = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_23g = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_23h = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,200,220,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_24a = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,200,220,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_24b = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,200,220,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_24c = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,200,220,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_24d = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,200,220,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_24e = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,200,220,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_24f = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,200,220,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_24g = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,200,220,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_24h = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,200,220,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_25a = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_25b = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_25c = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_25d = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_25e = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_25f = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_25g = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_25h = Frequency Response - Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_26a = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_26b = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_26c = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_26d = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_26e = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_26f = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_26g = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_26h = Frequency Response - Pitch - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_27a = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_27b = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_27c = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_27d = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_27e = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_27f = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_27g = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_27h = Frequency Response - Yaw - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,245,265,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_28a = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,245,265,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_28b = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,245,265,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_28c = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,245,265,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_28d = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,245,265,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_28e = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,245,265,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_28f = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,245,265,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_28g = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,245,265,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_28h = Frequency Response - Gimbal Roll - Linear Chirp - Empty,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,245,265,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_29a = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_29b = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_29c = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_29d = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_29e = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_29f = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_29g = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_29h = Frequency Response - Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_30a = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_30b = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_30c = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_30d = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_30e = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_30f = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_30g = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_30h = Frequency Response - Pitch - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_31a = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_31b = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_31c = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_31d = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_31e = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_31f = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_31g = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_31h = Frequency Response - Yaw - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,4,0,0,0,0,1,0,1,0,1,20,0.5,500,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_32a = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_32b = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_32c = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_32d = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_32e = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_32f = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_32g = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_32h = Frequency Response - Gimbal Roll - Log Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,0.5,500,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_33a = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_33b = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_33c = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_33d = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_33e = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_33f = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_33g = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_33h = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_34a = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_34b = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_34c = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_34d = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_34e = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_34f = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_34g = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_34h = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_35a = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_35b = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_35c = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_35d = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_35e = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_35f = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_35g = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_35h = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,92,112,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_36a = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,92,112,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_36b = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,92,112,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_36c = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,92,112,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_36d = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,92,112,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_36e = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,92,112,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_36f = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,92,112,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_36g = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,92,112,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_36h = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,92,112,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_37a = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_37b = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_37c = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_37d = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_37e = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_37f = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_37g = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_37h = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_38a = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_38b = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_38c = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_38d = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_38e = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_38f = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_38g = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_38h = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_39a = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_39b = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_39c = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_39d = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_39e = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_39f = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_39g = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_39h = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,206,226,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_40a = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,206,226,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_40b = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,206,226,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_40c = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,206,226,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_40d = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,206,226,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_40e = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,206,226,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_40f = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,206,226,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_40g = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,206,226,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_40h = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,206,226,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_41a = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_41b = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_41c = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_41d = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_41e = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_41f = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_41g = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_41h = Frequency Response - Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,4,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_42a = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_42b = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_42c = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_42d = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_42e = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_42f = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_42g = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_42h = Frequency Response - Pitch - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,5,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_43a = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_43b = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_43c = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_43d = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_43e = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_43f = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_43g = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_43h = Frequency Response - Yaw - linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,6,3,0,0,0,0,1,0,1,0,1,20,230,250,0,5,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_44a = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,230,250,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0,-0.1745329,30
TEST_CASE_44b = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,230,250,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,0.7853982,-0.1745329,30
TEST_CASE_44c = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,230,250,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,1.570796,-0.1745329,30
TEST_CASE_44d = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,230,250,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,2.356194,-0.1745329,30
TEST_CASE_44e = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,230,250,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.141593,-0.1745329,30
TEST_CASE_44f = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,230,250,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,3.926991,-0.1745329,30
TEST_CASE_44g = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,230,250,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,4.712389,-0.1745329,30
TEST_CASE_44h = Frequency Response - Gimbal Roll - Linear Chirp - Full,TestMode,MSFR,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,4,20,230,250,0,0.017453293,0.017453293,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,18,5.497787,-0.1745329,30
TEST_CASE_45a = Gain Margin Test - Iso Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_46a = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_45b = Gain Margin Test - Iso Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_46b = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_45c = Gain Margin Test - Iso Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_46c = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_45d = Gain Margin Test - Iso Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_46d = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_45e = Gain Margin Test - Iso Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_46e = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_45f = Gain Margin Test - Iso Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_46f = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_45g = Gain Margin Test - Iso Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_46g = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_45h = Gain Margin Test - Iso Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_46h = Gain Margin Test - Iso Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_47a = Gain Margin Test - Iso Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_48a = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_47b = Gain Margin Test - Iso Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_48b = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_47c = Gain Margin Test - Iso Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_48c = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_47d = Gain Margin Test - Iso Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_48d = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_47e = Gain Margin Test - Iso Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_48e = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_47f = Gain Margin Test - Iso Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_48f = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_47g = Gain Margin Test - Iso Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_48g = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_47h = Gain Margin Test - Iso Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_48h = Gain Margin Test - Iso Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_49a = Gain Margin Test - Iso Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_50a = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_49b = Gain Margin Test - Iso Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_50b = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_49c = Gain Margin Test - Iso Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_50c = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_49d = Gain Margin Test - Iso Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_50d = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_49e = Gain Margin Test - Iso Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_50e = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_49f = Gain Margin Test - Iso Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_50f = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_49g = Gain Margin Test - Iso Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_50g = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_49h = Gain Margin Test - Iso Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_50h = Gain Margin Test - Iso Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_51a = Gain Margin Test - Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_52a = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_51b = Gain Margin Test - Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_52b = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_51c = Gain Margin Test - Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_52c = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_51d = Gain Margin Test - Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_52d = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_51e = Gain Margin Test - Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_52e = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_51f = Gain Margin Test - Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_52f = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_51g = Gain Margin Test - Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_52g = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_51h = Gain Margin Test - Roll - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_52h = Gain Margin Test - Roll - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_53a = Gain Margin Test - Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_54a = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_53b = Gain Margin Test - Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_54b = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_53c = Gain Margin Test - Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_54c = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_53d = Gain Margin Test - Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_54d = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_53e = Gain Margin Test - Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_54e = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_53f = Gain Margin Test - Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_54f = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_53g = Gain Margin Test - Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_54g = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_53h = Gain Margin Test - Pitch - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_54h = Gain Margin Test - Pitch - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_55a = Gain Margin Test - Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_56a = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_55b = Gain Margin Test - Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_56b = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_55c = Gain Margin Test - Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_56c = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_55d = Gain Margin Test - Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_56d = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_55e = Gain Margin Test - Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_56e = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_55f = Gain Margin Test - Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_56f = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_55g = Gain Margin Test - Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_56g = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_55h = Gain Margin Test - Yaw - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_56h = Gain Margin Test - Yaw - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_57a = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_58a = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_57b = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_58b = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_57c = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_58c = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_57d = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_58d = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_57e = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_58e = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_57f = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_58f = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_57g = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_58g = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_57h = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_58h = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_59a = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_60a = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_59b = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_60b = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_59c = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_60c = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_59d = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_60d = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_59e = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_60e = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_59f = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_60f = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_59g = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_60g = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_59h = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_60h = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_61a = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_62a = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_61b = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_62b = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_61c = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_62c = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_61d = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_62d = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_61e = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_62e = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_61f = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_62f = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_61g = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_62g = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_61h = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_62h = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Full,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_63a = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_64a = Gain Margin Test - Iso Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_63b = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_64b = Gain Margin Test - Iso Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_63c = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_64c = Gain Margin Test - Iso Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_63d = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_64d = Gain Margin Test - Iso Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_63e = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_64e = Gain Margin Test - Iso Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_63f = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_64f = Gain Margin Test - Iso Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_63g = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_64g = Gain Margin Test - Iso Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_63h = Gain Margin Test - Iso Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_64h = Gain Margin Test - Iso Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,4,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_65a = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_66a = Gain Margin Test - Iso Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_65b = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_66b = Gain Margin Test - Iso Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_65c = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_66c = Gain Margin Test - Iso Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_65d = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_66d = Gain Margin Test - Iso Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_65e = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_66e = Gain Margin Test - Iso Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_65f = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_66f = Gain Margin Test - Iso Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_65g = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_66g = Gain Margin Test - Iso Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_65h = Gain Margin Test - Iso Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_66h = Gain Margin Test - Iso Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,5,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_67a = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_68a = Gain Margin Test - Iso Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_67b = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_68b = Gain Margin Test - Iso Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_67c = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_68c = Gain Margin Test - Iso Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_67d = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_68d = Gain Margin Test - Iso Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_67e = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_68e = Gain Margin Test - Iso Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_67f = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_68f = Gain Margin Test - Iso Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_67g = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_68g = Gain Margin Test - Iso Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_67h = Gain Margin Test - Iso Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_68h = Gain Margin Test - Iso Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,6,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_69a = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_70a = Gain Margin Test - Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_69b = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_70b = Gain Margin Test - Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_69c = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_70c = Gain Margin Test - Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_69d = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_70d = Gain Margin Test - Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_69e = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_70e = Gain Margin Test - Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_69f = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_70f = Gain Margin Test - Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_69g = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_70g = Gain Margin Test - Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_69h = Gain Margin Test - Roll - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_70h = Gain Margin Test - Roll - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_71a = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_72a = Gain Margin Test - Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_71b = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_72b = Gain Margin Test - Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_71c = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_72c = Gain Margin Test - Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_71d = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_72d = Gain Margin Test - Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_71e = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_72e = Gain Margin Test - Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_71f = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_72f = Gain Margin Test - Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_71g = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_72g = Gain Margin Test - Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_71h = Gain Margin Test - Pitch - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_72h = Gain Margin Test - Pitch - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_73a = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_74a = Gain Margin Test - Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0,-0.1745329,0
TEST_CASE_73b = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_74b = Gain Margin Test - Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,0.7853982,-0.1745329,0
TEST_CASE_73c = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_74c = Gain Margin Test - Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,1.570796,-0.1745329,0
TEST_CASE_73d = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_74d = Gain Margin Test - Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,2.356194,-0.1745329,0
TEST_CASE_73e = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_74e = Gain Margin Test - Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.141593,-0.1745329,0
TEST_CASE_73f = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_74f = Gain Margin Test - Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,3.926991,-0.1745329,0
TEST_CASE_73g = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_74g = Gain Margin Test - Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,4.712389,-0.1745329,0
TEST_CASE_73h = Gain Margin Test - Yaw - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_74h = Gain Margin Test - Yaw - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,18,5.497787,-0.1745329,0
TEST_CASE_75a = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_76a = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_75b = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_76b = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_75c = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_76c = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_75d = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_76d = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_75e = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_76e = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_75f = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_76f = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_75g = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_76g = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_75h = Gain Margin Test - Roll - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_76h = Gain Margin Test - Roll - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,1,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_77a = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_78a = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_77b = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_78b = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_77c = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_78c = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_77d = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_78d = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_77e = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_78e = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_77f = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_78f = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_77g = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_78g = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_77h = Gain Margin Test - Pitch - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_78h = Gain Margin Test - Pitch - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,2,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_79a = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_80a = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0,-0.1745329,0
TEST_CASE_79b = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_80b = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,0.7853982,-0.1745329,0
TEST_CASE_79c = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_80c = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,1.570796,-0.1745329,0
TEST_CASE_79d = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_80d = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,2.356194,-0.1745329,0
TEST_CASE_79e = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_80e = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.141593,-0.1745329,0
TEST_CASE_79f = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_80f = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,3.926991,-0.1745329,0
TEST_CASE_79g = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_80g = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,4.712389,-0.1745329,0
TEST_CASE_79h = Gain Margin Test - Yaw - Stabilized Gimbal - P0 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0
TEST_CASE_80h = Gain Margin Test - Yaw - Stabilized Gimbal - P6 dB - Empty,TestMode,MSFR,1,1,1,0,0,3,12,0,0,0,0,1,0,6,4000,1,39.999,0.5,0.5,0,0,0,0,0,5,6,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0.6,0,0,0,0,7,5.497787,-0.1745329,0

View File

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<message name="TestModeMsg">
<field name="Header" byte_count="8" type="string" value="TestMode"/>
<field name="messageType" byte_count="4" type="string" value="MODE"/>
<field name="modeType" byte_count="4" type="string" value="MSFR"/>
<field name="configuration" byte_count="1" type="uint8" value="0"/>
</message>
<message name="MSFRParameterMsg">
<field name="Header" byte_count="8" type="string" value="TestMode"/>
<field name="messageType" byte_count="4" type="string" value="MSFR"/>
<field name="testEnable" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testEnableSignalGenerator" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testEnableGainFactor" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testEnableRollFilter" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testEnableLatFilter" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testSignalChannel" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testSignalType" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testRampInitValue" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testHoldFinalValue" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testApplyRateLimit" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testAnalyticRateLimit" byte_count="1" type="bool" value="NOT_SET"/>
<field name="testNumberOfDwells" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testCyclesPerDwell" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testGmtDoubletLength" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testGmtDwellFrames" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testStartDelay" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalDuration" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalStartFrequency" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalEndFrequency" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalBias" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalStartAmplitude" byte_count="8" type="double" value="NOT_SET"/>
<field name="testSignalEndAmplitude" byte_count="8" type="double" value="NOT_SET"/>
<field name="testPhase" byte_count="8" type="double" value="NOT_SET"/>
<field name="testRateLimit" byte_count="8" type="double" value="NOT_SET"/>
<field name="testGmtDoubletSize" byte_count="8" type="double" value="NOT_SET"/>
<field name="testGmtInitialGain" byte_count="8" type="double" value="NOT_SET"/>
<field name="testRampDownDuration" byte_count="8" type="double" value="NOT_SET"/>
<field name="testRollCompN0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompN1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompN2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompD0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompD1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollCompD2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchN4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRollNotchD4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassN0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassN1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassN2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassD0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassD1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralLowPassD2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1N4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch1D4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2N4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D0" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D1" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D2" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D3" byte_count="4" type="float" value="NOT_SET"/>
<field name="testLateralNotch2D4" byte_count="4" type="float" value="NOT_SET"/>
<field name="testBurnRatio" byte_count="4" type="float" value="NOT_SET"/>
<field name="testAltitude" byte_count="4" type="float" value="NOT_SET"/>
<field name="testMachNumber" byte_count="4" type="float" value="NOT_SET"/>
<field name="testAlpha" byte_count="4" type="float" value="NOT_SET"/>
<field name="testBetaM" byte_count="4" type="float" value="NOT_SET"/>
<field name="testRoll" byte_count="4" type="float" value="NOT_SET"/>
<field name="testP" byte_count="4" type="float" value="NOT_SET"/>
<field name="testAngleControlMode" byte_count="4" type="uint32" value="NOT_SET"/>
<field name="testGimbalRollAngle" byte_count="8" type="double" value="NOT_SET"/>
<field name="testGimbalNodAngle" byte_count="8" type="double" value="NOT_SET"/>
<field name="testAngleControlSignalDuration" byte_count="8" type="double" value="NOT_SET"/>
</message>
</root>

View 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
};
}
}

Some files were not shown because too many files have changed in this diff Show More