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:
Tue Aug 26 06:44:16 2014 +0000
Revision:
10:34d368966675
Parent:
8:934ec53fe2c0
Child:
11:a3af7a5e03d2
converted worker2 from friend to static private to avoid clutter in namespace;

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 8:934ec53fe2c0 5
julmbed 8:934ec53fe2c0 6
julmbed 8:934ec53fe2c0 7
julmbed 0:85afbf3c9fad 8 #include "VarItems.h"
julmbed 0:85afbf3c9fad 9
julmbed 0:85afbf3c9fad 10 #define SZ 10
julmbed 3:cf43e6de918e 11 #define STR_OK ""
julmbed 0:85afbf3c9fad 12
julmbed 0:85afbf3c9fad 13 class VarStore
julmbed 0:85afbf3c9fad 14 {
julmbed 7:fafe81a95c08 15
julmbed 7:fafe81a95c08 16
julmbed 10:34d368966675 17 // friend void Worker2();
julmbed 0:85afbf3c9fad 18 public:
julmbed 2:a59207652720 19 /*******************************
julmbed 2:a59207652720 20 *
julmbed 2:a59207652720 21 *Constructor
julmbed 2:a59207652720 22 ********************************/
julmbed 0:85afbf3c9fad 23
julmbed 8:934ec53fe2c0 24 VarStore( RawSerial *ser);
julmbed 2:a59207652720 25 /*******************************
julmbed 2:a59207652720 26 *
julmbed 2:a59207652720 27 *Destructor
julmbed 2:a59207652720 28 ********************************/
julmbed 0:85afbf3c9fad 29
julmbed 0:85afbf3c9fad 30 virtual ~VarStore();
julmbed 2:a59207652720 31 /*******************************
julmbed 2:a59207652720 32 *
julmbed 2:a59207652720 33 *asigna valor a una variable/array o retorna ERR
julmbed 2:a59207652720 34 ********************************/
julmbed 0:85afbf3c9fad 35
julmbed 2:a59207652720 36 char * Set(char *Input);
julmbed 0:85afbf3c9fad 37
julmbed 2:a59207652720 38 /*******************************
julmbed 2:a59207652720 39 *
julmbed 2:a59207652720 40 *devuelve en un string el contenido de una variable
julmbed 2:a59207652720 41 ********************************/
julmbed 0:85afbf3c9fad 42
julmbed 0:85afbf3c9fad 43 char* Get(char *Name);
julmbed 0:85afbf3c9fad 44
julmbed 2:a59207652720 45 /*******************************
julmbed 2:a59207652720 46 *carga en el store una variable
julmbed 2:a59207652720 47 *
julmbed 2:a59207652720 48 ********************************/
julmbed 0:85afbf3c9fad 49
julmbed 0:85afbf3c9fad 50 int Load(char *Name, void *VarPtr,VarTypes VarType );
julmbed 2:a59207652720 51
julmbed 2:a59207652720 52 /*******************************
julmbed 2:a59207652720 53 *
julmbed 2:a59207652720 54 *carga en el store una variable/array
julmbed 2:a59207652720 55 ********************************/
julmbed 0:85afbf3c9fad 56
julmbed 0:85afbf3c9fad 57 int Load(char *Name, void *VarPtr,VarTypes VarType, int Size );
julmbed 0:85afbf3c9fad 58
julmbed 2:a59207652720 59 /*******************************
julmbed 2:a59207652720 60 * Proceso que less del un serial para modificar
julmbed 2:a59207652720 61 * los valores de las variables.
julmbed 2:a59207652720 62 *
julmbed 2:a59207652720 63 ********************************/
julmbed 0:85afbf3c9fad 64
julmbed 7:fafe81a95c08 65 // static void Worker(void const *args);
julmbed 7:fafe81a95c08 66 static void Worker(void const *args);
julmbed 6:9848fdaf2ad9 67
julmbed 0:85afbf3c9fad 68
julmbed 0:85afbf3c9fad 69 protected:
julmbed 2:a59207652720 70
julmbed 0:85afbf3c9fad 71 private:
julmbed 2:a59207652720 72 /*******************************
julmbed 2:a59207652720 73 * Busca una variable con nombre name.
julmbed 2:a59207652720 74 *
julmbed 2:a59207652720 75 ********************************/
julmbed 0:85afbf3c9fad 76
julmbed 0:85afbf3c9fad 77 VarItem *GetVar(char *name);
julmbed 0:85afbf3c9fad 78
julmbed 2:a59207652720 79 /*******************************
julmbed 2:a59207652720 80 * Llamado por worker para
julmbed 2:a59207652720 81 * llevar a cabo la acción
julmbed 2:a59207652720 82 *
julmbed 2:a59207652720 83 ********************************/
julmbed 7:fafe81a95c08 84 char *Do(char *str);
julmbed 5:47b67a7c0bb7 85
julmbed 5:47b67a7c0bb7 86 /*******************************
julmbed 5:47b67a7c0bb7 87 *Para hacer gestión via interrupciones.
julmbed 5:47b67a7c0bb7 88 *
julmbed 5:47b67a7c0bb7 89 ********************************/
julmbed 10:34d368966675 90 static void Worker2();
julmbed 5:47b67a7c0bb7 91
julmbed 2:a59207652720 92 /*******************************
julmbed 2:a59207652720 93 *
julmbed 2:a59207652720 94 *
julmbed 2:a59207652720 95 ********************************/
julmbed 0:85afbf3c9fad 96 VarItem Store[SZ];
julmbed 0:85afbf3c9fad 97 int VarCounter;
julmbed 8:934ec53fe2c0 98 RawSerial *pc;
julmbed 6:9848fdaf2ad9 99
julmbed 6:9848fdaf2ad9 100 static VarStore *MyThis; // used by the workers reading the terminal
julmbed 2:a59207652720 101
julmbed 0:85afbf3c9fad 102 };
julmbed 0:85afbf3c9fad 103
julmbed 7:fafe81a95c08 104
julmbed 6:9848fdaf2ad9 105
julmbed 0:85afbf3c9fad 106 #endif // VARSTORE_H