Stap 9: 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 <curl/curl.h>
//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");
2. Controleer curl is gekoppeld in de project eigenschappen-instellingen.
Om te kunnen functioneren, moet de krul-bibliotheek worden gekoppeld. Als je compiler fouten, volgt de cURL bibliotheek toevoegen:
Klik met de rechtermuisknop op het project en selecteer Eigenschappen. Navigeer vervolgens naar de C/C++ bouwen -> Instellingen -> Cross G ++ Linker -> Bibliotheken--> Klik op de groene plus knop, en de "curl" bibliotheek toevoegen
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.
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)); }
4. oproep krullen. In het oneindige lus gedeelte van de code, de CURL oproep uit te voeren wanneer de trigger waarderen optreedt. U moet vervangen door de JSON-gegevens gemarkeerd in geel met uw eigen gegevens.
Als (knop -> value()==1) {std::cout << knop-> name() << "waarde is" << knop-> value() << std::endl;curl_easy_setopt (krul, CURLOPT_POSTFIELDS, "{\"lat\":23.343,\"long\":234.45345}"); Uitvoeren van het verzoek, res krijgt de retourcode res = curl_easy_perform(curl); Controleren op fouten std::cout << "curl output:" << res << std::endl; Als (res! = CURLE_OK) fprintf (stderr, "curl_easy_perform() is mislukt: %s\n", curl_easy_strerror(res));