From db92ab8de39890b7cb1691fa02c0e326048322ff Mon Sep 17 00:00:00 2001 From: Tyrel Souza Date: Mon, 25 Jul 2022 00:10:26 -0400 Subject: [PATCH] Add project files. --- BenchtopParser.sln | 31 + BenchtopParser/BenchtopParser.csproj | 9 + BenchtopParser/Parser.cs | 64 +++ BenchtopParser/ProgramConfig.cs | 27 + .../BenchtopParserTests.csproj | 35 ++ .../TestFiles/Hardware Calibration Report.txt | 540 ++++++++++++++++++ .../TestFiles/Program Config.txt | 92 +++ .../TestFiles/Transducer Verify.txt | 86 +++ BenchtopParserTests/UnitTest1.cs | 24 + BenchtopParserTests/Usings.cs | 1 + 10 files changed, 909 insertions(+) create mode 100644 BenchtopParser.sln create mode 100644 BenchtopParser/BenchtopParser.csproj create mode 100644 BenchtopParser/Parser.cs create mode 100644 BenchtopParser/ProgramConfig.cs create mode 100644 BenchtopParserTests/BenchtopParserTests.csproj create mode 100644 BenchtopParserTests/TestFiles/Hardware Calibration Report.txt create mode 100644 BenchtopParserTests/TestFiles/Program Config.txt create mode 100644 BenchtopParserTests/TestFiles/Transducer Verify.txt create mode 100644 BenchtopParserTests/UnitTest1.cs create mode 100644 BenchtopParserTests/Usings.cs diff --git a/BenchtopParser.sln b/BenchtopParser.sln new file mode 100644 index 0000000..9a746c1 --- /dev/null +++ b/BenchtopParser.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32505.173 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BenchtopParser", "BenchtopParser\BenchtopParser.csproj", "{EED4B077-4509-4BEB-9E17-85352F983551}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BenchtopParserTests", "BenchtopParserTests\BenchtopParserTests.csproj", "{5320EE87-21FF-4FA9-9936-1CD902556009}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EED4B077-4509-4BEB-9E17-85352F983551}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EED4B077-4509-4BEB-9E17-85352F983551}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EED4B077-4509-4BEB-9E17-85352F983551}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EED4B077-4509-4BEB-9E17-85352F983551}.Release|Any CPU.Build.0 = Release|Any CPU + {5320EE87-21FF-4FA9-9936-1CD902556009}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5320EE87-21FF-4FA9-9936-1CD902556009}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5320EE87-21FF-4FA9-9936-1CD902556009}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5320EE87-21FF-4FA9-9936-1CD902556009}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {5D9A4398-4E34-4CB0-9F51-966A4DA79F63} + EndGlobalSection +EndGlobal diff --git a/BenchtopParser/BenchtopParser.csproj b/BenchtopParser/BenchtopParser.csproj new file mode 100644 index 0000000..132c02c --- /dev/null +++ b/BenchtopParser/BenchtopParser.csproj @@ -0,0 +1,9 @@ + + + + net6.0 + enable + enable + + + diff --git a/BenchtopParser/Parser.cs b/BenchtopParser/Parser.cs new file mode 100644 index 0000000..1209f6f --- /dev/null +++ b/BenchtopParser/Parser.cs @@ -0,0 +1,64 @@ +namespace BenchtopParser { + public class Parser { + public static List I28_ProgramConfig(String program_config) { + List program_configs = new List(); + I28.ProgramConfig? current = null; + + foreach (var line in program_config.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)) { + var config_line = line.Split("\t").ToList(); + config_line.RemoveAt(0); // Remove random hex value + config_line.RemoveAt(0); // Remove L column + if (config_line[0].StartsWith("Start,")) { + // initialize programconfig + current = new I28.ProgramConfig(); + continue; + } + if (config_line[0].StartsWith("Stop,")) { + // Short circuit early when stop comes. + program_configs.Add(current); + break; + } + var config = config_line[0].Split(",", 2).ToList(); + if (config_line.Count() == 1) { + // Set Program Number + if (current == null) { + throw new Exception("Setting Program Number Before Start. Error In Config"); + } + Console.WriteLine(config[1]); + current.ProgramNumber = config[1]; + continue; + } + + + // Skip numbers, keep value + var value = config[1]; + + + var programnumber_group_data = value.Split('\\'); + var data = programnumber_group_data[2]; + if (data.StartsWith("=")) { continue; /* comment line */ } + + var lineConfig = new I28.Configuration(); + lineConfig.unit = config_line[1]; + lineConfig.type = config_line[2]; //a, c, f, i + var name_value = data.Split("="); + lineConfig.name = name_value[0]; + lineConfig.value = name_value[1]; + + // Deal with this group logic + var group = programnumber_group_data[1]; + if (current != null && !current.Group.ContainsKey(group)) { + current.Group.Add(group, new List { lineConfig }); + } else if (current != null ) { + current.Group[group].Add(lineConfig); + } else { + throw new Exception("Config list is null, something broke"); + } + } + // TODO: What if multiple configs how to handle start and stop? + + return program_configs; + } + } +} + diff --git a/BenchtopParser/ProgramConfig.cs b/BenchtopParser/ProgramConfig.cs new file mode 100644 index 0000000..ba57578 --- /dev/null +++ b/BenchtopParser/ProgramConfig.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BenchtopParser { + public class I28 { + public class ProgramConfig { + public String? ProgramNumber { get; set; } + public Dictionary> Group { get; set; } + + public ProgramConfig() { + this.Group = new Dictionary>(); + } + } + public class Configuration { + public String? name { get; set; } + public String? value { get; set; } + public String? type { get; set; } + public String? unit { get; set; } + + } + } + + +} diff --git a/BenchtopParserTests/BenchtopParserTests.csproj b/BenchtopParserTests/BenchtopParserTests.csproj new file mode 100644 index 0000000..5fc622b --- /dev/null +++ b/BenchtopParserTests/BenchtopParserTests.csproj @@ -0,0 +1,35 @@ + + + + net6.0 + enable + enable + + false + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + diff --git a/BenchtopParserTests/TestFiles/Hardware Calibration Report.txt b/BenchtopParserTests/TestFiles/Hardware Calibration Report.txt new file mode 100644 index 0000000..5d5d133 --- /dev/null +++ b/BenchtopParserTests/TestFiles/Hardware Calibration Report.txt @@ -0,0 +1,540 @@ +|| Instrument Info || + +Instrument Name Chassis2 Adult +Serial Number BBP1736 +Time 11:31:39 +Date 07/12/2022 + + +|| Hardware Calibration Report || + +Hardware 0 +=============================================================== + Test Port 1 + =========================================================== + + + Mass Flow Trans + =========================================================== + Transducer Custom + Input AIN 2 + Setpoint Pressure 1 25.000 psig + Setpoint Pressure 2 25.000 psig + Setpoint Pressure 3 25.000 psig + Setpoint Pressure 4 25.000 psig + Setpoint Pressure 5 25.000 psig + Setpoint Pressure 6 25.000 psig + Analog Value 1 8688254 cnts + Analog Value 2 9864771 cnts + Analog Value 3 11053088 cnts + Analog Value 4 12185889 cnts + Analog Value 5 13357767 cnts + Analog Value 6 14524278 cnts + Master Value 1 0.041 sccm + Master Value 2 4.059 sccm + Master Value 3 8.150 sccm + Master Value 4 11.980 sccm + Master Value 5 15.995 sccm + Master Value 6 19.985 sccm + Linearity 0.129 % + Last Cal Date 12/07/2020 + Last Cal Time 10:35:20 + Xdcr Filter Code Median + Xdcr Typ Residual 108.000 + Xdcr Zero LL 0.000 cnts + Xdcr Zero HL 0.000 cnts + Xdcr Zero Lwin 0.000 + Xdcr Zero Hwin 0.000 + Xdcr Analog Min 0.000 cnts + Xdcr Analog Max 0.000 cnts + Xdcr Base Min 0.000 + Xdcr Base Max 0.000 + Setpoint Pressure 1 5.800 psig + Setpoint Pressure 2 5.800 psig + Setpoint Pressure 3 5.800 psig + Setpoint Pressure 4 5.800 psig + Setpoint Pressure 5 5.800 psig + Setpoint Pressure 6 5.800 psig + Instrument Pressure 1 5.824 psig + Instrument Pressure 2 5.822 psig + Instrument Pressure 3 5.820 psig + Instrument Pressure 4 5.818 psig + Instrument Pressure 5 5.816 psig + Instrument Pressure 6 5.815 psig + Instrument Flow 1 0.038 sccm + Instrument Flow 2 4.075 sccm + Instrument Flow 3 8.151 sccm + Instrument Flow 4 12.124 sccm + Instrument Flow 5 16.213 sccm + Instrument Flow 6 20.165 sccm + Master Value 1 0.000 sccm + Master Value 2 4.000 sccm + Master Value 3 8.000 sccm + Master Value 4 12.000 sccm + Master Value 5 16.000 sccm + Master Value 6 20.000 sccm + Master Reading 1 0.000 sccm + Master Reading 2 4.000 sccm + Master Reading 3 8.000 sccm + Master Reading 4 12.000 sccm + Master Reading 5 16.000 sccm + Master Reading 6 20.000 sccm + Verify Date 07/12/2022 + Verify Time 10:54:56 + + + Pressure Transducer + =========================================================== + Transducer CTS D34-441 45PSIA + Input AIN 1 + Setpoint Pressure 1 0.000 psig + Setpoint Pressure 2 6.000 psig + Setpoint Pressure 3 12.000 psig + Setpoint Pressure 4 18.000 psig + Setpoint Pressure 5 24.000 psig + Setpoint Pressure 6 30.000 psig + Analog Value 1 10087020 cnts + Analog Value 2 10810568 cnts + Analog Value 3 11532365 cnts + Analog Value 4 12252414 cnts + Analog Value 5 12970722 cnts + Analog Value 6 13687182 cnts + Master Value 1 0.001 psig + Master Value 2 6.001 psig + Master Value 3 12.001 psig + Master Value 4 18.001 psig + Master Value 5 24.001 psig + Master Value 6 30.001 psig + XDCR Analog ATM 10086749 + Atm Pressure -0.000 bar + Linearity 0.082 % + Last Cal Date 12/07/2020 + Last Cal Time 09:03:38 + Xdcr Filter Code Med, J-Filter + Xdcr Typ Residual 80.000 + Xdcr Zero LL 9654557.000 cnts + Xdcr Zero HL 10485333.000 cnts + Xdcr Zero Lwin -2.501 psig + Xdcr Zero Hwin 2.499 psig + Xdcr Analog Min 5699952.000 cnts + Xdcr Analog Max 15110248.000 cnts + Xdcr Base Min -4294967.000 + Xdcr Base Max 8589935.000 + Setpoint Pressure 1 0.000 psig + Setpoint Pressure 2 6.000 psig + Setpoint Pressure 3 12.000 psig + Setpoint Pressure 4 18.000 psig + Setpoint Pressure 5 24.000 psig + Setpoint Pressure 6 30.000 psig + Instrument Pressure 1 0.000 psig + Instrument Pressure 2 6.000 psig + Instrument Pressure 3 11.999 psig + Instrument Pressure 4 17.998 psig + Instrument Pressure 5 23.997 psig + Instrument Pressure 6 29.997 psig + Master Value 1 0.000 psig + Master Value 2 6.000 psig + Master Value 3 12.000 psig + Master Value 4 18.000 psig + Master Value 5 24.000 psig + Master Value 6 30.000 psig + Verify Date 07/12/2022 + Verify Time 08:14:59 + + + Test Port 2 + =========================================================== + + + Mass Flow Trans + =========================================================== + Transducer Custom + Input AIN 4 + Setpoint Pressure 1 25.000 psig + Setpoint Pressure 2 25.000 psig + Setpoint Pressure 3 25.000 psig + Setpoint Pressure 4 25.000 psig + Setpoint Pressure 5 25.000 psig + Setpoint Pressure 6 25.000 psig + Analog Value 1 8689552 cnts + Analog Value 2 9914953 cnts + Analog Value 3 11057751 cnts + Analog Value 4 12214973 cnts + Analog Value 5 13397425 cnts + Analog Value 6 14516985 cnts + Master Value 1 0.054 sccm + Master Value 2 4.255 sccm + Master Value 3 8.124 sccm + Master Value 4 12.146 sccm + Master Value 5 16.159 sccm + Master Value 6 19.993 sccm + Linearity 0.166 % + Last Cal Date 12/07/2020 + Last Cal Time 10:50:52 + Xdcr Filter Code Median + Xdcr Typ Residual 83.000 + Xdcr Zero LL 0.000 cnts + Xdcr Zero HL 0.000 cnts + Xdcr Zero Lwin 0.000 + Xdcr Zero Hwin 0.000 + Xdcr Analog Min 0.000 cnts + Xdcr Analog Max 0.000 cnts + Xdcr Base Min 0.000 + Xdcr Base Max 0.000 + Setpoint Pressure 1 5.800 psig + Setpoint Pressure 2 5.800 psig + Setpoint Pressure 3 5.800 psig + Setpoint Pressure 4 5.800 psig + Setpoint Pressure 5 5.800 psig + Setpoint Pressure 6 5.800 psig + Instrument Pressure 1 5.780 psig + Instrument Pressure 2 5.779 psig + Instrument Pressure 3 5.808 psig + Instrument Pressure 4 5.809 psig + Instrument Pressure 5 5.807 psig + Instrument Pressure 6 5.807 psig + Instrument Flow 1 0.049 sccm + Instrument Flow 2 4.122 sccm + Instrument Flow 3 8.171 sccm + Instrument Flow 4 12.220 sccm + Instrument Flow 5 16.204 sccm + Instrument Flow 6 20.221 sccm + Master Value 1 0.000 sccm + Master Value 2 4.000 sccm + Master Value 3 8.000 sccm + Master Value 4 12.000 sccm + Master Value 5 16.000 sccm + Master Value 6 20.000 sccm + Master Reading 1 0.000 sccm + Master Reading 2 4.000 sccm + Master Reading 3 8.000 sccm + Master Reading 4 12.000 sccm + Master Reading 5 16.000 sccm + Master Reading 6 20.000 sccm + Verify Date 07/12/2022 + Verify Time 11:01:54 + + + Pressure Transducer + =========================================================== + Transducer CTS D34-441 45PSIA + Input AIN 3 + Setpoint Pressure 1 0.000 psig + Setpoint Pressure 2 6.000 psig + Setpoint Pressure 3 12.000 psig + Setpoint Pressure 4 18.000 psig + Setpoint Pressure 5 24.000 psig + Setpoint Pressure 6 30.000 psig + Analog Value 1 10050243 cnts + Analog Value 2 10763409 cnts + Analog Value 3 11474665 cnts + Analog Value 4 12184422 cnts + Analog Value 5 12892174 cnts + Analog Value 6 13598393 cnts + Master Value 1 0.001 psig + Master Value 2 6.001 psig + Master Value 3 12.001 psig + Master Value 4 18.001 psig + Master Value 5 24.001 psig + Master Value 6 30.001 psig + XDCR Analog ATM 10050055 + Atm Pressure -0.000 bar + Linearity 0.082 % + Last Cal Date 12/07/2020 + Last Cal Time 09:11:34 + Xdcr Filter Code Med, J-Filter + Xdcr Typ Residual 59.000 + Xdcr Zero LL 9654557.000 cnts + Xdcr Zero HL 10485333.000 cnts + Xdcr Zero Lwin -2.501 psig + Xdcr Zero Hwin 2.499 psig + Xdcr Analog Min 5699952.000 cnts + Xdcr Analog Max 15110248.000 cnts + Xdcr Base Min -4294967.000 + Xdcr Base Max 8589935.000 + Setpoint Pressure 1 0.000 psig + Setpoint Pressure 2 6.000 psig + Setpoint Pressure 3 12.000 psig + Setpoint Pressure 4 18.000 psig + Setpoint Pressure 5 24.000 psig + Setpoint Pressure 6 30.000 psig + Instrument Pressure 1 -0.000 psig + Instrument Pressure 2 5.999 psig + Instrument Pressure 3 12.000 psig + Instrument Pressure 4 17.998 psig + Instrument Pressure 5 23.999 psig + Instrument Pressure 6 29.999 psig + Master Value 1 0.000 psig + Master Value 2 6.000 psig + Master Value 3 12.000 psig + Master Value 4 18.000 psig + Master Value 5 24.000 psig + Master Value 6 30.000 psig + Verify Date 07/12/2022 + Verify Time 08:21:53 + + + Test Port 3 + =========================================================== + + + Mass Flow Trans + =========================================================== + Transducer Custom + Input AIN 6 + Setpoint Pressure 1 25.000 psig + Setpoint Pressure 2 25.000 psig + Setpoint Pressure 3 25.000 psig + Setpoint Pressure 4 25.000 psig + Setpoint Pressure 5 25.000 psig + Setpoint Pressure 6 25.000 psig + Analog Value 1 8686103 cnts + Analog Value 2 9889340 cnts + Analog Value 3 11072089 cnts + Analog Value 4 12249269 cnts + Analog Value 5 13397809 cnts + Analog Value 6 14502802 cnts + Master Value 1 0.007 sccm + Master Value 2 4.155 sccm + Master Value 3 8.207 sccm + Master Value 4 12.206 sccm + Master Value 5 16.165 sccm + Master Value 6 19.942 sccm + Linearity 0.096 % + Last Cal Date 12/07/2020 + Last Cal Time 14:29:53 + Xdcr Filter Code Median + Xdcr Typ Residual 722632.000 + Xdcr Zero LL 0.000 cnts + Xdcr Zero HL 0.000 cnts + Xdcr Zero Lwin 0.000 + Xdcr Zero Hwin 0.000 + Xdcr Analog Min 0.000 cnts + Xdcr Analog Max 0.000 cnts + Xdcr Base Min 0.000 + Xdcr Base Max 0.000 + Setpoint Pressure 1 5.800 psig + Setpoint Pressure 2 5.800 psig + Setpoint Pressure 3 5.800 psig + Setpoint Pressure 4 5.800 psig + Setpoint Pressure 5 5.800 psig + Setpoint Pressure 6 5.800 psig + Instrument Pressure 1 5.892 psig + Instrument Pressure 2 5.889 psig + Instrument Pressure 3 5.887 psig + Instrument Pressure 4 5.884 psig + Instrument Pressure 5 5.883 psig + Instrument Pressure 6 5.881 psig + Instrument Flow 1 0.005 sccm + Instrument Flow 2 4.091 sccm + Instrument Flow 3 8.123 sccm + Instrument Flow 4 12.135 sccm + Instrument Flow 5 16.175 sccm + Instrument Flow 6 20.202 sccm + Master Value 1 0.000 sccm + Master Value 2 4.000 sccm + Master Value 3 8.000 sccm + Master Value 4 12.000 sccm + Master Value 5 16.000 sccm + Master Value 6 20.000 sccm + Master Reading 1 0.000 sccm + Master Reading 2 4.000 sccm + Master Reading 3 8.000 sccm + Master Reading 4 12.000 sccm + Master Reading 5 16.000 sccm + Master Reading 6 20.000 sccm + Verify Date 07/12/2022 + Verify Time 11:18:36 + + + Pressure Transducer + =========================================================== + Transducer CTS D34-441 45PSIA + Input AIN 5 + Setpoint Pressure 1 0.000 psig + Setpoint Pressure 2 6.000 psig + Setpoint Pressure 3 12.000 psig + Setpoint Pressure 4 18.000 psig + Setpoint Pressure 5 24.000 psig + Setpoint Pressure 6 30.000 psig + Analog Value 1 10008894 cnts + Analog Value 2 10714413 cnts + Analog Value 3 11418030 cnts + Analog Value 4 12120292 cnts + Analog Value 5 12820552 cnts + Analog Value 6 13519203 cnts + Master Value 1 0.000 psig + Master Value 2 6.000 psig + Master Value 3 12.000 psig + Master Value 4 18.000 psig + Master Value 5 24.000 psig + Master Value 6 30.000 psig + XDCR Analog ATM 10008874 + Atm Pressure -0.000 bar + Linearity 0.081 % + Last Cal Date 07/12/2022 + Last Cal Time 09:09:57 + Xdcr Filter Code Med, J-Filter + Xdcr Typ Residual 121.000 + Xdcr Zero LL 9654557.000 cnts + Xdcr Zero HL 10485333.000 cnts + Xdcr Zero Lwin -2.500 psig + Xdcr Zero Hwin 2.500 psig + Xdcr Analog Min 5699952.000 cnts + Xdcr Analog Max 15110248.000 cnts + Xdcr Base Min -4294967.000 + Xdcr Base Max 8589935.000 + Setpoint Pressure 1 0.000 psig + Setpoint Pressure 2 6.000 psig + Setpoint Pressure 3 12.000 psig + Setpoint Pressure 4 18.000 psig + Setpoint Pressure 5 24.000 psig + Setpoint Pressure 6 30.000 psig + Instrument Pressure 1 -0.000 psig + Instrument Pressure 2 6.000 psig + Instrument Pressure 3 12.002 psig + Instrument Pressure 4 18.000 psig + Instrument Pressure 5 24.002 psig + Instrument Pressure 6 30.001 psig + Master Value 1 0.000 psig + Master Value 2 6.000 psig + Master Value 3 12.000 psig + Master Value 4 18.000 psig + Master Value 5 24.000 psig + Master Value 6 30.000 psig + Verify Date 07/12/2022 + Verify Time 09:13:02 + + + Test Port 4 + =========================================================== + + + Mass Flow Trans + =========================================================== + Transducer Custom + Input AIN 8 + Setpoint Pressure 1 25.000 psig + Setpoint Pressure 2 25.000 psig + Setpoint Pressure 3 25.000 psig + Setpoint Pressure 4 25.000 psig + Setpoint Pressure 5 25.000 psig + Setpoint Pressure 6 25.000 psig + Analog Value 1 8684522 cnts + Analog Value 2 9881552 cnts + Analog Value 3 11081720 cnts + Analog Value 4 12240018 cnts + Analog Value 5 13413541 cnts + Analog Value 6 14535797 cnts + Master Value 1 0.000 sccm + Master Value 2 4.090 sccm + Master Value 3 8.134 sccm + Master Value 4 12.132 sccm + Master Value 5 16.121 sccm + Master Value 6 19.984 sccm + Linearity 0.194 % + Last Cal Date 12/07/2020 + Last Cal Time 11:27:27 + Xdcr Filter Code Median + Xdcr Typ Residual 13.000 + Xdcr Zero LL 0.000 cnts + Xdcr Zero HL 0.000 cnts + Xdcr Zero Lwin 0.000 + Xdcr Zero Hwin 0.000 + Xdcr Analog Min 0.000 cnts + Xdcr Analog Max 0.000 cnts + Xdcr Base Min 0.000 + Xdcr Base Max 0.000 + Setpoint Pressure 1 5.800 psig + Setpoint Pressure 2 5.800 psig + Setpoint Pressure 3 5.800 psig + Setpoint Pressure 4 5.800 psig + Setpoint Pressure 5 5.800 psig + Setpoint Pressure 6 5.800 psig + Instrument Pressure 1 5.835 psig + Instrument Pressure 2 5.837 psig + Instrument Pressure 3 5.839 psig + Instrument Pressure 4 5.841 psig + Instrument Pressure 5 5.841 psig + Instrument Pressure 6 5.841 psig + Instrument Flow 1 -0.002 sccm + Instrument Flow 2 4.051 sccm + Instrument Flow 3 7.989 sccm + Instrument Flow 4 12.073 sccm + Instrument Flow 5 16.013 sccm + Instrument Flow 6 20.043 sccm + Master Value 1 0.000 sccm + Master Value 2 4.000 sccm + Master Value 3 8.000 sccm + Master Value 4 12.000 sccm + Master Value 5 16.000 sccm + Master Value 6 20.000 sccm + Master Reading 1 0.000 sccm + Master Reading 2 4.000 sccm + Master Reading 3 8.000 sccm + Master Reading 4 12.000 sccm + Master Reading 5 16.000 sccm + Master Reading 6 20.000 sccm + Verify Date 07/12/2022 + Verify Time 11:26:40 + + + Pressure Transducer + =========================================================== + Transducer CTS D34-441 45PSIA + Input AIN 7 + Setpoint Pressure 1 0.000 psig + Setpoint Pressure 2 6.000 psig + Setpoint Pressure 3 12.000 psig + Setpoint Pressure 4 18.000 psig + Setpoint Pressure 5 24.000 psig + Setpoint Pressure 6 30.000 psig + Analog Value 1 10046563 cnts + Analog Value 2 10762536 cnts + Analog Value 3 11476853 cnts + Analog Value 4 12189519 cnts + Analog Value 5 12900160 cnts + Analog Value 6 13609169 cnts + Master Value 1 0.000 psig + Master Value 2 6.000 psig + Master Value 3 12.000 psig + Master Value 4 18.000 psig + Master Value 5 24.000 psig + Master Value 6 30.000 psig + XDCR Analog ATM 10046626 + Atm Pressure 0.000 bar + Linearity 0.083 % + Last Cal Date 07/12/2022 + Last Cal Time 08:57:20 + Xdcr Filter Code Med, J-Filter + Xdcr Typ Residual 138.000 + Xdcr Zero LL 9654557.000 cnts + Xdcr Zero HL 10485333.000 cnts + Xdcr Zero Lwin -2.499 psig + Xdcr Zero Hwin 2.501 psig + Xdcr Analog Min 5699952.000 cnts + Xdcr Analog Max 15110248.000 cnts + Xdcr Base Min -4294967.000 + Xdcr Base Max 8589935.000 + Setpoint Pressure 1 0.000 psig + Setpoint Pressure 2 6.000 psig + Setpoint Pressure 3 12.000 psig + Setpoint Pressure 4 18.000 psig + Setpoint Pressure 5 24.000 psig + Setpoint Pressure 6 30.000 psig + Instrument Pressure 1 -0.000 psig + Instrument Pressure 2 5.999 psig + Instrument Pressure 3 11.999 psig + Instrument Pressure 4 17.998 psig + Instrument Pressure 5 23.997 psig + Instrument Pressure 6 29.997 psig + Master Value 1 0.000 psig + Master Value 2 6.000 psig + Master Value 3 12.000 psig + Master Value 4 18.000 psig + Master Value 5 24.000 psig + Master Value 6 30.000 psig + Verify Date 07/12/2022 + Verify Time 09:04:54 + + diff --git a/BenchtopParserTests/TestFiles/Program Config.txt b/BenchtopParserTests/TestFiles/Program Config.txt new file mode 100644 index 0000000..e1da568 --- /dev/null +++ b/BenchtopParserTests/TestFiles/Program Config.txt @@ -0,0 +1,92 @@ +C9AD026 L Start, Current Program Config Report +EBAE006 L 1,P1 +06AF02B L 2,P1\X\Test Type=Diff Press Decay-dP c +91B0034 L 3,P1\X\= a +4CB1034 L 4,P1\X\=Measures the Pressure Loss (dP), a +E1B2034 L 5,P1\X\=determined from the differential loss a +79B3034 L 6,P1\X\=between the test part and the a +49B4034 L 7,P1\X\=reference volume over the duration of a +C6B5034 L 8,P1\X\=the test timer. The result is a +76B6034 L 9,P1\X\=presented in units of delta pressure. a +29B7021 L 10,P1\R\Tool Ext 1=2.50 sec f +F8B801D L 11,P1\R\Charge=5.00 sec f +D6B901B L 12,P1\R\Fill=5.00 sec f +E8BA021 L 13,P1\R\Stabilize=10.00 sec f +45BB01F L 14,P1\R\Isolation=50.00 % f +6CBC01C L 15,P1\R\Test=10.00 sec f +E3BD01E L 16,P1\R\Exhaust=0.50 sec f +DDBE021 L 17,P1\R\Tool Ret 1=1.00 sec f +82BF029 L 18,P1\P\Charge Min Press=0.400 mbar f +3EC002E L 19,P1\P\Charge Target Press=140.000 mbar f +77C102C L 20,P1\P\Charge Max Press=6894.757 mbar f +49C202A L 21,P1\P\Minimum Pressure=95.000 mbar f +27C302A L 22,P1\P\Target Pressure=100.000 mbar f +39C402B L 23,P1\P\Maximum Pressure=120.000 mbar f +E5C502A L 24,P1\P\Target Press Window=100.00 % f +DBC602A L 25,P1\S\Low Limit Loss=-6894.758 dPa f +3EC7028 L 26,P1\S\High Limit Loss=90.000 dPa f +D5C8023 L 27,P1\S\Decay Direction=Loss c +F8C9024 L 28,P1\S\Test Evaluation=F/P/F c +74CA023 L 29,P1\S\Loss Offset=0.000 dPa f +01CB01D L 30,P1\S\EDC Enabled=No c +72CC021 L 31,P1\S\EDC Percentage=25% c +26CD01E L 32,P1\S\EDC Quantity=30 i +4BCE01F L 33,P1\M\Program Name=H R a +CACF023 L 34,P1\M\Barcode Required=Yes c +A9D0024 L 35,P1\M\Barcode Method=Unique c +20D1024 L 36,P1\M\Copy to Target Prog=1 i +47D201E L 37,P1\M\Copy Program=No c +4AD3023 L 38,P1\M\Retain Part Press=No c +11D4026 L 39,P1\M\Malfunction Eval=Reject c +A1D5030 L 40,P1\M\Pressure Select=Pressure Source 1 c +79D6023 L 41,P1\M\Leak Std Select=None c +8BD7022 L 42,P1\M\ERC Method=Disabled c +63D802A L 43,P1\M\Prefill Method=Fixed Charge c +52D902A L 44,P1\M\Pressure Correction=Enabled c +B0DA022 L 45,P1\M\Exhaust Method=Dump c +49DB024 L 46,P1\A\Autorun Relax=3.00 sec f +18DC026 L 47,P1\A\Autorun Method=Standard c +57DD025 L 48,P1\A\Autorun Cycle Count=10 i +99DE020 L 49,P1\A\Autorun Enable=No c +58DF01C L 50,P1\U\Time Unit=sec c +9BE0022 L 51,P1\U\Time Precision=X.XX c +F9E1021 L 52,P1\U\Pressure Unit=mbar c +F4E2027 L 53,P1\U\Pressure Precision=X.XXX c +FFE3022 L 54,P1\U\d Pressure Unit=dPa c +F2E4026 L 55,P1\U\d Press Precision=X.XXX c +24E501C L 56,P1\I\I/O ID=786561 a +99E601E L 57,P1\I\1=Start Channel c +49E701D L 58,P1\I\2=Part Present c +1EE801B L 59,P1\I\3=Unassigned c +66E901B L 60,P1\I\4=Unassigned c +48EA01B L 61,P1\I\5=Unassigned c +BEEB01B L 62,P1\I\6=Unassigned c +ECEC01B L 63,P1\I\7=Unassigned c +BFED01C L 64,P1\I\8=Constrained c +A5EE01B L 65,P1\I\9=Unassigned c +2EEF01C L 66,P1\I\10=Unassigned c +46F001C L 67,P1\I\11=Unassigned c +DDF101C L 68,P1\I\12=Unassigned c +FBF201C L 69,P1\O\I/O ID=786561 a +D5F301D L 70,P1\O\1=Press Select c +27F401F L 71,P1\O\2=Program Reject c +71F501C L 72,P1\O\3=Test Passed c +1BF601E L 73,P1\O\4=Tool Extend 1 c +FAF701B L 74,P1\O\5=Unassigned c +52F801B L 75,P1\O\6=Unassigned c +08F901C L 76,P1\O\7=Constrained c +5EFA01F L 77,P1\O\8=Program Reject c +D6FB01C L 78,P1\O\9=Constrained c +13FC01D L 79,P1\O\10=Constrained c +70FD01C L 80,P1\O\11=Unassigned c +98FE01C L 81,P1\O\12=Unassigned c +11FF020 L 82,P1\T\Tooling Option=On c +EF00022 L 83,P1\T\Number of Motions=1 c +6C01025 L 84,P1\T\Two Inputs to Start=No c +DE0202C L 85,P1\T\Part Present Check=Test Start c +E60301E L 86,P1\T\Motion Number=1 c +5A04024 L 87,P1\T\Retract on Reject=Yes c +690501D L 88,P1\T\Part Mark=None c +C306026 L 89,P1\T\Tooling Feedback 1=None c +8507025 L Stop, Current Program Config Report +2E08028 V I\S\RS232 1 REPORT=Cur Prog Config c diff --git a/BenchtopParserTests/TestFiles/Transducer Verify.txt b/BenchtopParserTests/TestFiles/Transducer Verify.txt new file mode 100644 index 0000000..0d85f8b --- /dev/null +++ b/BenchtopParserTests/TestFiles/Transducer Verify.txt @@ -0,0 +1,86 @@ +|| Transducer Verify Report || +TRANSDUCER1 +=============================================================== +Transducer 1 CTS D34-442 115PSIA +Setpoint Pressure 1 0.000 psig +Setpoint Pressure 2 20.000 psig +Setpoint Pressure 3 40.000 psig +Setpoint Pressure 4 60.000 psig +Setpoint Pressure 5 80.000 psig +Setpoint Pressure 6 100.000 psig +Instrument Pressure 1 0.000 psig +Instrument Pressure 2 20.002 psig +Instrument Pressure 3 39.997 psig +Instrument Pressure 4 60.010 psig +Instrument Pressure 5 80.001 psig +Instrument Pressure 6 100.002 psig +Master Value 1 0.000 psig +Master Value 2 20.000 psig +Master Value 3 40.000 psig +Master Value 4 60.000 psig +Master Value 5 80.000 psig +Master Value 6 100.000 psig +Verify Date 07/20/22 +Verify Time 11:20:26 + +TRANSDUCER2 +=============================================================== +Transducer 2 CTS A12-221 250SCCM +Setpoint Pressure 1 20.000 psig +Setpoint Pressure 2 20.000 psig +Setpoint Pressure 3 20.000 psig +Setpoint Pressure 4 20.000 psig +Setpoint Pressure 5 20.000 psig +Setpoint Pressure 6 20.000 psig +Setpoint Pressure 7 20.000 psig +Setpoint Pressure 8 20.000 psig +Setpoint Pressure 9 20.000 psig +Setpoint Pressure 10 20.000 psig +Setpoint Pressure 11 20.000 psig +Instrument Pressure 1 20.154 psig +Instrument Pressure 2 20.153 psig +Instrument Pressure 3 20.152 psig +Instrument Pressure 4 20.150 psig +Instrument Pressure 5 20.148 psig +Instrument Pressure 6 20.145 psig +Instrument Pressure 7 20.144 psig +Instrument Pressure 8 20.141 psig +Instrument Pressure 9 20.139 psig +Instrument Pressure 10 20.138 psig +Instrument Pressure 11 20.136 psig +Instrument Flow 1 -0.082 sccm +Instrument Flow 2 24.802 sccm +Instrument Flow 3 49.664 sccm +Instrument Flow 4 74.836 sccm +Instrument Flow 5 99.416 sccm +Instrument Flow 6 125.289 sccm +Instrument Flow 7 150.205 sccm +Instrument Flow 8 175.290 sccm +Instrument Flow 9 200.165 sccm +Instrument Flow 10 224.748 sccm +Instrument Flow 11 249.825 sccm +Master Reading 1 0.000 sccm +Master Reading 2 25.000 sccm +Master Reading 3 50.000 sccm +Master Reading 4 75.000 sccm +Master Reading 5 100.000 sccm +Master Reading 6 125.000 sccm +Master Reading 7 150.000 sccm +Master Reading 8 175.000 sccm +Master Reading 9 200.000 sccm +Master Reading 10 225.000 sccm +Master Reading 11 250.000 sccm +Master Value 1 0.000 sccm +Master Value 2 25.000 sccm +Master Value 3 50.000 sccm +Master Value 4 75.000 sccm +Master Value 5 100.000 sccm +Master Value 6 125.000 sccm +Master Value 7 150.000 sccm +Master Value 8 175.000 sccm +Master Value 9 200.000 sccm +Master Value 10 225.000 sccm +Master Value 11 250.000 sccm +Verify Date 07/15/21 +Verify Time 14:55:10 + diff --git a/BenchtopParserTests/UnitTest1.cs b/BenchtopParserTests/UnitTest1.cs new file mode 100644 index 0000000..3eeec47 --- /dev/null +++ b/BenchtopParserTests/UnitTest1.cs @@ -0,0 +1,24 @@ +namespace BenchtopParserTests { + public class Tests { + [SetUp] + public void Setup() { + } + + [Test] + public void Test_ProgramConfig() { + String program_config = File.ReadAllText( + Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestFiles\Program Config.txt") + ); + var configs = BenchtopParser.Parser.I28_ProgramConfig(program_config); + Assert.IsNotNull(configs); + } + + public void Test_ProgramConfig_Throw_ErrorOrder() { + String program_config = File.ReadAllText( + Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestFiles\Program Config.txt") + ); + var configs = BenchtopParser.Parser.I28_ProgramConfig(program_config); + Assert.IsNotNull(configs); + } + } +} \ No newline at end of file diff --git a/BenchtopParserTests/Usings.cs b/BenchtopParserTests/Usings.cs new file mode 100644 index 0000000..cefced4 --- /dev/null +++ b/BenchtopParserTests/Usings.cs @@ -0,0 +1 @@ +global using NUnit.Framework; \ No newline at end of file