Stap 8: Getting Intel IOT C++ te krullen van JSON te Firebase
Terwijl Intel Edison vindt u instructies voor de Intel IOT Edison uitvoeren met REST API roept met de python en javascript-bibliotheek, de documentatie voor C++ ontbreekt. Deze voorbeeldcode (http://curl.haxx.se/libcurl/c/http-post.html) samen met de instructies die hieronder wordt beschreven hoe de Intel IOT Edison board C++ omgeving voor het uitvoeren van de CURL oproepen.
1. de .h-bestanden aan de bovenkant van uw cpp-bestand omvatten:
#include <stdio.h>
#include <curl/curl.h>
2. Controleer curl is gekoppeld in de project eigenschappen-instellingen.
Om te kunnen functioneren, moet de krul-bibliotheek worden gekoppeld. Als je compiler fouten, doet u het volgende de cURL bibliotheek toevoegen: Klik met de rechtermuisknop op het project en selecteer Eigenschappen. Navigeer vervolgens naar
C/C++ Build -->Settings --> Cross G++ Linker --> Libraries --> Click the green plus button,and add the “curl” library
3. de code instellen. Dit zal in uw code van de cpp main(). Merk op dat de gemarkeerde gele dummy link moet worden vervangen door de URL van uw eigen 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. oproep krullen. In het oneindige lus gedeelte van de code, het uitvoeren van de krul
bellen wanneer de trigger waarderen optreedt. U moet vervangen door de JSON-gegevens gemarkeerd in geel met uw eigen gegevens.
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)); }