Trying to encode a configuration file and a set of instructions to be passed to a microcontroller

Dependencies:   MODSERIAL Nanopb

Revision:
4:4d4890afa9cb
Parent:
3:49faa91b696e
diff -r 49faa91b696e -r 4d4890afa9cb main.cpp
--- a/main.cpp	Sun Aug 18 21:38:31 2019 +0000
+++ b/main.cpp	Sun Aug 18 21:51:31 2019 +0000
@@ -32,20 +32,25 @@
     
 void read_message(){
     if (pc.scanf("%d",&message_length_i) < 0){pc.printf("Error in reading message length");}
-    i = 0;
-    while (i < message_length_i) {
-        scanf("%d", &i);
-        scanf("%c", &buffer_i[i]);
-        i++;
-        wait_us(10);
+    for (int i = 0; i < message_length_i; i++) {
+        i = i % sizeof(buffer_i);
+        c = pc.getc();
+        if (c != '#'){
+            buffer_i[i] = c;
+            }  
+        pc.putc(buffer_i[i]);
         }
     }      
 
 void write_message(){
     pc.printf("%d ",message_length_o);
     for (int i = 0; i < message_length_o; i++) {
-        printf("%d%c", i, buffer_o[i]);
-        wait_us(10);
+        if (buffer_o[i] == NULL){
+            pc.putc('#');
+            }
+        else{
+            pc.putc(buffer_o[i]);
+            }
     }
 }
        
@@ -117,18 +122,21 @@
     pc.getc();
     pc.printf("\n Input your set point:\n");
     read_message();
-    /*for (i = 0; i < message_length_i; i++){
-        pc.putc(buffer_i[i]);
-        pc.putc(buffer_o[i]);
-        if (buffer_i[i] == buffer_o[i]){pc.putc('y');}
-        else {pc.putc('n');}
-        }*/
+
     decode_message<Configuration>(&config_i,'c');
     printf("Config decoded - there are %d points \n",config_i.n_set_points);
     
     SetPoint set_point_i[config_i.n_set_points];
     for (int point = 0; point < config_i.n_set_points; point++){
         read_message();
+        for (i = 0; i < message_length_i; i++){
+            pc.putc(buffer_i[i]);
+            pc.putc(buffer_o[i]);
+            if (buffer_i[i] == buffer_o[i]){pc.putc('y');}
+            else {pc.putc('n');}
+            pc.printf("\n");
+            wait_us(50);
+        }
         decode_message<SetPoint>(&set_point_i[i],'c');
         printf("Set point %d is %f,at %d, with a trigger at %d",i,set_point_i[i].r_set_point,set_point_i[i].time_point,set_point_i[i].trig_time);
     }