Michael Ernst Peter / Mbed OS Test_GPS

Dependencies:   Eigen

Revision:
58:f1b47b30f7c4
Parent:
57:6c87f4989616
Child:
59:1ef9ce8622cd
--- a/main.cpp	Fri Jun 03 18:20:08 2022 +0200
+++ b/main.cpp	Wed Jun 08 09:23:36 2022 +0200
@@ -19,7 +19,7 @@
 int main()
 {
     // while loop gets executed every main_task_period_ms milliseconds
-    const int main_task_period_ms = 40;  // define main task period time in ms e.g. 50 ms -> main task runns 20 times per second
+    const int main_task_period_ms = 50;  // define main task period time in ms e.g. 50 ms -> main task runns 20 times per second
     Timer main_task_timer;               // create Timer object which we use to run the main task every main task period time in ms
     main_task_timer.start();
     
@@ -49,6 +49,8 @@
 
         main_task_timer.reset();
 
+        //run_timer.reset(); // remove this for time measurement
+
         // update magnetometer
         mag.readMag(); // this needs approx 2450 mus
         mag_val[0] = raw_mx2mx.evaluate( mag.magX() );
@@ -66,30 +68,26 @@
 
         user_led = !user_led;
 
-        //int main_task_elapsed_time_mus = std::chrono::duration_cast<std::chrono::microseconds>(main_task_timer.elapsed_time()).count();
-
         // do only output via serial what's really necessary (this makes your code slow)
         printf("%0.3f, %0.3f, %0.3f, ",        //  1: 3 : scaled with 10.0f
-            mag_val[0] * 10.0f,
-            mag_val[1] * 10.0f,
-            mag_val[2] * 10.0f);
+            mag_val[0] * 10.0f, mag_val[1] * 10.0f, mag_val[2] * 10.0f);
         printf("%0.3f, %0.3f, %0.3f, ",        //  4: 6 : scaled with 10.0f
-            neom9n.getVelN() * 10.0f,
-            neom9n.getVelE() * 10.0f,
-            neom9n.getVelD() * 10.0f);
+            neom9n.getVelN() * 10.0f, neom9n.getVelE() * 10.0f, neom9n.getVelD() * 10.0f);
         printf("%0.3f, %0.3f, %0.3f, %0.3f, ", //  7:10 : scaled with 10.0f
-            neom9n.getGroundSpeed() * 10.0f,
-            neom9n.getSpeedAcc() * 10.0f,
-            neom9n.getHeading() * 10.0f,
-            neom9n.getHeadAcc() * 10.0f);
-        printf("%0.6f, %0.6f, %0.3f, %0.3f, ", // 11:14 : scaled with 10.0f
-            neom9n.getLon() * 10.0f,
-            neom9n.getLat() * 10.0f,
-            neom9n.getHeight() * 10.0f,
-            neom9n.getHeightMSL() * 10.0f);
-        printf("%0.3f, %d, ",                    // 15:16 : no scaling
-            neom9n.getSatTime(),
-            neom9n.getNumSat());
+            neom9n.getGroundSpeed() * 10.0f, neom9n.getSpeedAcc() * 10.0f, neom9n.getHeading() * 10.0f, neom9n.getHeadAcc() * 10.0f);
+        //printf("%0.6f, %0.6f, %0.3f, %0.3f, ", // 11:14 : scaled with 10.0f
+        //    neom9n.getLon() * 10.0f, neom9n.getLat() * 10.0f, neom9n.getHeight() * 10.0f, neom9n.getHeightMSL() * 10.0f);
+        printf("%d, %d, %d, %d, ", // 11:14 : raw data
+            neom9n.actualPVT.lon, neom9n.actualPVT.lat, neom9n.actualPVT.height, neom9n.actualPVT.heightMSL);
+        printf("%0.3f, %d, ",                  // 15:16 : no scaling
+            neom9n.getSatTime(), neom9n.getNumSat());
+        float x, y, z, p;
+        neom9n.getPosECEF(x, y, z, p);
+        printf("%0.3f, %0.3f, %0.3f,  %0.3f, ",// 17:20: no scaling
+            x, y, z, p);
+        neom9n.getVelECEF(x, y, z, p);
+        printf("%0.3f, %0.3f, %0.3f,  %0.3f, ",// 21:24: no scaling
+            x, y, z, p);
 
         int run_elapsed_time_ms = std::chrono::duration_cast<std::chrono::milliseconds>(run_timer.elapsed_time()).count();
         printf("%d\r\n", run_elapsed_time_ms);