Commit c4ac6baed74da6410e5b0f93024646402176caef

Authored by Imanol-Mikel Barba Sabariego
1 parent c352e167

--no commit message

Project/applications/smartcities/adc.c
... ... @@ -12,7 +12,7 @@ uint32_t adc_batt_process()
12 12  
13 13 adcRegisterValue = adc_batt_read();
14 14 analogValue = ADCbatt_VREF_MINUS + (((adcRegisterValue - ADCbatt_MIN_VALUE)*(ADCbatt_VREF_PLUS - ADCbatt_VREF_MINUS))/(ADCbatt_MAX_VALUE - ADCbatt_MIN_VALUE));
15   - printf("Register value is %4u [%4u milliVolts are currently given to gpio %s]\r\n",adcRegisterValue, analogValue, ADCbatt_GPIO_STR);
  15 + DBG_ADC("Register value is %4u [%4u milliVolts are currently given to gpio %s]\r\n",adcRegisterValue, analogValue, ADCbatt_GPIO_STR);
16 16 return analogValue;
17 17 }
18 18  
... ... @@ -66,7 +66,7 @@ uint32_t adc_sound_process()
66 66  
67 67 adcRegisterValue = adc_sound_read();
68 68 analogValue = ADCsound_VREF_MINUS + (((adcRegisterValue - ADCsound_MIN_VALUE)*(ADCsound_VREF_PLUS - ADCsound_VREF_MINUS))/(ADCsound_MAX_VALUE - ADCsound_MIN_VALUE));
69   - printf("Register value is %4u [%4u milliVolts are currently given to gpio %s]\r\n",adcRegisterValue, analogValue, ADCsound_GPIO_STR);
  69 + DBG_ADC("Register value is %4u [%4u milliVolts are currently given to gpio %s]\r\n",adcRegisterValue, analogValue, ADCsound_GPIO_STR);
