@@ -62,6 +62,7 @@ void Commander::run(char* user_input){
62
62
switch (id){
63
63
case CMD_SCAN:
64
64
for (int i=0 ; i < call_count; i++){
65
+ printMachineReadable (F (" ?" ));
65
66
print (call_ids[i]);
66
67
print (" :" );
67
68
if (call_label[i]) println (call_label[i]);
@@ -79,16 +80,21 @@ void Commander::run(char* user_input){
79
80
case VerboseMode::user_friendly:
80
81
println (F (" on!" ));
81
82
break ;
83
+ case VerboseMode::machine_readable:
84
+ printlnMachineReadable (F (" machine" ));
85
+ break ;
82
86
}
83
87
break ;
84
88
case CMD_DECIMAL:
85
89
if (!isSentinel (user_input[1 ])) decimal_places = atoi (&user_input[1 ]);
86
90
printVerbose (F (" Decimal:" ));
91
+ printMachineReadable (F (" #" ));
87
92
println (decimal_places);
88
93
break ;
89
94
default :
90
95
for (int i=0 ; i < call_count; i++){
91
96
if (id == call_ids[i]){
97
+ printMachineReadable (user_input[0 ]);
92
98
call_list[i](&user_input[1 ]);
93
99
break ;
94
100
}
@@ -100,7 +106,7 @@ void Commander::run(char* user_input){
100
106
void Commander::motor (FOCMotor* motor, char * user_command) {
101
107
102
108
// if target setting
103
- if (isDigit (user_command[0 ]) || user_command[0 ] == ' -' || user_command[0 ] == ' +' ){
109
+ if (isDigit (user_command[0 ]) || user_command[0 ] == ' -' || user_command[0 ] == ' +' || isSentinel (user_command[ 0 ]) ){
104
110
target (motor, user_command);
105
111
return ;
106
112
}
@@ -114,7 +120,10 @@ void Commander::motor(FOCMotor* motor, char* user_command) {
114
120
bool GET = isSentinel (user_command[value_index]);
115
121
// parse command values
116
122
float value = atof (&user_command[value_index]);
117
-
123
+ printMachineReadable (cmd);
124
+ if (sub_cmd >= ' A' && sub_cmd <= ' Z' ) {
125
+ printMachineReadable (sub_cmd);
126
+ }
118
127
119
128
// a bit of optimisation of variable memory for Arduino UNO (atmega328)
120
129
switch (cmd){
@@ -487,8 +496,11 @@ void Commander::scalar(float* value, char* user_cmd){
487
496
488
497
void Commander::target (FOCMotor* motor, char * user_cmd, char * separator){
489
498
// if no values sent
490
- if (isSentinel (user_cmd[0 ])) return ;
491
-
499
+ if (isSentinel (user_cmd[0 ])) {
500
+ printlnMachineReadable (motor->target );
501
+ return ;
502
+ };
503
+
492
504
float pos, vel, torque;
493
505
char * next_value;
494
506
switch (motor->controller ){
@@ -633,6 +645,39 @@ void Commander::printVerbose(const char* message){
633
645
void Commander::printVerbose (const __FlashStringHelper *message){
634
646
if (verbose == VerboseMode::user_friendly) print (message);
635
647
}
648
+
649
+ void Commander::printMachineReadable (const int number){
650
+ if (verbose == VerboseMode::machine_readable) print (number);
651
+ }
652
+ void Commander::printMachineReadable (const float number){
653
+ if (verbose == VerboseMode::machine_readable) print (number);
654
+ }
655
+ void Commander::printMachineReadable (const char * message){
656
+ if (verbose == VerboseMode::machine_readable) print (message);
657
+ }
658
+ void Commander::printMachineReadable (const __FlashStringHelper *message){
659
+ if (verbose == VerboseMode::machine_readable) print (message);
660
+ }
661
+ void Commander::printMachineReadable (const char message){
662
+ if (verbose == VerboseMode::machine_readable) print (message);
663
+ }
664
+
665
+ void Commander::printlnMachineReadable (const int number){
666
+ if (verbose == VerboseMode::machine_readable) println (number);
667
+ }
668
+ void Commander::printlnMachineReadable (const float number){
669
+ if (verbose == VerboseMode::machine_readable) println (number);
670
+ }
671
+ void Commander::printlnMachineReadable (const char * message){
672
+ if (verbose == VerboseMode::machine_readable) println (message);
673
+ }
674
+ void Commander::printlnMachineReadable (const __FlashStringHelper *message){
675
+ if (verbose == VerboseMode::machine_readable) println (message);
676
+ }
677
+ void Commander::printlnMachineReadable (const char message){
678
+ if (verbose == VerboseMode::machine_readable) println (message);
679
+ }
680
+
636
681
void Commander::printError (){
637
682
println (F (" err" ));
638
683
}
0 commit comments