소스 검색

upd ublox

MX 2 년 전
부모
커밋
5fefacb102
2개의 변경된 파일14개의 추가작업 그리고 8개의 파일을 삭제
  1. 3 0
      non_catalog_apps/ublox/README.md
  2. 11 8
      non_catalog_apps/ublox/ublox_worker.c

+ 3 - 0
non_catalog_apps/ublox/README.md

@@ -95,6 +95,9 @@ display will also stop logging. If the GPS disconnects or becomes
 unreachable, logging will stop and all data will be saved. The log
 file is flushed every 16 writes in case a disk problem arises.
 
+Data points are only added to the KML file if the GPS has a fix,
+including a dead reckoning fix.
+
 ## Time synchronization
 ![u-blox app time synchronization display](screenshots/sync_time.png)
 

+ 11 - 8
non_catalog_apps/ublox/ublox_worker.c

@@ -203,14 +203,17 @@ void ublox_worker_read_nav_messages(void* context) {
 	    FURI_LOG_I(TAG, "sent callback");
 	    // if logging, add point
             if(ublox->log_state == UbloxLogStateLogging) {
-                if(!kml_add_path_point(
-                       &(ublox->kmlfile),
-                       // ublox returns values as floats * 1e7 in int form
-                       (double)(ublox->nav_pvt.lat) / (double)1e7,
-                       (double)(ublox->nav_pvt.lon) / (double)1e7,
-                       ublox->nav_pvt.hMSL / 1e3)) { // convert altitude to meters
-                    FURI_LOG_E(TAG, "failed to write line to file");
-                }
+		// only add points if there's a fix (even if it's only dead reckoning)
+		if (ublox->nav_pvt.fixType != 0) {
+		    if(!kml_add_path_point(
+					   &(ublox->kmlfile),
+					   // ublox returns values as floats * 1e7 in int form
+					   (double)(ublox->nav_pvt.lat) / (double)1e7,
+					   (double)(ublox->nav_pvt.lon) / (double)1e7,
+					   ublox->nav_pvt.hMSL / 1e3)) { // convert altitude to meters
+			FURI_LOG_E(TAG, "failed to write line to file");
+		    }
+		}
             }
         } else {
 	    // bad data