70 70 return analogValue;
71 71 }
72 72  
... ...
Project/applications/smartcities/buffer.c
... ... @@ -7,20 +7,20 @@ char** put_message(char* info, char** buf,uint32_t *index, uint32_t *buf_len)
7 7 len=*buf_len;
8 8 if(len==*index)
9 9 {
10   - printf("Joining buffer...\r\n");
  10 + DBG_BUFFER("Joining buffer...\r\n");
11 11 char** buffer = join_buf(buf, buf_len);
12   - printf("Joined buffer...\r\n");
  12 + DBG_BUFFER("Joined buffer...\r\n");
13 13 buffer[*index] = chHeapAlloc(NULL,strlen(info)+1);
14   - printf("Memory allocated...\r\n");
  14 + DBG_BUFFER("Memory allocated...\r\n");
15 15 strcpy(buffer[*index],info);
16   - printf("Data copied...\r\n");
  16 + DBG_BUFFER("Data copied...\r\n");
17 17 i = *index+1;
18 18 *index = i;
19 19 return buffer;
20 20 }
21 21 else
22 22 {
23   - printf("WTF in put_message\r\n");
  23 + DBG_BUFFER("WTF in put_message\r\n");
24 24 buf[*index] = chHeapAlloc(NULL,strlen(info)+1);
25 25 buf[*index] = info;
26 26 i = *index+1;
... ... @@ -31,17 +31,18 @@ char** put_message(char* info, char** buf,uint32_t *index, uint32_t *buf_len)
31 31  
32 32 int check_memory()
33 33 {
34   - printf("Memòria disponible en bytes segons:\r\n");
35   - int mem_free = libwismart_GetMemFree_Ram().free;
36   - printf("- free: %d %d\r\n", libwismart_GetMemFree_Ram().free, MAX_RAM - libwismart_GetMemFree_Ram().free);
37   - int mem = MAX_RAM - mem_free;
38   - printf("mem ocupada=%d\r\n",mem);
  34 + DBG_BUFFER("Checking available memory...\r\n");
  35 + DBG_BUFFER("%c[1;36mAvailable memory: %d B%c[1;00m\r\n",0x1B,libwismart_GetMemFree_Ram().free,0x1B);
  36 + int mem = MAX_RAM - libwismart_GetMemFree_Ram().free;
  37 + DBG_BUFFER("%c[1;36mUsed memory: %d B%c[1;00m\r\n",0x1B,mem,0x1B);
39 38 if(mem >= HARD_LIMIT)
40 39 {
  40 + DBG_BUFFER("[WARNING] Hard limit reached\r\n");
41 41 return HARD_REACHED;
42 42 }
43 43 else if(mem >= SOFT_LIMIT)
44 44 {
  45 + DBG_BUFFER("[WARNING] Soft limit reached\r\n");
45 46 return SOFT_REACHED;
46 47 }
47 48 return MEMORY_OK;
... ... @@ -49,21 +50,20 @@ int check_memory()
49 50  
50 51 int send(char** buf, uint32_t *index, uint32_t *size_buf, char *provider_ID, char *sensor_ID)
51 52 {
52   - printf("abans del JSON statement\r\n");
53   - printf("index= %d \r\n",*index);
54   - char* statement=prepare_json_observation_statement(buf, *index);
  53 + DBG_BUFFER("Preparing JSON statement...\r\n");
  54 + char* statement = prepare_json_observation_statement(buf, *index);
55 55 uint32_t size = strlen(statement);
56 56 if(buf==NULL)
57 57 {
  58 + DBG_BUFFER("[ERROR] Buffer not initialized!\r\n");
58 59 return 2;
59 60 }
60   - printf("abans del JSON\r\n");
61 61 uint8_t res = send_json(statement, size, provider_ID, sensor_ID);
62 62 chHeapFree(statement);
63 63 int i;
64   - printf("JSON_POST_OK ? %d\r\n",res == JSON_POST_OK);
65 64 if(res==JSON_POST_OK)
66 65 {
  66 + DBG_BUFFER("Data sent successfully\r\n");
67 67 for(i=0;i<*index;i++)
68 68 {
69 69 chHeapFree(buf[i]);
... ... @@ -72,7 +72,6 @@ int send(char** buf, uint32_t *index, uint32_t *size_buf, char *provider_ID, cha
72 72 {
73 73 chHeapFree(buf);
74 74 }
75   - printf("posant la mida i l'index a 0\r\n");
76 75 *index=0;
77 76 *size_buf=0;
78 77 }
... ... @@ -86,23 +85,23 @@ char** join_buf(char** buf, uint32_t *buf_len)
86 85 int len = *buf_len;
87 86 n_buf = chHeapAlloc (NULL,sizeof (char *) * (len+1));
88 87 int i;
89   - printf("Start buffer join...\r\n");
  88 + DBG_BUFFER("Start buffer join...\r\n");
90 89 for(i=0; i<len;i++)
91 90 {
92   - printf("in join_buf for, Asking for %d bytes...\r\n",strlen(buf[i]+1));
  91 + DBG_BUFFER("in join_buf for, Asking for %d bytes...\r\n",strlen(buf[i]+1));
93 92 n_buf[i] = chHeapAlloc(NULL,strlen(buf[i])+1);
94   - printf("in join_buf for, Memory allocated...\r\n");
  93 + DBG_BUFFER("in join_buf for, Memory allocated...\r\n");
95 94 strcpy(n_buf[i],buf[i]);
96   - printf("in join_buf for, Message copied...\r\n");
  95 + DBG_BUFFER("in join_buf for, Message copied...\r\n");
97 96 chHeapFree(buf[i]);
98   - printf("in join_buf for, Memory cleared...\r\n");
  97 + DBG_BUFFER("in join_buf for, Memory cleared...\r\n");
99 98 }
100   - printf("All data transferred\r\n");
  99 + DBG_BUFFER("All data transferred\r\n");
101 100 if(len != 0)
102 101 {
103 102 chHeapFree(buf);
104 103 }
105   - printf("Old buffer cleared\r\n");
  104 + DBG_BUFFER("Old buffer cleared\r\n");
106 105 len++;
107 106 *buf_len=len;
108 107 return n_buf;
... ...
Project/applications/smartcities/callbacks.c
... ... @@ -6,18 +6,18 @@ void dhcp_connect_result_cb(int result)
6 6 if(result==LIBWISMART_DHCP_ADDRESS_ASSIGNED)
7 7 {
8 8 libwismart_GetCurrentIP(&ip,NULL,NULL);
9   - printf("IP: %d.%d.%d.%d \r\n",ip.addr[3],ip.addr[2],ip.addr[1],ip.addr[0]);
  9 + DBG_CALLBACKS("IP: %d.%d.%d.%d \r\n",ip.addr[3],ip.addr[2],ip.addr[1],ip.addr[0]);
10 10 connected = 1;
11 11 retries = 0;
12 12 }
13 13 else if(result==LIBWISMART_DHCP_TIMEOUT)
14 14 {
15   - printf("DHCP timeout\r\n");
  15 + DBG_CALLBACKS("DHCP timeout\r\n");
16 16 timeout = 1;
17 17 }
18 18 else
19 19 {
20   - printf("DHCP error\r\n");
  20 + DBG_CALLBACKS("DHCP error\r\n");
21 21 timeout = 1;
22 22 }
23 23  
... ... @@ -29,7 +29,7 @@ void wifi_connect_result_cb(int result)
29 29 {
30 30 timeout=1;
31 31 }
32   - printf("WiFi Connect indication: ");
  32 + DBG_CALLBACKS("WiFi Connect indication: ");
33 33 if(result == WISMART_WIFI_CONNECTED)
34 34 {
35 35 printf("Connected\r\n");
... ... @@ -62,16 +62,16 @@ void softapMode_clientIndicationCb(wismart_softap_cb_t reason, const uint8_t *ma
62 62 switch(reason)
63 63 {
64 64 case WISMART_WIFI_AP_CLIENT_CONNECTED:
65   - printf("Client: "MACSTR" connected\r\n",MAC2STR(mac));
  65 + DBG_CALLBACKS("Client: "MACSTR" connected\r\n",MAC2STR(mac));
66 66 break;
67 67 case WISMART_WIFI_AP_CLIENT_DISCONNECTED:
68   - printf("Client: "MACSTR" disconnected\r\n",MAC2STR(mac));
  68 + DBG_CALLBACKS("Client: "MACSTR" disconnected\r\n",MAC2STR(mac));
69 69 break;
70 70 case WISMART_WIFI_AP_CLIENT_EXPIRED:
71   - printf("Client: "MACSTR" connection have expired\r\n",MAC2STR(mac));
  71 + DBG_CALLBACKS("Client: "MACSTR" connection have expired\r\n",MAC2STR(mac));
72 72 break;
73 73 case WISMART_WIFI_AP_CLIENT_GET_IP:
74   - printf("Client: "MACSTR" got ip: %s\r\n", MAC2STR(mac), inet_ntoa(*ip));
  74 + DBG_CALLBACKS("Client: "MACSTR" got ip: %s\r\n", MAC2STR(mac), inet_ntoa(*ip));
75 75 break;
76 76 }
77 77  
... ... @@ -81,11 +81,11 @@ void softapMode_clientIndicationCb(wismart_softap_cb_t reason, const uint8_t *ma
81 81  
82 82 void printWifiInfo(uint8_t wifiMode)
83 83 {
84   - printf("\r\n\r\n");
85   - printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n");
86   - printf("| Network Is Ready!\r\n");
87   - printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n");
88   - printf("| Mode : %s\r\n", (wifiMode == WIFI_MODE_CLIENT) ? "Client":"Soft Access Point");
89   - printf("| IP : 192.168.1.1\r\n");
90   - printf("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n");
  84 + DBG_CALLBACKS("\r\n\r\n");
  85 + DBG_CALLBACKS("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n");
  86 + DBG_CALLBACKS("| Network Is Ready!\r\n");
  87 + DBG_CALLBACKS("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n");
  88 + DBG_CALLBACKS("| Mode : %s\r\n", (wifiMode == WIFI_MODE_CLIENT) ? "Client":"Soft Access Point");
  89 + DBG_CALLBACKS("| IP : 192.168.1.1\r\n");
  90 + DBG_CALLBACKS("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\r\n");
91 91 }
92 92 \ No newline at end of file
... ...
Project/applications/smartcities/configServer.c
... ... @@ -100,7 +100,7 @@ void configServer_setClientParameters()
100 100 if(ret == 0)
101 101 {
102 102 //successful conversion
103   - printf("%d,%d,%d,%d,%d\r\n",asciiBuf[0],asciiBuf[1],asciiBuf[2],asciiBuf[3],asciiBuf[4]);
  103 + CONFIG_SERVER_DBG("%d,%d,%d,%d,%d\r\n",asciiBuf[0],asciiBuf[1],asciiBuf[2],asciiBuf[3],asciiBuf[4]);
104 104 memset(arg_passphraseStr, 0, sizeof(arg_passphraseStr));
105 105 memcpy(arg_passphraseStr, asciiBuf, 5);
106 106 }
... ...
Project/applications/smartcities/flash.sh 0 → 100755
  1 +#!/bin/bash
  2 +
  3 +make clean
  4 +make all
  5 +st-flash write build/smartcities.bin 0x8000000
... ...
Project/applications/smartcities/httpClient.c
... ... @@ -24,14 +24,14 @@ int httpRequest(struct httpHeaders head, char* content, int content_size)
24 24 ip4_addr_set_u32(&remote_ip,ipaddr_addr(SERVER_IP));
25 25  
26 26 // Check or default params
27   - printf("httpRequest: Checking params\r\n");
  27 + DBG_HTTP("Checking params\r\n");
28 28 if (head.uri == NULL || head.host == NULL)
29 29 {
30 30 return 1;
31 31 }
32 32  
33 33 // Calculate header size
34   - printf("httpRequest: Calculating header size\r\n");
  34 + DBG_HTTP("Calculating header size\r\n");
35 35 int head_size = strlen(reqMethod2text(head.method));
36 36 head_size += strlen(" ") + head.uri_size + strlen(" HTTP/1.1") + strlen(ENDL);
37 37 head_size += strlen("Host: ") + head.host_size + strlen(ENDL);
... ... @@ -42,7 +42,7 @@ int httpRequest(struct httpHeaders head, char* content, int content_size)
42 42 head_size += strlen("Content-Length: ") + numberofdigits(content_size) + 2*(strlen(ENDL));
43 43 }
44 44 // Build request head
45   - printf("httpRequest: Building request head\r\n");
  45 + DBG_HTTP("Building request head\r\n");
46 46 int request_size = head_size + content_size + 2*(strlen(ENDL));
47 47 request = (char *) chHeapAlloc(NULL,request_size);
48 48 strcpy(request, reqMethod2text(head.method));
... ... @@ -70,56 +70,51 @@ int httpRequest(struct httpHeaders head, char* content, int content_size)
70 70 // Build request with content
71 71 if(content_size > 0)
72 72 {
73   - printf("httpRequest: Adding content to request string\r\n");
  73 + DBG_HTTP("Adding content to request string\r\n");
74 74 strcat(request, content);
75 75 }
76 76 else
77 77 {
78   - printf("httpRequest: Skipping void content\r\n");
  78 + DBG_HTTP("Skipping void content\r\n");
79 79 }
80   - printf("packet: %s\r\n",request);
  80 + DBG_HTTP("Packet:\r\n\r\n%c[1;33m%s%c[1;00m \r\n\r\n",0x1B,request,0x1B);
81 81 // Set connection
82   - /*while(connection_ok !=0) // != ERR_OK
83   - {*/
84   - printf("httpRequest: Setting connection\r\n");
85   - neocon = netconn_new(NETCONN_TCP);
86   - if(neocon == NULL)
87   - {
88   - printf("\\->Socket creation FAILED. Have you called libwismart_init_bsd_sockets ?\r\n");
89   - }
90   - /*local_ip.addr = 0;//getip
91   - netconn_bind(neocon, IP_ADDR_ANY, LOCAL_PORT); //88 is provisional local port.*/
92   - printf("httpRequest: Establishing connection\r\n");
93   - netconn_connect(neocon, &remote_ip, DEFAULT_REMOTE_PORT);
  82 + DBG_HTTP("Setting connection\r\n");
  83 + neocon = netconn_new(NETCONN_TCP);
  84 + if(neocon == NULL)
  85 + {
  86 + DBG_HTTP("[ERROR] Socket creation FAILED. Have you called libwismart_EnableBsdSocketAPI()?\r\n");
  87 + }
  88 + /*local_ip.addr = 0;//getip
  89 + netconn_bind(neocon, IP_ADDR_ANY, LOCAL_PORT); //88 is provisional local port.*/
  90 + DBG_HTTP("Establishing connection\r\n");
  91 + netconn_connect(neocon, &remote_ip, DEFAULT_REMOTE_PORT);
  92 +
  93 + // Send Request
  94 + DBG_HTTP("Sending request\r\n");
  95 + err_t err=netconn_write(neocon, request, request_size, NETCONN_NOCOPY);
  96 + DBG_HTTP("Write returned: %d\r\n",err);
  97 + chHeapFree(request);
94 98  
95   - // Send Request
96   - printf("httpRequest: Sending request\r\n");
97   - err_t err=netconn_write(neocon, request, request_size, NETCONN_NOCOPY);
98   - printf("res write= %d\r\n",err);
99   - chHeapFree(request);
100   -
101   - // Wait for Response
102   - printf("httpRequest: Waiting for response\r\n");
103   - //neocon->recv_timeout = 5000; // for 5s
104   - connection_ok = netconn_recv(neocon, &netBufs);
105   - printf("res recv= %d\r\n",connection_ok);
106   -
107   - if(connection_ok !=0)
108   - {
109   - netbuf_delete(netBufs);
110   - netconn_close(neocon);
111   - netconn_delete(neocon);
112   - return 0;
113   - }
114   - //}
  99 + // Wait for Response
  100 + DBG_HTTP("Waiting for response\r\n");
  101 + //neocon->recv_timeout = 5000; // for 5s
  102 + connection_ok = netconn_recv(neocon, &netBufs);
  103 + DBG_HTTP("Receive returned: %d\r\n",connection_ok);
  104 + if(connection_ok !=0)
  105 + {
  106 + netbuf_delete(netBufs);
  107 + netconn_close(neocon);
  108 + netconn_delete(neocon);
  109 + return 0;
  110 + }
115 111 // Manage Response
116   - printf("httpRequest: Response received. Let's parse the information\r\n");
  112 + DBG_HTTP("Response received. Let's parse the information\r\n");
117 113 response = (char*)chHeapAlloc(NULL,4*sizeof(char));
118 114 netbuf_copy_partial(netBufs,response,3,9); // read 3B starting from 9th -> read response code. "HTTP/1.1 301 Moved Permanently"
119   - printf("httpRequest: Unbelievablelybilbiyblyib successful! :D\r\nResponse code: %s\r\n",response);
  115 + DBG_HTTP("Response code: %s\r\n",response);
120 116 int http_response = response2int(response);
121   -
122   - // alliberem Mandela i Willy
  117 +
123 118 netbuf_delete(netBufs);
124 119 netconn_close(neocon);
125 120 netconn_delete(neocon);
... ... @@ -127,32 +122,6 @@ int httpRequest(struct httpHeaders head, char* content, int content_size)
127 122 return http_response;
128 123 }
129 124  
130   -/*
131   - err_t netconn_write ( struct netconn * aNetConn, const void * aData, size_t aSize, u8_t aApiFlags );
132   -
133   - aNetConn : the netconn object the data is written to
134   - aData : address of beginning of the data to write
135   - aSize : the length of the data in bytes
136   - aApiFlags : either of
137   - NETCONN_NOCOPY if the data is stable for the time of the transmission (static data or heap)
138   - NETCONN_COPY if the data is not stable for the time of the transmission (stack)
139   -
140   - With the netconn API, netconn_recv() returns a netbuf which may contain a chain of pbufs. You have no control over how much data will be returned in a single request, which may be more or less than you want to deal with. You can use various netbuf functions to copy data out of the buffer. If you need more data, you must call netconn_recv() again to get the next netbuf. If you received more data than you wanted, you will have to manage the extra data yourself.
141   -
142   -
143   - u16_t netbuf_copy_partial ( struct netbuf * aNetBuf, void * aData, u16_t aLen, u16_t aOffset );
144   -
145   - Copy at most "aLen" bytes from the netbuf object to the destination location. The second alternative can start at an offset instead of 0.
146   -
147   - in aNetBuf : netbuf object the data is copied from
148   - out aData : address of the memory where the data is copied to
149   - in aLen : the size of the buffer, or the length of data to copy
150   - in aOffset : an offset to start the with copy operation. In "netbuf_copy" this value is 0
151   - return : total number of copied bytes, might be 0
152   -
153   - Contray to using "netbuf_data" you don't have to fumble around with chained buffers. You get all the data out of the buffer. As a drawback you have an extra overhead of memory usage.
154   -*/
155   -
156 125 const char* reqMethod2text(enum reqMethod method)
157 126 {
158 127 switch(method)
... ...
Project/applications/smartcities/i2c.c
... ... @@ -3,7 +3,7 @@
3 3  
4 4 void I2C_init(void)
5 5 {
6   - printf("Initializing I2C...\r\n");
  6 + DBG_I2C("Initializing I2C...\r\n");
7 7 GPIO_InitTypeDef GPIO_InitStruct;
8 8 I2C_InitTypeDef I2C_InitStruct;
9 9  
... ... @@ -30,28 +30,28 @@ void I2C_init(void)
30 30  
31 31 void I2C_start(I2C_TypeDef* I2Cx, uint8_t address, uint8_t direction)
32 32 {
33   - printf("Sending I2C Start...\r\n");
  33 + DBG_I2C("Sending I2C Start...\r\n");
34 34 while(I2C_GetFlagStatus(I2Cx, I2C_FLAG_BUSY))
35 35 {
36 36 // wait until I2C1 is not busy any more
37 37 }
38   - printf("I2C ready\r\n");
  38 + DBG_I2C("I2C ready\r\n");
39 39 I2C_GenerateSTART(I2Cx, ENABLE);
40   - printf("Start sent\r\n");
  40 + DBG_I2C("Start sent\r\n");
41 41 while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT))
42 42 {
43 43 // wait for I2C1 EV5 --> Slave has acknowledged start condition
44 44 }
45   - printf("Start ACK\r\n");
  45 + DBG_I2C("Start ACK\r\n");
46 46 I2C_Send7bitAddress(I2Cx, address, direction);
47   - printf("Master -> Slave Address and R/W sent\r\n");
  47 + DBG_I2C("Master -> Slave Address and R/W sent\r\n");
48 48 if(direction == I2C_Direction_Transmitter)
49 49 {
50 50 while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))
51 51 {
52 52 // wait for I2Cx EV6, check if Slave has acknowledged Master transmitter mode
53 53 }
54   - printf("Slave -> Master ACK\r\n");
  54 + DBG_I2C("Slave -> Master ACK\r\n");
55 55 }
56 56 else if(direction == I2C_Direction_Receiver)
57 57 {
... ... @@ -59,29 +59,29 @@ void I2C_start(I2C_TypeDef* I2Cx, uint8_t address, uint8_t direction)
59 59 {
60 60 // wait for I2Cx EV6, check if Slave has acknowledged Master receiver mode
61 61 }
62   - printf("Slave -> Master ACK\r\n");
  62 + DBG_I2C("Slave -> Master ACK\r\n");
63 63 }
64 64 }
65 65  
66 66 void I2C_restart(I2C_TypeDef* I2Cx, uint8_t address, uint8_t direction)
67 67 {
68   - printf("Sending repeated I2C Start...\r\n");
  68 + DBG_I2C("Sending repeated I2C Start...\r\n");
69 69 I2C_GenerateSTART(I2Cx, ENABLE);
70   - printf("Start sent\r\n");
  70 + DBG_I2C("Start sent\r\n");
71 71 while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_MODE_SELECT))
72 72 {
73 73 // wait for I2C1 EV5 --> Slave has acknowledged start condition
74 74 }
75   - printf("Start ACK\r\n");
  75 + DBG_I2C("Start ACK\r\n");
76 76 I2C_Send7bitAddress(I2Cx, address, direction);
77   - printf("Master -> Slave Address and R/W sent\r\n");
  77 + DBG_I2C("Master -> Slave Address and R/W sent\r\n");
78 78 if(direction == I2C_Direction_Transmitter)
79 79 {
80 80 while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))
81 81 {
82 82 // wait for I2Cx EV6, check if Slave has acknowledged Master transmitter mode
83 83 }
84   - printf("Slave -> Master ACK\r\n");
  84 + DBG_I2C("Slave -> Master ACK\r\n");
85 85 }
86 86 else if(direction == I2C_Direction_Receiver)
87 87 {
... ... @@ -89,37 +89,37 @@ void I2C_restart(I2C_TypeDef* I2Cx, uint8_t address, uint8_t direction)
89 89 {
90 90 // wait for I2Cx EV6, check if Slave has acknowledged Master receiver mode
91 91 }
92   - printf("Slave -> Master ACK\r\n");
  92 + DBG_I2C("Slave -> Master ACK\r\n");
93 93 }
94 94 }
95 95  
96 96 void I2C_write(I2C_TypeDef* I2Cx, uint8_t data)
97 97 {
98   - printf("Sending I2C byte %02x...\r\n",data);
  98 + DBG_I2C("Sending I2C byte %02x...\r\n",data);
99 99 I2C_SendData(I2Cx, data);
100 100 while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTED))
101 101 {
102 102 // wait for I2C1 EV8_2 --> last byte is transmitted
103 103 }
104   - printf("Data sent\r\n");
  104 + DBG_I2C("Data sent\r\n");
