Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
VarItems.cpp@17:8c20a558d34f, 2014-08-26 (annotated)
- 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?
| User | Revision | Line number | New 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 |