MediaWiki-API-Ergebnis
This is the HTML representation of the JSON format. HTML is good for debugging, but is unsuitable for application use.
Specify the format parameter to change the output format. To see the non-HTML representation of the JSON format, set format=json.
See the complete documentation, or the API help for more information.
{ "compare": { "fromid": 1, "fromrevid": 1, "fromns": 0, "fromtitle": "Hauptseite", "toid": 2, "torevid": 2, "tons": 0, "totitle": "RFID Reader", "*": "<tr><td colspan=\"2\" class=\"diff-lineno\" id=\"mw-diff-left-l1\" >Zeile 1:</td>\n<td colspan=\"2\" class=\"diff-lineno\">Zeile 1:</td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange\"><strong>MediaWiki wurde installiert.</strong></del></div></td><td colspan=\"2\"> </td></tr>\n<tr><td class='diff-marker'> </td><td class='diff-context'></td><td class='diff-marker'> </td><td class='diff-context'></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange\">Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Benutzerhandbuch].</del></div></td><td colspan=\"2\"> </td></tr>\n<tr><td class='diff-marker'> </td><td class='diff-context'></td><td class='diff-marker'> </td><td class='diff-context'></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div>=<del class=\"diffchange diffchange-inline\">= Starthilfen =</del>=</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div>= <ins class=\"diffchange diffchange-inline\">Source / Acknowledgements </ins>=</div></td></tr>\n<tr><td class='diff-marker'> </td><td class='diff-context'></td><td class='diff-marker'> </td><td class='diff-context'></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* [https</del>://www.<del class=\"diffchange diffchange-inline\">mediawiki</del>.<del class=\"diffchange diffchange-inline\">org</del>/<del class=\"diffchange diffchange-inline\">wiki</del>/<del class=\"diffchange diffchange-inline\">Special</del>:<del class=\"diffchange diffchange-inline\">MyLanguage</del>/<del class=\"diffchange diffchange-inline\">Manual:Configuration_settings Liste der Konfigurationsvariablen]</del></div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">= Code =</ins></div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* </del>[<del class=\"diffchange diffchange-inline\">https:</del>//<del class=\"diffchange diffchange-inline\">www</del>.<del class=\"diffchange diffchange-inline\">mediawiki</del>.<del class=\"diffchange diffchange-inline\">org</del>/<del class=\"diffchange diffchange-inline\">wiki</del>/<del class=\"diffchange diffchange-inline\">Special</del>:<del class=\"diffchange diffchange-inline\">MyLanguage</del>/<del class=\"diffchange diffchange-inline\">Manual</del>:<del class=\"diffchange diffchange-inline\">FAQ MediaWiki-FAQ</del>]</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"><pre></ins></div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div>* [<del class=\"diffchange diffchange-inline\">https:</del>//<del class=\"diffchange diffchange-inline\">lists</del>.<del class=\"diffchange diffchange-inline\">wikimedia</del>.<del class=\"diffchange diffchange-inline\">org/mailman/listinfo/mediawiki</del>-<del class=\"diffchange diffchange-inline\">announce Mailingliste neuer MediaWiki</del>-<del class=\"diffchange diffchange-inline\">Versionen</del>]</div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">// (c) Michael Schoeffler 2018, http</ins>://www.<ins class=\"diffchange diffchange-inline\">mschoeffler</ins>.<ins class=\"diffchange diffchange-inline\">de</ins></div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div><del class=\"diffchange diffchange-inline\">* </del>[<del class=\"diffchange diffchange-inline\">https</del>://<del class=\"diffchange diffchange-inline\">www</del>.<del class=\"diffchange diffchange-inline\">mediawiki</del>.<del class=\"diffchange diffchange-inline\">org</del>/<del class=\"diffchange diffchange-inline\">wiki</del>/<del class=\"diffchange diffchange-inline\">Special:MyLanguage</del>/<del class=\"diffchange diffchange-inline\">Localisation#Translation_resources \u00dcbersetze MediaWiki f\u00fcr deine Sprache]</del></div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">#include <SoftwareSerial.h></ins></div></td></tr>\n<tr><td class='diff-marker'>\u2212</td><td class='diff-deletedline'><div>* [<del class=\"diffchange diffchange-inline\">https:</del>//<del class=\"diffchange diffchange-inline\">www</del>.<del class=\"diffchange diffchange-inline\">mediawiki</del>.<del class=\"diffchange diffchange-inline\">org</del>/<del class=\"diffchange diffchange-inline\">wiki</del>/<del class=\"diffchange diffchange-inline\">Special:MyLanguage</del>/<del class=\"diffchange diffchange-inline\">Manual:Combating_spam Erfahre, wie du Spam auf deinem Wiki bek\u00e4mpfen kannst]</del></div></td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">const int BUFFER_SIZE = 14; </ins>// <ins class=\"diffchange diffchange-inline\">RFID DATA FRAME FORMAT: 1byte head (value: 2), 10byte data (2byte version + 8byte tag), 2byte checksum, 1byte tail (value</ins>: <ins class=\"diffchange diffchange-inline\">3)</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">const int DATA_SIZE = 10; </ins>/<ins class=\"diffchange diffchange-inline\">/ 10byte data (2byte version + 8byte tag)</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">const int DATA_VERSION_SIZE = 2; // 2byte version (actual meaning of these two bytes may vary)</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">const int DATA_TAG_SIZE = 8; // 8byte tag</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">const int CHECKSUM_SIZE = 2; // 2byte checksum</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">SoftwareSerial ssrfid = SoftwareSerial(6,8); </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">uint8_t buffer</ins>[<ins class=\"diffchange diffchange-inline\">BUFFER_SIZE]; </ins>// <ins class=\"diffchange diffchange-inline\">used to store an incoming data frame </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">int buffer_index = 0;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">void setup() {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> Serial.begin(9600); </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> ssrfid.begin(9600);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> ssrfid.listen(); </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"> Serial.println("INIT DONE");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">void loop() {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  if (ssrfid</ins>.<ins class=\"diffchange diffchange-inline\">available() > 0){</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    bool call_extract_tag = false;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    int ssvalue = ssrfid</ins>.<ins class=\"diffchange diffchange-inline\">read(); // read </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    if (ssvalue == -1) { /</ins>/ <ins class=\"diffchange diffchange-inline\">no data was read</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      return;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    if (ssvalue == 2) { </ins>/<ins class=\"diffchange diffchange-inline\">/ RDM630/RDM6300 found a tag => tag incoming </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      buffer_index = 0;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    } else if (ssvalue == 3) { // tag has been fully transmitted      </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      call_extract_tag = true; // extract tag at the end of the function call</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    if (buffer_index >= BUFFER_SIZE) { // checking for a buffer overflow (It's very unlikely that an buffer overflow comes up!)</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Serial.println("Error</ins>: <ins class=\"diffchange diffchange-inline\">Buffer overflow detected!");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      return;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    buffer[buffer_index++] = ssvalue; // everything is alright => copy current value to buffer</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    if (call_extract_tag == true) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      if (buffer_index == BUFFER_SIZE) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        unsigned tag = extract_tag();</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      } else { /</ins>/ <ins class=\"diffchange diffchange-inline\">something is wrong... start again looking for preamble (value</ins>: <ins class=\"diffchange diffchange-inline\">2)</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        buffer_index = 0;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">        return;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  }    </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">unsigned extract_tag() {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    uint8_t msg_head = buffer[0</ins>]<ins class=\"diffchange diffchange-inline\">;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    uint8_t *msg_data = buffer + 1; // 10 byte => data contains 2byte version + 8byte tag</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    uint8_t *msg_data_version = msg_data;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    uint8_t </ins>*<ins class=\"diffchange diffchange-inline\">msg_data_tag = msg_data + 2;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    uint8_t *msg_checksum = buffer + 11; // 2 byte</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    uint8_t msg_tail = buffer</ins>[<ins class=\"diffchange diffchange-inline\">13];</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    /</ins>/ <ins class=\"diffchange diffchange-inline\">print message that was sent from RDM630</ins>/<ins class=\"diffchange diffchange-inline\">RDM6300</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial</ins>.<ins class=\"diffchange diffchange-inline\">println("--------");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial</ins>.<ins class=\"diffchange diffchange-inline\">print("Message</ins>-<ins class=\"diffchange diffchange-inline\">Head: ");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println(msg_head);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println("Message</ins>-<ins class=\"diffchange diffchange-inline\">Data (HEX): ");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    for (int i = 0; i < DATA_VERSION_SIZE; ++i) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Serial.print(char(msg_data_version[i]));</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println(" (version)");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    for (int i = 0; i < DATA_TAG_SIZE; ++i) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Serial.print(char(msg_data_tag[i</ins>]<ins class=\"diffchange diffchange-inline\">));</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println(" (tag)");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.print("Message-Checksum (HEX): ");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    for (int i = 0; i < CHECKSUM_SIZE; ++i) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Serial.print(char(msg_checksum</ins>[<ins class=\"diffchange diffchange-inline\">i]));</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println("");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.print("Message-Tail: ");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println(msg_tail);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println("--");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    long tag = hexstr_to_value(msg_data_tag, DATA_TAG_SIZE);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.print("Extracted Tag: ");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println(tag);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    long checksum = 0;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    for (int i = 0; i < DATA_SIZE; i+= CHECKSUM_SIZE) {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      long val = hexstr_to_value(msg_data + i, CHECKSUM_SIZE);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      checksum ^= val;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.print("Extracted Checksum (HEX)</ins>: <ins class=\"diffchange diffchange-inline\">");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.print(checksum, HEX);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    if (checksum == hexstr_to_value(msg_checksum, CHECKSUM_SIZE)) { </ins>// <ins class=\"diffchange diffchange-inline\">compare calculated checksum to retrieved checksum</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Serial</ins>.<ins class=\"diffchange diffchange-inline\">print(" (OK)"); // calculated checksum corresponds to transmitted checksum!</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    } else {</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">      Serial</ins>.<ins class=\"diffchange diffchange-inline\">print(" (NOT OK)"); </ins>// <ins class=\"diffchange diffchange-inline\">checksums do not match</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    }</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println("");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    Serial.println("--------");</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">    return tag;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div> </div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">long hexstr_to_value(char *str, unsigned int length) { /</ins>/ <ins class=\"diffchange diffchange-inline\">converts a hexadecimal value (encoded as ASCII string) to a numeric value</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  char* copy = malloc((sizeof(char) * length) + 1); </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  memcpy(copy, str, sizeof(char) </ins>* <ins class=\"diffchange diffchange-inline\">length);</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  copy</ins>[<ins class=\"diffchange diffchange-inline\">length] = '\\0'; </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  </ins>// <ins class=\"diffchange diffchange-inline\">the variable "copy" is a copy of the parameter "str"</ins>. <ins class=\"diffchange diffchange-inline\">"copy" has an additional '\\0' element to make sure that "str" is null-terminated</ins>.</div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  long value = strtol(copy, NULL, 16);  // strtol converts a null-terminated string to a long value</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  free(copy); </ins>// <ins class=\"diffchange diffchange-inline\">clean up </ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">  return value;</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\">}</ins></div></td></tr>\n<tr><td colspan=\"2\"> </td><td class='diff-marker'>+</td><td class='diff-addedline'><div><ins class=\"diffchange diffchange-inline\"><</ins>/<ins class=\"diffchange diffchange-inline\">pre></ins></div></td></tr>\n" } }