105 105 }
106 106  
107 107 uint8_t I2C_read_ack(I2C_TypeDef* I2Cx)
108 108 {
109   - printf("Listening for byte in I2C (ACK)\r\n");
  109 + DBG_I2C("Listening for byte in I2C (ACK)\r\n");
110 110 I2C_AcknowledgeConfig(I2Cx, ENABLE);
111 111 while( !I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_RECEIVED))
112 112 {
113 113 // wait until one byte has been received
114 114 }
115 115 uint8_t data = I2C_ReceiveData(I2Cx);
116   - printf("Received byte: %02x\r\n",data);
  116 + DBG_I2C("Received byte: %02x\r\n",data);
117 117 return data;
118 118 }
119 119  
120 120 uint8_t I2C_read_nack(I2C_TypeDef* I2Cx)
121 121 {
122   - printf("Listening for byte in I2C (NACK)\r\n");
  122 + DBG_I2C("Listening for byte in I2C (NACK)\r\n");
123 123 I2C_AcknowledgeConfig(I2Cx, DISABLE);
124 124 //I2C_GenerateSTOP(I2Cx, ENABLE);
125 125 while( !I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_RECEIVED))
... ... @@ -127,19 +127,19 @@ uint8_t I2C_read_nack(I2C_TypeDef* I2Cx)
127 127 // wait until one byte has been received
128 128 }
129 129 uint8_t data = I2C_ReceiveData(I2Cx);
130   - printf("Received byte: %02x\r\n",data);
  130 + DBG_I2C("Received byte: %02x\r\n",data);
131 131 return data;
132 132 }
133 133  
134 134 void I2C_stop(I2C_TypeDef* I2Cx)
135 135 {
136   - printf("Sending I2C Stop...\r\n");
  136 + DBG_I2C("Sending I2C Stop...\r\n");
137 137 I2C_GenerateSTOP(I2Cx, ENABLE);
138 138 /*while(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_BYTE_TRANSMITTING))
139 139 {
140 140 // wait for I2C1 EV8_2 --> byte has been transmitted
141 141 }*/
142   - printf("Stop sent\r\n");
  142 + DBG_I2C("Stop sent\r\n");
143 143 }
144 144  
145 145 uint8_t I2C_check(I2C_TypeDef* I2Cx, uint8_t address)
... ... @@ -153,14 +153,14 @@ uint8_t I2C_check(I2C_TypeDef* I2Cx, uint8_t address)
153 153 {
154 154 // wait for I2C1 EV5 --> Slave has acknowledged start condition
155 155 }
156   - printf("Probing address %x ...\r\n",address);
  156 + DBG_I2C("Probing address %x ...\r\n",address);
157 157 I2C_Send7bitAddress(I2Cx, address, I2C_Direction_Transmitter);
158 158 chThdSleepMilliseconds(I2C_TIMEOUT);
159 159 if(!I2C_CheckEvent(I2Cx, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))
160 160 {
161 161 return 1;
162 162 }
163   - printf("I2C address detected: %x\r\n", address);
  163 + DBG_I2C("I2C address detected: %x\r\n", address);
