MiddleWare GUS
Diff: StringManager.cpp
- Revision:
- 3:d527bae62c60
- Parent:
- 2:a56763667f20
- Child:
- 4:a7da6ca6aef2
diff -r a56763667f20 -r d527bae62c60 StringManager.cpp --- a/StringManager.cpp Wed Dec 09 04:50:13 2015 +0000 +++ b/StringManager.cpp Thu Dec 10 05:03:13 2015 +0000 @@ -11,6 +11,8 @@ */ #include <string.h> +#include <stdio.h> +#include <stdlib.h> #include "StringManager.h" StringManager::StringManager() @@ -48,6 +50,29 @@ // aparición de caracter dentro de cadena posicion = strstr(cadena,subcadena) // Devuelve la posición en memoria de la primer // aparición de subcadena dentro de cadena + + #include<stdio.h> + #include<string.h> + #include<stdlib.h> + char *convertIC(int val, int base){ + static char buf[32] = {0}; + int i = 30; + for(; val && i ; --i, val /= base) + buf[i] = "0123456789abcdef"[val % base]; + return &buf[i+1]; + } + //Prueba + main() + { + int n; + char *cad; + cad=(char *)malloc(sizeof(char)*30); + printf("inserta un numero\n"); + scanf("%d",&n); + cad=convertIC(n,10); + printf("%s",cad); + } + */ //Case: "set:light:1" -> light ON @@ -55,12 +80,12 @@ if(strcmp(cadena,"set:light:1\r\n")==0) { int set_light = SetLight(true); //bool isOKLight = getLight(); - return "reply:set:light:1:192.168.1.82:success"; + return "reply:set:light:success"; //Case: "set:light:1" -> light ON } else if(strcmp(cadena,"set:light:0\r\n")==0) { int set_light = SetLight(false); //bool isOKLight = readLight(); - return "reply:set:light:0:192.168.1.82:succes"; + return "reply:set:light:fail"; } //Case: "get:people" else if(strcmp(cadena,"get:people\r\n")==0) { @@ -71,27 +96,27 @@ return stringMakerGetPresence(ipServer); } //Case: "get:door" -> 1 = open , 0 = close - else if(strcmp(cadena,"get:door\r\n")==0) { + else if(strcmp(cadena,"get:status:door\r\n")==0) { return stringMakerGetDoor(ipServer); } //Case: "get:light" -> 1 = ON , 0 = OFF - else if(strcmp(cadena,"get:light\r\n")==0) { + else if(strcmp(cadena,"get:status:light\r\n")==0) { return stringMakerGetLight(ipServer); } //Case: "get:window:1" - else if(strcmp(cadena,"get:window:1\r\n")==0) { + else if(strcmp(cadena,"get:status:window:1\r\n")==0) { return stringMakerGetWindow1(ipServer); } //Case: "get:window:2" - else if(strcmp(cadena,"get:window:2\r\n")==0) { + else if(strcmp(cadena,"get:status:window:2\r\n")==0) { return stringMakerGetWindow2(ipServer); } //Case: "get:window:3" - else if(strcmp(cadena,"get:window:3\r\n")==0) { + else if(strcmp(cadena,"get:status:window:3\r\n")==0) { return stringMakerGetWindow3(ipServer); } //Case: "get:room:<IPbroker>" - else if(strcmp(cadena,"get:room\r\n")==0) { + else if(strcmp(cadena,"get:status:room\r\n")==0) { return stringMakerGetRoom(ipServer); } return "Error,it does NOT in the correct format..."; @@ -102,7 +127,7 @@ bool get_light /*= getLight()*/; get_light=true; //HARDCODED please remove strcpy(initialString,"reply:get:status:"); - strcat(initialString,ipServer); + //strcat(initialString,ipServer); if(get_light) { strcat(initialString,":light:1"); } else { @@ -115,7 +140,7 @@ { bool get_door = GetDoorStatus(); strcpy(initialString,"reply:get:status:"); - strcat(initialString,ipServer); + //strcat(initialString,ipServer); if(get_door) { strcat(initialString,":door:1"); } else { @@ -127,8 +152,8 @@ char* StringManager::stringMakerGetPresence(char* ipServer) { bool get_presence = GetPrescenceStatus(); - strcpy(initialString,"reply:get:status:"); - strcat(initialString,ipServer); + strcpy(initialString,"reply:get"); + //strcat(initialString,ipServer); if(get_presence) { strcat(initialString,":presence:1"); } else { @@ -140,7 +165,7 @@ { int get_window1 = GetWindowStatus(1); strcpy(initialString,"reply:get:status:"); - strcat(initialString,ipServer); + //strcat(initialString,ipServer); if(get_window1==1) { strcat(initialString,":window:1:1"); } else { @@ -152,7 +177,7 @@ { int get_window2 = GetWindowStatus(2); strcpy(initialString,"reply:get:status:"); - strcat(initialString,ipServer); + //strcat(initialString,ipServer); if(get_window2==1) { strcat(initialString,":window:2:1"); } else { @@ -164,7 +189,7 @@ { int get_window3 = GetWindowStatus(3); strcpy(initialString,"reply:get:status:"); - strcat(initialString,ipServer); + // strcat(initialString,ipServer); if(get_window3==1) { strcat(initialString,":window:3:1"); } else { @@ -175,13 +200,23 @@ char* StringManager::stringMakerGetPeople(char* ipServer) { - strcpy(initialString,"reply:get:status:"); - strcat(initialString,ipServer); - if(true) { - strcat(initialString,":people:12"); - } else { - strcat(initialString,":people:0"); - } + strcpy(initialString,"reply:get"); + /* + Other option to convert integer to Strin, but it seems that "sprintf()" + works better that "convertIC" + //int num_people = PersonNumber; + int num_people = 123456; + char* cad=convertIC(num_people,10); + strcat(initialString,":people:"); + strcat(initialString,cad); + */ + + int num_people = PersonNumber; + //int num_people = 123456; + static char aux_buffer [50]; + sprintf (aux_buffer,"%d",num_people); + strcat(initialString,":people:"); + strcat(initialString,aux_buffer); return initialString; } @@ -194,8 +229,8 @@ int get_window1 = GetWindowStatus(1); int get_window2 = GetWindowStatus(2); int get_window3 = GetWindowStatus(3); - strcpy(initialString,"reply:get:status:"); - strcat(initialString,ipServer); + strcpy(initialString,"reply:get:status:room"); + //strcat(initialString,ipServer); //GET DOOR if(get_door) { strcat(initialString,":door:1"); @@ -227,12 +262,15 @@ } else { strcat(initialString,":3:0"); } + //GET PEOPLE - if(true) { - strcat(initialString,":people:12"); - } else { - strcat(initialString,":people:0"); - } + int num_people = PersonNumber; + //int num_people = 123456;//HARDCODED PLEASE REMOVE + static char aux_buffer [50]; + sprintf (aux_buffer,"%d",num_people); + strcat(initialString,":people:"); + strcat(initialString,aux_buffer); + //GET PRESENCE if(get_presence) { strcat(initialString,":presence:1"); @@ -243,3 +281,13 @@ return initialString; } + + +char* StringManager::convertIC(int val, int base) +{ + static char buf[32] = {0}; + int i = 30; + for(; val && i ; --i, val /= base) + buf[i] = "0123456789abcdef"[val % base]; + return &buf[i+1]; +}