Stap 2: Code
Voor deze oefening gebruiken we een test-apparaat met MAC adres 000000fffff00001 en base-64 token kdTl6U1w + sR61NBiQjm8sw ==.
Omvatten de vereiste bibliotheken, waaronder standaard stdio.h en string.h, samen met msgpack en beide bibliotheken helium.
<p>#include <stdio.h><br>#include <string.h></p><p>#include <msgpack.h></p><p>#include "helium.h"<br>#include "helium_logging.h"</p>
Dit volgende blok van code helpt voorkomen dat er fouten die kunnen optreden met behulp van bepaalde PCs.
<p>#ifdef _MSC_VER<br>#include "msvc_inttypes.h" #else #include <inttypes.h> #endif</p>
Callback-functie die wordt geactiveerd wanneer uw atoom een signaal maken
<p>void test_callback(const helium_connection_t *conn, uint64_t sender_mac, char * const message, size_t count)<br>{</p>
Binnen deze functie, maken sommige geheugen om te decoderen van de gegevens.
<p>msgpack_zone mempool;<br>msgpack_zone_init(&mempool, 128);</p>
Het bericht deserialize en pak het.
<p>msgpack_object deserialized; msgpack_unpack(message, count, NULL, &mempool, &deserialized);</p>
Afdrukken van de gegevens naar de terminal.
<p>printf("payload was ");<br>msgpack_object_print(stdout, deserialized); printf("\n");</p>
Verwijder de opslageenheid wereldruim en beëindigen van de functie.
<p>msgpack_zone_destroy(&mempool);<br>}</p>
Vervolgens moeten we een hoofdfunctie. De functie maken en verklaren van sommige variabelen die zullen we, met inbegrip van een token helium, een teken token en ruimte voor het bericht.
<p>int main(int argc, char *argv[])<br>{ helium_token_t token; unsigned char *token1; char message[1024];</p>
Verklaar een helium-verbinding en een struct helium verbinding toewijzen.
<p>helium_connection_t *conn;</p><p>conn = helium_alloc();</p>
Open de verbinding en onze voorgaande functie oproepen met het. Aangezien Helium op IPv6 werkt en de meeste netwerken op dit moment IPv4 zijn zullen we moeten de r01.sjc.helium.io-proxy gebruiken voor het verzenden van gegevens.
<p>helium_open(conn, "r01.sjc.helium.io", test_callback);</p>
De base 64 gecodeerde toegangstoken unieke MAC-adres van uw apparaat in een karakter array opslaan en converteren naar binair. Van uw apparaat token vindt mijn invoeren is het MAC-adres in het Helium Dashboard.
<p>token1 = (unsigned char*)"kdTl6U1w+sR61NBiQjm8sw==";</p><p>helium_base64_token_decode(token1, strlen((char*)token1), token);</p>
Abonneer je op het apparaat met behulp van het MAC-adres.
<p>helium_subscribe(conn, 0x000000ffff00001, token);</p>
Maak een eindeloze terwijl lus zodat het programma altijd blijft geabonneerd op het Atoom tot het einde. Dan eindigt de functie.
<p> while(1) {<br> } return 0; }</p>
De volledige code hierboven kan worden gevonden hier.