julian C / VarStore
Committer:
julmbed
Date:
Tue Aug 26 09:39:40 2014 +0000
Revision:
17:8c20a558d34f
Parent:
13:e1ba5bf9e51f
fixed doc typos

Who changed what in which revision?

UserRevisionLine numberNew contents of line
julmbed 0:85afbf3c9fad 1 #include "VarItems.h"
julmbed 0:85afbf3c9fad 2 #include <string.h>
julmbed 0:85afbf3c9fad 3 #include <stdlib.h>
julmbed 0:85afbf3c9fad 4 #include <stdio.h>
julmbed 4:4be2eaf872df 5 #include "mbed.h"
julmbed 0:85afbf3c9fad 6
julmbed 9:d081aa4e4418 7 extern RawSerial pc;
julmbed 1:bbd6b84fc908 8
julmbed 9:d081aa4e4418 9 #define DMP_SZ 132
julmbed 1:bbd6b84fc908 10
julmbed 1:bbd6b84fc908 11
julmbed 0:85afbf3c9fad 12 VarItem::VarItem()
julmbed 0:85afbf3c9fad 13 {
julmbed 0:85afbf3c9fad 14 VarName[0]='\0';
julmbed 0:85afbf3c9fad 15
julmbed 0:85afbf3c9fad 16 ValInt=NULL;
julmbed 0:85afbf3c9fad 17 ValFloat=NULL;
julmbed 0:85afbf3c9fad 18 ArraySize=0;
julmbed 0:85afbf3c9fad 19 }
julmbed 0:85afbf3c9fad 20
julmbed 0:85afbf3c9fad 21 VarItem::~VarItem()
julmbed 0:85afbf3c9fad 22 {
julmbed 0:85afbf3c9fad 23 //dtor
julmbed 0:85afbf3c9fad 24 }
julmbed 0:85afbf3c9fad 25
julmbed 0:85afbf3c9fad 26 int VarItem::SetVal(char *Val)
julmbed 0:85afbf3c9fad 27 {
julmbed 0:85afbf3c9fad 28 char * Values;
julmbed 0:85afbf3c9fad 29 unsigned int Count=0;
julmbed 4:4be2eaf872df 30
julmbed 0:85afbf3c9fad 31 Values=strtok(Val,",");
julmbed 1:bbd6b84fc908 32 if(Values) {
julmbed 1:bbd6b84fc908 33 do {
julmbed 1:bbd6b84fc908 34 switch(VarType) {
julmbed 0:85afbf3c9fad 35
julmbed 1:bbd6b84fc908 36 case T_int:
julmbed 1:bbd6b84fc908 37 *(ValInt+Count) = atoi(Values);
julmbed 1:bbd6b84fc908 38 break;
julmbed 0:85afbf3c9fad 39
julmbed 1:bbd6b84fc908 40 case T_float:
julmbed 1:bbd6b84fc908 41 *(ValFloat+Count) = atof(Values);
julmbed 1:bbd6b84fc908 42 break;
julmbed 0:85afbf3c9fad 43 };
julmbed 0:85afbf3c9fad 44 Count++;
julmbed 0:85afbf3c9fad 45 Values=strtok(NULL,",");
julmbed 1:bbd6b84fc908 46 } while((Values !=NULL) && (Count < ArraySize));
julmbed 2:a59207652720 47 return 1;
julmbed 1:bbd6b84fc908 48 } else
julmbed 0:85afbf3c9fad 49 return ERR;
julmbed 0:85afbf3c9fad 50
julmbed 0:85afbf3c9fad 51 }
julmbed 0:85afbf3c9fad 52
julmbed 0:85afbf3c9fad 53 void VarItem::SetVar(VarTypes VT,void* VarPtr)
julmbed 0:85afbf3c9fad 54 {
julmbed 0:85afbf3c9fad 55
julmbed 0:85afbf3c9fad 56 VarType=VT;
julmbed 1:bbd6b84fc908 57 switch(VarType) {
julmbed 0:85afbf3c9fad 58
julmbed 1:bbd6b84fc908 59 case T_int:
julmbed 1:bbd6b84fc908 60 ValInt = (int *) VarPtr;
julmbed 1:bbd6b84fc908 61 break;
julmbed 0:85afbf3c9fad 62
julmbed 1:bbd6b84fc908 63 case T_float:
julmbed 1:bbd6b84fc908 64 ValFloat = (float*) VarPtr;
julmbed 1:bbd6b84fc908 65 break;
julmbed 0:85afbf3c9fad 66
julmbed 0:85afbf3c9fad 67 };
julmbed 0:85afbf3c9fad 68
julmbed 0:85afbf3c9fad 69 }
julmbed 0:85afbf3c9fad 70
julmbed 0:85afbf3c9fad 71
julmbed 0:85afbf3c9fad 72 void VarItem::SetVarArraySize(int Size)
julmbed 0:85afbf3c9fad 73 {
julmbed 0:85afbf3c9fad 74 ArraySize=Size;
julmbed 0:85afbf3c9fad 75 }
julmbed 0:85afbf3c9fad 76
julmbed 0:85afbf3c9fad 77
julmbed 0:85afbf3c9fad 78 void VarItem::SetVarName(char *Name)
julmbed 0:85afbf3c9fad 79 {
julmbed 0:85afbf3c9fad 80 strncpy(VarName,Name,VAR_NAME_LEN);
julmbed 0:85afbf3c9fad 81 VarName[VAR_NAME_LEN-1]='\0';
julmbed 0:85afbf3c9fad 82 }
julmbed 0:85afbf3c9fad 83
julmbed 0:85afbf3c9fad 84
julmbed 0:85afbf3c9fad 85 char *VarItem::Dump()
julmbed 0:85afbf3c9fad 86 {
julmbed 9:d081aa4e4418 87 static char StrDump[DMP_SZ];
julmbed 9:d081aa4e4418 88 unsigned int DumpSize=DMP_SZ;
julmbed 1:bbd6b84fc908 89 unsigned int DumpCounter=0, ArrayCounter=0;;
julmbed 0:85afbf3c9fad 90 char Tmp[16];
julmbed 9:d081aa4e4418 91
julmbed 1:bbd6b84fc908 92 memset(StrDump,0,DMP_SZ);
julmbed 0:85afbf3c9fad 93
julmbed 1:bbd6b84fc908 94 do {
julmbed 1:bbd6b84fc908 95 switch(VarType) {
julmbed 1:bbd6b84fc908 96 case T_int:
julmbed 1:bbd6b84fc908 97 sprintf(Tmp,"%d,",*(ValInt+ArrayCounter));
julmbed 1:bbd6b84fc908 98 break;
julmbed 1:bbd6b84fc908 99 case T_float:
julmbed 1:bbd6b84fc908 100 sprintf(Tmp,"%f,",*(ValFloat+ArrayCounter));
julmbed 1:bbd6b84fc908 101 break;
julmbed 0:85afbf3c9fad 102 };
julmbed 13:e1ba5bf9e51f 103
julmbed 13:e1ba5bf9e51f 104 if(DumpCounter+strlen(Tmp) >= DumpSize) break;
julmbed 13:e1ba5bf9e51f 105
julmbed 0:85afbf3c9fad 106 strcat(StrDump+DumpCounter,Tmp);
julmbed 0:85afbf3c9fad 107 DumpCounter+=strlen(Tmp);
julmbed 1:bbd6b84fc908 108 ArrayCounter++;
julmbed 1:bbd6b84fc908 109 } while (ArrayCounter < ArraySize);
julmbed 0:85afbf3c9fad 110
julmbed 13:e1ba5bf9e51f 111 StrDump[DumpSize-1]='\0';
julmbed 0:85afbf3c9fad 112
julmbed 0:85afbf3c9fad 113 return StrDump;
julmbed 0:85afbf3c9fad 114
julmbed 0:85afbf3c9fad 115 }
julmbed 0:85afbf3c9fad 116
julmbed 0:85afbf3c9fad 117
julmbed 0:85afbf3c9fad 118 char *VarItem::GetVarName()
julmbed 0:85afbf3c9fad 119 {
julmbed 0:85afbf3c9fad 120 return VarName;
julmbed 0:85afbf3c9fad 121 }
julmbed 0:85afbf3c9fad 122
julmbed 0:85afbf3c9fad 123