MiddleWare GUS

Dependents:   MainTaskGus

Committer:
RoHe
Date:
Thu Dec 10 05:03:13 2015 +0000
Revision:
3:d527bae62c60
Parent:
2:a56763667f20
Child:
4:a7da6ca6aef2
Update Program to count people.; Sensor.h and Sensors.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RoHe 0:d1ff330c5128 1 /*
RoHe 0:d1ff330c5128 2
RoHe 0:d1ff330c5128 3 StringManager.cpp
RoHe 0:d1ff330c5128 4
RoHe 0:d1ff330c5128 5 Only to improve the clarity of main .cpp
RoHe 0:d1ff330c5128 6 This don't have any new classes
RoHe 0:d1ff330c5128 7
RoHe 0:d1ff330c5128 8 This import is use to manage the strings
RoHe 0:d1ff330c5128 9
RoHe 0:d1ff330c5128 10 Last update by RoHe 16/11/2015
RoHe 0:d1ff330c5128 11 */
RoHe 0:d1ff330c5128 12
RoHe 1:fd355dc296b1 13 #include <string.h>
RoHe 3:d527bae62c60 14 #include <stdio.h>
RoHe 3:d527bae62c60 15 #include <stdlib.h>
RoHe 1:fd355dc296b1 16 #include "StringManager.h"
RoHe 1:fd355dc296b1 17
RoHe 1:fd355dc296b1 18 StringManager::StringManager()
RoHe 1:fd355dc296b1 19 {
RoHe 1:fd355dc296b1 20 varInt=5;
RoHe 1:fd355dc296b1 21 }
RoHe 1:fd355dc296b1 22
RoHe 1:fd355dc296b1 23 bool StringManager::is_good(void)
RoHe 1:fd355dc296b1 24 {
RoHe 1:fd355dc296b1 25 return true;
RoHe 1:fd355dc296b1 26 }
RoHe 1:fd355dc296b1 27
RoHe 1:fd355dc296b1 28 int StringManager::getVar(void)
RoHe 1:fd355dc296b1 29 {
RoHe 1:fd355dc296b1 30 return varInt;
RoHe 1:fd355dc296b1 31 }
RoHe 1:fd355dc296b1 32
RoHe 1:fd355dc296b1 33 char* StringManager::echo(void)
RoHe 1:fd355dc296b1 34 {
RoHe 1:fd355dc296b1 35 return "Hello from Library";
RoHe 1:fd355dc296b1 36 }
RoHe 1:fd355dc296b1 37
RoHe 1:fd355dc296b1 38 char* StringManager::processString(char* cadena, char* ipServer)
RoHe 1:fd355dc296b1 39 {
RoHe 1:fd355dc296b1 40 /*
RoHe 1:fd355dc296b1 41 largo = strlen(cadena) // Para obtener el largo de una cadena
RoHe 1:fd355dc296b1 42 strcpy(destino, origen) // Copia el contenido de origen en destino
RoHe 1:fd355dc296b1 43 // destino debe ser lo suficientemente grande
RoHe 1:fd355dc296b1 44 strcat(destino, origen) // Agrega el contenido de origen al final de destino
RoHe 1:fd355dc296b1 45 // destino debe ser lo suficientemente grande
RoHe 1:fd355dc296b1 46 resultado = strcmp(cadena1, cadena2) // Compara dos cadenas
RoHe 1:fd355dc296b1 47 // devuelve un valor menor, igual o mayor que 0 según si cadena1 es menor,
RoHe 1:fd355dc296b1 48 // igual o mayor que cadena2, respectivamente.
RoHe 1:fd355dc296b1 49 posicion = strchr(cadena, caracter) // Devuelve la posición en memoria de la primer
RoHe 1:fd355dc296b1 50 // aparición de caracter dentro de cadena
RoHe 1:fd355dc296b1 51 posicion = strstr(cadena,subcadena) // Devuelve la posición en memoria de la primer
RoHe 1:fd355dc296b1 52 // aparición de subcadena dentro de cadena
RoHe 3:d527bae62c60 53
RoHe 3:d527bae62c60 54 #include<stdio.h>
RoHe 3:d527bae62c60 55 #include<string.h>
RoHe 3:d527bae62c60 56 #include<stdlib.h>
RoHe 3:d527bae62c60 57 char *convertIC(int val, int base){
RoHe 3:d527bae62c60 58 static char buf[32] = {0};
RoHe 3:d527bae62c60 59 int i = 30;
RoHe 3:d527bae62c60 60 for(; val && i ; --i, val /= base)
RoHe 3:d527bae62c60 61 buf[i] = "0123456789abcdef"[val % base];
RoHe 3:d527bae62c60 62 return &buf[i+1];
RoHe 3:d527bae62c60 63 }
RoHe 3:d527bae62c60 64 //Prueba
RoHe 3:d527bae62c60 65 main()
RoHe 3:d527bae62c60 66 {
RoHe 3:d527bae62c60 67 int n;
RoHe 3:d527bae62c60 68 char *cad;
RoHe 3:d527bae62c60 69 cad=(char *)malloc(sizeof(char)*30);
RoHe 3:d527bae62c60 70 printf("inserta un numero\n");
RoHe 3:d527bae62c60 71 scanf("%d",&n);
RoHe 3:d527bae62c60 72 cad=convertIC(n,10);
RoHe 3:d527bae62c60 73 printf("%s",cad);
RoHe 3:d527bae62c60 74 }
RoHe 3:d527bae62c60 75
RoHe 1:fd355dc296b1 76 */
RoHe 1:fd355dc296b1 77
RoHe 1:fd355dc296b1 78 //Case: "set:light:1" -> light ON
RoHe 1:fd355dc296b1 79 //if(strncmp(cadena,"set:light:1",strlen(cadena)-2)) {
RoHe 1:fd355dc296b1 80 if(strcmp(cadena,"set:light:1\r\n")==0) {
RoHe 1:fd355dc296b1 81 int set_light = SetLight(true);
RoHe 1:fd355dc296b1 82 //bool isOKLight = getLight();
RoHe 3:d527bae62c60 83 return "reply:set:light:success";
RoHe 1:fd355dc296b1 84 //Case: "set:light:1" -> light ON
RoHe 1:fd355dc296b1 85 } else if(strcmp(cadena,"set:light:0\r\n")==0) {
RoHe 1:fd355dc296b1 86 int set_light = SetLight(false);
RoHe 1:fd355dc296b1 87 //bool isOKLight = readLight();
RoHe 3:d527bae62c60 88 return "reply:set:light:fail";
RoHe 1:fd355dc296b1 89 }
RoHe 1:fd355dc296b1 90 //Case: "get:people"
RoHe 1:fd355dc296b1 91 else if(strcmp(cadena,"get:people\r\n")==0) {
RoHe 1:fd355dc296b1 92 return stringMakerGetPeople(ipServer);
RoHe 1:fd355dc296b1 93 }
RoHe 1:fd355dc296b1 94 //Case: "get:presence"
RoHe 1:fd355dc296b1 95 else if(strcmp(cadena,"get:presence\r\n")==0) {
RoHe 1:fd355dc296b1 96 return stringMakerGetPresence(ipServer);
RoHe 1:fd355dc296b1 97 }
RoHe 1:fd355dc296b1 98 //Case: "get:door" -> 1 = open , 0 = close
RoHe 3:d527bae62c60 99 else if(strcmp(cadena,"get:status:door\r\n")==0) {
RoHe 1:fd355dc296b1 100 return stringMakerGetDoor(ipServer);
RoHe 1:fd355dc296b1 101 }
RoHe 1:fd355dc296b1 102 //Case: "get:light" -> 1 = ON , 0 = OFF
RoHe 3:d527bae62c60 103 else if(strcmp(cadena,"get:status:light\r\n")==0) {
RoHe 1:fd355dc296b1 104 return stringMakerGetLight(ipServer);
RoHe 1:fd355dc296b1 105 }
RoHe 1:fd355dc296b1 106 //Case: "get:window:1"
RoHe 3:d527bae62c60 107 else if(strcmp(cadena,"get:status:window:1\r\n")==0) {
RoHe 1:fd355dc296b1 108 return stringMakerGetWindow1(ipServer);
RoHe 1:fd355dc296b1 109 }
RoHe 1:fd355dc296b1 110 //Case: "get:window:2"
RoHe 3:d527bae62c60 111 else if(strcmp(cadena,"get:status:window:2\r\n")==0) {
RoHe 1:fd355dc296b1 112 return stringMakerGetWindow2(ipServer);
RoHe 1:fd355dc296b1 113 }
RoHe 1:fd355dc296b1 114 //Case: "get:window:3"
RoHe 3:d527bae62c60 115 else if(strcmp(cadena,"get:status:window:3\r\n")==0) {
RoHe 1:fd355dc296b1 116 return stringMakerGetWindow3(ipServer);
RoHe 1:fd355dc296b1 117 }
RoHe 1:fd355dc296b1 118 //Case: "get:room:<IPbroker>"
RoHe 3:d527bae62c60 119 else if(strcmp(cadena,"get:status:room\r\n")==0) {
RoHe 1:fd355dc296b1 120 return stringMakerGetRoom(ipServer);
RoHe 1:fd355dc296b1 121 }
RoHe 1:fd355dc296b1 122 return "Error,it does NOT in the correct format...";
RoHe 1:fd355dc296b1 123 }
RoHe 1:fd355dc296b1 124
RoHe 1:fd355dc296b1 125 char* StringManager::stringMakerGetLight(char* ipServer)
RoHe 1:fd355dc296b1 126 {
RoHe 1:fd355dc296b1 127 bool get_light /*= getLight()*/;
RoHe 1:fd355dc296b1 128 get_light=true; //HARDCODED please remove
RoHe 1:fd355dc296b1 129 strcpy(initialString,"reply:get:status:");
RoHe 3:d527bae62c60 130 //strcat(initialString,ipServer);
RoHe 1:fd355dc296b1 131 if(get_light) {
RoHe 1:fd355dc296b1 132 strcat(initialString,":light:1");
RoHe 1:fd355dc296b1 133 } else {
RoHe 1:fd355dc296b1 134 strcat(initialString,":light:0");
RoHe 1:fd355dc296b1 135 }
RoHe 1:fd355dc296b1 136 return initialString;
RoHe 1:fd355dc296b1 137 }
RoHe 1:fd355dc296b1 138
RoHe 1:fd355dc296b1 139 char* StringManager::stringMakerGetDoor(char* ipServer)
RoHe 1:fd355dc296b1 140 {
RoHe 1:fd355dc296b1 141 bool get_door = GetDoorStatus();
RoHe 1:fd355dc296b1 142 strcpy(initialString,"reply:get:status:");
RoHe 3:d527bae62c60 143 //strcat(initialString,ipServer);
RoHe 1:fd355dc296b1 144 if(get_door) {
RoHe 1:fd355dc296b1 145 strcat(initialString,":door:1");
RoHe 1:fd355dc296b1 146 } else {
RoHe 1:fd355dc296b1 147 strcat(initialString,":door:0");
RoHe 1:fd355dc296b1 148 }
RoHe 1:fd355dc296b1 149 return initialString;
RoHe 1:fd355dc296b1 150 }
RoHe 1:fd355dc296b1 151
RoHe 1:fd355dc296b1 152 char* StringManager::stringMakerGetPresence(char* ipServer)
RoHe 1:fd355dc296b1 153 {
RoHe 1:fd355dc296b1 154 bool get_presence = GetPrescenceStatus();
RoHe 3:d527bae62c60 155 strcpy(initialString,"reply:get");
RoHe 3:d527bae62c60 156 //strcat(initialString,ipServer);
RoHe 1:fd355dc296b1 157 if(get_presence) {
RoHe 1:fd355dc296b1 158 strcat(initialString,":presence:1");
RoHe 1:fd355dc296b1 159 } else {
RoHe 1:fd355dc296b1 160 strcat(initialString,":presence:0");
RoHe 1:fd355dc296b1 161 }
RoHe 1:fd355dc296b1 162 return initialString;
RoHe 1:fd355dc296b1 163 }
RoHe 1:fd355dc296b1 164 char* StringManager::stringMakerGetWindow1(char* ipServer)
RoHe 1:fd355dc296b1 165 {
RoHe 1:fd355dc296b1 166 int get_window1 = GetWindowStatus(1);
RoHe 1:fd355dc296b1 167 strcpy(initialString,"reply:get:status:");
RoHe 3:d527bae62c60 168 //strcat(initialString,ipServer);
RoHe 1:fd355dc296b1 169 if(get_window1==1) {
RoHe 1:fd355dc296b1 170 strcat(initialString,":window:1:1");
RoHe 1:fd355dc296b1 171 } else {
RoHe 1:fd355dc296b1 172 strcat(initialString,":window:1:0");
RoHe 1:fd355dc296b1 173 }
RoHe 1:fd355dc296b1 174 return initialString;
RoHe 1:fd355dc296b1 175 }
RoHe 1:fd355dc296b1 176 char* StringManager::stringMakerGetWindow2(char* ipServer)
RoHe 1:fd355dc296b1 177 {
RoHe 1:fd355dc296b1 178 int get_window2 = GetWindowStatus(2);
RoHe 1:fd355dc296b1 179 strcpy(initialString,"reply:get:status:");
RoHe 3:d527bae62c60 180 //strcat(initialString,ipServer);
RoHe 1:fd355dc296b1 181 if(get_window2==1) {
RoHe 1:fd355dc296b1 182 strcat(initialString,":window:2:1");
RoHe 1:fd355dc296b1 183 } else {
RoHe 1:fd355dc296b1 184 strcat(initialString,":window:2:0");
RoHe 1:fd355dc296b1 185 }
RoHe 1:fd355dc296b1 186 return initialString;
RoHe 1:fd355dc296b1 187 }
RoHe 1:fd355dc296b1 188 char* StringManager::stringMakerGetWindow3(char* ipServer)
RoHe 1:fd355dc296b1 189 {
RoHe 1:fd355dc296b1 190 int get_window3 = GetWindowStatus(3);
RoHe 1:fd355dc296b1 191 strcpy(initialString,"reply:get:status:");
RoHe 3:d527bae62c60 192 // strcat(initialString,ipServer);
RoHe 1:fd355dc296b1 193 if(get_window3==1) {
RoHe 1:fd355dc296b1 194 strcat(initialString,":window:3:1");
RoHe 1:fd355dc296b1 195 } else {
RoHe 1:fd355dc296b1 196 strcat(initialString,":window:3:0");
RoHe 1:fd355dc296b1 197 }
RoHe 1:fd355dc296b1 198 return initialString;
RoHe 1:fd355dc296b1 199 }
RoHe 1:fd355dc296b1 200
RoHe 1:fd355dc296b1 201 char* StringManager::stringMakerGetPeople(char* ipServer)
RoHe 1:fd355dc296b1 202 {
RoHe 3:d527bae62c60 203 strcpy(initialString,"reply:get");
RoHe 3:d527bae62c60 204 /*
RoHe 3:d527bae62c60 205 Other option to convert integer to Strin, but it seems that "sprintf()"
RoHe 3:d527bae62c60 206 works better that "convertIC"
RoHe 3:d527bae62c60 207 //int num_people = PersonNumber;
RoHe 3:d527bae62c60 208 int num_people = 123456;
RoHe 3:d527bae62c60 209 char* cad=convertIC(num_people,10);
RoHe 3:d527bae62c60 210 strcat(initialString,":people:");
RoHe 3:d527bae62c60 211 strcat(initialString,cad);
RoHe 3:d527bae62c60 212 */
RoHe 3:d527bae62c60 213
RoHe 3:d527bae62c60 214 int num_people = PersonNumber;
RoHe 3:d527bae62c60 215 //int num_people = 123456;
RoHe 3:d527bae62c60 216 static char aux_buffer [50];
RoHe 3:d527bae62c60 217 sprintf (aux_buffer,"%d",num_people);
RoHe 3:d527bae62c60 218 strcat(initialString,":people:");
RoHe 3:d527bae62c60 219 strcat(initialString,aux_buffer);
RoHe 1:fd355dc296b1 220 return initialString;
RoHe 1:fd355dc296b1 221 }
RoHe 1:fd355dc296b1 222
RoHe 1:fd355dc296b1 223 char* StringManager::stringMakerGetRoom(char* ipServer)
RoHe 1:fd355dc296b1 224 {
RoHe 1:fd355dc296b1 225 bool get_light /*= getLight()*/;
RoHe 1:fd355dc296b1 226 bool get_door = GetDoorStatus();
RoHe 1:fd355dc296b1 227 bool get_presence = GetPrescenceStatus();
RoHe 1:fd355dc296b1 228 int get_persons = GetPersonStatus();
RoHe 1:fd355dc296b1 229 int get_window1 = GetWindowStatus(1);
RoHe 1:fd355dc296b1 230 int get_window2 = GetWindowStatus(2);
RoHe 1:fd355dc296b1 231 int get_window3 = GetWindowStatus(3);
RoHe 3:d527bae62c60 232 strcpy(initialString,"reply:get:status:room");
RoHe 3:d527bae62c60 233 //strcat(initialString,ipServer);
RoHe 1:fd355dc296b1 234 //GET DOOR
RoHe 1:fd355dc296b1 235 if(get_door) {
RoHe 1:fd355dc296b1 236 strcat(initialString,":door:1");
RoHe 1:fd355dc296b1 237 } else {
RoHe 1:fd355dc296b1 238 strcat(initialString,":door:0");
RoHe 1:fd355dc296b1 239 }
RoHe 1:fd355dc296b1 240 //GET LIGHT
RoHe 1:fd355dc296b1 241 get_light=true; //HARDCODED please remove
RoHe 1:fd355dc296b1 242 if(get_light) {
RoHe 1:fd355dc296b1 243 strcat(initialString,":light:1");
RoHe 1:fd355dc296b1 244 } else {
RoHe 1:fd355dc296b1 245 strcat(initialString,":light:0");
RoHe 1:fd355dc296b1 246 }
RoHe 1:fd355dc296b1 247 //GET WINDOW 1
RoHe 1:fd355dc296b1 248 if(get_window1==1) {
RoHe 1:fd355dc296b1 249 strcat(initialString,":window:1:1");
RoHe 1:fd355dc296b1 250 } else {
RoHe 1:fd355dc296b1 251 strcat(initialString,":window:1:0");
RoHe 1:fd355dc296b1 252 }
RoHe 1:fd355dc296b1 253 //GET WINDOW 2
RoHe 1:fd355dc296b1 254 if(get_window2==1) {
RoHe 1:fd355dc296b1 255 strcat(initialString,":2:1");
RoHe 1:fd355dc296b1 256 } else {
RoHe 1:fd355dc296b1 257 strcat(initialString,":2:0");
RoHe 1:fd355dc296b1 258 }
RoHe 1:fd355dc296b1 259 //GET WINDOW 3
RoHe 1:fd355dc296b1 260 if(get_window3==1) {
RoHe 1:fd355dc296b1 261 strcat(initialString,":3:1");
RoHe 1:fd355dc296b1 262 } else {
RoHe 1:fd355dc296b1 263 strcat(initialString,":3:0");
RoHe 1:fd355dc296b1 264 }
RoHe 3:d527bae62c60 265
RoHe 1:fd355dc296b1 266 //GET PEOPLE
RoHe 3:d527bae62c60 267 int num_people = PersonNumber;
RoHe 3:d527bae62c60 268 //int num_people = 123456;//HARDCODED PLEASE REMOVE
RoHe 3:d527bae62c60 269 static char aux_buffer [50];
RoHe 3:d527bae62c60 270 sprintf (aux_buffer,"%d",num_people);
RoHe 3:d527bae62c60 271 strcat(initialString,":people:");
RoHe 3:d527bae62c60 272 strcat(initialString,aux_buffer);
RoHe 3:d527bae62c60 273
RoHe 1:fd355dc296b1 274 //GET PRESENCE
RoHe 1:fd355dc296b1 275 if(get_presence) {
RoHe 1:fd355dc296b1 276 strcat(initialString,":presence:1");
RoHe 1:fd355dc296b1 277 } else {
RoHe 1:fd355dc296b1 278 strcat(initialString,":presence:0");
RoHe 1:fd355dc296b1 279 }
RoHe 1:fd355dc296b1 280
RoHe 1:fd355dc296b1 281 return initialString;
RoHe 1:fd355dc296b1 282
RoHe 1:fd355dc296b1 283 }
RoHe 3:d527bae62c60 284
RoHe 3:d527bae62c60 285
RoHe 3:d527bae62c60 286 char* StringManager::convertIC(int val, int base)
RoHe 3:d527bae62c60 287 {
RoHe 3:d527bae62c60 288 static char buf[32] = {0};
RoHe 3:d527bae62c60 289 int i = 30;
RoHe 3:d527bae62c60 290 for(; val && i ; --i, val /= base)
RoHe 3:d527bae62c60 291 buf[i] = "0123456789abcdef"[val % base];
RoHe 3:d527bae62c60 292 return &buf[i+1];
RoHe 3:d527bae62c60 293 }