Étape 8: Mise en Intel IOT C ++ à friser JSON à base de feu
Alors qu’Intel Edison fournit des instructions pour que l’Intel IOT Edison exécute API REST appelle avec python et bibliothèque javascript, C++ la documentation fait défaut. Cet exemple de code (http://curl.haxx.se/libcurl/c/http-post.html) ainsi que les instructions ci-dessous explique comment obtenir environnement C++ du Conseil Intel IOT Edison pour effectuer des appels CURL.
1. inclure les fichiers .h en haut de votre fichier cpp :
#include <stdio.h>
#include <curl/curl.h>
2. Assurez-vous que la courbure est lié à la configuration de propriétés de projet.
Pour fonctionner, la bibliothèque cURL doit être liée. Si vous obtenez des erreurs de compilateur, procédez comme suit pour ajouter la bibliothèque cURL : faites un clic droit sur le projet et sélectionnez Propriétés. Puis naviguez jusqu’au
C/C++ Build -->Settings --> Cross G++ Linker --> Libraries --> Click the green plus button,and add the “curl” library
3. mettre en place le code. Ce sera dans votre code RPC de main(). Notez que le lien de factice en surbrillance jaune doit être remplacée par votre propre URL de Firebase.
//CURL SetupCURL *curl;
CURLcode res;
// In windows, this will init the winsock stuff
curl_global_init(CURL_GLOBAL_ALL);
// get a curl handle
curl = curl_easy_init();
// First set the URL that is about to receive our POST. This URL can
// just as well be a https:// URL if that is what should receive the
// data.
curl_easy_setopt(curl, CURLOPT_URL, "https://.firebaseio.com/data.json");
4. appel de cURL. Dans la partie de la boucle infinie du code, effectuez la boucle
appel lorsque la gâchette appreciate se produit. Vous devrez remplacer les données JSON surlignées en jaune avec vos propres données.
if (button->value()==1){std::cout << button->name() << " value is " << button->value() << std::endl;
// Now specify the POST data
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"lat\":23.343,\"long\":234.45345}");
// Perform the request, res will get the return code
res = curl_easy_perform(curl);
// Check for errors
std::cout << "curl output: " << res << std::endl;
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); }