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 15:38:31 2014 +0000
Revision:
6:9848fdaf2ad9
Parent:
5:47b67a7c0bb7
Child:
7:fafe81a95c08
en modo gestion via interrupciones. Antes de hacer limpieza y preparar para publicacion

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 6:9848fdaf2ad9 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 5:47b67a7c0bb7 80
julmbed 5:47b67a7c0bb7 81 /*******************************
julmbed 5:47b67a7c0bb7 82 *Para hacer gestión via interrupciones.
julmbed 5:47b67a7c0bb7 83 *
julmbed 5:47b67a7c0bb7 84 ********************************/
julmbed 5:47b67a7c0bb7 85 static void Worker2();
julmbed 5:47b67a7c0bb7 86
julmbed 2:a59207652720 87 /*******************************
julmbed 2:a59207652720 88 *
julmbed 2:a59207652720 89 *
julmbed 2:a59207652720 90 ********************************/
julmbed 0:85afbf3c9fad 91 VarItem Store[SZ];
julmbed 0:85afbf3c9fad 92 int VarCounter;
julmbed 0:85afbf3c9fad 93 Serial *pc;
julmbed 6:9848fdaf2ad9 94
julmbed 6:9848fdaf2ad9 95 static VarStore *MyThis; // used by the workers reading the terminal
julmbed 2:a59207652720 96
julmbed 0:85afbf3c9fad 97 };
julmbed 0:85afbf3c9fad 98
julmbed 6:9848fdaf2ad9 99
julmbed 6:9848fdaf2ad9 100
julmbed 0:85afbf3c9fad 101 #endif // VARSTORE_H