Google Protocol Buffers

Hallo,
ich schreibe gerade an meiner Bachelorarbeit und habe als Aufgabe einen Arduino zu programmieren (Mega2560). Dieser sammelt ein paar Sensorwerte auf und schickt sie dann über das Ethernet-Shield weiter. Leider verwendet die Partnerfirma Protocol Buffers von Google um die Daten als Klassen zu empfangen. Nun muss ich also irgendwie die Sensordaten in die Klassen speichern und diese verschicken. Über die Suche habe ich leider nur nichts hilfreiches gefunden.
Daher meine Frage:
Kennt sich hier jemand mit Protocol Buffers aus und könnte mir eine Hilfestellung dazu geben?

LG

Du meinst das Protocol Buffers  |  Google Developers ?
Grüße Uwe

Ja genau richtig.
Ich versuche im Moment zu verstehen wie ich das Ganze angehen soll. Ich muss das Ganze ja irgendwie in die IDE von Arduino integrieren. Gefunden habe ich auf meiner Suche folgendes:

Doch bevor ich mich da ran setze würde ich gerne das "System" hinter Protocol Buffer verstehen.

LG

Das "System" ist wohl im Prinzip so:

Übertragen werden Binärdaten. Um zu beschreiben was diese bedeuten, nimmt man eine "Beschreibungssprache". Diese lässt sich wiederum mit einem Compiler in Code einer Programmiersprache zum Ein- und Auspacken der Daten umwandeln. Diesen generierten Code verwendet man dann in seinem Programm.

nanopb ist mir in diesem Zusammenhang auch schon begegnet. Aber nur in der Form, dass da in einer Lib schon fertig damit generierter Code verwendet wird. Ein eigenes Projekt hochgezogen habe ich damit noch nicht.

Werden die Daten über einen https Seite übertragen?
Grüße Uwe

Vielen Dank erst mal für die Beteiligung.
Genutzt wird das HTTP 1.1 Protokoll.
Der Client ruft über ein Request ein bestimmtest Sensordatenpaket ab.
Der Arduino erkennt welche Daten gefordert werden und soll dann die Daten übertragen.
Das Paket wird wie folgt aufgebaut sein:
HTTP-Header | ID=0x01 |Protocol-Buffer Payload | 16-Bit CRC

Grüße

Ich denke dann brauchst du noch entweder eine *.proto Datei oder fertig generierten Code.

Diesen generierten Code und außerdem die Dateien auf der obersten Ebene der Github-Seite (pb.h, pb_common., pb_decode., pb_encode.*) muss man in sein Projekt einfügen. Den Rest klären wahrscheinlich dann die Doku und die Kommentare in den pb_ ... Dateien.

Vielen Dank für eure Antworten die haben mich schon mal weiter gebracht.
Ich lag leider im Krankenhaus die letzte Zeit so hat sich das alles ein wenig verzögert.
Ich Versuche im Moment eine Proto Datei umzuwandeln doch mein Englisch ist nicht so gut und ich versteh nicht wie man das machen soll. Als Anleitung steht da:

On other platforms, you first have to compile the protocol definition using
the following command::

../../generator-bin/protoc --nanopb_out=. simple.proto

After that, add the following four files to your project and compile:

simple.c simple.pb.c pb_encode.c pb_decode.c

Die Frage ist nur wo gebe ich den Befehl ein? Brauch ich noch ein zusätzliches Programm?
Mit freundlichen Grüßen

protoc ist der originale Compiler von Google. Anscheinend kann der auch für nanopb generieren.

Da gibt es doch sicher eine Installationsanleitung. Du musst die Tools von Google auf deinem Entwicklungsrechner installieren. Den Compiler ruftst du dann da auf der Kommandozeile auf.

Die protoc.exe ist ja in dem nanopb bereits enthalten. Doch beim Ausführen schließt sich das Fenster sofort wieder und ich hab keine Ahnung was da passiert ist. Ich steig durch die Anleitung auch einfach nicht durch. Und ein einfaches Tutorial das mir sagt welches Programm ich brauche und wie ich das dann installiere finde ich einfach nicht. Ich bin ziemlich am verzweifeln. Vielleicht nimmt sich nochmal einer von euch die Zeit und würde mir helfen sonst weiß ich nun echt nicht mehr weiter.

Mit freundlichen Grüßen

Das ist halt ein Kommandozeilenprogramm. Das sollst du nicht klicken, sondern in der Windows Eingabeaufforderung bzw. Linux Konsole verwenden.