Changeset 9407 in ntrip


Ignore:
Timestamp:
Apr 19, 2021, 11:08:19 AM (4 years ago)
Author:
stuerze
Message:

eph checks harmonized

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/BNC_2.12/src/upload/bncephuploadcaster.cpp

    r7717 r9407  
    5959////////////////////////////////////////////////////////////////////////////
    6060void bncEphUploadCaster::ephBufferChanged() {
    61   if (_ephUploadCaster) {
    62     QByteArray outBuffer;
     61        if (_ephUploadCaster) {
     62                QByteArray outBuffer;
    6363
    64     QDateTime now = currentDateAndTimeGPS();
    65     bncTime currentTime(now.toString(Qt::ISODate).toStdString());
     64                QDateTime now = currentDateAndTimeGPS();
     65                bncTime currentTime(now.toString(Qt::ISODate).toStdString());
    6666
    67     QListIterator<QString> it(prnList());
    68     while (it.hasNext()) {
    69       const t_eph* eph = ephLast(it.next());
     67                QListIterator < QString > it(prnList());
     68                while (it.hasNext()) {
     69                        const t_eph *eph = ephLast(it.next());
    7070
    71       bncTime toc = eph->TOC();
    72       double timeDiff = fabs(toc - currentTime);
     71                        bncTime toc = eph->TOC();
     72                        double dt = currentTime - toc;
    7373
    74       const t_ephGPS*  ephGPS = dynamic_cast<const t_ephGPS*>(eph);
    75       const t_ephGlo*  ephGlo = dynamic_cast<const t_ephGlo*>(eph);
    76       const t_ephGal*  ephGal = dynamic_cast<const t_ephGal*>(eph);
    77       const t_ephSBAS* ephSBAS = dynamic_cast<const t_ephSBAS*>(eph);
    78       const t_ephBDS*  ephBDS = dynamic_cast<const t_ephBDS*>(eph);
     74                        const t_ephGPS *ephGPS = dynamic_cast<const t_ephGPS*>(eph);
     75                        const t_ephGlo *ephGlo = dynamic_cast<const t_ephGlo*>(eph);
     76                        const t_ephGal *ephGal = dynamic_cast<const t_ephGal*>(eph);
     77                        const t_ephSBAS *ephSBAS = dynamic_cast<const t_ephSBAS*>(eph);
     78                        const t_ephBDS *ephBDS = dynamic_cast<const t_ephBDS*>(eph);
    7979
    80       unsigned char Array[80];
    81       int size = 0;
     80                        unsigned char Array[80];
     81                        int size = 0;
    8282
    83       if (ephGPS) {
    84         if (timeDiff <= 4*3600) {
    85           size = t_ephEncoder::RTCM3(*ephGPS, Array);
    86         }
    87       }
    88       else if (ephGlo) {
    89         if (timeDiff <= 1*3600) {
    90           size = t_ephEncoder::RTCM3(*ephGlo, Array);
    91         }
    92       }
    93       else if (ephGal) {
    94         if (timeDiff <= 4*3600) {
    95           size = t_ephEncoder::RTCM3(*ephGal, Array);
    96         }
    97       }
    98       else if (ephSBAS) {
    99         if (timeDiff <= 600) {
    100           size = t_ephEncoder::RTCM3(*ephSBAS, Array);
    101         }
    102       }
    103       else if (ephBDS) {
    104         if (timeDiff <= 6*3600) {
    105           size = t_ephEncoder::RTCM3(*ephBDS, Array);
    106         }
    107       }
    108       if (size > 0) {
    109         outBuffer += QByteArray((char*) Array, size);
    110       }
    111     }
    112     if (outBuffer.size() > 0) {
    113       _ephUploadCaster->setOutBuffer(outBuffer);
    114     }
    115   }
     83                        if (ephGPS && ephGPS->type() == t_eph::GPS && (system == "ALL" || system == "GPS")) {
     84                                if (dt > 14400.0 || dt < -7200.0) {
     85                                        size = t_ephEncoder::RTCM3(*ephGPS, Array);
     86                                }
     87                        } else if (ephGPS && ephGPS->type() == t_eph::QZSS && (system == "ALL" || system == "QZSS")) {
     88                                if (dt > 7200.0 || dt < -3600.0) {
     89                                        size = t_ephEncoder::RTCM3(*ephGPS, Array);
     90                                }
     91                        } else if (ephGlo && (system == "ALL" || system == "GLONASS")) {
     92                                if (dt > 3900.0 || dt < -2100.0) {
     93                                        size = t_ephEncoder::RTCM3(*ephGlo, Array);
     94                                }
     95                        } else if (ephGal && (system == "ALL" || system == "Galileo")) {
     96                                if (dt > 14400.0 || dt < 0.0) {
     97                                        size = t_ephEncoder::RTCM3(*ephGal, Array);
     98                                }
     99                        } else if (ephSBAS && (system == "ALL" || system == "SBAS")) {
     100                                if (dt > 600.0 || dt < -600.0) {
     101                                        size = t_ephEncoder::RTCM3(*ephSBAS, Array);
     102                                }
     103                        } else if (ephBDS && (system == "ALL" || system == "BDS")) {
     104                                if (dt > 3900.0 || dt < 0.0) {
     105                                        size = t_ephEncoder::RTCM3(*ephBDS, Array);
     106                                }
     107                        } else if (ephGPS && ephGPS->type() == t_eph::IRNSS     && (system == "ALL" || system == "IRNSS")) {
     108                                if (fabs(dt > 86400.0)) {
     109                                        size = t_ephEncoder::RTCM3(*ephGPS, Array);
     110                                }
     111                        }
     112                        if (size > 0) {
     113                                outBuffer += QByteArray((char*) Array, size);
     114                        }
     115                }
     116                if (outBuffer.size() > 0) {
     117                        _ephUploadCaster->setOutBuffer(outBuffer);
     118                }
     119        }
    116120}
Note: See TracChangeset for help on using the changeset viewer.