<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.ccc-mannheim.de/mediawiki/index.php?action=history&amp;feed=atom&amp;title=FullCircle%2FProtobuf</id>
	<title>FullCircle/Protobuf - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.ccc-mannheim.de/mediawiki/index.php?action=history&amp;feed=atom&amp;title=FullCircle%2FProtobuf"/>
	<link rel="alternate" type="text/html" href="https://www.ccc-mannheim.de/mediawiki/index.php?title=FullCircle/Protobuf&amp;action=history"/>
	<updated>2026-04-07T20:17:45Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in C3MAWiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://www.ccc-mannheim.de/mediawiki/index.php?title=FullCircle/Protobuf&amp;diff=212&amp;oldid=prev</id>
		<title>Scytale: answer</title>
		<link rel="alternate" type="text/html" href="https://www.ccc-mannheim.de/mediawiki/index.php?title=FullCircle/Protobuf&amp;diff=212&amp;oldid=prev"/>
		<updated>2013-01-30T16:25:33Z</updated>

		<summary type="html">&lt;p&gt;answer&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die Binären werte verschiedener Protbuf Messages, gemäß aktuellen sequence.proto in libfullcircle. Vorher dies lesen: https://developers.google.com/protocol-buffers/docs/encoding?hl=de-DE&lt;br /&gt;
