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.
VarStore.h@2:a59207652720, 2014-08-25 (annotated)
- Committer:
- julmbed
- Date:
- Mon Aug 25 10:45:03 2014 +0000
- Revision:
- 2:a59207652720
- Parent:
- 0:85afbf3c9fad
- Child:
- 3:cf43e6de918e
worker como static, lanzandolo de manera independiente en el main. admite tres comandos, via ->DO que son set/get-dump/reset para carge de nuevo programa en el mbed sin darle al boton
Who changed what in which revision?
User | Revision | Line number | New 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 | 0:85afbf3c9fad | 9 | |
julmbed | 0:85afbf3c9fad | 10 | class VarStore |
julmbed | 0:85afbf3c9fad | 11 | { |
julmbed | 0:85afbf3c9fad | 12 | public: |
julmbed | 2:a59207652720 | 13 | /******************************* |
julmbed | 2:a59207652720 | 14 | * |
julmbed | 2:a59207652720 | 15 | *Constructor |
julmbed | 2:a59207652720 | 16 | ********************************/ |
julmbed | 0:85afbf3c9fad | 17 | |
julmbed | 0:85afbf3c9fad | 18 | VarStore(Serial *ser); |
julmbed | 2:a59207652720 | 19 | /******************************* |
julmbed | 2:a59207652720 | 20 | * |
julmbed | 2:a59207652720 | 21 | *Destructor |
julmbed | 2:a59207652720 | 22 | ********************************/ |
julmbed | 0:85afbf3c9fad | 23 | |
julmbed | 0:85afbf3c9fad | 24 | virtual ~VarStore(); |
julmbed | 2:a59207652720 | 25 | /******************************* |
julmbed | 2:a59207652720 | 26 | * |
julmbed | 2:a59207652720 | 27 | *asigna valor a una variable/array o retorna ERR |
julmbed | 2:a59207652720 | 28 | ********************************/ |
julmbed | 0:85afbf3c9fad | 29 | |
julmbed | 2:a59207652720 | 30 | char * Set(char *Input); |
julmbed | 0:85afbf3c9fad | 31 | |
julmbed | 2:a59207652720 | 32 | /******************************* |
julmbed | 2:a59207652720 | 33 | * |
julmbed | 2:a59207652720 | 34 | *devuelve en un string el contenido de una variable |
julmbed | 2:a59207652720 | 35 | ********************************/ |
julmbed | 0:85afbf3c9fad | 36 | |
julmbed | 0:85afbf3c9fad | 37 | char* Get(char *Name); |
julmbed | 0:85afbf3c9fad | 38 | |
julmbed | 2:a59207652720 | 39 | /******************************* |
julmbed | 2:a59207652720 | 40 | *carga en el store una variable |
julmbed | 2:a59207652720 | 41 | * |
julmbed | 2:a59207652720 | 42 | ********************************/ |
julmbed | 0:85afbf3c9fad | 43 | |
julmbed | 0:85afbf3c9fad | 44 | int Load(char *Name, void *VarPtr,VarTypes VarType ); |
julmbed | 2:a59207652720 | 45 | |
julmbed | 2:a59207652720 | 46 | /******************************* |
julmbed | 2:a59207652720 | 47 | * |
julmbed | 2:a59207652720 | 48 | *carga en el store una variable/array |
julmbed | 2:a59207652720 | 49 | ********************************/ |
julmbed | 0:85afbf3c9fad | 50 | |
julmbed | 0:85afbf3c9fad | 51 | int Load(char *Name, void *VarPtr,VarTypes VarType, int Size ); |
julmbed | 0:85afbf3c9fad | 52 | |
julmbed | 2:a59207652720 | 53 | /******************************* |
julmbed | 2:a59207652720 | 54 | * Proceso que less del un serial para modificar |
julmbed | 2:a59207652720 | 55 | * los valores de las variables. |
julmbed | 2:a59207652720 | 56 | * |
julmbed | 2:a59207652720 | 57 | ********************************/ |
julmbed | 0:85afbf3c9fad | 58 | |
julmbed | 2:a59207652720 | 59 | static void Worker(void const *args); |
julmbed | 2:a59207652720 | 60 | |
julmbed | 0:85afbf3c9fad | 61 | |
julmbed | 0:85afbf3c9fad | 62 | |
julmbed | 0:85afbf3c9fad | 63 | protected: |
julmbed | 2:a59207652720 | 64 | |
julmbed | 0:85afbf3c9fad | 65 | private: |
julmbed | 2:a59207652720 | 66 | /******************************* |
julmbed | 2:a59207652720 | 67 | * Busca una variable con nombre name. |
julmbed | 2:a59207652720 | 68 | * |
julmbed | 2:a59207652720 | 69 | ********************************/ |
julmbed | 0:85afbf3c9fad | 70 | |
julmbed | 0:85afbf3c9fad | 71 | VarItem *GetVar(char *name); |
julmbed | 0:85afbf3c9fad | 72 | |
julmbed | 2:a59207652720 | 73 | /******************************* |
julmbed | 2:a59207652720 | 74 | * Llamado por worker para |
julmbed | 2:a59207652720 | 75 | * llevar a cabo la acción |
julmbed | 2:a59207652720 | 76 | * |
julmbed | 2:a59207652720 | 77 | ********************************/ |
julmbed | 2:a59207652720 | 78 | char *Do(char *str, VarStore *MyThis); |
julmbed | 2:a59207652720 | 79 | /******************************* |
julmbed | 2:a59207652720 | 80 | * |
julmbed | 2:a59207652720 | 81 | * |
julmbed | 2:a59207652720 | 82 | ********************************/ |
julmbed | 0:85afbf3c9fad | 83 | VarItem Store[SZ]; |
julmbed | 0:85afbf3c9fad | 84 | int VarCounter; |
julmbed | 0:85afbf3c9fad | 85 | Serial *pc; |
julmbed | 0:85afbf3c9fad | 86 | |
julmbed | 2:a59207652720 | 87 | |
julmbed | 0:85afbf3c9fad | 88 | }; |
julmbed | 0:85afbf3c9fad | 89 | |
julmbed | 0:85afbf3c9fad | 90 | #endif // VARSTORE_H |