Beispiel #1
0
 void LNavParityFilter ::
 validate(NavMsgList& msgBitsIn, NavMsgList& msgBitsOut)
 {
    NavMsgList::iterator i;
       // check parity of each subframe and put the valid ones in
       // the output
    for (i = msgBitsIn.begin(); i != msgBitsIn.end(); i++)
    {
       LNavFilterData *fd = dynamic_cast<LNavFilterData*>(*i);
       if (EngNav::checkParity(fd->sf))
          accept(*i, msgBitsOut);
       else
          reject(*i);
    }
 }
 void LNavCrossSourceFilter ::
 validate(NavMsgList& msgBitsIn, NavMsgList& msgBitsOut)
 {
    NavMsgList::const_iterator nmli;
    for (nmli = msgBitsIn.begin(); nmli != msgBitsIn.end(); nmli++)
    {
       LNavFilterData *fd = dynamic_cast<LNavFilterData*>(*nmli);
       if (fd->timeStamp != currentTime)
       {
             // different time, so check out what we have
          examineSubframes(msgBitsOut);
          groupedNav.clear();
          currentTime = fd->timeStamp;
       }
          // add the subframe to our collection
       groupedNav[fd->prn][fd].push_back(*nmli);
    }
 }
Beispiel #3
0
   void LNavAlmValFilter ::
   validate(NavMsgList& msgBitsIn, NavMsgList& msgBitsOut)
   {
      NavMsgList::iterator i;

      for (i = msgBitsIn.begin(); i != msgBitsIn.end(); i++)
      {
         LNavFilterData *fd = dynamic_cast<LNavFilterData*>(*i);
         short sfid = EngNav::getSFID(fd->sf[1]);
         switch (sfid)
         {
            case 4:
            case 5:
               if (checkAlmValRange(fd))
                  accept(*i, msgBitsOut);
               else
                  reject(*i);
               break;
            default:
               accept(*i, msgBitsOut);
               break;
         }
      }
   }
Beispiel #4
0
 void NavFilter ::
 reject(const NavMsgList& invalid)
 {
    std::copy(invalid.begin(), invalid.end(),
              std::back_insert_iterator<NavMsgList>(rejected));
 }
Beispiel #5
0
 void NavFilter ::
 reject(NavFilterKey* data)
 {
    rejected.push_back(data);
 }
Beispiel #6
0
 void NavFilter ::
 accept(const NavMsgList& valid, NavMsgList& msgBitsOut)
 {
    std::copy(valid.begin(), valid.end(),
              std::back_insert_iterator<NavMsgList>(msgBitsOut));
 }
Beispiel #7
0
 void NavFilter ::
 accept(NavFilterKey* data, NavMsgList& msgBitsOut)
 {
    msgBitsOut.push_back(data);
 }