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 17:55:39 2014 +0000
Revision:
7:fafe81a95c08
Parent:
6:9848fdaf2ad9
Child:
8:934ec53fe2c0
before changes to buffered serial

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