Commit e2524268c0a65589e9ffd2aa866d0243496b0a6d
1 parent
3f393e23
Documentation finished
Showing
3 changed files
with
178 additions
and
35 deletions
Project/applications/smartcities/include/httpClient.h
1 | -/* | ||
2 | - * Custom http client implementation based on httpServer | 1 | + |
2 | +/**@file | ||
3 | + * @brief Definition for the HTTP Client functions | ||
4 | + * @author Ferràn Quer i Guerrero | ||
5 | + * @date 08/06/2014 | ||
3 | * | 6 | * |
7 | + * Custom http client implementation based on httpServer | ||
4 | */ | 8 | */ |
9 | + | ||
5 | #ifndef HTTP_CLIENT_H | 10 | #ifndef HTTP_CLIENT_H |
6 | #define HTTP_CLIENT_H | 11 | #define HTTP_CLIENT_H |
7 | 12 | ||
@@ -14,39 +19,59 @@ | @@ -14,39 +19,59 @@ | ||
14 | #include "ch.h" | 19 | #include "ch.h" |
15 | #include "globals.h" | 20 | #include "globals.h" |
16 | 21 | ||
17 | -#define DEFAULT_REMOTE_IP "147.83.2.135" // www.upc.edu | 22 | +//! Default remote port (HTTP) |
18 | #define DEFAULT_REMOTE_PORT 80 | 23 | #define DEFAULT_REMOTE_PORT 80 |
24 | +//! Endline definition | ||
19 | #define ENDL "\r\n" | 25 | #define ENDL "\r\n" |
26 | +//! Content-type header string | ||
20 | #define CONTENT_TYPE_HEADER "Content-Type: application/json; charset=UTF-8" | 27 | #define CONTENT_TYPE_HEADER "Content-Type: application/json; charset=UTF-8" |
21 | 28 | ||
29 | +//! Debug printing definition | ||
30 | +/*! This definition is used for debugging purposes, it is a shorthand for printing debug information */ | ||
22 | #define DBG_HTTP(fmt,...) printf("%c[1;35mhttpClient.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__) | 31 | #define DBG_HTTP(fmt,...) printf("%c[1;35mhttpClient.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__) |
23 | //#define DBG_HTTP(fmt,...) printf("") | 32 | //#define DBG_HTTP(fmt,...) printf("") |
24 | 33 | ||
25 | - | 34 | +//! Available Request Methods |
26 | typedef enum reqMethod | 35 | typedef enum reqMethod |
27 | { | 36 | { |
37 | + //! POST request | ||
28 | post, | 38 | post, |
39 | + //! GET request | ||
29 | get, | 40 | get, |
41 | + //! PUT request | ||
30 | put, | 42 | put, |
43 | + //! DELETE request | ||
31 | del //delete may be a special word. | 44 | del //delete may be a special word. |
32 | 45 | ||
33 | }reqMethod; | 46 | }reqMethod; |
34 | 47 | ||
48 | +//! HTTP request header parameters | ||
35 | typedef struct httpHeaders | 49 | typedef struct httpHeaders |
36 | { | 50 | { |
51 | + //! Request method | ||
37 | enum reqMethod method; | 52 | enum reqMethod method; |
53 | + //! URI to send the request to | ||
38 | char* uri; | 54 | char* uri; |
55 | + //! Size of the URI string | ||
39 | int uri_size; | 56 | int uri_size; |
57 | + //! HTTP host to send the request | ||
40 | char* host; | 58 | char* host; |
59 | + //! HTTP host string length | ||
41 | int host_size; | 60 | int host_size; |
42 | 61 | ||
43 | }httpHeaders; | 62 | }httpHeaders; |
44 | 63 | ||
45 | - | ||
46 | -int httpRequest(struct httpHeaders head, char* content, int content_size); | ||
47 | -const char* reqMethod2text(enum reqMethod method); | ||
48 | -char* int2string(int num); | ||
49 | -int numberofdigits(int number); | ||
50 | -int response2int(char* chars); | 64 | +//! HTTP Client request function |
65 | +/*! This function sends a HTTP request with the specified headers and content passed by argument. */ | ||
66 | +int httpRequest(struct httpHeaders head /*! HTTP Header parameters */, char* content /*! Content to send */, int content_size /*! Content length */); | ||
67 | +//! Translates each request method from the enum to its string | ||
68 | +const char* reqMethod2text(enum reqMethod method /*! Method to translate */); | ||
69 | +//! Converts and returns an integer passed by argument as a string | ||
70 | +char* int2string(int num /*! Number to convert */); | ||
71 | +//! Calculates and returns the number of digits of a number passed by argument | ||
72 | +int numberofdigits(int number /*! Number to count */); | ||
73 | +//! HTTP response parsing function | ||
74 | +/*! This function parses the HTTP response and returns the HTTP response code. */ | ||
75 | +int response2int(char* chars /*! HTTP response */); | ||
51 | 76 | ||
52 | #endif | 77 | #endif |
53 | \ No newline at end of file | 78 | \ No newline at end of file |
Project/applications/smartcities/include/ntp.h
1 | + | ||
2 | +/**@file | ||
3 | + * @brief Definition for the NTP functions | ||
4 | + * @author Emilio Soca Herrera | ||
5 | + * @date 08/06/2014 | ||
6 | + * | ||
7 | + * The functions declared in this file manage the NTP functionality of the device to update local time and timestamp data | ||
8 | + */ | ||
9 | + | ||
1 | #ifndef NTP_H | 10 | #ifndef NTP_H |
2 | #define NTP_H | 11 | #define NTP_H |
3 | 12 | ||
@@ -18,29 +27,42 @@ | @@ -18,29 +27,42 @@ | ||
18 | #include "ch.h" | 27 | #include "ch.h" |
19 | #include "globals.h" | 28 | #include "globals.h" |
20 | 29 | ||
30 | +//! Debug printing definition | ||
31 | +/*! This definition is used for debugging purposes, it is a shorthand for printing debug information */ | ||
21 | #define DBG_NTP(fmt,...) printf("%c[1;35mntp.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__) | 32 | #define DBG_NTP(fmt,...) printf("%c[1;35mntp.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__) |
22 | //#define DBG_NTP(fmt,...) printf("") | 33 | //#define DBG_NTP(fmt,...) printf("") |
23 | 34 | ||
35 | +//! Leap year calculation define | ||
24 | #define LEAP_YEAR(Y) (((1970+Y)>0) && !((1970+Y)%4) && (((1970+Y)%100) || !((1970+Y)%400))) | 36 | #define LEAP_YEAR(Y) (((1970+Y)>0) && !((1970+Y)%4) && (((1970+Y)%100) || !((1970+Y)%400))) |
37 | +//! Length of NTP packet | ||
25 | #define NTP_PACKET_LENGTH 48 | 38 | #define NTP_PACKET_LENGTH 48 |
39 | +//! NTP Port | ||
26 | #define SNTP_PORT 123 | 40 | #define SNTP_PORT 123 |
27 | -/** SNTP receive timeout - in milliseconds */ | 41 | +//! SNTP receive timeout - in milliseconds |
28 | #define SNTP_RECV_TIMEOUT 3000 | 42 | #define SNTP_RECV_TIMEOUT 3000 |
29 | -/** SNTP update delay - in milliseconds */ | 43 | +//! SNTP update delay - in milliseconds |
30 | #define SNTP_UPDATE_DELAY 60000 | 44 | #define SNTP_UPDATE_DELAY 60000 |
45 | +//! Maximum packet length | ||
31 | #define SNTP_MAX_DATA_LEN 48 | 46 | #define SNTP_MAX_DATA_LEN 48 |
47 | +//! NTP receive time offset | ||
32 | #define SNTP_RCV_TIME_OFS 32 | 48 | #define SNTP_RCV_TIME_OFS 32 |
33 | #define SNTP_LI_NO_WARNING 0x00 | 49 | #define SNTP_LI_NO_WARNING 0x00 |
50 | +//! NTP version specification | ||
34 | #define SNTP_VERSION (4/* NTP Version 4*/<<3) | 51 | #define SNTP_VERSION (4/* NTP Version 4*/<<3) |
52 | +//! NTP Client mode definition | ||
35 | #define SNTP_MODE_CLIENT 0x03 | 53 | #define SNTP_MODE_CLIENT 0x03 |
54 | +//! NTP Server mode definition | ||
36 | #define SNTP_MODE_SERVER 0x04 | 55 | #define SNTP_MODE_SERVER 0x04 |
56 | +//! NTP Broadcast mode definition | ||
37 | #define SNTP_MODE_BROADCAST 0x05 | 57 | #define SNTP_MODE_BROADCAST 0x05 |
58 | +//! NTP Mask mode definition | ||
38 | #define SNTP_MODE_MASK 0x07 | 59 | #define SNTP_MODE_MASK 0x07 |
39 | -/* number of seconds between 1900 and 1970 */ | 60 | +//! Number of seconds between 1900 and 1970 |
40 | #define DIFF_SEC_1900_1970 (2208988800LL) | 61 | #define DIFF_SEC_1900_1970 (2208988800LL) |
41 | -/*timezone from GMT*/ | 62 | +//! Timezone from GMT |
42 | #define TIME_ZONE 2 | 63 | #define TIME_ZONE 2 |
43 | 64 | ||
65 | +//! Date structure definition | ||
44 | typedef struct { | 66 | typedef struct { |
45 | int second; | 67 | int second; |
46 | int minute; | 68 | int minute; |
@@ -50,10 +72,13 @@ typedef struct { | @@ -50,10 +72,13 @@ typedef struct { | ||
50 | int year; | 72 | int year; |
51 | }Date; | 73 | }Date; |
52 | 74 | ||
53 | -char* timestamp_data(char* value,Date time); | 75 | +//! Data timestamping function |
76 | +/*! Adds a timestamp to the data passed by argument and returns a new string with the data timestamped .*/ | ||
77 | +char* timestamp_data(char* value /*! Data to timestamp */,Date time /*! Timestamp */); | ||
78 | +//! This function returns the number of seconds since 1900 | ||
54 | unsigned long getSecsSince1900(void); | 79 | unsigned long getSecsSince1900(void); |
55 | -Date getDate(unsigned long); | ||
56 | -void udpNtp_test(void); | ||
57 | - | 80 | +//! Timestamp to Date converting function |
81 | +/*! This function converts a timestamp to a Date struct and returns the resulting struct. */ | ||
82 | +Date getDate(unsigned long secsSince1900/*! Timestamp to convert */); | ||
58 | 83 | ||
59 | #endif | 84 | #endif |
Project/applications/smartcities/include/sensors.h
1 | + | ||
2 | +/**@file | ||
3 | + * @brief Definition for the sensors and sensor related functions | ||
4 | + * @author Imanol Barba Sabariego | ||
5 | + * @date 08/06/2014 | ||
6 | + * | ||
7 | + * Here are the sensor definitions and all the functions needed to fetch and parse data from the sensors. | ||
8 | + * <br> REMEMBER TO UPDATE I2C SENSORS IN SENSOR DEFINITIONS IN THIS HEADER AND IN sensors.c WITH EACH NEW SENSOR!!!! | ||
9 | + */ | ||
10 | + | ||
1 | #ifndef SENSORS_H | 11 | #ifndef SENSORS_H |
2 | #define SENSORS_H | 12 | #define SENSORS_H |
3 | 13 | ||
@@ -8,28 +18,55 @@ | @@ -8,28 +18,55 @@ | ||
8 | #include "module.h" | 18 | #include "module.h" |
9 | #include "adc.h" | 19 | #include "adc.h" |
10 | 20 | ||
21 | +//! Light sensor I2C address | ||
11 | #define LIGHT_ADDR 0x39 | 22 | #define LIGHT_ADDR 0x39 |
23 | +//! Distance sensor I2C address | ||
12 | #define DISTANCE_ADDR 0x01 | 24 | #define DISTANCE_ADDR 0x01 |
25 | +//! Pressure sensor I2C address | ||
13 | #define PRESSURE_ADDR 0x77 | 26 | #define PRESSURE_ADDR 0x77 |
27 | +//! Humidity and temperature sensor I2C address | ||
14 | #define HUMIDITY_TEMP_ADDR 0x27 | 28 | #define HUMIDITY_TEMP_ADDR 0x27 |
29 | +//! Sound sensor I2C address | ||
15 | #define SOUND_ADDR 0x48 | 30 | #define SOUND_ADDR 0x48 |
31 | +//! Total number of sensors programmed | ||
32 | +/*! This definition MUST be updated everytime a new sensor is programmed in this file. */ | ||
16 | #define TOTAL_SENSORS 5 | 33 | #define TOTAL_SENSORS 5 |
17 | -//REMEMBER TO UPDATE collectData ROUTINE WITH EACH NEW SENSOR!!!! | ||
18 | -//REMEMBER TO UPDATE I2C sensors in sensor definitions in this header and sensors.c WITH EACH NEW SENSOR!!!! | ||
19 | 34 | ||
20 | -#define BATTERY_ADDR 0x00 //SIEMPRE PRESENTE, NUNCA BUSCAR EN i2c_scan | 35 | +//! Battery I2C address |
36 | +/*! NOTE: This is not a valid I2C address, it serves as identification ID.<br> Never scan the I2C bus looking for this address nor include it in the TOTAL_SENSORS count, | ||
37 | + * as it is assumed that the battery sensor is always present (even without a battery). */ | ||
38 | +#define BATTERY_ADDR 0x00 | ||
21 | 39 | ||
40 | +//! Debug printing definition | ||
41 | +/*! This definition is used for debugging purposes, it is a shorthand for printing debug information */ | ||
22 | #define DBG_SENSORS(fmt,...) printf("%c[1;35msensors.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__) | 42 | #define DBG_SENSORS(fmt,...) printf("%c[1;35msensors.c:%c[1;00m "fmt,0x1B,0x1B, ##__VA_ARGS__) |
23 | //#define DBG_SENSORS(fmt,...) printf("") | 43 | //#define DBG_SENSORS(fmt,...) printf("") |
24 | 44 | ||
45 | +//! Sensor information structure definition | ||
25 | typedef struct { | 46 | typedef struct { |
47 | + //! Sensor ID | ||
26 | uint8_t ID; | 48 | uint8_t ID; |
49 | + //! Sensor description | ||
27 | char* description; | 50 | char* description; |
51 | + //! Sensor type | ||
28 | char* type; | 52 | char* type; |
53 | + //! Unit of data measured | ||
29 | char* unit; | 54 | char* unit; |
30 | } sensor; | 55 | } sensor; |
31 | 56 | ||
32 | -void wakeup_sensors(uint8_t logic_address); | 57 | +//! Sensor power control function |
58 | +/*! This function powers sensors on and off through the GPIO pins and the logical address (NOT THE I2C address) passed by argument. | ||
59 | + * <br>This works using the logical address a a byte and assigning each of the bits as one of the control pins as the following scheme shows: | ||
60 | + * <br>b7 -> X | ||
61 | + * <br>b6 -> X | ||
62 | + * <br>b5 -> X | ||
63 | + * <br>b4 -> PA7 | ||
64 | + * <br>b3 -> PA6 | ||
65 | + * <br>b2 -> PA5 | ||
66 | + * <br>b1 -> PA4 | ||
67 | + * <br>b0 -> PA3 | ||
68 | + */ | ||
69 | +void wakeup_sensors(uint8_t logic_address /*! Logical address to set on the pins */); | ||
33 | 70 | ||
34 | //SENSOR DEFINITIONS | 71 | //SENSOR DEFINITIONS |
35 | extern sensor light_sensor; | 72 | extern sensor light_sensor; |
@@ -44,20 +81,35 @@ extern sensor* sensors[TOTAL_SENSORS+1]; | @@ -44,20 +81,35 @@ extern sensor* sensors[TOTAL_SENSORS+1]; | ||
44 | //SENSOR FUNCTIONS | 81 | //SENSOR FUNCTIONS |
45 | 82 | ||
46 | //LIGHT SENSOR | 83 | //LIGHT SENSOR |
84 | +//! Light sensor intialization function | ||
85 | +/*! This function powers the light sensor on and sends commands to start the light measurement. */ | ||
47 | void init_light(void); | 86 | void init_light(void); |
87 | +//! Light sensor data acquisition function | ||
88 | +/*! This function returns the light data from both CH0 and CH1 channels from the sensors. The data is serialized as CH1:CH0 */ | ||
48 | uint32_t get_light_data(void); | 89 | uint32_t get_light_data(void); |
90 | +//! Light sensor ADC CH0 data fetch function | ||
49 | uint16_t get_light_ch0(void); | 91 | uint16_t get_light_ch0(void); |
92 | +//! Light sensor ADC CH1 data fetch function | ||
50 | uint16_t get_light_ch1(void); | 93 | uint16_t get_light_ch1(void); |
51 | -char* light_value(uint32_t light); | 94 | +//! Light sensor data parsing function |
95 | +/*! This function takes the light numeric value serialized in get_light_data and returns a string to be timestamped and sent to the server. */ | ||
96 | +char* light_value(uint32_t light /*! Numeric value */); | ||
52 | 97 | ||
53 | //ULTRASONIC SENSOR | 98 | //ULTRASONIC SENSOR |
99 | +//! Distance sensor data acquisition function | ||
100 | +/*! This function returns the distance measurement done by the distance sensor. */ | ||
54 | uint16_t get_distance_data(void); | 101 | uint16_t get_distance_data(void); |
102 | +//! Distance sensor intialization function | ||
103 | +/*! This function powers the distance sensor on and sends commands to start the distance measurement. */ | ||
55 | void init_ultrasound(void); | 104 | void init_ultrasound(void); |
56 | -char* distance_value(uint16_t distance); | 105 | +//! Distance sensor data parsing function |
106 | +/*! This function takes the distance numeric value from get_distance_data and returns a string to be timestamped and sent to the server. */ | ||
107 | +char* distance_value(uint16_t distance /*! Numeric value */); | ||
57 | 108 | ||
58 | 109 | ||
59 | //PRESSURE SENSOR | 110 | //PRESSURE SENSOR |
60 | typedef struct bmp085_callibration bmp085_callibration_t; | 111 | typedef struct bmp085_callibration bmp085_callibration_t; |
112 | +//! Pressure sensor callibration parameters | ||
61 | struct bmp085_callibration { | 113 | struct bmp085_callibration { |
62 | uint16_t AC1; | 114 | uint16_t AC1; |
63 | uint16_t AC2; | 115 | uint16_t AC2; |
@@ -71,35 +123,76 @@ struct bmp085_callibration { | @@ -71,35 +123,76 @@ struct bmp085_callibration { | ||
71 | uint16_t MC; | 123 | uint16_t MC; |
72 | uint16_t MD; | 124 | uint16_t MD; |
73 | }; | 125 | }; |
74 | - | 126 | +//! Pressure sensor intialization function |
127 | +/*! This function powers the pressure sensor on and sends commands to start the pressure measurement. */ | ||
75 | void init_pressure(void); | 128 | void init_pressure(void); |
129 | +//! Temperature measurement intialization function | ||
130 | +/*! This function powers the temperature measurement function from the pressure sensor on and sends commands to start the temperature measurement. */ | ||
76 | void init_pressure_temperature(void); | 131 | void init_pressure_temperature(void); |
132 | +//! Pressure sensor data acquisition function | ||
133 | +/*! This function returns the pressure measurement done by the pressure sensor. */ | ||
77 | uint16_t get_pressure_data(void); | 134 | uint16_t get_pressure_data(void); |
135 | +//! Temperature data acquisition from the pressure sensor function | ||
136 | +/*! This function returns the temperature measurement done by the pressure sensor. */ | ||
78 | uint16_t get_pressure_temperature_data(void); | 137 | uint16_t get_pressure_temperature_data(void); |
79 | -void get_pressure_callibration_data(bmp085_callibration_t *calib_data); | ||
80 | -char* callibration_pressure_data_csv(bmp085_callibration_t *parameters); | ||
81 | -char* pressure_value(uint16_t pressure,uint16_t temperature); | 138 | +//! Pressure sensor callibration parameters acquisition function |
139 | +/*! This function retrieves the callibration parameters from the pressure sensor and writes them in the struct passed by argument. */ | ||
140 | +void get_pressure_callibration_data(bmp085_callibration_t *calib_data /*! Struct to write in the callibration parameters */); | ||
141 | +//! Pressure sensor callibration parameters serialization function | ||
142 | +/*! This function returns a string with the callibration parameters passed by argument serialized in the following way: | ||
143 | + * <br>AC1,AC2,AC3,AC4,AC5,AC6,B1,B2,MB,MC,MD | ||
144 | + */ | ||
145 | +char* callibration_pressure_data_csv(bmp085_callibration_t *parameters /*! Callibration parameters to serialize */); | ||
146 | +//! Pressure sensor data parsing function | ||
147 | +/*! This function takes the pressure and temperature numeric value from get_pressure_data and get_pressure_temperature_data and returns a string to be timestamped and sent to the server. | ||
148 | + * <br>NOTE: The data is serialized as Pressure_Value,Temperature_Value | ||
149 | + * <br>NOTE 2: The temperature measurement is mandatory, as the temperature data is used to calculate the true atmospheric pressure from the data returned from the pressure sensor. | ||
150 | + */ | ||
151 | +char* pressure_value(uint16_t pressure /*! Numeric value */,uint16_t temperature /*! Numeric value */); | ||
82 | 152 | ||
83 | //HUMIDITY AND TEMPERATURE SENSOR | 153 | //HUMIDITY AND TEMPERATURE SENSOR |
84 | - | 154 | +//! Temperature and humidity sensor intialization function |
155 | +/*! This function powers the temperature and humidity sensor on and sends commands to start the measurements. */ | ||
85 | void init_humidity_temp(void); | 156 | void init_humidity_temp(void); |
157 | +//! Humidity data acquisition from the humidity and temperature sensor function | ||
158 | +/*! This function returns the humidity measurement done by the temperature and humidity sensor. */ | ||
86 | uint16_t get_humidity_data(void); | 159 | uint16_t get_humidity_data(void); |
160 | +//! Temperature data acquisition from the temperature and humidity function | ||
161 | +/*! This function returns the temperature measurement done by the humidity and temperature sensor. */ | ||
87 | uint16_t get_temperature_data(void); | 162 | uint16_t get_temperature_data(void); |
88 | -char* temp_humidity_value(uint16_t temp, uint16_t humidity); | 163 | +//! Temperature and Humidity sensor data parsing function |
164 | +/*! This function takes the temperature and humidity numeric value from get_distance_data and get_humidity_data and returns a string to be timestamped and sent to the server. | ||
165 | + * <br>NOTE: The data is serialized as Temperature_Value,Humidity_Value | ||
166 | + */ | ||
167 | +char* temp_humidity_value(uint16_t temp /*! Numeric value */, uint16_t humidity /*! Numeric value */); | ||
89 | 168 | ||
90 | //SOUND SENSOR | 169 | //SOUND SENSOR |
91 | - | 170 | +//! Sound sensor intialization function |
171 | +/*! This function intializes the sound ADC channel. */ | ||
92 | void init_sound(void); | 172 | void init_sound(void); |
173 | +//! Sound ADC data sampling function | ||
174 | +/*! This function takes a sample from the sound ADC channel and returns the numeric value. */ | ||
93 | uint32_t get_sound_data(void); | 175 | uint32_t get_sound_data(void); |
94 | -char* sound_value(uint32_t sound); | 176 | +//! Sound sensor data parsing function |
177 | +/*! This function takes the sound pressure level numeric value from get_battery_data and returns a string to be timestamped and sent to the server. */ | ||
178 | +char* sound_value(uint32_t sound /*! Numeric value */); | ||
95 | 179 | ||
96 | //BATTERY SENSOR | 180 | //BATTERY SENSOR |
97 | - | 181 | +//! Battery sensor intialization function. |
182 | +/*! This function intializes the battery ADC channel */ | ||
98 | void init_battery(void); | 183 | void init_battery(void); |
184 | +//! Battery ADC data sampling function. | ||
185 | +/*! This function takes a sample from the battery ADC channel and returns the numeric value */ | ||
99 | uint32_t get_battery_data(void); | 186 | uint32_t get_battery_data(void); |
100 | -char* battery_value(uint32_t battery); | 187 | +//! Battery sensor data parsing function |
188 | +/*! This function takes the battery level numeric value from get_battery_data and returns a string to be timestamped and sent to the server. */ | ||
189 | +char* battery_value(uint32_t battery /*! Numeric value */); | ||
101 | 190 | ||
102 | //Collect function | 191 | //Collect function |
103 | -void collectData(char* valueSensors[], uint8_t* sensors); | 192 | +//! Data fetching function |
193 | +/*! Polls every one of the currently connected sensors for data. | ||
194 | + * <br>NOTE: This routine is dependant on the sensors programmed and MUST be updated everytime a new sensor is programmed in this file. | ||
195 | + */ | ||
196 | +void collectData(char* valueSensors[] /*! Output array for each one of the sensors that are passed by argument*/, uint8_t* sensors /*! Sensors where data has to be collected from */); | ||
104 | 197 | ||
105 | #endif | 198 | #endif |