コード例 #1
0
ファイル: SipperSimulator.cs プロジェクト: PalakDave/Pices
        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 */
コード例 #2
0
ファイル: SipperSimulator.cs プロジェクト: PalakDave/Pices
        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 */