164 164 I2C_write(I2Cx,0x00);
165 165 I2C_stop(I2Cx);
166 166 return 0;
... ... @@ -168,7 +168,7 @@ uint8_t I2C_check(I2C_TypeDef* I2Cx, uint8_t address)
168 168  
169 169 void I2C_reset(I2C_TypeDef* I2Cx)
170 170 {
171   - printf("Resetting I2C...\r\n");
  171 + DBG_I2C("Resetting I2C...\r\n");
172 172 I2C_SoftwareResetCmd(I2Cx, ENABLE);
173 173 I2C_DeInit(I2Cx);
174 174 I2C_init();
... ... @@ -177,6 +177,7 @@ void I2C_reset(I2C_TypeDef* I2Cx)
177 177  
178 178 void I2C_scan(I2C_TypeDef* I2Cx,uint8_t *addresses)
179 179 {
  180 + DBG_I2C("Scanning sensors...\r\n");
180 181 uint8_t i, j = 0;
181 182 I2C_init();
182 183 for(i = 0; i < TOTAL_SENSORS; i++)
... ...
Project/applications/smartcities/include/adc.h
... ... @@ -7,7 +7,7 @@
7 7 #include "stm32f10x_gpio.h"
8 8 #include "stm32f10x_adc.h"
9 9  
10   -#define DBG(fmt,...) if(1){printf("[ADC] "fmt"\r\n", ##__VA_ARGS__);}else{({});}
  10 +#define DBG_ADC(fmt,...) printf("%c[1;31madc.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
11 11  
12 12 #define ADCbatt_MIN_VALUE (0)
13 13 #define ADCbatt_MAX_VALUE (0xfff)
... ...
Project/applications/smartcities/include/buffer.h
... ... @@ -10,6 +10,8 @@
10 10 #define SOFT_REACHED 1
11 11 #define HARD_REACHED 2
12 12  
  13 +#define DBG_BUFFER(fmt,...) printf("%c[1;31mbuffer.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  14 +
13 15 char** put_message(char* info, char** buf,uint32_t *index, uint32_t *buf_len);
14 16 int check_memory(void);
15 17 int send(char** buf, uint32_t *index, uint32_t *size, char *provider_ID, char *sensor_ID);
... ...
Project/applications/smartcities/include/callbacks.h
... ... @@ -17,6 +17,8 @@ void softapMode_clientIndicationCb(wismart_softap_cb_t reason, const uint8_t *ma
17 17 void softapMode_apStartedCb(int result);
18 18 void printWifiInfo(uint8_t wifiMode);
19 19  
  20 +#define DBG_CALLBACKS(fmt,...) printf("%c[1;31mcallbacks.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  21 +
20 22 extern uint8_t connected;
21 23 extern uint8_t timeout;
22 24 extern uint8_t retries;
... ...
Project/applications/smartcities/include/configServer.h
... ... @@ -10,8 +10,8 @@
10 10 #include "ch.h"
11 11 #include "fsdata.c"
12 12  
13   -#define CONFIG_SERVER_DBG(fmt,...) if(1){printf("[SRV] "fmt"\r\n", ##__VA_ARGS__);}else{({});}
14   -#define CONFIG_SERVER_DBG_WARNING(fmt,...) if(1){printf("[SRV_WARNING] "fmt"\r\n", ##__VA_ARGS__);}else{({});}
  13 +#define CONFIG_SERVER_DBG(fmt,...) printf("%c[1;31mconfigServer.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  14 +#define CONFIG_SERVER_DBG_WARNING(fmt,...) printf("%c[1;31mconfigServer.c:%c[1;00m [WARNING] "fmt,0x1B,0x1B, ##__VA_ARGS__)
15 15  
16 16 void configServer_start(uint8_t enableApScan);
17 17 void configServer_connect(void);
... ...
Project/applications/smartcities/include/globals.h
... ... @@ -5,13 +5,14 @@
5 5 #define SERVER_HOSTNAME SERVER_IP
6 6 #define MODULE_ID_LENGTH 6
7 7 #define BUFFER_LENGTH 30
8   -#define MAX_RAM 30000
9   -#define MODULE_ID "123456"
  8 +#define MAX_RAM 34704
  9 +#define MODULE_ID "000001"
10 10 #define WIFI_MODE WIFI_MODE_CLIENT
11 11 #define NETWORK_SSID_AP "modularsense"
12 12 #define NETWORK_KEY_AP NULL
13 13 #define NETWORK_CHANNEL_AP 1
14   -#define HARD_LIMIT_WAIT_TIME 10*1000 //5*60*1000
15   -
  14 +#define HARD_LIMIT_WAIT_TIME 10*1000 //5*60*1000
  15 +#define SNTP_SERVER_ADDRESS ipaddr_addr("81.184.154.182") /* your ntp server */
16 16  
  17 +#define SERVER_LEWIS
17 18 #endif
... ...
Project/applications/smartcities/include/httpClient.h
... ... @@ -22,6 +22,9 @@
22 22 #define ENDL "\r\n"
23 23 #define CONTENT_TYPE_HEADER "Content-Type: application/json; charset=UTF-8"
24 24  
  25 +#define DBG_HTTP(fmt,...) printf("%c[1;31mhttpClient.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  26 +
  27 +
25 28 typedef enum reqMethod
26 29 {
27 30 post,
... ...
Project/applications/smartcities/include/i2c.h
... ... @@ -9,6 +9,8 @@
9 9  
10 10 #define I2C_TIMEOUT 100
11 11  
  12 +#define DBG_I2C(fmt,...) printf("%c[1;31mi2c.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  13 +
12 14 void I2C_init(void);
13 15 void I2C_start(I2C_TypeDef* I2Cx, uint8_t address, uint8_t direction);
14 16 void I2C_stop(I2C_TypeDef* I2Cx);
... ...
Project/applications/smartcities/include/json.h
... ... @@ -18,6 +18,8 @@
18 18 #define JOIN_NO_FREE 0
19 19 #define JOIN_FREE_MEM 1
20 20  
  21 +#define DBG_JSON(fmt,...) printf("%c[1;31mjson.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  22 +
21 23 uint8_t register_sensor(sensor sens);
22 24 char* prepare_json_observation_statement(char** data, uint32_t nObservations);
23 25 char* prepare_json_register_statement(module mod, sensor sens, char *additional_info);
... ...
Project/applications/smartcities/include/ntp.h
... ... @@ -16,51 +16,17 @@
16 16 #include "lwip/sys.h"
17 17 #include "lwip/api.h"
18 18 #include "ch.h"
  19 +#include "globals.h"
19 20  
20   -typedef struct {
21   - int second;
22   - int minute;
23   - int hour;
24   - int day;
25   - int month;
26   - int year;
27   -}Date;
28   -
29   -char* timestamp_data(char* value,Date time);
30   -unsigned long getSecsSince1900(void);
31   -Date getDate(unsigned long);
32   -void udpNtp_test(void);
  21 +#define DBG_NTP(fmt,...) printf("%c[1;31mntp.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
33 22  
34 23 #define LEAP_YEAR(Y) (((1970+Y)>0) && !((1970+Y)%4) && (((1970+Y)%100) || !((1970+Y)%400)))
35   -
36 24 #define NTP_PACKET_LENGTH 48
37   -
38   -//cabecera de netconn api
39   -#ifndef SNTP_PORT
40 25 #define SNTP_PORT 123
41   -#endif
42   -
43   -/** SNTP server address as IPv4 address in "u32_t" format */
44   -#ifndef SNTP_SERVER_ADDRESS
45   -#define SNTP_SERVER_ADDRESS ipaddr_addr("81.184.154.182") /* your ntp server */
46   -#endif
47   -
48 26 /** SNTP receive timeout - in milliseconds */
49   -#ifndef SNTP_RECV_TIMEOUT
50 27 #define SNTP_RECV_TIMEOUT 3000
51   -#endif
52   -
53 28 /** SNTP update delay - in milliseconds */
54   -#ifndef SNTP_UPDATE_DELAY
55 29 #define SNTP_UPDATE_DELAY 60000
56   -#endif
57   -
58   -/** SNTP macro to change system time and/or the update the RTC clock */
59   -#ifndef SNTP_SYSTEM_TIME
60   -#define SNTP_SYSTEM_TIME(t)
61   -#endif
62   -
63   -/* SNTP protocol defines */
64 30 #define SNTP_MAX_DATA_LEN 48
65 31 #define SNTP_RCV_TIME_OFS 32
66 32 #define SNTP_LI_NO_WARNING 0x00
... ... @@ -69,12 +35,24 @@ void udpNtp_test(void);
69 35 #define SNTP_MODE_SERVER 0x04
70 36 #define SNTP_MODE_BROADCAST 0x05
71 37 #define SNTP_MODE_MASK 0x07
72   -
73 38 /* number of seconds between 1900 and 1970 */
74 39 #define DIFF_SEC_1900_1970 (2208988800LL)
75   -
76 40 /*timezone from GMT*/
77 41 #define TIME_ZONE 2
78 42  
  43 +typedef struct {
  44 + int second;
  45 + int minute;
  46 + int hour;
  47 + int day;
  48 + int month;
  49 + int year;
  50 +}Date;
  51 +
  52 +char* timestamp_data(char* value,Date time);
  53 +unsigned long getSecsSince1900(void);
  54 +Date getDate(unsigned long);
  55 +void udpNtp_test(void);
  56 +
79 57  
80 58 #endif
... ...
Project/applications/smartcities/include/sensors.h
... ... @@ -19,6 +19,8 @@
19 19  
20 20 #define BATTERY_ADDR 0x00 //SIEMPRE PRESENTE, NUNCA BUSCAR EN i2c_scan
21 21  
  22 +#define DBG_SENSORS(fmt,...) printf("%c[1;31msensors.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  23 +
22 24 typedef struct {
23 25 uint8_t ID;
24 26 char* description;
... ...
Project/applications/smartcities/include/timer-loop.h
... ... @@ -11,6 +11,8 @@
11 11 #define LONG_PERIOD 60*3 //60*3 // for testing
12 12 #define SHORT_PERIOD 60*1 //60*1 // for testing
13 13  
  14 +#define DBG_TIMER(fmt,...) printf("%c[1;31mtimer-loop.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  15 +
14 16 unsigned long getSystemTime(void);
15 17  
16 18 unsigned long getElapsedTime(unsigned long t);
... ...
Project/applications/smartcities/json.c
... ... @@ -2,14 +2,14 @@
2 2  
3 3 uint8_t register_sensor(sensor sens)
4 4 {
5   - printf("Registering sensor: %s\r\n",sens.description);
  5 + DBG_JSON("Registering sensor: %s\r\n",sens.description);
6 6 uint8_t result;
7 7 char *statement;
8 8 if(sens.ID == PRESSURE_ADDR)
9 9 {
10   - printf("Putting additional info for pressure sensor...\r\n");
  10 + DBG_JSON("Putting additional info for pressure sensor...\r\n");
11 11 char *callibration_data = callibration_pressure_data_csv(get_pressure_callibration_data());
12   - printf("callibration_data is: %s\r\n",callibration_data);
  12 + DBG_JSON("callibration_data is: %s\r\n",callibration_data);
13 13 statement = prepare_json_register_statement(mod,sens,callibration_data);
14 14 chHeapFree(callibration_data);
15 15 }
... ... @@ -36,7 +36,6 @@ char* prepare_json_observation_statement(char** data, uint32_t nObservations)
36 36 observation_length = strlen(str_aux2);
37 37 str_aux = join_strings(str_aux,str_aux2,length,observation_length,JOIN_FREE_MEM);
38 38 length += observation_length;
39   - printf("data=%s %d \r\n",data[i],i);
40 39 }
41 40 length--; //REMOVE LAST ','
42 41 json_statement = join_strings(str_aux,"]}\0",length,3,JOIN_NO_FREE);
... ... @@ -80,7 +79,7 @@ char* prepare_json_register_statement(module mod, sensor sens, char *additional_
80 79 length += strlen(mod.geoloc);
81 80 if(additional_info != NULL)
82 81 {
83   - printf("In prepare_json_register_statement: Detected additional_info\r\n");
  82 + DBG_JSON("In prepare_json_register_statement: Detected additional_info\r\n");
84 83 str_aux2 = join_strings(str_aux,"\",\"additionalInfo\":\"",length,20,JOIN_NO_FREE);
85 84 chHeapFree(str_aux);
86 85 length += 20;
... ... @@ -99,14 +98,12 @@ char* prepare_observation(char* observation, uint32_t length)
99 98 int value_length = find_next_index(observation,length,',');
100 99 while(1)
101 100 {
102   - printf("value_length = %d\r\n",value_length);
103 101 if(find_next_index(observation+value_length+1,length,','))
104 102 {
105 103 value_length += find_next_index(observation+value_length+1,length,',')+1;
106 104 }
107 105 else
108 106 {
109   - printf("Comma in %d\r\n",value_length);
110 107 break;
111 108 }
112 109 }
... ... @@ -140,29 +137,40 @@ uint8_t send_json(char* statement, uint32_t length, char* provider_ID, char* sen
140 137 {
141 138 URL = (char*) chHeapAlloc(NULL,1+strlen(SERVER_HOSTNAME));
142 139 strcpy(URL,SERVER_HOSTNAME);
  140 + #ifdef SERVER_VANILLA
143 141 //VANILLA SERVER (SENTILO)
144   - /*PATH = (char*) chHeapAlloc(NULL,19);
145   - strcpy(PATH,"/catalog/register");*/
  142 + DBG_JSON("Server is vanilla\r\n")
  143 + PATH = (char*) chHeapAlloc(NULL,19);
  144 + strcpy(PATH,"/catalog/register");
  145 + #endif
  146 + #ifdef SERVER_LEWIS
146 147 //FUCKING LEWIS...
  148 + DBG_JSON("Server is lewis.upc.es\r\n");
147 149 PATH = (char*) chHeapAlloc(NULL,50);
148 150 strcpy(PATH,"/modularsense/wordpress/opendata/catalog/register");
  151 + #endif
149 152 }
150 153 else //Post data
151 154 {
152 155 URL = (char*) chHeapAlloc(NULL,1+strlen(SERVER_HOSTNAME));
153 156 strcpy(URL,SERVER_HOSTNAME);
154 157 URL[strlen(SERVER_HOSTNAME)] = '\0';
  158 + #ifdef SERVER_VANILLA
155 159 //VANILLA SERVER (SENTILO)
156   - /*PATH = (char*) chHeapAlloc(NULL,22+strlen(provider_ID)+strlen(sensor_ID));
  160 + DBG_JSON("Server is vanilla\r\n")
  161 + PATH = (char*) chHeapAlloc(NULL,22+strlen(provider_ID)+strlen(sensor_ID));
157 162 strcpy(PATH,"/data/modularupload/");
158 163 strcpy(PATH+20,provider_ID);
159   - strcpy(PATH+20+strlen(provider_ID),sensor_ID);*/
160   -
  164 + strcpy(PATH+20+strlen(provider_ID),sensor_ID);
  165 + #endif
  166 + #ifdef SERVER_LEWIS
161 167 //FUCKING LEWIS...
  168 + DBG_JSON("Server is lewis.upc.es\r\n");
162 169 PATH = (char*) chHeapAlloc(NULL,54+strlen(provider_ID)+strlen(sensor_ID));
163 170 strcpy(PATH,"/modularsense/wordpress/opendata/data/modularupload/");
164 171 strcpy(PATH+52,provider_ID);
165 172 strcpy(PATH+52+strlen(provider_ID),sensor_ID);
  173 + #endif
166 174 }
167 175 struct httpHeaders server = { put,PATH,strlen(PATH),URL,strlen(URL)};
168 176 response_code = httpRequest(server, statement, length);
... ... @@ -170,14 +178,17 @@ uint8_t send_json(char* statement, uint32_t length, char* provider_ID, char* sen
170 178 chHeapFree(URL);
171 179 if(response_code == 200)
172 180 {
  181 + DBG_JSON("Success: JSON_POST_OK\r\n");
173 182 return JSON_POST_OK;
174 183 }
175 184 else if((response_code >= 400) && (response_code < 500))
176 185 {
  186 + DBG_JSON("[ERROR] Communication with server FAILED: JSON_COMM_ERROR\r\n");
177 187 return JSON_COMM_ERROR;
178 188 }
179 189 else
180 190 {
  191 + DBG_JSON("[ERROR] Unspecified error: JSON_ERROR_OTHER\r\n");
181 192 return JSON_OTHER_ERROR;
182 193 }
183 194 }
... ... @@ -207,4 +218,4 @@ char* join_strings(char* str1, char* str2, uint32_t len1, uint32_t len2, uint8_t
207 218 chHeapFree(str2);
208 219 }
209 220 return str;
210 221 -}
  222 +}
211 223 \ No newline at end of file
... ...
Project/applications/smartcities/main.c
... ... @@ -12,6 +12,8 @@
12 12 #include "ntp.h"
13 13 #include "sensors.h"
14 14  
  15 +#define DBG(fmt,...) printf("%c[1;31mmain.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__)
  16 +
15 17 uint8_t connected=0;
16 18 uint8_t timeout=0;
17 19 uint8_t retries=0;
... ... @@ -29,13 +31,13 @@ void initLibwismart(void)
29 31  
30 32 void update_time(unsigned long *time)
31 33 {
32   - printf("Requesting new NTP time...\r\n");
  34 + DBG("Requesting new NTP time...\r\n");
33 35 unsigned long new_time = getSecsSince1900();
34 36 if(new_time)
35 37 {
36 38 *time = getSecsSince1900();
37 39 }
38   - printf("Time updated...\r\n");
  40 + DBG("Time updated\r\n");
39 41 }
40 42  
41 43 void init_registry(void)
... ... @@ -54,31 +56,31 @@ void init_registry(void)
54 56 libwismart_RegistryGet(&geo,&config);
55 57 }
56 58  
57   - printf("SSID = %s\r\n",config.ssid);
58   - printf("Wep key = %s\r\n",config.wepkey);
59   - printf("Passphrase = %s\r\n", config.passphrase);
60   - printf("User = %s\r\n",config.user);
61   - printf("Password = %s\r\n",config.password);
62   - printf("Encryption type = %d\r\n",config.security);
63   - printf("Geo Localization = %s\r\n", config.localization);
  59 + DBG("SSID = %s\r\n",config.ssid);
  60 + DBG("Wep key = %s\r\n",config.wepkey);
  61 + DBG("Passphrase = %s\r\n", config.passphrase);
  62 + DBG("User = %s\r\n",config.user);
  63 + DBG("Password = %s\r\n",config.password);
  64 + DBG("Encryption type = %d\r\n",config.security);
  65 + DBG("Geo Localization = %s\r\n", config.localization);
64 66  
65 67 strcpy(mod.geoloc,config.localization);
66 68 strcpy(mod.ID,MODULE_ID);
67 69 if(config.security == PROFILE_SECURITY_OPEN)
68 70 {
69   - printf("open detected\r\n");
  71 + DBG("Open network detected\r\n");
70 72 libwismart_WiFiConnect(config.ssid,NULL,wifi_connect_result_cb);
71 73 }
72 74 else if(config.security == PROFILE_SECURITY_WPA_WPA2)
73 75 {
74 76 if(!strcmp(config.user,""))
75 77 {
76   - printf("wpa detected\r\n");
  78 + DBG("WPA network detected\r\n");
77 79 libwismart_WiFiConnect(config.ssid,config.passphrase,wifi_connect_result_cb);
78 80 }
79 81 else
80 82 {
81   - printf("wpa Enterprise detected\r\n");
  83 + DBG("WPA Enterprise network detected\r\n");
82 84 struct wpa_param wpa;
83 85 wpa.eap_method = WISMART_EAP_METHOD_TTLS;
84 86 wpa.u.ttls.identity = config.user;
... ... @@ -89,7 +91,7 @@ void init_registry(void)
89 91 }
90 92 else
91 93 {
92   - printf("wep detected\r\n");
  94 + DBG("WEP network detected\r\n");
93 95 //Is WEP
94 96 libwismart_WiFiConnect(config.ssid,config.wepkey,wifi_connect_result_cb);
95 97 libwismart_WiFiSetWep(config.wepkey,1);
... ... @@ -104,67 +106,52 @@ void send_data(char** buffers[], uint32_t ind[], uint32_t sizes[], uint8_t senso
104 106 int j;
105 107 for(j=0;j<sensors_length;j++)
106 108 {
107   - printf(" enviant buffer %d\r\n",j);
  109 + DBG("Sending buffer %d\r\n",j);
108 110 char id[3];
109 111 sprintf(id,"%x",sensors[j]);
110   - int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, id);
111   -
112   - if(ok==JSON_COMM_ERROR)
113   - {
114   - printf("wismart is not connected\r\n");
115   - }
116   - else if( ok==JSON_OTHER_ERROR)
117   - {
118   - printf("some error ocurred\r\n");
119   - }
120   - else if(ok ==JSON_POST_OK)
121   - {
122   - printf(" send OK \r\n");
123   - }
  112 + send(buffers[j],&ind[j],&sizes[j], mod.ID, id);
124 113 }
125 114 }
126 115  
127 116 void put_buffers(char** buffers[],uint32_t ind[],uint32_t sizes[],char** cooked, uint8_t* sensors)
128 117 {
  118 + DBG("Putting data in buffers...\r\n");
129 119 int i;
130 120 for(i=0;i<sensors_length;i++)
131 121 {
132   - printf("For %d and %d\n\r", ind[i],sizes[i]);
133   - printf("Putting data: %s\n\r",cooked[i]);
  122 + DBG("Putting data: %s\n\r",cooked[i]);
134 123 buffers[i] = put_message(cooked[i], buffers[i] ,&ind[i],&sizes[i]);
135   - printf("Message put: %s\r\n",buffers[i][ind[i]-1]);
  124 + DBG("Message put: %s\r\n",buffers[i][ind[i]-1]);
136 125 chHeapFree(cooked[i]);
137   - printf("Memory freed\n\r");
138   - printf("Message put (assertion): %s with length %d\r\n",buffers[i][ind[i]-1] ,strlen(buffers[i][ind[i]-1]));
  126 + DBG("Memory freed\n\r");
  127 + DBG("[ASSERTION] Message put: %s with length %d\r\n",buffers[i][ind[i]-1] ,strlen(buffers[i][ind[i]-1]));
139 128 }
140   -
141 129 }
142 130 char** timestamp_datas(char* value[],unsigned long timestamp, uint8_t* sensors)
143 131 {
  132 + DBG("Timestamping data...\r\n");
144 133 char** cooked_data;
145 134 cooked_data = (char**) chHeapAlloc(NULL,sensors_length * sizeof(char*));
146   - printf("Data allocated...\r\n");
147 135 Date t=getDate(timestamp);
148 136 int i;
149 137 for(i=0;i<sensors_length;i++)
150 138 {
151   - printf("Calling timestamp_data...\r\n");
152 139 cooked_data[i]=timestamp_data(value[i], t);
153   - printf("Finished timestamp_data...\r\n");
154   - printf("Data is: %s\r\n",cooked_data[i]);
  140 + DBG("Data is: %s\r\n",cooked_data[i]);
155 141 chHeapFree(value[i]);
156 142 value[i] = NULL;
157 143 }
158   - printf("Returning timestamped data...\r\n");
  144 + DBG("Returning timestamped data...\r\n");
159 145 return cooked_data;
160 146 }
161 147  
162 148 void wifi_connect(void)
163 149 {
  150 + DBG("Connecting wifi...\r\n");
164 151 init_registry();
165 152 if(timeout==1)
166 153 {
167   - printf("Creating AP\r\n");
  154 + DBG("Creating AP\r\n");
168 155 configServer_start(1);
169 156 libwismart_WiFi_SoftAP_Start(NETWORK_SSID_AP,NETWORK_CHANNEL_AP,NULL,softapMode_apStartedCb, softapMode_clientIndicationCb);
170 157 for(;;)
... ... @@ -176,7 +163,7 @@ void wifi_connect(void)
176 163  
177 164 void send_battery_level(unsigned long timestamp)
178 165 {
179   - uint8_t result;
  166 + DBG("Polling battery level...\r\n");
180 167 char *batt_level = battery_value(get_battery_data());
181 168 //char *batt_level = battery_value(3300);
182 169 char *batt_data = timestamp_data(batt_level,getDate(timestamp));
... ... @@ -185,30 +172,20 @@ void send_battery_level(unsigned long timestamp)
185 172 chHeapFree(batt_data);
186 173 char id[3];
187 174 sprintf(id,"%02x",battery.ID);
188   - result = send_json(statement,strlen(statement),mod.ID,id);
189   - if(result)
190   - {
191   - if(result != 200)
192   - {
193   - printf("ERROR: SERVER RETURNED %d\r\n",result);
194   - }
195   - }
196   - else
197   - {
198   - printf("ERROR: CONNECTION FAILED\r\n");
199   - }
  175 + send_json(statement,strlen(statement),mod.ID,id);
200 176 chHeapFree(statement);
201 177 }
202 178  
203 179 void wifi_disconnect(void)
204 180 {
  181 + DBG("Disconnecting wifi...\r\n");
205 182 connected = 0;
206 183 timeout = 0;
207 184 uint8_t res=libwismart_WiFiDisconnect();
208 185 if(res)
209   - printf("WIFI_DISCONNECT_SUCCESS\r\n");
  186 + DBG("Disconnecting Successful: WIFI_DISCONNECT_SUCCESS\r\n");
210 187 else
211   - printf("WIFI_DISCONNECT_FAILURE\r\n");
  188 + DBG("Disconnecting Failed: WIFI_DISCONNECT_FAILURE\r\n");
212 189 }
213 190  
214 191 int main(void)
... ... @@ -220,88 +197,80 @@ int main(void)
220 197 libwismart_WiFiInit();
221 198 libwismart_SetScanRunsForConnTimeout(4); //Edit a 4
222 199 libwismart_EnableBsdSocketAPI();
223   -
224   - int i;
225 200  
  201 + int i;
  202 + int j;
226 203 uint8_t sensors[TOTAL_SENSORS];
227   - memset (sensors, 0, TOTAL_SENSORS);
228   -
229 204 char* valueSensors[TOTAL_SENSORS];
  205 + unsigned long time;
  206 + unsigned long timestamp;
  207 + unsigned long delay;
  208 + uint32_t ind[TOTAL_SENSORS]={0};
  209 + char** buffers[TOTAL_SENSORS];
  210 + uint32_t sizes[TOTAL_SENSORS]={0};
  211 + char** values;
  212 + int res;
  213 + char id[3];
230 214  
  215 + memset (sensors, 0, TOTAL_SENSORS);
231 216 for(i = 0; i < TOTAL_SENSORS; i++)
232 217 {
233 218 valueSensors[i] = NULL;
234 219 }
235 220  
236   - printf("Connecting to wifi...\r\n");
  221 + DBG("%c[1;35m--------------WI-SENSE STARTED-------------%c[1;00m\r\n",0x1B,0x1B);
  222 +
237 223 wifi_connect();
  224 + check_memory();
238 225  
239 226 wakeup_sensors(0xFF);
240   - printf("Scanning sensors...\r\n");
  227 +
241 228 //Escanea y registra
242 229 I2C_scan(I2C1,sensors);
243 230 sensors_length=strlen((char*)sensors);
244   - printf("%d sensor detected...\r\n",sensors_length);
  231 + DBG("%d sensor detected...\r\n",sensors_length);
245 232  
246   - unsigned long time;
247 233 update_time(&time);
248 234 //desconectarwifi
249   - printf("Disconecting wifi...\r\n");
250 235 wifi_disconnect();
251 236  
252   - unsigned long timestamp = 0;
253   - unsigned long delay = getSystemTime();
  237 + timestamp = 0;
  238 + delay = getSystemTime();
254 239 sleep_thread(SHORT_PERIOD - time%SHORT_PERIOD);
255 240  
256   - uint32_t ind[TOTAL_SENSORS]={0};
257   - char** buffers[TOTAL_SENSORS];
258   - uint32_t sizes[TOTAL_SENSORS]={0};
259   -
260 241 i = 1;
261 242  
262 243 while(1)
263 244 {
264 245 time += getElapsedTime(delay);
265   - printf("time (absolute):\t%ul\r\ntime mod LONG_PERIOD:\t%ul\r\ntime mod SHORT_PERIOD:\t%ul\r\n",time,time%LONG_PERIOD,time%SHORT_PERIOD);
266   -
  246 + DBG("Time (absolute):\t%ul\r\nTime LONG_PERIOD:\t%ul\r\nTime SHORT_PERIOD:\t%ul\r\n",time,time%LONG_PERIOD,time%SHORT_PERIOD);
267 247 delay = getSystemTime();
268 248 /* Collect data from sensors */
269   - printf("Collecting data...\r\n");
270 249 collectData(valueSensors, sensors);
271   - printf("Data collected...\r\n");
272 250 time += getElapsedTime(delay);
273   - printf("time (absolute):\t%ul\r\ntime mod LONG_PERIOD:\t%ul\r\ntime mod SHORT_PERIOD:\t%ul\r\n",time,time%LONG_PERIOD,time%SHORT_PERIOD);
  251 + DBG("Time (absolute):\t%ul\r\nTime LONG_PERIOD:\t%ul\r\nTime SHORT_PERIOD:\t%ul\r\n",time,time%LONG_PERIOD,time%SHORT_PERIOD);
274 252 timestamp = time;
275   - printf("timestamp (absolute):\t%ul\r\ntimestamp mod LONG_PERIOD:\t%ul\r\ntimestamp mod SHORT_PERIOD:\t%ul\r\n",timestamp,timestamp%LONG_PERIOD,timestamp%SHORT_PERIOD);
  253 + DBG("Timestamp (absolute):\t%ul\r\nTimestamp LONG_PERIOD:\t%ul\r\nTimestamp SHORT_PERIOD:\t%ul\r\n",timestamp,timestamp%LONG_PERIOD,timestamp%SHORT_PERIOD);
276 254 delay = getSystemTime();
277   - printf("Timestamping data...\r\n");
278   - char** values=timestamp_datas(valueSensors,timestamp,sensors);
279   - printf("Putting data in buffer...\r\n");
  255 + values=timestamp_datas(valueSensors,timestamp,sensors);
280 256 put_buffers(buffers,ind,sizes,values,sensors);
281   - printf("Data is now in buffer...\n\r");
  257 + DBG("Data is now in buffer\n\r");
282 258 if (i == LONG_PERIOD/SHORT_PERIOD )
283 259 {
284   - printf("Programmed Send cycle...\r\n");
285   - /* Wi-Fi connect */
286   - printf("Connecting to wifi...\r\n");
  260 + DBG("Programmed send cycle...\r\n");
287 261 wifi_connect();
288   - /* Send data to server, empty the buffer */
289 262 send_data(buffers, ind, sizes, sensors);
290   - printf("Data sent!\r\n");
291   - //Now sending battery level
292 263 send_battery_level(timestamp);
293 264 update_time(&time);
294 265 delay = getSystemTime();
295 266 wifi_disconnect();
296   - printf("new ntp time (absolute):\t%ul\r\ntime mod LONG_PERIOD:\t%ul\r\ntime mod SHORT_PERIOD:\t%ul\r\n",time,time%LONG_PERIOD,time%SHORT_PERIOD);
  267 + DBG("New NTP time (absolute):\t%ul\r\nTime LONG_PERIOD:\t%ul\r\nTime SHORT_PERIOD:\t%ul\r\n",time,time%LONG_PERIOD,time%SHORT_PERIOD);
297 268 i = 0;
298 269 }
299   -
300   - printf("mirant memoria\r\n");
301   - int res=check_memory();
  270 + res=check_memory();
302 271 if(res==SOFT_REACHED)
303 272 {
304   - printf("--------------soft limit-------------\r\n");
  273 + DBG("%c[1;35m--------------SOFT LIMIT-------------%c[1;00m\r\n",0x1B,0x1B);
305 274 wifi_connect();
306 275 send_data(buffers, ind, sizes, sensors);
307 276 //Now sending battery level
... ... @@ -310,7 +279,7 @@ int main(void)
310 279 }
311 280 else if(res==HARD_REACHED)
312 281 {
313   - printf("--------------hard limit-------------\r\n");
  282 + DBG("%c[1;35m--------------HARD LIMIT-------------%c[1;00m\r\n",0x1B,0x1B);
314 283 wifi_connect();
315 284 char id_0[3];
316 285 sprintf(id_0,"%x",sensors[0]);
... ... @@ -320,37 +289,23 @@ int main(void)
320 289 // Intentem enviar un buffer sencer, a veure si ja podem buidar.
321 290 // No podem enviar només una mostra perquè json és rígid en aquest sentit.
322 291  
323   - printf("hard_reached and unable to sentd.\r\nLa biblia en vers: i Jesús digué: Aixeca't, Llàtzer!!\r\n");
  292 + DBG("[HARD LIMIT] unable to send\r\n");
324 293 chThdSleepMilliseconds(HARD_LIMIT_WAIT_TIME);
325 294 }
326   - int j;
327 295 for(j=1;j<sensors_length;j++)
328 296 {
329 297  
330   - printf(" enviant buffer %d\r\n",j);
331   - char id[3];
  298 + DBG("Sending buffer %d\r\n",j);
332 299 sprintf(id,"%x",sensors[j]);
333   - int ok=send(buffers[j],&ind[j],&sizes[j], mod.ID, id);
334   - if(ok==JSON_COMM_ERROR)
335   - {
336   - printf("wismart is not connected\r\n");
337   - }
338   - else if( ok==JSON_OTHER_ERROR){
339   - printf("some error ocurred\r\n");
340   - }
341   - else if(ok ==JSON_POST_OK){
342   - printf(" send OK \r\n");
343   - }
  300 + send(buffers[j],&ind[j],&sizes[j], mod.ID, id);
344 301 }
345 302 //Now sending battery level
346 303 send_battery_level(timestamp);
347 304 wifi_disconnect();
348 305 }
349 306 time += getElapsedTime(delay);
350   - printf("time (absolute):\t%ul\r\ntime mod LONG_PERIOD:\t%ul\r\ntime mod SHORT_PERIOD:\t%ul\r\n",time,time%LONG_PERIOD,time%SHORT_PERIOD);
351   -
  307 + DBG("Time (absolute):\t%ul\r\nTime LONG_PERIOD:\t%ul\r\nTime SHORT_PERIOD:\t%ul\r\n",time,time%LONG_PERIOD,time%SHORT_PERIOD);
352 308 delay = getSystemTime();
353   - printf("Time to sleep! for %d seconds\r\n", SHORT_PERIOD - time%SHORT_PERIOD);
354 309 sleep_thread(SHORT_PERIOD - time%SHORT_PERIOD);
355 310 i++;
356 311 }
... ... @@ -361,4 +316,4 @@ int main(void)
361 316 *
362 317 * - Test distance
363 318 * - Reset timer-related defines
364   - */
365 319 \ No newline at end of file
  320 + */
... ...
Project/applications/smartcities/ntp.c
... ... @@ -113,38 +113,38 @@ unsigned long getSecsSince1900 (void)
113 113 memcpy(&timestamp, (sntp_response + SNTP_RCV_TIME_OFS), sizeof(timestamp));
114 114 timestamp=(ntohl(timestamp));
115 115  
116   - printf("Received timestamp %u\r\n", timestamp);
  116 + DBG_NTP("Received timestamp %u\r\n", timestamp);
117 117 }
118 118 else
119 119 {
120   - printf("Received data did not match frame code\r\n");
  120 + DBG_NTP("[ERROR] Received data did not match frame code\r\n");
121 121 }
122 122 }
123 123 else
124 124 {
125   - printf("Length of data did not match SNTP_MAX_DATA_LEN, received len %u\r\n", dataLen);
  125 + DBG_NTP("[ERROR] Length of data did not match SNTP_MAX_DATA_LEN, received len %u\r\n", dataLen);
126 126 }
127 127 // Deallocate space hold for netbuf structure.
128 128 netbuf_delete(receiveUDPNetBuf);
129 129 }
130 130 else
131 131 {
132   - printf("Netconn receive failed with %d\r\n", netconn_err(sendUDPNetConn));
  132 + DBG_NTP("[ERROR] Netconn receive failed with %d\r\n", netconn_err(sendUDPNetConn));
133 133 }
134 134 }
135 135 else
136 136 {
137   - printf("Netconn sendto failed with %d\r\n", errLWIP);
  137 + DBG_NTP("[ERROR] Netconn sendto failed with %d\r\n", errLWIP);
138 138 }
139 139 }
140 140 else
141 141 {
142   - printf("Netconn connect to server %X, port %u failed with %d\r\n", sntp_server_address.addr, SNTP_PORT, errLWIP);
  142 + DBG_NTP("[ERROR] Netconn connect to server %X, port %u failed with %d\r\n", sntp_server_address.addr, SNTP_PORT, errLWIP);
143 143 }
144 144 }
145 145 else
146 146 {
147   - printf("Netconn or netbuf or data allocation failed.\r\n");
  147 + DBG_NTP("[ERROR] Netconn or netbuf or data allocation failed.\r\n");
148 148 }
149 149 // Deallocate space hold for netconn and netbuf structure.
150 150 netbuf_delete(sendUDPNetBuf);
... ... @@ -152,7 +152,7 @@ unsigned long getSecsSince1900 (void)
152 152 } //if (sntp_server_address != 0)
153 153 else
154 154 {
155   - printf("Invalid NTP server address %X\r\n", SNTP_SERVER_ADDRESS);
  155 + DBG_NTP("[ERROR] Invalid NTP server address %X\r\n", SNTP_SERVER_ADDRESS);
156 156 }
157 157  
158 158 return (unsigned long) timestamp;
... ...
Project/applications/smartcities/sensors.c
... ... @@ -14,7 +14,7 @@ void wakeup_sensors(uint8_t logic_address)
14 14 // X X X PA7 PA6 PA5 PA4 PA3
15 15 // b7 b6 b5 b4 b3 b2 b1 b0
16 16  
17   - printf("GRAB A BRUSH AND PUT A LITTLE MAKE-UP\r\n");
  17 + DBG_SENSORS("Waking up sensors...\r\n");
