{"id":22,"date":"2015-09-01T14:48:25","date_gmt":"2015-09-01T14:48:25","guid":{"rendered":"http:\/\/coolt.ch\/notizen\/?p=22"},"modified":"2015-09-08T06:14:27","modified_gmt":"2015-09-08T06:14:27","slug":"bytes-einlesen","status":"publish","type":"post","link":"https:\/\/coolt.ch\/notizen\/bytes-einlesen\/","title":{"rendered":"Bytes einlesen"},"content":{"rendered":"<p><strong>Byte-Struktur<br \/>\n<\/strong>&#8211; Formatvariablen definieren definieren Datenstruktur<br \/>\n&#8211; Formatvariablen stehen in einem String<br \/>\n&#8211; f\u00fcr jede Formatvariable muss eine Variable mitgegeben werden<br \/>\n&#8211; folgen grosse Datenpakete als, muss deren L\u00e4nge<br \/>\n.\u00a0 bekannt sein und wird vor der Stringvariable eingef\u00fcgt<br \/>\n&#8211; &#8220; &gt; &#8220; bedeutet big endian,\u00a0 &#8220; &lt; &#8220; littel endian<\/p>\n<p>command = pack(&#8218; &gt;BH&#8216; + str(length) + &#8217;s &#8218;, typ, command, length, data)<\/p>\n<p><a href=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/Python_Struct_BefehlsTabelle.png\"><img loading=\"lazy\" class=\"alignnone wp-image-23\" src=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/Python_Struct_BefehlsTabelle-300x209.png\" alt=\"Python_Struct_BefehlsTabelle\" width=\"541\" height=\"377\" srcset=\"https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/Python_Struct_BefehlsTabelle-300x209.png 300w, https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/09\/Python_Struct_BefehlsTabelle.png 652w\" sizes=\"(max-width: 541px) 100vw, 541px\" \/><\/a><\/p>\n<p><strong>Vor Daten Schl\u00fcsselw\u00f6rter einf\u00fcgen<\/strong><br \/>\ndata = pack(&#8218; &gt;BBH&#8217;+str(length)+&#8217;s &#8218;, testnumber, time, command, length, data)<\/p>\n<p><strong>Schl\u00fcsselw\u00f6rter vor Data extrahieren<\/strong><br \/>\ntestnumber = unpack(&#8218;&gt;B&#8216;, data[0:1])<br \/>\ntime = unpack(&#8218;&gt;B&#8216;, data[1:2])<\/p>\n<p><strong>Daten ohne Schl\u00fcsselw\u00f6rter<br \/>\n<\/strong>data[:4]\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 die ersten 4 Bytes werden weggelassen<\/p>\n<p><strong>Big Endian \/ Littel Endian<\/strong><br \/>\nbig endian = normal \u00a0\u00a0\u00a0\u00a0 a = (&#8218;&gt;B&#8216;, 3) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 a = 00 03<br \/>\nlittle endian\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 a = (&#8218;&lt;B&#8216;, 3) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 output\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 a = 03 00<\/p>\n<p><strong>Info<br \/>\n<\/strong>In Python werden Daten als String \u00fcbergeben. Sollen diese eine bestimmte Byte-Struktur haben, helfen die Funktionen pack() and unpack().<br \/>\nimport struct *<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Byte-Struktur &#8211; Formatvariablen definieren definieren Datenstruktur &#8211; Formatvariablen stehen in einem String &#8211; f\u00fcr jede Formatvariable muss eine Variable mitgegeben werden &#8211; folgen grosse Datenpakete als, muss deren L\u00e4nge .\u00a0 bekannt sein und wird vor der Stringvariable eingef\u00fcgt &#8211; &#8220; &gt; &#8220; bedeutet big endian,\u00a0 &#8220; &lt; &#8220; littel endian command = pack(&#8218; &gt;BH&#8216; + &hellip; <a href=\"https:\/\/coolt.ch\/notizen\/bytes-einlesen\/\" class=\"more-link\"><span class=\"screen-reader-text\">Bytes einlesen<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[6,10],"_links":{"self":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/22"}],"collection":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":4,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":51,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/22\/revisions\/51"}],"wp:attachment":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}