&lt;br /&gt;
= Beschreibung = &lt;br /&gt;
Daten des Beispiel so vorhanden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Hexcode der Serialisierten Daten&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0x00 = typ:  fid:&lt;br /&gt;
* Byte&lt;br /&gt;
* typ: Pakettyp gemäß [https://developers.google.com/protocol-buffers/docs/encoding?hl=de-DE Message Structure]&lt;br /&gt;
* fid: Fieldid aus dem Protofile&lt;br /&gt;
&lt;br /&gt;
je nach Typ unterscheiden sich die folgenden Bytes:&lt;br /&gt;
=== 0: Varint ===&lt;br /&gt;
Das folgende Byte enthält den Wert des Feldes&lt;br /&gt;
=== 2: Length-delimited	===&lt;br /&gt;
Das folgende Byte enthält die Länge der Struktur, die folgt darauf. Alternativ 0, dann folgt keine Struktur&lt;br /&gt;
&lt;br /&gt;
= Liste der Pakete (unvollständig) = &lt;br /&gt;
&lt;br /&gt;
==Start_snip==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 05 7A 00&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 0x08 = typ:0 fid:1&lt;br /&gt;
* 0x05 = value: 5 (Sniptype: 5)&lt;br /&gt;
* 0x7A = typ:2 fid:15&lt;br /&gt;
* 0x00 = length: 0&lt;br /&gt;
&lt;br /&gt;
==Pixel==&lt;br /&gt;
 * red: 1&lt;br /&gt;
 * green: 2&lt;br /&gt;
 * blue: 3&lt;br /&gt;
 * x: 4&lt;br /&gt;
 * y: 5&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 01 10 02 18 03 20 04 28 05&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 0x08 = typ:0 fid:1&lt;br /&gt;
* 0x01 = value: 1&lt;br /&gt;
* 0x10 = typ:0 fid:2&lt;br /&gt;
* 0x02 = value: 2&lt;br /&gt;
* 0x18 = typ:0 fid:3&lt;br /&gt;
* 0x03 = value: 3&lt;br /&gt;
* 0x20 = typ:0 fid:4&lt;br /&gt;
* 0x04 = value: 4&lt;br /&gt;
* 0x28 = typ:0 fid:5&lt;br /&gt;
* 0x05 = value: 5&lt;br /&gt;
&lt;br /&gt;
==Frame==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
pixel {&lt;br /&gt;
  red: 1&lt;br /&gt;
  green: 2&lt;br /&gt;
  blue: 3&lt;br /&gt;
  x: 4&lt;br /&gt;
  y: 5&lt;br /&gt;
}&lt;br /&gt;
pixel {&lt;br /&gt;
  red: 99&lt;br /&gt;
  green: 98&lt;br /&gt;
  blue: 97&lt;br /&gt;
  x: 96&lt;br /&gt;
  y: 95&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
0A 0A 08 01 10 02 18 03 20 04 28 05 0A 0A 08 63 10 62 18 61 20 60 28 5F&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 0x0A = typ:2 fid:1&lt;br /&gt;
* 0x0A = length: 10&lt;br /&gt;
* 0x08 = siehe Pixel&lt;br /&gt;
* 0x01 = siehe Pixel&lt;br /&gt;
* 0x10 = siehe Pixel&lt;br /&gt;
* 0x02 = siehe Pixel&lt;br /&gt;
* 0x18 = siehe Pixel&lt;br /&gt;
* 0x03 = siehe Pixel&lt;br /&gt;
* 0x20 = siehe Pixel&lt;br /&gt;
* 0x04 = siehe Pixel&lt;br /&gt;
* 0x28 = siehe Pixel&lt;br /&gt;
* 0x05 = siehe Pixel&lt;br /&gt;
* 0x0A = typ:2 fid:1&lt;br /&gt;
* 0x0A = length: 10&lt;br /&gt;
... next Pixel ...&lt;br /&gt;
* 0x28 = typ:0 fid: 5&lt;br /&gt;
* 0x5F = 95&lt;br /&gt;
&lt;br /&gt;
==Frame_snip==&lt;br /&gt;
[[Datei:frame.zip]]&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
=&amp;gt; type: FRAME&lt;br /&gt;
frame_snip {&lt;br /&gt;
  frame {&lt;br /&gt;
    pixel {&lt;br /&gt;
      red: 1&lt;br /&gt;
      green: 2&lt;br /&gt;
      blue: 3&lt;br /&gt;
      x: 4&lt;br /&gt;
      y: 5&lt;br /&gt;
    }&lt;br /&gt;
    pixel {&lt;br /&gt;
      red: 99&lt;br /&gt;
      green: 98&lt;br /&gt;
      blue: 97&lt;br /&gt;
      x: 96&lt;br /&gt;
      y: 95&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 06 82 01 1A 0A 18 0A 0A 08 01 10 02 18 03 20 04 28 05 0A 0A 08 63 10 62 18 61 20 60 28 5F&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 0x08 = typ:0 fid:1      snip_type = FRAME&lt;br /&gt;
* 0x06 = value: 6&lt;br /&gt;
* 0x82 01 = typ:2 fid:16   frame_snip&lt;br /&gt;
* 0x1A = length: 26&lt;br /&gt;
* 0x0A = typ:2 fid:1 &lt;br /&gt;
* 0x18 = length: 24&lt;br /&gt;
* 0x0A ff siehe Frame&lt;br /&gt;
&lt;br /&gt;
===Großer Frame===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
=&amp;gt; frame {&lt;br /&gt;
  pixel {&lt;br /&gt;
    red: 255&lt;br /&gt;
    green: 255&lt;br /&gt;
    blue: 255&lt;br /&gt;
    x: 1024&lt;br /&gt;
    y: 1024&lt;br /&gt;
  }&lt;br /&gt;
  pixel {&lt;br /&gt;
    red: 255&lt;br /&gt;
    green: 255&lt;br /&gt;
    blue: 255&lt;br /&gt;
    x: 1024&lt;br /&gt;
    y: 1024&lt;br /&gt;
  }&lt;br /&gt;
  pixel {&lt;br /&gt;
    red: 255&lt;br /&gt;
    green: 255&lt;br /&gt;
    blue: 255&lt;br /&gt;
    x: 1024&lt;br /&gt;
    y: 1024&lt;br /&gt;
  }&lt;br /&gt;
  pixel {&lt;br /&gt;
    red: 255&lt;br /&gt;
    green: 255&lt;br /&gt;
    blue: 255&lt;br /&gt;
    x: 1024&lt;br /&gt;
    y: 1024&lt;br /&gt;
  }&lt;br /&gt;
  pixel {&lt;br /&gt;
    red: 255&lt;br /&gt;
    green: 255&lt;br /&gt;
    blue: 255&lt;br /&gt;
    x: 1024&lt;br /&gt;
    y: 1024&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 06 82 01 57 0A 55 0A 0F 08 FF 01 10 FF 01 18 FF 01 20 80 08&lt;br /&gt;
 28 80 08 0A 0F 08 FF 01 10 FF 01 18 FF 01 20 80 08 28 80 08 0A 0F 08 FF 01 10 FF 01 18 FF 01 20 80 08 28 80 08 0A 0F 08 FF 01 10 FF 01 18 FF 01 20 80 08 28 80 08 0A 0F 08 FF 01 10 FF 01 18 FF 01 20 80 08 28 80 08&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 0x08 = typ:0 fid:1      snip_type = FRAME&lt;br /&gt;
* 0x06 = value: 6&lt;br /&gt;
** 0x82 01 = typ:2 fid:16   frame_snip&lt;br /&gt;
** 0x57 = length: 87&lt;br /&gt;
*** 0x0A = typ:2 fid:1 &lt;br /&gt;
*** 0x55 = length: 85&lt;br /&gt;
**** Anfang Frame&lt;br /&gt;
**** 0x0A = typ:2 fid:1    pixel&lt;br /&gt;
**** 0x0F = length: 15&lt;br /&gt;
***** Anfang Pixel&lt;br /&gt;
***** 0x08 = typ:0 fid:1&lt;br /&gt;
***** 0xFF 01 = 255&lt;br /&gt;
***** 0x10 = typ:0 fid:2&lt;br /&gt;
***** 0xFF 01 = 255&lt;br /&gt;
***** 0x18 = typ:0 fid:3&lt;br /&gt;
***** 0xFF 01 = 255&lt;br /&gt;
***** 0x20 = typ:0 fid:4&lt;br /&gt;
***** 0x80 08 = b1000 0000 | 0000 1000 = MSB wegschmeißen &amp;gt; b000 0000 | 000 1000 = Bytes Tauschen &amp;gt; b000 1000 | 000 0000 = Zusammenfügen &amp;gt; b0100 | 0000 0000 = 1024&lt;br /&gt;
***** 0x28 = typ:0 fid:5&lt;br /&gt;
***** 0x80 08 = 1024&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
==Eos_snip==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
=&amp;gt; type: START&lt;br /&gt;
start_snip {&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 0B AA 01 00&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* 0x08 = typ:0 fid:1&lt;br /&gt;
* 0x0B = value: 11&lt;br /&gt;
* 0xAA 01= b010 1010 | 000 0001 =&amp;gt; 10101010 =   typ:2 fid:21&lt;br /&gt;
* 0x00 length:0&lt;br /&gt;
&lt;br /&gt;
==Request_Snip==&lt;br /&gt;
[[Datei:Request.hex.zip]]&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
=&amp;gt; type: REQUEST&lt;br /&gt;
req_snip {&lt;br /&gt;
  color: &amp;quot;rot&amp;quot;&lt;br /&gt;
  seqId: 1&lt;br /&gt;
  meta {&lt;br /&gt;
    frames_per_second: 24&lt;br /&gt;
    width: 1&lt;br /&gt;
    height: 1&lt;br /&gt;
    generator_name: &amp;quot;Test&amp;quot;&lt;br /&gt;
    generator_version: &amp;quot;0.0&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 04 72 1A 0A 03 72 6F 74 10 01 1A 11 08 18 10 01 18 01 22 04 54 65 73 74 2A 03 30 2E 30&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* 0x08 = typ:0 fid:1      snip_type = REQUEST&lt;br /&gt;
* 0x04 = value: 4&lt;br /&gt;
* 0x72 = typ:2 fid:14   req_snip&lt;br /&gt;
* 0x1A = length: 26&lt;br /&gt;
** 0x0A = typ:2 fid :1  color&lt;br /&gt;
** 0x03 = length: 3    &lt;br /&gt;
*** 0x72 = r&lt;br /&gt;
*** 0x6F = o&lt;br /&gt;
*** 0x74 = t&lt;br /&gt;
** 0x10 = typ:0 fid:2   seqId&lt;br /&gt;
** 0x01 = value: 1&lt;br /&gt;
** 0x1A = typ:2 fid:3   meta&lt;br /&gt;
** 0x11 = length:17&lt;br /&gt;
*** 0x08 = typ:0 fid:1   frames_per_second&lt;br /&gt;
*** 0x18 = value: 24&lt;br /&gt;
*** 0x10 = typ:0 fid:2   width&lt;br /&gt;
*** 0x01 = value: 1&lt;br /&gt;
*** 0x18 = typ:0 fid:3   heigh&lt;br /&gt;
*** 0x01 = value: 1&lt;br /&gt;
*** 0x22 = typ:2 fid:4   generator_name&lt;br /&gt;
*** 0x04 = length: 4&lt;br /&gt;
**** 0x54 = T&lt;br /&gt;
**** 0x65 = e&lt;br /&gt;
**** 0x73 = s&lt;br /&gt;
**** 0x74 = t&lt;br /&gt;
*** 0x2A = typ:2 fid:5   generator_version&lt;br /&gt;
*** 0x03 = length: 3&lt;br /&gt;
**** 0x30 = 0&lt;br /&gt;
**** 0x2E = .&lt;br /&gt;
**** 0x30 = 0&lt;br /&gt;
&lt;br /&gt;
==Error_snip==&lt;br /&gt;
[[Datei:error.zip]]&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
=&amp;gt; type: ERROR&lt;br /&gt;
error_snip {&lt;br /&gt;
  errorcode: OK&lt;br /&gt;
  description: &amp;quot;Gut&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 03 6A 07 08 01 12 03 47 75 74&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* 0x08 = typ:0 fid:1 snip_type= error&lt;br /&gt;
* 0x03 = value: 3&lt;br /&gt;
* 0x6A = typ:2 fid: 13&lt;br /&gt;
* 0x07 = length: 7&lt;br /&gt;
** 0x08 = typ:0 fid:1 errorcode&lt;br /&gt;
** 0x01 = value: 1&lt;br /&gt;
** 0x12 = typ:2 fid: 2&lt;br /&gt;
** 0x03 = length: 3&lt;br /&gt;
*** 0x47 = G&lt;br /&gt;
*** 0x75 = u&lt;br /&gt;
*** 0x74 = t&lt;br /&gt;
&lt;br /&gt;
==BinarySequence ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; a.metadata&lt;br /&gt;
=&amp;gt; frames_per_second: 25&lt;br /&gt;
width: 30&lt;br /&gt;
height: 23&lt;br /&gt;
generator_name: &amp;quot;Dings&amp;quot;&lt;br /&gt;
generator_version: &amp;quot;999.9&amp;quot;&lt;br /&gt;
=&amp;gt; [pixel {&lt;br /&gt;
  red: 255&lt;br /&gt;
  green: 255&lt;br /&gt;
  blue: 255&lt;br /&gt;
  x: 1024&lt;br /&gt;
  y: 1024&lt;br /&gt;
}&lt;br /&gt;
pixel {&lt;br /&gt;
  red: 255&lt;br /&gt;
  green: 255&lt;br /&gt;
  blue: 255&lt;br /&gt;
  x: 1024&lt;br /&gt;
  y: 1024&lt;br /&gt;
}&lt;br /&gt;
pixel {&lt;br /&gt;
  red: 255&lt;br /&gt;
  green: 255&lt;br /&gt;
  blue: 255&lt;br /&gt;
  x: 1024&lt;br /&gt;
  y: 1024&lt;br /&gt;
}&lt;br /&gt;
pixel {&lt;br /&gt;
  red: 255&lt;br /&gt;
  green: 255&lt;br /&gt;
  blue: 255&lt;br /&gt;
  x: 1024&lt;br /&gt;
  y: 1024&lt;br /&gt;
}&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
0A 14 08 19 10 1E 18 17 22 05 44 69 6E 67 73 2A 05 39 39 39 2E 39 12 44 0A 0F 08 FF 01 10 FF 01 18 FF 01 20 80 08 28 80 08 0A 0F 08 FF 01 10 FF 01 18 FF 01 20 80 08 28 80 08 0A 0F 08 FF 01 10 FF 01 18 F F0 12 08 00 82 88 00 80 A0 F0 8F F0 11 0F F0 11 8F F0 12 08 00 82 88 00 8&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 0x0A = typ:2 fid:1 metadata&lt;br /&gt;
* 0x14 = length: 20&lt;br /&gt;
** 0x08 = typ:0 fid: 1 frames_per_second (Metadata)&lt;br /&gt;
** 0x19 = value: 25&lt;br /&gt;
** 0x10 = typ:0 fid:2 width&lt;br /&gt;
** 0x1E = value: 30&lt;br /&gt;
** 0x18 = typ:0 fid:3 height&lt;br /&gt;
** 0x17 = value: 23&lt;br /&gt;
** 0x22 = typ:2 fid: 4&lt;br /&gt;
** 0x05 = length: 5&lt;br /&gt;
** 0x44 = D&lt;br /&gt;
** 0x69 = i&lt;br /&gt;
** 0x6E = n&lt;br /&gt;
** 0x67 = g&lt;br /&gt;
** 0x73 = s&lt;br /&gt;
** 0x2A = typ:2 fid:5&lt;br /&gt;
** 0x05 = length: 5&lt;br /&gt;
** 0x39 = 9&lt;br /&gt;
** 0x39 = 9&lt;br /&gt;
** 0x39 = 9&lt;br /&gt;
** 0x2E = .&lt;br /&gt;
** 0x39 = 9&lt;br /&gt;
* 0x12 = typ:2 fid:2 frame&lt;br /&gt;
* 0x44 = length: 68&lt;br /&gt;
** 0x0A = typ:2 fid: 1&lt;br /&gt;
** 0x0F = length: 15&lt;br /&gt;
** 0x08 = typ:0 fid:1&lt;br /&gt;
** 0xFF 01 = value: 255&lt;br /&gt;
.... (siehe frame)&lt;br /&gt;
&lt;br /&gt;
==InfoAnswer==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
=&amp;gt; type: INFO_ANSWER&lt;br /&gt;
infoanswer_snip {&lt;br /&gt;
  meta {&lt;br /&gt;
    frames_per_second: 25&lt;br /&gt;
    width: 98&lt;br /&gt;
    height: 13&lt;br /&gt;
    generator_name: &amp;quot;Katze&amp;quot;&lt;br /&gt;
    generator_version: &amp;quot;999.9&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 0D BA 01 16 0A 14 08 19 10 62 18 0D 22 05 4B 61 74 7A 65 2A 05 39 39 39 2E 39&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* 0x08 = typ:0 fid:1&lt;br /&gt;
* 0x0D = value: 13&lt;br /&gt;
* 0xBA 01 = typ: 2 fid: 23 infoanswer_snip&lt;br /&gt;
* 0x16 = length: 16&lt;br /&gt;
** 0x0A = typ:2 fid:1 metadata&lt;br /&gt;
** 0x14 = length: 14&lt;br /&gt;
*** 0x08 = typ:0 fid:1 frames_per_second&lt;br /&gt;
*** 0x19 = length: 25&lt;br /&gt;
... siehe Metadata&lt;br /&gt;
&lt;br /&gt;
==InfoRequest==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
=&amp;gt; type: INFO_REQUEST&lt;br /&gt;
inforequest_snip {&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
08 0C B2 01 00&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
* 0x08 = typ:0 fid:1&lt;br /&gt;
* 0x0C = value: 12&lt;br /&gt;
* 0xB2 01 = typ: 2 fid:22&lt;br /&gt;
* 0x00 = length: 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:FullCircle]]&lt;br /&gt;
[[Kategorie:Öffentlich]]&lt;/div&gt;</summary>
		<author><name>Scytale</name></author>
	</entry>
</feed>