static private void BuildDecodeRecs() { decodeRecs = new Sipper3DecodeRec[65536]; uint x = 0; for (x = 0; x < decodeRecs.Length; x++) { decodeRecs[x] = new Sipper3DecodeRec((ushort)x); } } /* BuildDecodeRecs */
private void ExtractDataFromSIPPERFile(String sipperFileName) { PicesRunLog runLog = new PicesRunLog(); PicesDataBase db = PicesDataBase.GetGlobalDatabaseManagerNewInstance(runLog); PicesSipperFile sf = null; if (db == null) { sf = new PicesSipperFile(sipperFileName); sf.Sp0 = configRec.HeaderRec().SerialPortShortName(0); sf.Sp1 = configRec.HeaderRec().SerialPortShortName(1); sf.Sp2 = configRec.HeaderRec().SerialPortShortName(2); sf.Sp3 = configRec.HeaderRec().SerialPortShortName(3); sf.CtdExt0 = configRec.HeaderRec().CtdExt0Code(); sf.CtdExt1 = configRec.HeaderRec().CtdExt1Code(); sf.CtdExt2 = configRec.HeaderRec().CtdExt2Code(); sf.CtdExt3 = configRec.HeaderRec().CtdExt3Code(); } else { sf = db.SipperFileRecLoad(OSservices.GetRootName(sipperFileName)); if (sf == null) { return; } } byte ctdSensorNum = 0; byte pitchAndRollNum = 1; switch (sf.Sp0) { case "CTD": ctdSensorNum = 16; break; case "P-R": pitchAndRollNum = 16; break; } switch (sf.Sp1) { case "CTD": ctdSensorNum = 17; break; case "P-R": pitchAndRollNum = 17; break; } switch (sf.Sp2) { case "CTD": ctdSensorNum = 18; break; case "P-R": pitchAndRollNum = 18; break; } switch (sf.Sp3) { case "CTD": ctdSensorNum = 19; break; case "P-R": pitchAndRollNum = 19; break; } BinaryReader fs = null; try { fs = new BinaryReader(new FileStream(sipperFileName, FileMode.Open, FileAccess.Read, FileShare.Read)); } catch (Exception) { fs = null; } if (fs == null) { return; } BuildDecodeRecs(); bool eof = false; ushort rec = 0; try { rec = fs.ReadUInt16(); } catch (Exception) { eof = true; } while (!eof) { Sipper3DecodeRec dr = decodeRecs[rec]; if (!dr.ImageData()) { if (dr.SensorNum() == ctdSensorNum) { AddToCTDData(dr.SensorData()); } else if (dr.SensorNum() == pitchAndRollNum) { AddToPitchAndRollData(dr.SensorData()); } } try { rec = fs.ReadUInt16(); } catch (Exception) { eof = true; } } } /* ExtractDataFromSIPPERFile */