/* * 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.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.Dausim; import mxgstest.egse.Power; import mxgstest.egse.Science; import mxgstest.mxgs.Dpu; import mxgstest.mxgs.Hk; import mxgstest.mxgs.Psu; /** * Step 6.3.1: Enable Required Event Reports * Step 6.3.2: Activate LHP Startup Heaters * @author frec */ public class Section6_03 { MXGSEGSE egse; Output output; public Section6_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(); Psu psu = new Psu(); Hk hke = new Hk(); Science sci = new Science(); Dausim dausim = new Dausim(); ParameterValueEvent hk17Event; ParameterValueFilter hk17Tm; ParameterValueEvent hk32Event; ParameterValueFilter hk32Tm; ParameterValueEvent hk34Event; ParameterValueFilter hk34Tm; ParameterValueEvent hk35Event; ParameterValueFilter hk35Tm; ParameterValueFilter hk47Tm; ParameterValueEvent hk00Event; ParameterValueFilter hk00Tm; ParameterValueEvent hk40270Event; ParameterValueFilter hk40270Tm; public void step6_3_1() throws Throwable { try{ output.printSubSectionStart("6.3.1", "Modify to Transparent Mode"); output.printStepStart("6.3.1-1", "Enable Load Memory", "Memory ID = 2220"); dpu.verifyEnableMemoryLoadTc(egse, 5, "2220", "1", "1", 1); output.printStepStart("6.3.1-2", " Load Memory", "Memory ID = 2220"); dpu.verifyLoadMemoryTc(egse, 5, "2220", "0", "0x[0384000a000a000000640000]", "13", "1", 1); output.printStepStart("6.3.1-3", "Disable Memory Load", "Memory ID = 2220"); dpu.verifyEnableMemoryLoadTc(egse, 5, "2220", "0", "1", 1); output.printStepStart("6.3.1-4", "Load configuration Parameters","Memory ID = 2220"); dpu.verifyLoadConfigurationParameters(egse, 30, "2220", "0", "1", 1); output.printStepStart("6.3.1-5", "Enable Load Memory", "Memory ID = 2230"); dpu.verifyEnableMemoryLoadTc(egse, 5, "2230", "1", "1", 1); output.printStepStart("6.3.1-6", " Load Memory", "Memory ID = 2230"); dpu.verifyLoadMemoryTc(egse, 5, "2230", "0", "0x[00000000]", "9", "1", 1); output.printStepStart("6.3.1-7", " Load Memory", "Memory ID = 2230"); dpu.verifyLoadMemoryTc(egse, 5, "2230", "8", "0x[8000e000]", "9", "1", 1); output.printStepStart("6.3.1-8", " Load Memory", "Memory ID = 2230"); dpu.verifyLoadMemoryTc(egse, 5, "2230", "2188", "0x[0001000000010100]", "11", "1", 1); output.printStepStart("6.3.1-9", "Disable Memory Load", "Memory ID = 2230"); dpu.verifyEnableMemoryLoadTc(egse, 5, "2230", "0", "1", 1); output.printStepStart("6.3.1-10", "Load configuration Parameters","Memory ID = 2230"); dpu.verifyLoadConfigurationParameters(egse, 30, "2230", "0", "1", 1); } catch(MxgsTestException e) { output.printStepStatus("6.3.1", false, e.getMessage()); throw e; } output.printStepStatus("6.3.1", true); output.printSubSectionEnd("6.3.1"); } public void step6_3_2() throws Throwable { try{ output.printSubSectionStart("6.3.2","Collect Science - Transparent Mode"); output.printStepStart("6.3.2-1","Enter Operational Mode"); 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); hk34Event = new ParameterValueEvent(egse.dhpu.getNonscienceTm(), egse.packetTool, "Private Header.Packet Identification.TM Type", "34", Logger.global); hk34Tm = new ParameterValueFilter(hk34Event, 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_6_3"); 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("6.3.2-3","Verify Event 40270"); hk40270Tm=hke.verifyEventReport(egse, hk40270Tm, 0, 40270, (int)(mytime[0]-Basic.year_start), (int)mytime[2], (int)(mytime[1]-Basic.sec_start), 0xff00, 0); // dausim.enableDaus(egse, "ff"); // Thread.sleep(1000); // egse.dausim.dau.start(); output.printStepStart("6.3.2.4","Wait for Observation"); int t_obs=0; while(egse.dhpu.getScienceTm().size()==0 & t_obs<300) { Thread.sleep(1000); t_obs=t_obs+1; System.out.println("waiting for Sampled Observation"); } if(egse.dhpu.getScienceTm().size()>0) { String scistr=egse.dhpu.getScienceTm().getFirst().hex().replaceAll("\\s+","").substring(2); if(scistr.substring(6, 8).equals("a6")) { output.printStepOut("Sampled Detector Counts received", "OK", "", true); } else { output.printStepOut("Sampled Detector Counts received", "Failed", "Received "+scistr.substring(6, 8), false); } } else { output.printStepOut("Sampled Detector Counts received", "Failed", "No Science TMs", false); } hk32Tm.clear(); hke.dataQueueWaitForSize(egse, 15, 1, hk32Tm); output.printStepStart("6.3.2.5","Verify 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("6.3.2.6","Collect data for 600 TCPs"); mytime=bas.time(); secNow=mytime[1]; int iMinutes=10; for(int i=0;i