/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package mxgstest.sections; import asim.envsim.dhpu.Tm; import asim.envsim.dhpu.tmutils.ParameterValueEvent; import asim.envsim.dhpu.tmutils.ParameterValueFilter; import java.util.logging.Logger; import mxgsegse.MXGSEGSE; import mxgstest.MxgsTestException; import mxgstest.Output; //import static mxgstest.Output.scistr; //import static mxgstest.Output.thisDir; //import static mxgstest.Output.w_head0; import mxgstest.egse.Basic; import mxgstest.egse.Power; import mxgstest.egse.Science; import mxgstest.mxgs.Dau; import mxgstest.mxgs.Dpu; import mxgstest.mxgs.Hk; import mxgstest.mxgs.Psu; /** * * @author stet */ public class Section5_03 { MXGSEGSE egse; Output output; public Section5_03(MXGSEGSE egse, Output output) throws Throwable { this.egse = egse; this.output = output; } Dpu dpu = new Dpu(); Power pow = new Power(); Basic bas = new Basic(); Dau dau = new Dau(); Psu psu = new Psu(); Hk hke = new Hk(); Science sci = new Science(); ParameterValueEvent hk17Event; ParameterValueFilter hk17Tm; ParameterValueEvent hk32Event; ParameterValueFilter hk32Tm; ParameterValueEvent hk35Event; ParameterValueFilter hk35Tm; ParameterValueFilter hk47Tm; ParameterValueEvent hk00Event; ParameterValueFilter hk00Tm; ParameterValueEvent hk40270Event; ParameterValueFilter hk40270Tm; Tm tm; public void step5_3_1() throws Throwable { try{ hk17Event = new ParameterValueEvent(egse.dhpu.getMonitoredHkTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "17", Logger.global); hk17Tm = new ParameterValueFilter(hk17Event, Logger.global); hk32Event = new ParameterValueEvent(egse.dhpu.getNonscienceTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "32", Logger.global); hk32Tm = new ParameterValueFilter(hk32Event, Logger.global); hk35Event = new ParameterValueEvent(egse.dhpu.getNonscienceTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "35", Logger.global); hk35Tm = new ParameterValueFilter(hk35Event, Logger.global); hk00Event = new ParameterValueEvent(egse.dhpu.getNonscienceTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "0", Logger.global); hk00Tm = new ParameterValueFilter(hk00Event, Logger.global); hk40270Event=new ParameterValueEvent(hk00Tm, egse.packetTool, "Packet Data.Event ID", "40270", Logger.global); hk40270Tm=new ParameterValueFilter(hk40270Event, Logger.global); sci.init_science("Section_5_3"); output.printSubSectionStart("5.3.1", "Collect Science"); output.printStepStart("5.3.1-1", "Enter Operational Mode"); dpu.sendEnterOperationalModeTc(egse); hke.dataQueueWaitForSize(egse, 5, 1, hk40270Tm); long[] mytime=bas.time(); long secOpMode=mytime[1]; long secNow; hk17Tm.clear(); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 5, 3, hk17Tm); output.printStepStart("","Monitored HK"); String[][] MonHK = { {"SW Mode", "2", "0"}, {"SW Submode", "2", "0"} }; hke.verifyTMarr(egse, hk17Tm.getLast(), MonHK); output.printStepStart("5.3.1-3", "Wait for Instrument Summary update"); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK = { {"DAU Data Reduction Factor", "0", "0"} }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK); output.printStepStart("5.3.3-4", "Verify Event Report 40270"); hke.verifyEventReport(egse, hk40270Tm, 0, 40270, (int)(mytime[0]-Basic.year_start), (int)mytime[2], (int)(mytime[1]-Basic.sec_start), 65280, 0); output.printStepStart("5.3.1-5", "Wait 5 TCPs"); Thread.sleep(5000); output.printStepStart("","Monitored HK"); String[][] MonHK1 = { {"SW Mode", "2", "0"}, {"SW Submode", "1", "0"} }; hke.verifyTMarr(egse, hk17Tm.getLast(), MonHK1); output.printStepStart("5.3.1-6", "Wait for Instrument Summary update"); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK1 = { {"DAU Data Reduction Factor", "1", "0"} }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK1); output.printStepStart("5.3.1-7", "Wait for Ratemeter update"); hk35Tm.clear(); hke.dataQueueWaitForSize(egse, 10, 1, hk35Tm); output.printStepStart("","Verify Ratemeter HK"); String[][] RaHK = { {"DAU Ratemeters.DAU_CZT_1", "400", "200"}, {"DAU Ratemeters.DAU_CZT_2", "400", "200"}, {"DAU Ratemeters.DAU_CZT_3", "400", "200"}, {"DAU Ratemeters.DAU_CZT_4", "400", "200"}, {"DAU Ratemeters.DAU_BGO_1", "425", "175"}, {"DAU Ratemeters.DAU_BGO_2", "425", "175"}, {"DAU Ratemeters.DAU_BGO_3", "425", "175"}, {"DAU Ratemeters.DAU_BGO_4", "425", "175"}, {"Total Count Ratemeters.LED", "1100", "400"}, {"Total Count Ratemeters.HED", "1700", "500"}, {"Total Count Ratemeters.DAU", "3300", "1500"}, {"Accepted Count Ratemeters.LED Short", "750", "250"}, {"Accepted Count Ratemeters.LED Long", "750", "250"}, {"Accepted Count Ratemeters.HED Short", "425", "175"}, {"Accepted Count Ratemeters.HED Long", "425", "175"}, {"Calculated Background Rates.LED Short", "750", "250"}, {"Calculated Background Rates.LED Long", "750", "250"}, {"Calculated Background Rates.HED Short", "425", "175"}, {"Calculated Background Rates.HED Long", "425", "175"}, {"Trigger Window Thresholds.LED Short Window 1", "7", "1"}, {"Trigger Window Thresholds.LED Short Window 2", "10", "1"}, {"Trigger Window Thresholds.LED Short Window 3", "14", "2"}, {"Trigger Window Thresholds.LED Long Window", "43", "10"}, {"Trigger Window Thresholds.HED Short Window 1", "6", "1"}, {"Trigger Window Thresholds.HED Short Window 2", "8", "1"}, {"Trigger Window Thresholds.HED Short Window 3", "11", "2"}, {"Trigger Window Thresholds.HED Long Window", "29", "9"} }; hke.verifyTMarr(egse, hk35Tm.getLast(), RaHK); output.printStepStart("5.3.1-8", "Observation Capture and Downlink"); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK2 = { {"Priority 1 Observation Capture Count", "0", "-99"}, {"Priority 2 Observation Capture Count", "0", "-99"}, {"Priority 3 Observation Capture Count", "0", "-99"}, {"Priority 1 Observation Downlink Count", "0", "-99"}, {"Priority 2 Observation Downlink Count", "0", "-99"}, {"Priority 3 Observation Downlink Count", "0", "-99"}, }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK2); int P1CC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 1 Observation Capture Count")); int P2CC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 2 Observation Capture Count")); int P3CC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 3 Observation Capture Count")); int P1DC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 1 Observation Downlink Count")); int P2DC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 2 Observation Downlink Count")); int P3DC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 3 Observation Downlink Count")); output.printStepStart("5.3.1-9", "Wait 60 TCPs after entry to Op Mode"); mytime=bas.time(); secNow=mytime[1]; sci.out_science(egse, 70-(secNow-secOpMode)); output.printStepStart("5.3.1-8", "Observation Capture and Downlink"); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK3 = { {"Priority 2 Observation Capture Count", String.valueOf(P2CC+1), "0"}, {"Priority 3 Observation Capture Count", String.valueOf(P3CC+1), "0"}, {"Priority 2 Observation Downlink Count", String.valueOf(P2DC+1), "0"}, {"Priority 3 Observation Downlink Count", String.valueOf(P3DC+1), "0"}, }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK3); output.printStepStart("5.3.1-11", "Wait further 3 intervals of 60 TCPs"); mytime=bas.time(); secNow=mytime[1]; sci.out_science(egse, 250-(secNow-secOpMode)); output.printStepStart("5.3.1-12", "Wait further 60 TCPs"); mytime=bas.time(); secNow=mytime[1]; sci.out_science(egse, 310-(secNow-secOpMode)); output.printStepStart("5.3.1-13", "Wait for Instrument Summary update"); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK4 = { {"Priority 2 Observation Capture Count", String.valueOf(P2CC+6), "0"}, {"Priority 3 Observation Capture Count", String.valueOf(P3CC+5), "0"}, {"Priority 2 Observation Downlink Count", String.valueOf(P2DC+6), "0"}, {"Priority 3 Observation Downlink Count", String.valueOf(P3DC+5), "0"}, }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK4); output.printStepStart("5.3.1-14", "Wait further 300 TCPs"); mytime=bas.time(); secNow=mytime[1]; sci.out_science(egse, 610-(secNow-secOpMode)); output.printStepStart("5.3.1-15", "Wait for Instrument Summary update"); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK5 = { {"Priority 2 Observation Capture Count", String.valueOf(P2CC+12), "0"}, {"Priority 3 Observation Capture Count", String.valueOf(P3CC+10), "0"}, {"Priority 2 Observation Downlink Count", String.valueOf(P2DC+12), "0"}, {"Priority 3 Observation Downlink Count", String.valueOf(P3DC+10), "0"}, }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK5); output.printStepStart("5.3.1-15", "Collect further science data, if needed"); output.printStepStart("5.3.1-16", "Enter Configuration Mode"); dpu.sendEnterConfigurationModeTc(egse); Thread.sleep(5000); hk17Tm.clear(); hke.dataQueueWaitForSize(egse, 5, 1, hk17Tm); output.printStepStart("","Monitored HK"); String[][] MonHK2 = { {"SW Mode", "1", "0"}, {"SW Submode", "0", "0"} }; hke.verifyTMarr(egse, hk17Tm.getLast(), MonHK2); System.out.println("Downloading remaining science TMs"); sci.out_science(egse, 0); } catch(MxgsTestException e) { output.printStepStatus("5.3.1", false, e.getMessage()); throw e; } output.printStepStatus("5.3.1", true); output.printSubSectionEnd("5.3.1"); } public void step5_3_2() throws Throwable { try{ output.printSubSectionStart("5.3.2", "Modify config for Auroral Capture Submode"); output.printStepStart("5.3.2-1", "Enable Memory Load", "Memory ID = 2230"); dpu.verifyEnableMemoryLoadTc(egse, 5, "2230", "1", "1", 1); output.printStepStart("5.3.2-2", " Load Memory", "Memory ID = 2230"); dpu.verifyLoadMemoryTc(egse, 5, "2230", "2204", "0x[000007d0]", "9", "1", 1); output.printStepStart("5.3.2-3", "Disable Memory Load", "Memory ID = 2230"); dpu.verifyEnableMemoryLoadTc(egse, 5, "2230", "0", "1", 1); output.printStepStart("5.3.2-4", "Load configuration Parameters","Memory ID = 2230"); dpu.verifyLoadConfigurationParameters(egse, 30, "2230", "0", "1", 1); } catch(MxgsTestException e) { output.printStepStatus("5.3.2", false, e.getMessage()); throw e; } output.printStepStatus("5.3.2", true); output.printSubSectionEnd("5.3.2"); } public void step5_3_3() throws Throwable { try{ hk17Event = new ParameterValueEvent(egse.dhpu.getMonitoredHkTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "17", Logger.global); hk17Tm = new ParameterValueFilter(hk17Event, Logger.global); hk32Event = new ParameterValueEvent(egse.dhpu.getNonscienceTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "32", Logger.global); hk32Tm = new ParameterValueFilter(hk32Event, Logger.global); hk35Event = new ParameterValueEvent(egse.dhpu.getNonscienceTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "35", Logger.global); hk35Tm = new ParameterValueFilter(hk35Event, Logger.global); hk00Event = new ParameterValueEvent(egse.dhpu.getNonscienceTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "0", Logger.global); hk00Tm = new ParameterValueFilter(hk00Event, Logger.global); hk40270Event=new ParameterValueEvent(hk00Tm, egse.packetTool, "Packet Data.Event ID", "40270", Logger.global); hk40270Tm=new ParameterValueFilter(hk40270Event, Logger.global); output.printSubSectionStart("5.3.3", "Collect Science - Auroral Submode"); output.printStepStart("5.3.3-1", "Enter Operational Mode"); dpu.sendEnterOperationalModeTc(egse); hke.dataQueueWaitForSize(egse, 30, 1, hk40270Tm); long[] mytime=bas.time(); long secOpMode=mytime[1]; long secNow; hk17Tm.clear(); hke.dataQueueWaitForSize(egse, 5, 1, hk17Tm); output.printStepStart("","Monitored HK"); String[][] MonHK = { {"SW Mode", "2", "0"}, {"SW Submode", "2", "0"} }; hke.verifyTMarr(egse, hk17Tm.getLast(), MonHK); output.printStepStart("5.3.3-3", "Verify Event Report 40270"); hk40270Tm=hke.verifyEventReport(egse, hk40270Tm, 0, 40270, (int)(mytime[0]-Basic.year_start), (int)mytime[2], (int)(mytime[1]-Basic.sec_start), 65280, 0); output.printStepStart("5.3.3-4", "EnterScience Submode 3"); dpu.sendEnterScienceSubmodeTc(egse, "3"); hk17Tm.clear(); hke.dataQueueWaitForSize(egse, 10, 3, hk17Tm); output.printStepStart("","Monitored HK"); String[][] MonHK1 = { {"SW Mode", "2", "0"}, {"SW Submode", "3", "0"} }; hke.verifyTMarr(egse, hk17Tm.getLast(), MonHK1); output.printStepStart("5.3.3-5", "Wait for Instrument Summary update"); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK1 = { {"DAU Data Reduction Factor", "0", "0"} }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK1); output.printStepStart("5.3.2-6", "Observation Capture and Downlink"); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK2 = { {"Priority 1 Observation Capture Count", "0", "-99"}, {"Priority 2 Observation Capture Count", "0", "-99"}, {"Priority 3 Observation Capture Count", "0", "-99"}, {"Priority 1 Observation Downlink Count", "0", "-99"}, {"Priority 2 Observation Downlink Count", "0", "-99"}, {"Priority 3 Observation Downlink Count", "0", "-99"}, }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK2); int P1CC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 1 Observation Capture Count")); int P2CC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 2 Observation Capture Count")); int P3CC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 3 Observation Capture Count")); int P1DC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 1 Observation Downlink Count")); int P2DC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 2 Observation Downlink Count")); int P3DC=Integer.valueOf(egse.packetTool.getTmParameter(hk32Tm.getLast(), "Priority 3 Observation Downlink Count")); output.printStepStart("5.3.3-7", "Wait 600 TCPs"); mytime=bas.time(); secNow=mytime[1]; sci.out_science(egse, 615-(secNow-secOpMode)); output.printStepStart("5.3.3-8", "Wait for Instrument Summary update"); output.printStepStart("","Instrument Summary HK"); hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("","Instrument Summary HK"); String[][] ISHK3 = { {"Priority 2 Observation Capture Count", String.valueOf(P1CC), "0"}, {"Priority 2 Observation Capture Count", String.valueOf(P2CC), "0"}, {"Priority 3 Observation Capture Count", String.valueOf(P3CC+1), "0"}, {"Priority 2 Observation Downlink Count", String.valueOf(P1DC), "0"}, {"Priority 2 Observation Downlink Count", String.valueOf(P2DC), "0"}, {"Priority 3 Observation Downlink Count", String.valueOf(P3DC+1), "0"}, }; hke.verifyTMarr(egse, hk32Tm.getLast(), ISHK3); output.printStepStart("5.3.3-8", "Enter Configoration Mode"); dpu.sendEnterConfigurationModeTc(egse); Thread.sleep(5000); hk17Tm.clear(); hke.dataQueueWaitForSize(egse, 5, 1, hk17Tm); output.printStepStart("","Monitored HK"); String[][] MonHK2 = { {"SW Mode", "1", "0"}, {"SW Submode", "0", "0"} }; hke.verifyTMarr(egse, hk17Tm.getLast(), MonHK2); System.out.println("Downloading remaining science TMs"); sci.out_science(egse, 0); sci.exit_science(); } catch(MxgsTestException e) { output.printStepStatus("5.3.3", false, e.getMessage()); throw e; } output.printStepStatus("5.3.3", true); output.printSubSectionEnd("5.3.3"); } }