Documents/模拟驾考APP内部通讯.docx | 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/master/comm_if.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/master/comm_if.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/rtk_module/rtk.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/rtk_module/rtk.h | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lib/src/main/cpp/rtk_platform/platform.cpp | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Documents/Ä£Äâ¼Ý¿¼APPÄÚ²¿Í¨Ñ¶.docxBinary files differ
lib/src/main/cpp/master/comm_if.cpp
@@ -258,6 +258,20 @@ writer.Double(brief->pitch); writer.Key("roll"); writer.Double(brief->roll); writer.Key("sat_num"); writer.Int(brief->sat_num); writer.Key("latitude"); writer.Double(brief->latitude); writer.Key("longitude"); writer.Double(brief->longitude); writer.Key("altitude"); writer.Double(brief->altitude); writer.Key("speed"); writer.Double(brief->speed); writer.Key("track_ture"); writer.Double(brief->trackTure); writer.EndObject(); SendMsgToMainProc(ID_SM_RTK_BRIEF, sb.GetString()); lib/src/main/cpp/master/comm_if.h
@@ -30,6 +30,7 @@ double longitude; double altitude; double speed; double trackTure; }; struct rtkBrief { @@ -42,6 +43,13 @@ double heading; double pitch; double roll; int sat_num; double latitude; double longitude; double altitude; double speed; double trackTure; }; struct carBrief { @@ -51,6 +59,8 @@ int move; double speed; double heading; double pitch; double roll; double main_ant[2]; int axial[2]; int left_front_tire[2]; lib/src/main/cpp/rtk_module/rtk.cpp
@@ -153,7 +153,7 @@ for (int i = 0; i < sizeof(GPSITEMS)/ sizeof(GPSITEMS[0]); ++i) { char cmd[64]; sprintf(cmd, "log com1 %s ontime 1\r\n", GPSITEMS[i]); sprintf(cmd, "log com1 %s ontime %0.1f\r\n", GPSITEMS[i], 1.0/(double)freq); WriteSerialPort(RTK_MODULE_UART, cmd, strlen(cmd)); } @@ -277,7 +277,6 @@ { DEBUG("handleGPRMC num = %d", s->nmea_num); if (s->nmea_num >= 9) { int hh = str2int(s->nmea_value[0].data, 2); int mm = str2int(s->nmea_value[0].data + 2, 2); @@ -294,6 +293,10 @@ gpsStatus.speed = speed * 1.85184; // è -> å ¬é double trackTure; str2float(&trackTure, s->nmea_value[7].data, s->nmea_value[7].length); gpsStatus.trackTure = trackTure; if (hh == gpsStatus.hh && mm == gpsStatus.mm && ss == gpsStatus.ss && mss == gpsStatus.mss) { // 忥çGGAæ¶æ¯ä¹æ¶éäº PlatformStatusChanged(GPS_UPDATE_EVT, (uint8_t *)&gpsStatus, sizeof(gpsStatus)); lib/src/main/cpp/rtk_module/rtk.h
@@ -20,6 +20,7 @@ double longitude; double altitude; double speed; double trackTure; }gpsStatus_t; typedef struct { lib/src/main/cpp/rtk_platform/platform.cpp
@@ -74,6 +74,9 @@ static pthread_mutex_t platform_tx_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t events_mutex = PTHREAD_MUTEX_INITIALIZER; static struct gpsBrief gbf; static struct rtkBrief rbf; static void AddEvnet(uint32_t event, const uint8_t *data, int length); static struct event_t * FetchEvent(void); static void RemoveEvent(void); @@ -166,6 +169,9 @@ { DEBUG("InitPlatform"); memset(&gbf, 0, sizeof(gbf)); memset(&rbf, 0, sizeof(rbf)); pthread_mutex_init(&platform_tx_mutex, NULL); pthread_mutex_init(&events_mutex, NULL); @@ -197,7 +203,7 @@ void ConfigPlatform(const rtk_platform_cfg_t *p) { DEBUG("ConfigPlatform"); DEBUG("é ç½®RTKå¹³å°èµè®¯"); AppTimer_delete(ReqRtkPlatformConfigTimeout); @@ -340,35 +346,50 @@ if (events & GPS_UPDATE_EVT) { DEBUG("GPS_UPDATE_EVT length %d", length); const gpsStatus_t *gps = (gpsStatus_t *)data; struct gpsBrief brief; brief.qf = gps->gps_status; brief.latitude = gps->latitude; brief.longitude = gps->longitude; brief.altitude = gps->altitude; brief.speed = gps->speed; brief.sat_num = gps->satNum; sprintf(brief.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + gps->YY, gps->MM, gps->DD, gps->hh, gps->mm, gps->ss, gps->mss); MA_SendGpsBrief(&brief); gbf.qf = gps->gps_status; gbf.latitude = gps->latitude; gbf.longitude = gps->longitude; gbf.altitude = gps->altitude; gbf.speed = gps->speed; gbf.sat_num = gps->satNum; gbf.trackTure = gps->trackTure; sprintf(gbf.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + gps->YY, gps->MM, gps->DD, gps->hh, gps->mm, gps->ss, gps->mss); if (!strcmp(rbf.utc, gbf.utc)) { rbf.sat_num = gbf.sat_num; rbf.latitude = gbf.latitude; rbf.longitude = gbf.longitude; rbf.altitude = gbf.altitude; rbf.speed = gbf.speed; rbf.trackTure = gbf.trackTure; MA_SendRtkBrief(&rbf); } // MA_SendGpsBrief(&brief); RequestRtkDownload(gps, 1); } if (events & RTK_UPDATE_EVT) { DEBUG("RTK_UPDATE_EVT length %d", length); const rtk_info *rtk = (rtk_info *)data; struct rtkBrief brief; brief.qf = rtk->qf; brief.coord_x = rtk->x; brief.coord_y = rtk->y; brief.heading = rtk->heading; brief.pitch = rtk->pitch; brief.roll = rtk->roll; brief.coord_x_dir = 'N'; brief.coord_y_dir = 'E'; sprintf(brief.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + rtk->YY, rtk->MM, rtk->DD, rtk->hh, rtk->mm, rtk->ss, rtk->dss); rbf.qf = rtk->qf; rbf.coord_x = rtk->y; rbf.coord_y = rtk->x; rbf.heading = rtk->heading; rbf.pitch = rtk->pitch; rbf.roll = rtk->roll; rbf.coord_x_dir = 'N'; rbf.coord_y_dir = 'E'; sprintf(rbf.utc, "%04d%02d%02d%02d%02d%02d.%02d", 2000 + rtk->YY, rtk->MM, rtk->DD, rtk->hh, rtk->mm, rtk->ss, rtk->dss); if (!strcmp(rbf.utc, gbf.utc)) { rbf.sat_num = gbf.sat_num; rbf.latitude = gbf.latitude; rbf.longitude = gbf.longitude; rbf.altitude = gbf.altitude; rbf.speed = gbf.speed; rbf.trackTure = gbf.trackTure; MA_SendRtkBrief(&rbf); } MA_SendRtkBrief(&brief); UpdateRTKInfo(rtk); } if (events & MCU_UPDATE_EVT) {