Senso_3

Revision:
9:c5e1e1facb02
Parent:
8:49f2b6a515ac
Child:
10:f459b443f676
diff -r 49f2b6a515ac -r c5e1e1facb02 main.cpp
--- a/main.cpp	Sat Mar 13 16:53:22 2021 +0100
+++ b/main.cpp	Sat Mar 13 17:34:29 2021 +0100
@@ -1,60 +1,80 @@
 #include "mbed.h"
 #include "platform/mbed_thread.h"
-
+#include "string"
+ 
 using namespace std::chrono;
-
+ 
 InterruptIn    user_button(USER_BUTTON);
 DigitalOut     led(LED1);
-
+BufferedSerial pc(USBTX, USBRX);
+ 
 bool           executeMainTask = false;
 Timer          user_button_timer, loop_timer;
 int            Ts_ms = 50;
-
+ 
 void           button_fall();
 void           button_rise();
 
+/* input your stuff here */
 AnalogIn       analogIn(PA_0);
 float          dist = 0.0f;
 
+/* those numbers are just for testing the SerialBuffer class */
+float          floatNumber = 0.003713f;
+int            integerNumber = 777;
+ 
 int main()
 {
     user_button.fall(&button_fall);
     user_button.rise(&button_rise);
     loop_timer.start();
-
+ 
     while (true) {
-
+ 
         loop_timer.reset();
-
+ 
         /* ------------- start hacking ------------- -------------*/
-
+ 
         if(executeMainTask) {
+ 
+            dist = analogIn.read()*3.3f;
 
-            dist = analogIn.read()*3.3f;
-            
-            printf("Measval: %d\r\n", (static_cast<int>(dist * 1000)));
+            /* do only output what's really necessary, outputting "Measured value in mV: "" within the loop is no good solution */           
+            // printf("Measured value in mV: %d\r\n", (static_cast<int>(dist * 1e3)));
+ 
+            /* using the BufferedSerial class as an example */
+            string msg_str = "Measured value in mV: ";
+            msg_str.append(to_string((static_cast<int>(dist * 1e3))));
+            msg_str.append(";");
+            msg_str.append(to_string((static_cast<int>(floatNumber * 1e6))));
+            msg_str.append(";");
+            msg_str.append(to_string(integerNumber));
+            msg_str.append(";\r\n");
+            char msg[msg_str.length() + 1];
+            strcpy(msg, msg_str.c_str());
+            pc.write(msg, sizeof(msg));
 
             /* visual feedback that the main task is executed */
             led = !led;
-
+ 
         } else {
             led = 0;
         }
-
+ 
         /* ------------- stop hacking ------------- -------------*/
-
+ 
         int T_loop_ms = duration_cast<milliseconds>(loop_timer.elapsed_time()).count();
         int dT_loop_ms = Ts_ms - T_loop_ms;
         thread_sleep_for(dT_loop_ms);
     }
 }
-
+ 
 void button_fall()
 {
     user_button_timer.reset();
     user_button_timer.start();
 }
-
+ 
 void button_rise()
 {
     int t_button = duration_cast<milliseconds>(user_button_timer.elapsed_time()).count();