MiddleWare GUS

Dependents:   MainTaskGus

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];
+}