library to modify and read program variable in runtime from a serial console. You can reset as well the mbed from the console without pushing buttons. Handy for debugging from the online compiler as you can change the behavior of the program without need to recompile each time.

Committer:
julmbed
Date:
Mon Aug 25 11:07:49 2014 +0000
Revision:
3:cf43e6de918e
Parent:
2:a59207652720
Child:
5:47b67a7c0bb7
added wait command

Who changed what in which revision?

UserRevisionLine numberNew contents of line
julmbed 0:85afbf3c9fad 1 #ifndef VARSTORE_H
julmbed 0:85afbf3c9fad 2 #define VARSTORE_H
julmbed 0:85afbf3c9fad 3
julmbed 0:85afbf3c9fad 4 #include "mbed.h"
julmbed 0:85afbf3c9fad 5 #include "VarItems.h"
julmbed 0:85afbf3c9fad 6
julmbed 0:85afbf3c9fad 7
julmbed 0:85afbf3c9fad 8 #define SZ 10
julmbed 3:cf43e6de918e 9 #define STR_OK ""
julmbed 0:85afbf3c9fad 10
julmbed 0:85afbf3c9fad 11 class VarStore
julmbed 0:85afbf3c9fad 12 {
julmbed 0:85afbf3c9fad 13 public:
julmbed 2:a59207652720 14 /*******************************
julmbed 2:a59207652720 15 *
julmbed 2:a59207652720 16 *Constructor
julmbed 2:a59207652720 17 ********************************/
julmbed 0:85afbf3c9fad 18
julmbed 0:85afbf3c9fad 19 VarStore(Serial *ser);
julmbed 2:a59207652720 20 /*******************************
julmbed 2:a59207652720 21 *
julmbed 2:a59207652720 22 *Destructor
julmbed 2:a59207652720 23 ********************************/
julmbed 0:85afbf3c9fad 24
julmbed 0:85afbf3c9fad 25 virtual ~VarStore();
julmbed 2:a59207652720 26 /*******************************
julmbed 2:a59207652720 27 *
julmbed 2:a59207652720 28 *asigna valor a una variable/array o retorna ERR
julmbed 2:a59207652720 29 ********************************/
julmbed 0:85afbf3c9fad 30
julmbed 2:a59207652720 31 char * Set(char *Input);
julmbed 0:85afbf3c9fad 32
julmbed 2:a59207652720 33 /*******************************
julmbed 2:a59207652720 34 *
julmbed 2:a59207652720 35 *devuelve en un string el contenido de una variable
julmbed 2:a59207652720 36 ********************************/
julmbed 0:85afbf3c9fad 37
julmbed 0:85afbf3c9fad 38 char* Get(char *Name);
julmbed 0:85afbf3c9fad 39
julmbed 2:a59207652720 40 /*******************************
julmbed 2:a59207652720 41 *carga en el store una variable
julmbed 2:a59207652720 42 *
julmbed 2:a59207652720 43 ********************************/
julmbed 0:85afbf3c9fad 44
julmbed 0:85afbf3c9fad 45 int Load(char *Name, void *VarPtr,VarTypes VarType );
julmbed 2:a59207652720 46
julmbed 2:a59207652720 47 /*******************************
julmbed 2:a59207652720 48 *
julmbed 2:a59207652720 49 *carga en el store una variable/array
julmbed 2:a59207652720 50 ********************************/
julmbed 0:85afbf3c9fad 51
julmbed 0:85afbf3c9fad 52 int Load(char *Name, void *VarPtr,VarTypes VarType, int Size );
julmbed 0:85afbf3c9fad 53
julmbed 2:a59207652720 54 /*******************************
julmbed 2:a59207652720 55 * Proceso que less del un serial para modificar
julmbed 2:a59207652720 56 * los valores de las variables.
julmbed 2:a59207652720 57 *
julmbed 2:a59207652720 58 ********************************/
julmbed 0:85afbf3c9fad 59
julmbed 2:a59207652720 60 static void Worker(void const *args);
julmbed 2:a59207652720 61
julmbed 0:85afbf3c9fad 62
julmbed 0:85afbf3c9fad 63
julmbed 0:85afbf3c9fad 64 protected:
julmbed 2:a59207652720 65
julmbed 0:85afbf3c9fad 66 private:
julmbed 2:a59207652720 67 /*******************************
julmbed 2:a59207652720 68 * Busca una variable con nombre name.
julmbed 2:a59207652720 69 *
julmbed 2:a59207652720 70 ********************************/
julmbed 0:85afbf3c9fad 71
julmbed 0:85afbf3c9fad 72 VarItem *GetVar(char *name);
julmbed 0:85afbf3c9fad 73
julmbed 2:a59207652720 74 /*******************************
julmbed 2:a59207652720 75 * Llamado por worker para
julmbed 2:a59207652720 76 * llevar a cabo la acción
julmbed 2:a59207652720 77 *
julmbed 2:a59207652720 78 ********************************/
julmbed 2:a59207652720 79 char *Do(char *str, VarStore *MyThis);
julmbed 2:a59207652720 80 /*******************************
julmbed 2:a59207652720 81 *
julmbed 2:a59207652720 82 *
julmbed 2:a59207652720 83 ********************************/
julmbed 0:85afbf3c9fad 84 VarItem Store[SZ];
julmbed 0:85afbf3c9fad 85 int VarCounter;
julmbed 0:85afbf3c9fad 86 Serial *pc;
julmbed 0:85afbf3c9fad 87
julmbed 2:a59207652720 88
julmbed 0:85afbf3c9fad 89 };
julmbed 0:85afbf3c9fad 90
julmbed 0:85afbf3c9fad 91 #endif // VARSTORE_H