![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Trying to encode a configuration file and a set of instructions to be passed to a microcontroller
Dependencies: MODSERIAL Nanopb
Diff: main.cpp
- Revision:
- 4:4d4890afa9cb
- Parent:
- 3:49faa91b696e
--- 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); }