Parsing rest data with cJSON lib. New restcurl function: getRestSensor()

This commit is contained in:
2017-08-27 01:35:12 +02:00
parent 740589b158
commit 98a0e3ff5f
5 changed files with 2987 additions and 2 deletions

View File

@@ -31,7 +31,7 @@ static size_t write_data(void *ptr, size_t size, size_t nmemb, struct url_data *
return size * nmemb;
}
char *handle_url(char *url) {
static char *handle_url(char *url) {
CURL *curl;
struct url_data data;
@@ -63,3 +63,19 @@ char *handle_url(char *url) {
return data.data;
}
int getRestSensor(sensor *sensor) {
char *data = handle_url(sensor->ip);
if (data) {
cJSON *jsondata = cJSON_Parse(data);
cJSON *temperature = cJSON_GetObjectItemCaseSensitive(jsondata, "temperature");
cJSON *humidity = cJSON_GetObjectItemCaseSensitive(jsondata, "humidity");
sensor->temperature = (float)temperature->valuedouble;
sensor->humidity = (float)humidity->valuedouble;
//free
cJSON_Delete(jsondata);
return 1;
}
return 0;
}