using System; using Microsoft.SPOT; using System.Text; using System.IO; using Microsoft.SPOT.IO; using GHI.IO.Storage; using MissionClass; namespace CPF { public class Mission { public static DepthTable[] descendTable; public static DepthTable[] ascendTable; public static TimeSpan parkSamplePeriod; public static bool recoveryMode; private static StringBuilder fileName = new StringBuilder(128); private static FileStream missionFile; public static StringBuilder missionFileName = new StringBuilder(128); private static StringBuilder sbTemp = new StringBuilder(256); public static void upMission() { sbTemp.Clear(); sbTemp.Append("Recovery mode = "); sbTemp.Append(recoveryMode.ToString()); EngrLogger.writeToColumns(sbTemp); sbTemp.Clear(); sbTemp.Append("Park Sample Period = "); sbTemp.Append(parkSamplePeriod.ToString()); EngrLogger.writeToColumns(sbTemp); for (int i = 0; i < descendTable.Length; i++) { sbTemp.Clear(); sbTemp.Append("Depth table "); sbTemp.Append(i.ToString()); sbTemp.Append(" Depth, PV, Park Time, sample list: "); sbTemp.Append(descendTable[i].depth.ToString()); sbTemp.Append(", "); sbTemp.Append(descendTable[i].PV.ToString("f3")); sbTemp.Append(", "); sbTemp.Append(descendTable[i].parkTime.ToString()); sbTemp.Append(", "); sbTemp.Append(descendTable[i].sampleList.ToString()); EngrLogger.writeToColumns(sbTemp); } for (int i = 0; i < ascendTable.Length; i++) { sbTemp.Clear(); sbTemp.Append("Ascend table "); sbTemp.Append(i.ToString()); sbTemp.Append(" Depth, PV, Park Time, sample list: "); sbTemp.Append(ascendTable[i].depth.ToString()); sbTemp.Append(", "); sbTemp.Append(ascendTable[i].PV.ToString("f3")); sbTemp.Append(", "); sbTemp.Append(ascendTable[i].parkTime.ToString()); sbTemp.Append(", "); sbTemp.Append(ascendTable[i].sampleList.ToString()); EngrLogger.writeToColumns(sbTemp); } } public static void loadMission() { fileName.Clear(); fileName.Append(EngrLogger.sdVol.RootDirectory); fileName.Append(@"\"); fileName.Append(Program.missionFileName); missionFile = new FileStream(fileName.ToString(), FileMode.Open, FileAccess.Read); int fileLength = (int)missionFile.Length; byte[] fileBuffer = new byte[fileLength]; missionFile.Read(fileBuffer, 0, fileLength); FullMission missionFromFile = (FullMission)Reflection.Deserialize(fileBuffer, typeof(FullMission)); missionFile.Close(); //Set mission recoverMode recoveryMode = missionFromFile.recoveryMode; //Set mission sampleTime parkSamplePeriod = new TimeSpan(0, missionFromFile.samplePeriod.Minutes, missionFromFile.samplePeriod.Seconds); //Fill descend table descendTable = new DepthTable[(int)missionFromFile.descendTable.Length]; for (int i = 0; i < missionFromFile.descendTable.Length; i++) { descendTable[i].depth = missionFromFile.descendTable[i].depth; descendTable[i].PV = missionFromFile.descendTable[i].PV; descendTable[i].parkTime = new TimeSpan(missionFromFile.descendTable[i].parkTime.Hours, missionFromFile.descendTable[i].parkTime.Minutes, missionFromFile.descendTable[i].parkTime.Seconds); descendTable[i].sampleList = missionFromFile.descendTable[i].sampleList; } //Fill ascend table ascendTable = new DepthTable[(int)missionFromFile.ascendTable.Length]; for (int i = 0; i < missionFromFile.ascendTable.Length; i++) { ascendTable[i].depth = missionFromFile.ascendTable[i].depth; ascendTable[i].PV = missionFromFile.ascendTable[i].PV; ascendTable[i].parkTime = new TimeSpan(missionFromFile.ascendTable[i].parkTime.Hours, missionFromFile.ascendTable[i].parkTime.Minutes, missionFromFile.ascendTable[i].parkTime.Seconds); ascendTable[i].sampleList = missionFromFile.ascendTable[i].sampleList; } } } }