using System; using Microsoft.SPOT; using System.Text; namespace CPF { class datfnx { private static StringBuilder sbTemp = new StringBuilder(2000); public static void binstore(double P, double T, double S) { //bounds checking first if (P < 0) P = 0; if (P > 500) P = 0; if (T < 0) T = 0; if (T > 30) T = 0; if (S < 0) S = 0; if (S > 37) S = 0; //find index in ascendTable to start at int PbinIndex = 0; while (PbinIndex < Mission.ascendTable.Length) { if (P > Mission.ascendTable[PbinIndex].depth) break; PbinIndex++; } Debug.Print("PbinIndex=" + PbinIndex.ToString()); if (PbinIndex == Mission.ascendTable.Length) return; //else found a valid place to put the PTS data Mission.ascendTable[PbinIndex].T = Mission.ascendTable[PbinIndex].T + T; Mission.ascendTable[PbinIndex].S = Mission.ascendTable[PbinIndex].S + S; Mission.ascendTable[PbinIndex].datnum++; return; } public static readonly StringBuilder CTDprof = new StringBuilder(1680); public static void binavg() { int maxPbinIndex=0; CTDprof.Clear(); //find where data starts while (maxPbinIndex < Mission.ascendTable.Length) { if (Mission.ascendTable[maxPbinIndex].datnum > 0) break; maxPbinIndex++; } while (maxPbinIndex < Mission.ascendTable.Length) { if (Mission.ascendTable[maxPbinIndex].datnum > 0) { Mission.ascendTable[maxPbinIndex].T = Mission.ascendTable[maxPbinIndex].T/Mission.ascendTable[maxPbinIndex].datnum; Mission.ascendTable[maxPbinIndex].S = Mission.ascendTable[maxPbinIndex].S/Mission.ascendTable[maxPbinIndex].datnum; Debug.Print(maxPbinIndex.ToString()); Debug.Print(Mission.ascendTable[maxPbinIndex].depth.ToString()); Debug.Print(Mission.ascendTable[maxPbinIndex].T.ToString()); Debug.Print(Mission.ascendTable[maxPbinIndex].S.ToString()); CTDprof.Append(Mission.ascendTable[maxPbinIndex].depth.ToString("F0")); //could change this to maxPbinIndex to save chars CTDprof.Append(","); CTDprof.Append(Mission.ascendTable[maxPbinIndex].T.ToString("F2")); CTDprof.Append(","); CTDprof.Append(Mission.ascendTable[maxPbinIndex].S.ToString("F2")); CTDprof.Append(","); } maxPbinIndex++; } sbTemp.Clear(); sbTemp.Append("binavg: " + CTDprof.ToString()); EngrLogger.writeToColumns(sbTemp); //Debug.Print(sbTemp.ToString()); return; } } }