s
yy1717
2020-01-13 edc694498e7ca9a0475bbf5576729aedfc88d3f0
lib/src/main/cpp/rtk_module/rtk.cpp
@@ -37,8 +37,6 @@
static gpsStatus_t gpsStatus;
static int tra_hh, tra_mm, tra_ss, tra_dss;
static rtk_info CurrRTKInfo;
static void CheckPjkParam(void);
@@ -52,7 +50,8 @@
    DEBUG("ConfigRTKModule");
    memset(&CurrRTKInfo, 0, sizeof(CurrRTKInfo));
    tra_hh = tra_mm = tra_ss = tra_dss = 0;
    CurrRTKInfo.hh = -1;
    memset(&gpsStatus, 0, sizeof(gpsStatus));
    gpsStatus.hh = -1;
@@ -338,10 +337,10 @@
void handlePJK(const struct nmea *s) {
    DEBUG("handlePJK num = %d", s->nmea_num);
    CurrRTKInfo.hh = str2int(s->nmea_value[0].data, 2);
    CurrRTKInfo.mm = str2int(s->nmea_value[0].data + 2, 2);
    CurrRTKInfo.ss = str2int(s->nmea_value[0].data + 4, 2);
    CurrRTKInfo.dss = str2int(s->nmea_value[0].data + 7, 2);
    int hh = str2int(s->nmea_value[0].data, 2);
    int mm = str2int(s->nmea_value[0].data + 2, 2);
    int ss = str2int(s->nmea_value[0].data + 4, 2);
    int dss = str2int(s->nmea_value[0].data + 7, 2);
    CurrRTKInfo.MM = str2int(s->nmea_value[1].data, 2);
    CurrRTKInfo.DD = str2int(s->nmea_value[1].data + 2, 2);
@@ -373,36 +372,46 @@
//        yy -= 0.02 * (by2 - by1) / (bx2 - bx1);
//    }
    if (CurrRTKInfo.hh == tra_hh && CurrRTKInfo.mm == tra_mm && CurrRTKInfo.ss == tra_ss && CurrRTKInfo.dss == tra_dss) {
    if (CurrRTKInfo.hh == hh && CurrRTKInfo.mm == mm && CurrRTKInfo.ss == ss && CurrRTKInfo.dss == dss) {
        PlatformStatusChanged(RTK_UPDATE_EVT, (uint8_t *)&CurrRTKInfo, sizeof(CurrRTKInfo));
        UpdateRTKInfo(&CurrRTKInfo);
//        UpdateRTKInfo(&CurrRTKInfo);
//        up_num++;
        /*if ((up_num % 5) == 0)*/ {
//            NewMgrEvent(DRIVER_UPDATE_EVT);
        }
    }
    CurrRTKInfo.hh = hh;
    CurrRTKInfo.mm = mm;
    CurrRTKInfo.ss = ss;
    CurrRTKInfo.dss = dss;
}
void handleGPTRA(const struct nmea *s) {
    DEBUG("handleGPTRA num = %d", s->nmea_num);
    tra_hh = str2int(s->nmea_value[0].data, 2);
    tra_mm = str2int(s->nmea_value[0].data + 2, 2);
    tra_ss = str2int(s->nmea_value[0].data + 4, 2);
    tra_dss = str2int(s->nmea_value[0].data + 7, 2);
    int hh = str2int(s->nmea_value[0].data, 2);
    int mm = str2int(s->nmea_value[0].data + 2, 2);
    int ss = str2int(s->nmea_value[0].data + 4, 2);
    int dss = str2int(s->nmea_value[0].data + 7, 2);
    str2float(&CurrRTKInfo.heading, s->nmea_value[1].data, s->nmea_value[1].length);
    str2float(&CurrRTKInfo.pitch, s->nmea_value[2].data, s->nmea_value[2].length);
    str2float(&CurrRTKInfo.roll, s->nmea_value[3].data, s->nmea_value[3].length);
//    CurrRTKInfo.heading = 60;
    if (CurrRTKInfo.hh == tra_hh && CurrRTKInfo.mm == tra_mm && CurrRTKInfo.ss == tra_ss && CurrRTKInfo.dss == tra_dss) {
    if (CurrRTKInfo.hh == hh && CurrRTKInfo.mm == mm && CurrRTKInfo.ss == ss && CurrRTKInfo.dss == dss) {
        PlatformStatusChanged(RTK_UPDATE_EVT, (uint8_t *)&CurrRTKInfo, sizeof(CurrRTKInfo));
        UpdateRTKInfo(&CurrRTKInfo);
//        UpdateRTKInfo(&CurrRTKInfo);
//        up_num++;
        /*if ((up_num % 5) == 0)*/ {
//            NewMgrEvent(DRIVER_UPDATE_EVT);
        }
    }
    CurrRTKInfo.hh = hh;
    CurrRTKInfo.mm = mm;
    CurrRTKInfo.ss = ss;
    CurrRTKInfo.dss = dss;
}
static void CheckPjkParam(void)