18 18 GPIO_InitTypeDef GPIO_InitStructure;
19 19 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
20 20 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
... ... @@ -24,47 +24,52 @@ void wakeup_sensors(uint8_t logic_address)
24 24  
25 25 if(logic_address & 0x1)
26 26 {
27   - printf("Woken Pin 3\r\n");
  27 + DBG_SENSORS("Woken Pin 3\r\n");
28 28 GPIO_SetBits(GPIOA,GPIO_Pin_3);
29 29 }
30 30 else
31 31 {
  32 + DBG_SENSORS("Pin 3 gone low\r\n");
32 33 GPIO_ResetBits(GPIOA,GPIO_Pin_3);
33 34 }
34 35 if(logic_address & 0x2)
35 36 {
36   - printf("Woken Pin 4\r\n");
  37 + DBG_SENSORS("Woken Pin 4\r\n");
37 38 GPIO_SetBits(GPIOA,GPIO_Pin_4);
38 39 }
39 40 else
40 41 {
  42 + DBG_SENSORS("Pin 4 gone low\r\n");
41 43 GPIO_ResetBits(GPIOA,GPIO_Pin_4);
42 44 }
43 45 if(logic_address & 0x4)
44 46 {
45   - printf("Woken Pin 5\r\n");
  47 + DBG_SENSORS("Woken Pin 5\r\n");
46 48 GPIO_SetBits(GPIOA,GPIO_Pin_5);
47 49 }
48 50 else
49 51 {
  52 + DBG_SENSORS("Pin 5 gone low\r\n");
50 53 GPIO_ResetBits(GPIOA,GPIO_Pin_5);
51 54 }
52 55 if(logic_address & 0x8)
53 56 {
54   - printf("Woken Pin 6\r\n");
  57 + DBG_SENSORS("Woken Pin 6\r\n");
55 58 GPIO_SetBits(GPIOA,GPIO_Pin_6);
56 59 }
57 60 else
58 61 {
  62 + DBG_SENSORS("Pin 6 gone low\r\n");
59 63 GPIO_ResetBits(GPIOA,GPIO_Pin_6);
60 64 }
61 65 if(logic_address & 0x10)
62 66 {
63   - printf("Woken Pin 7\r\n");
  67 + DBG_SENSORS("Woken Pin 7\r\n");
64 68 GPIO_SetBits(GPIOA,GPIO_Pin_7);
65 69 }
66 70 else
67 71 {
  72 + DBG_SENSORS("Pin 7 gone low\r\n");
68 73 GPIO_ResetBits(GPIOA,GPIO_Pin_7);
69 74 }
70 75 }
... ... @@ -74,10 +79,10 @@ uint32_t get_light_data(void)
74 79 uint32_t data = 0;
75 80  
76 81 data = get_light_ch1();
77   - printf("LIGHT: Got ch1\r\n");
  82 + DBG_SENSORS("[LIGHT] Got ch1\r\n");
