MissionPlanner.SerialInjectGPS.ProcessUBXMessage C# (CSharp) Method

ProcessUBXMessage() private method

private ProcessUBXMessage ( ) : void
return void
        private void ProcessUBXMessage()
        {
            try
            {
                // survey in
                if (ubx_m8p.@class == 0x1 && ubx_m8p.subclass == 0x3b)
                {
                    var svin = ubx_m8p.packet.ByteArrayToStructure<Utilities.ubx_m8p.ubx_nav_svin>(6);

                    var X = svin.meanX/100.0 + svin.meanXHP*0.0001;
                    var Y = svin.meanY/100.0 + svin.meanYHP*0.0001;
                    var Z = svin.meanZ/100.0 + svin.meanZHP*0.0001;

                    var pos = new double[] {X, Y, Z};

                    double[] baseposllh = new double[3];

                    Utilities.rtcm3.ecef2pos(pos, ref baseposllh);

                    MainV2.comPort.MAV.cs.MovingBase = new Utilities.PointLatLngAlt(baseposllh[0]*Utilities.rtcm3.R2D,
                        baseposllh[1]*Utilities.rtcm3.R2D, baseposllh[2]);

                    updateSVINLabel("Survey IN Valid: " + (svin.valid == 1) + " InProgress: " + (svin.active == 1) +
                                    " Duration: " + svin.dur + " Obs: " + svin.obs + " Acc: " + svin.meanAcc/10000.0);

                    if (svin.valid == 1)
                        ubx_m8p.turnon_off(comPort, 0x1, 0x3b, 0);
                }

                //pvt
                if (ubx_m8p.@class == 0x1 && ubx_m8p.subclass == 0x7)
                {
                    var pvt = ubx_m8p.packet.ByteArrayToStructure<Utilities.ubx_m8p.ubx_nav_pvt>(6);

                    //MainV2.comPort.MAV.cs.MovingBase = new Utilities.PointLatLngAlt(pvt.lat / 1e7, pvt.lon / 1e7, pvt.height / 1000.0);


                }

                if (ubx_m8p.@class == 0x5 && ubx_m8p.subclass == 0x1)
                {
                    this.LogInfoFormat("ubx ack {0} {1}", ubx_m8p.packet[6], ubx_m8p.packet[7]);

                }

                if (ubx_m8p.@class == 0x5 && ubx_m8p.subclass == 0x0)
                {
                    this.LogInfoFormat("ubx Nack {0} {1}", ubx_m8p.packet[6], ubx_m8p.packet[7]);

                }

                if (ubx_m8p.@class == 0xa && ubx_m8p.subclass == 0x4)
                {
                    this.LogInfoFormat("ubx mon-ver {0} {1}", ubx_m8p.packet[6], ubx_m8p.packet[7]);

                }
            }
            catch
            {

            }
        }