Ejemplo n.º 1
0
 private bool UpdateSnr(int prn, int snr, GNSSSatelliteType type)
 {
     for (int i = 0; i < MaxSattellite; i++)
     {
         switch (type)
         {
             case GNSSSatelliteType.Gps:
                 if (prn < 1 || prn > 32)
                 {   //pass the special satellite for gps. In different module it may not have these satellite.
                     return false;
                 }
                 if (gpSate[i].prn == NullValue)
                 {
                     gpSate[i].prn = prn;
                     gpSate[i].snr = snr;
                     gpSate[i].inUse = false;
                     return true;
                 }
                 else if (gpSate[i].prn == prn)
                 {
                     gpSate[i].snr = snr;
                     return true;
                 }
                 break;
             case GNSSSatelliteType.Glonass:
                 if (glSate[i].prn == NullValue)
                 {
                     glSate[i].prn = prn;
                     glSate[i].snr = snr;
                     glSate[i].inUse = false;
                     return true;
                 }
                 else if (glSate[i].prn == prn)
                 {
                     glSate[i].snr = snr;
                     return true;
                 }
                 break;
             case GNSSSatelliteType.Beidou:
                 if (bdSate[i].prn == NullValue)
                 {
                     bdSate[i].prn = prn;
                     bdSate[i].snr = snr;
                     bdSate[i].inUse = false;
                     return true;
                 }
                 else if (bdSate[i].prn == prn)
                 {
                     bdSate[i].snr = snr;
                     return true;
                 }
                 break;
             case GNSSSatelliteType.Galileo:
                 break;
         }
     }
     return false;
 }
Ejemplo n.º 2
0
 private sateInfo[] GetSortedSateArray(GNSSSatelliteType t)
 {
     sateInfo[] s = GetSateArray(t).Clone() as sateInfo[];
     Array.Sort(s, delegate(sateInfo s1, sateInfo s2)
     {
         return s2.snr.CompareTo(s1.snr);
     } );
     return s;
 }
Ejemplo n.º 3
0
            private int GetSpecSate(GNSSSatelliteType t, int id1, int id2, int id3, ref int sn1, ref int sn2, ref int sn3)
            {
                int getCount = 0;
                int snr;

                snr = GetSnr(id1, t).snr;
                if (snr != NullValue)
                {
                    sn1 = snr;
                    getCount++;
                }
                snr = GetSnr(id2, t).snr;
                if (snr != NullValue)
                {
                    sn2 = snr;
                    getCount++;
                }
                snr = GetSnr(id3, t).snr;
                if (snr != NullValue)
                {
                    sn3 = snr;
                    getCount++;
                }
                return getCount;
            }
Ejemplo n.º 4
0
 private sateInfo[] GetSateArray(GNSSSatelliteType t)
 {
     switch (t)
     {
         case GNSSSatelliteType.Gps:
             return gpSate;
         case GNSSSatelliteType.Glonass:
             return glSate;
         case GNSSSatelliteType.Beidou:
             return bdSate;
         case GNSSSatelliteType.Galileo:
             return null;
         default:
             return null;
     }
 }
Ejemplo n.º 5
0
 private sateInfo GetSate(int i, GNSSSatelliteType t)
 {
     switch (t)
     {
         case GNSSSatelliteType.Gps:
             return gpSate[i];
         case GNSSSatelliteType.Glonass:
             return glSate[i];
         case GNSSSatelliteType.Beidou:
             return bdSate[i];
         case GNSSSatelliteType.Galileo:
             //return glSate[i];
             break;
     }
     return NullSate;
 }
Ejemplo n.º 6
0
            private int GetFrontSate(GNSSSatelliteType t, ref int id1, ref int id2, ref int id3, ref int sn1, ref int sn2, ref int sn3)
            {
                sateInfo[] sortedSateArray = GetSateArray(t).Clone() as sateInfo[];

                for (int i = 0; i < MaxSattellite; i++)
                {
                    for (int j = i + 1; j < MaxSattellite; j++)
                    {
                        if (sortedSateArray[i].snr < sortedSateArray[j].snr)
                        {
                            sateInfo tmp = sortedSateArray[i];
                            sortedSateArray[i] = sortedSateArray[j];
                            sortedSateArray[j] = tmp;
                        }
                    }
                }
                if (sortedSateArray[0].snr == NullValue)
                {
                    return 0;
                }
                id1 = sortedSateArray[0].prn;
                sn1 = sortedSateArray[0].snr;

                if (sortedSateArray[1].snr == NullValue)
                {
                    return 1;
                }
                id2 = sortedSateArray[1].prn;
                sn2 = sortedSateArray[1].snr;

                if (sortedSateArray[2].snr == NullValue)
                {
                    return 2;
                }
                id3 = sortedSateArray[2].prn;
                sn3 = sortedSateArray[2].snr;
                return 3;
            }
Ejemplo n.º 7
0
            public sateInfo GetSnr(int prn, GNSSSatelliteType t)
            {
                sateInfo[] p = GetSateArray(t);

                for (int i = 0; i < MaxSattellite; i++)
                {
                    if (p[i].prn == prn)
                    {
                        return p[i];
                    }
                }
                return NullSate;
            }
Ejemplo n.º 8
0
            public sateInfo GetRealBeidouSnr(int prn, GNSSSatelliteType t)
            {
                sateInfo[] p = GetSateArray(t);

                for (int i = 0; i < MaxSattellite; i++)
                {
                    if (GetRealBeidouPrn(p[i].prn) == GetRealBeidouPrn(prn))
                    {
                        return p[i];
                    }
                }
                return NullSate;
            }