Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
cmd_helpers.cpp
00001 #include "mbed.h" 00002 #include "CommandProcessor.h" 00003 00004 #include "globals.h" 00005 00006 int tokenize(char *buf, char **out, int max) { 00007 char* tok; 00008 int k = 0; 00009 00010 tok = strtok(buf, " "); 00011 00012 while(tok != NULL && k < max) { 00013 out[k] = tok; 00014 k++; 00015 tok = strtok(NULL, " "); 00016 } 00017 return k; 00018 } 00019 00020 #define __check(x) if(strcmp(s, #x) == 0) return &x 00021 00022 float* checkf(char *s) { 00023 __check(KP); 00024 __check(KI); 00025 __check(I_LIMIT); 00026 __check(F_SW); 00027 __check(THROTTLE_DEADBAND); 00028 __check(ANALOG_THROTTLE_LOW); 00029 __check(ANALOG_THROTTLE_HI); 00030 return NULL; 00031 } 00032 00033 int* checkn(char *s) { 00034 return NULL; 00035 } 00036 00037 #define __strcase(in, out) case in:strcpy(result, out);break 00038 #define __intcase(in, out) if (strcmp(buf, in) == 0) return out 00039 00040 char* src_to_str(int n) { 00041 static char result[12]; 00042 switch (n) { 00043 __strcase(CMD_SRC_RC, "RC"); 00044 __strcase(CMD_SRC_ANALOG, "Analog"); 00045 __strcase(CMD_SRC_TERMINAL, "Terminal"); 00046 __strcase(CMD_SRC_SERIAL, "Serial"); 00047 __strcase(CMD_SRC_CAN, "CAN"); 00048 __strcase(CMD_SRC_INTERNAL, "Internal"); 00049 default: 00050 strcpy(result, "Invalid"); 00051 break; 00052 } 00053 return result; 00054 } 00055 00056 int str_to_src(char *buf) { 00057 __intcase("rc", CMD_SRC_RC); 00058 __intcase("analog", CMD_SRC_ANALOG); 00059 __intcase("terminal", CMD_SRC_TERMINAL); 00060 __intcase("serial", CMD_SRC_SERIAL); 00061 __intcase("can", CMD_SRC_CAN); 00062 __intcase("internal", CMD_SRC_INTERNAL); 00063 return -1; 00064 } 00065 00066 00067 char* op_to_str(int n) { 00068 static char result[24]; 00069 switch(n) { 00070 __strcase(OP_TORQUE, "Torque loop"); 00071 __strcase(OP_DRIVING, "Driving map"); 00072 __strcase(OP_SPEED, "Open-loop speed"); 00073 __strcase(OP_POSITION, "Position loop"); 00074 default: 00075 strcpy(result, "Invalid"); 00076 break; 00077 } 00078 return result; 00079 } 00080 00081 int str_to_op(char *buf) { 00082 __intcase("torque", OP_TORQUE); 00083 __intcase("driving", OP_DRIVING); 00084 __intcase("speed", OP_SPEED); 00085 __intcase("pos", OP_POSITION); 00086 __intcase("position", OP_POSITION); 00087 return -1; 00088 }
Generated on Tue Jul 12 2022 21:21:55 by