78 83 data = data << 16;
79 84 data = data | get_light_ch0();
80   - printf("LIGHT: Got ch0\r\n");
  85 + DBG_SENSORS("[LIGHT] Got ch0\r\n");
81 86 return data;
82 87 }
83 88 uint16_t get_light_ch0(void)
... ... @@ -86,13 +91,13 @@ uint16_t get_light_ch0(void)
86 91  
87 92 I2C_start(I2C1,LIGHT_ADDR << 1, I2C_Direction_Transmitter);
88 93 I2C_write(I2C1, 0x0C);
89   - printf("LIGHT: Sent fetch command for CH1\r\n");
  94 + DBG_SENSORS("[LIGHT] Sent fetch command for CH1\r\n");
90 95  
91 96 I2C_restart(I2C1, LIGHT_ADDR << 1, I2C_Direction_Receiver);
92 97 data = I2C_read_ack(I2C1);
93   - printf("LIGHT: Got low byte for CH1\r\n");
  98 + DBG_SENSORS("[LIGHT] Got low byte for CH1\r\n");
94 99 data = data | (I2C_read_nack(I2C1) << 8);
95   - printf("LIGHT: Got high byte for CH1\r\n");
  100 + DBG_SENSORS("[LIGHT] Got high byte for CH1\r\n");
96 101 I2C_stop(I2C1);
97 102  
98 103 return data;
... ... @@ -103,13 +108,13 @@ uint16_t get_light_ch1(void)
103 108  
104 109 I2C_start(I2C1,LIGHT_ADDR << 1, I2C_Direction_Transmitter);
105 110 I2C_write(I2C1, 0x0E);
106   - printf("LIGHT: Sent fetch command for CH1\r\n");
  111 + DBG_SENSORS("[LIGHT] Sent fetch command for CH1\r\n");
107 112  
108 113 I2C_restart(I2C1, LIGHT_ADDR << 1, I2C_Direction_Receiver);
109 114 data = I2C_read_ack(I2C1);
110   - printf("LIGHT: Got low byte for CH1\r\n");
  115 + DBG_SENSORS("[LIGHT] Got low byte for CH1\r\n");
111 116 data = data | (I2C_read_nack(I2C1) << 8);
112   - printf("LIGHT: Got high byte for CH1\r\n");
  117 + DBG_SENSORS("[LIGHT] Got high byte for CH1\r\n");
113 118 I2C_stop(I2C1);
114 119  
115 120 return data;
... ... @@ -135,7 +140,7 @@ void init_ultrasound(void)
135 140 uint16_t get_distance_data(void)
136 141 {
137 142 init_ultrasound();
138   - printf("DISTANCE: Initialized\r\n");
  143 + DBG_SENSORS("[DISTANCE] Initialized\r\n");
139 144  
140 145 uint16_t data;
141 146 I2C_start(I2C1,DISTANCE_ADDR << 1, I2C_Direction_Transmitter);
... ... @@ -143,10 +148,10 @@ uint16_t get_distance_data(void)
143 148  
144 149 I2C_restart(I2C1, DISTANCE_ADDR << 1, I2C_Direction_Receiver);
145 150 data = I2C_read_ack(I2C1);
146   - printf("DISTANCE: Got high byte\r\n");
  151 + DBG_SENSORS("[DISTANCE] Got high byte\r\n");
147 152 data = data << 8;
148 153 data = data | I2C_read_nack(I2C1);
149   - printf("DISTANCE: Got low byte\r\n");
  154 + DBG_SENSORS("[DISTANCE] Got low byte\r\n");
150 155 I2C_stop(I2C1);
151 156 return data;
152 157 }
... ... @@ -180,7 +185,7 @@ void init_pressure_temperature(void)
180 185  
181 186 bmp085_callibration get_pressure_callibration_data(void)
182 187 {
183   - printf("PRESSURE: Fetching callibration data\r\n");
  188 + DBG_SENSORS("[PRESSURE] Fetching callibration data\r\n");
184 189 bmp085_callibration calib_data;
185 190  
186 191 I2C_start(I2C1,PRESSURE_ADDR << 1, I2C_Direction_Transmitter);
... ... @@ -260,7 +265,7 @@ bmp085_callibration get_pressure_callibration_data(void)
260 265 calib_data.MD |= I2C_read_nack(I2C1);
261 266 I2C_stop(I2C1);
262 267  
263   - printf("PRESSURE: Got callibration data\r\n");
  268 + DBG_SENSORS("[PRESSURE] Got callibration data\r\n");
264 269 return calib_data;
265 270 }
266 271  
... ... @@ -286,16 +291,16 @@ uint16_t get_pressure_data(void)
286 291 {
287 292 uint16_t data;
288 293 init_pressure();
289   - printf("PRESSURE: Initialized\r\n");
  294 + DBG_SENSORS("[PRESSURE] Initialized\r\n");
290 295 I2C_start(I2C1,PRESSURE_ADDR << 1, I2C_Direction_Transmitter);
291 296 I2C_write(I2C1, 0xF6);
292 297  
293 298 I2C_restart(I2C1, PRESSURE_ADDR << 1, I2C_Direction_Receiver);
294 299 data = I2C_read_ack(I2C1);
295   - printf("PRESSURE: Got high byte\r\n");
  300 + DBG_SENSORS("[PRESSURE] Got high byte\r\n");
296 301 data = data << 8;
297 302 data = data | I2C_read_nack(I2C1);
298   - printf("PRESSURE: Got low byte\r\n");
  303 + DBG_SENSORS("[PRESSURE] Got low byte\r\n");
299 304 I2C_stop(I2C1);
300 305 return data;
301 306 }
... ... @@ -304,16 +309,16 @@ uint16_t get_pressure_temperature_data(void)
304 309 {
305 310 uint16_t data;
306 311 init_pressure_temperature();
307   - printf("PRESSURE: Initialized temperature\r\n");
  312 + DBG_SENSORS("[PRESSURE] Initialized temperature\r\n");
308 313 I2C_start(I2C1,PRESSURE_ADDR << 1, I2C_Direction_Transmitter);
309 314 I2C_write(I2C1, 0xF6);
310 315  
311 316 I2C_restart(I2C1, PRESSURE_ADDR << 1, I2C_Direction_Receiver);
312 317 data = I2C_read_ack(I2C1);
313   - printf("PRESSURE: Got temperature high byte\r\n");
  318 + DBG_SENSORS("[PRESSURE] Got temperature high byte\r\n");
314 319 data = data << 8;
315 320 data = data | I2C_read_nack(I2C1);
316   - printf("PRESSURE: Got temperature low byte\r\n");
  321 + DBG_SENSORS("[PRESSURE] Got temperature low byte\r\n");
317 322 I2C_stop(I2C1);
318 323 return data;
319 324 }
... ... @@ -327,39 +332,39 @@ char* pressure_value(uint16_t pressure, uint16_t temperature)
327 332  
328 333 void init_humidity_temp(void)
329 334 {
330   - printf("HUMIDITY: Initializing sensor\r\n");
  335 + DBG_SENSORS("[HUMIDITY_TEMP] Initializing sensor\r\n");
331 336 I2C_start(I2C1,HUMIDITY_TEMP_ADDR << 1, I2C_Direction_Transmitter);
332 337 I2C_stop(I2C1);
333 338 }
334 339 uint16_t get_humidity_data(void)
335 340 {
336 341 init_humidity_temp();
337   - printf("HUMIDITY_TEMP: Initialized humidity\r\n");
  342 + DBG_SENSORS("[HUMIDITY_TEMP] Initialized humidity\r\n");
338 343 uint16_t data = 0;
339 344 I2C_start(I2C1,HUMIDITY_TEMP_ADDR << 1, I2C_Direction_Receiver);
340 345 data = I2C_read_ack(I2C1) & 0x3F;
341   - printf("HUMIDITY_TEMP: Got humidity high byte\r\n");
  346 + DBG_SENSORS("[HUMIDITY_TEMP] Got humidity high byte\r\n");
342 347 data = data << 8;
343 348 data |= I2C_read_nack(I2C1);
344   - printf("HUMIDITY_TEMP: Got humidity low byte\r\n");
  349 + DBG_SENSORS("[HUMIDITY_TEMP] Got humidity low byte\r\n");
345 350 I2C_stop(I2C1);
346 351 return data;
347 352 }
348 353 uint16_t get_temperature_data(void)
349 354 {
350 355 init_humidity_temp();
351   - printf("HUMIDITY_TEMP: Initialized temperature\r\n");
  356 + DBG_SENSORS("[HUMIDITY_TEMP] Initialized temperature\r\n");
352 357 uint16_t data = 0;
353 358 I2C_start(I2C1,HUMIDITY_TEMP_ADDR << 1, I2C_Direction_Receiver);
354 359 I2C_read_ack(I2C1);
355   - printf("HUMIDITY_TEMP: Discarded first humidity byte\r\n");
  360 + DBG_SENSORS("[HUMIDITY_TEMP] Discarded first humidity byte\r\n");
356 361 I2C_read_ack(I2C1);
357   - printf("HUMIDITY_TEMP: Discarded second humidity byte\r\n");
  362 + DBG_SENSORS("[HUMIDITY_TEMP] Discarded second humidity byte\r\n");
358 363 data = I2C_read_ack(I2C1);
359   - printf("HUMIDITY_TEMP: Got temperature high byte\r\n");
  364 + DBG_SENSORS("[HUMIDITY_TEMP] Got temperature high byte\r\n");
360 365 data = data << 8;
361 366 data |= I2C_read_nack(I2C1) & 0xFC ;
362   - printf("HUMIDITY_TEMP: Got temperature low byte\r\n");
  367 + DBG_SENSORS("[HUMIDITY_TEMP] Got temperature low byte\r\n");
363 368 data = data >> 2;
364 369 I2C_stop(I2C1);
365 370 return data;
... ... @@ -406,45 +411,48 @@ char* battery_value(uint32_t battery)
406 411 return value;
407 412 }
408 413  
409   -void collectData(char* valueSensors[], uint8_t* sensors){
  414 +void collectData(char* valueSensors[], uint8_t* sensors)
  415 +{
  416 + DBG_SENSORS("Collecting data...\r\n");
410 417 uint8_t i;
411 418 for(i=0;i<strlen((char*)sensors);i++)
412 419 {
413 420  
414 421 if(valueSensors[i]!=NULL)
415 422 {
416   - printf("Freeing memory from previous entry on index %d\r\n",i);
  423 + DBG_SENSORS("Freeing memory from previous entry on index %d\r\n",i);
417 424 chHeapFree(valueSensors[i]);
418 425 }
419 426 else
420 427 {
421   - printf("Not freeing memory on index %d\r\n",i);
  428 + DBG_SENSORS("Not freeing memory on index %d\r\n",i);
422 429 }
423 430  
424 431 if(sensors[i]==LIGHT_ADDR)
425 432 {
426   - printf("Fetching data from light sensor\r\n");
  433 + DBG_SENSORS("Fetching data from light sensor\r\n");
427 434 valueSensors[i]=light_value(get_light_data());
428 435 }
429 436 else if(sensors[i]==DISTANCE_ADDR)
430 437 {
431   - printf("Fetching data from distance sensor\r\n");
  438 + DBG_SENSORS("Fetching data from distance sensor\r\n");
432 439 valueSensors[i]=distance_value(get_distance_data());
433 440 }
434 441 else if(sensors[i]==SOUND_ADDR)
435 442 {
436   - printf("Fetching data from sound sensor\r\n");
  443 + DBG_SENSORS("Fetching data from sound sensor\r\n");
437 444 valueSensors[i]=sound_value(get_sound_data());
438 445 }
439 446 else if(sensors[i]==PRESSURE_ADDR)
440 447 {
441   - printf("Fetching data from pressure sensor\r\n");
  448 + DBG_SENSORS("Fetching data from pressure sensor\r\n");
442 449 valueSensors[i]=pressure_value(get_pressure_data(), get_pressure_temperature_data());
443 450 }
444 451 else if(sensors[i]==HUMIDITY_TEMP_ADDR)
445 452 {
446   - printf("Fetching data from humidity and temperature sensor\r\n");
  453 + DBG_SENSORS("Fetching data from humidity and temperature sensor\r\n");
447 454 valueSensors[i]=temp_humidity_value(get_temperature_data(),get_humidity_data());
448 455 }
449 456 }
  457 + DBG_SENSORS("Data collected...\r\n");
450 458 }
451 459 \ No newline at end of file
... ...
Project/applications/smartcities/timer-loop.c
... ... @@ -30,5 +30,6 @@ unsigned long getElapsedTime(unsigned long t)
30 30  
31 31 void sleep_thread(unsigned long seconds)
32 32 {
  33 + DBG_TIMER("Time to sleep! for %d seconds\r\n", seconds);
33 34 chThdSleepMilliseconds( (unsigned int)seconds*1000 );
34 35 }
35 36 \ No newline at end of file
... ...