Aufgabenstellung

  • Daten einlesen
  • Daten codieren
  • QR-Code erstellen
  • QR-Code ausgeben
  • Bonus: QR-Code als SVG speichern

Teile eines QR-Codes

Teile eines QR-Codes

  • Modul

Teile eines QR-Codes

  • Modul

Teile eines QR-Codes

  • Modul
  • Positionsmuster

Teile eines QR-Codes

  • Modul
  • Positionsmuster

Teile eines QR-Codes

  • Modul
  • Positionsmuster
  • Ausrichtungsmuster

Teile eines QR-Codes

  • Modul
  • Positionsmuster
  • Ausrichtungsmuster
  • Synchronisationsmuster

Teile eines QR-Codes

  • Modul
  • Positionsmuster
  • Ausrichtungsmuster
  • Synchronisationsmuster
  • Schwarzes Modul

Teile eines QR-Codes

  • Modul
  • Positionsmuster
  • Ausrichtungsmuster
  • Synchronisationsmuster
  • Schwarzes Modul
  • Informations Module

Teile eines QR-Codes

  • Modul
  • Positionsmuster
  • Ausrichtungsmuster
  • Synchronisationsmuster
  • Schwarzes Modul
  • Informations Module
  • Daten

Daten Codierung

Input: "Hello EP students!"

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

0x

4

0
0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00

Daten Codierung

Input: "Hello EP students!" -->

18 Zeichen

--> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

0x4

1

0x

2

0
0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48

, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

0x41 0x2

4

0x

8

0
0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48,

0x65

, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

0x41 0x24 0x8

6

0x

5

0
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0x00 0x00

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48, 0x65,

0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,


0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

0x41 0x24 0x86 0x5

6

0xC6

0xC6

0xF2

0x04

0x55

0x02

0x07

0x37

0x47

0x56

0x46

0x56

0xE7

0x47

0x32

0x1

0
0x00 0x00

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

0x41 0x24 0x86 0x56
0xC6 0xC6 0xF2 0x04
0x55 0x02 0x07 0x37
0x47 0x56 0x46 0x56
0xE7 0x47 0x32 0x1

0

0x00 0x00

Daten Codierung

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Hex darstellung (ASCII):

0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x45, 0x50, 0x20,
0x73, 0x74, 0x75, 0x64, 0x65, 0x6E, 0x74, 0x73, 0x21

Nachrichtendaten:

0x41 0x24 0x86 0x56
0xC6 0xC6 0xF2 0x04
0x55 0x02 0x07 0x37
0x47 0x56 0x46 0x56
0xE7 0x47 0x32 0x10

0xEC

0x11

Fehlerkorrekturdaten

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Fehlerkorrekturdaten

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

Fehlerkorrekturdaten

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

==> Fehlerkorrekturbibliothek

int generateErrorCorrectionCodewords(
     uint8_t *error_correction_code_words,
     const size_t number_of_error_correction_code_words,
     const uint8_t *message, const size_t message_length)
       

Fehlerkorrekturdaten

Input: "Hello EP students!" --> 18 Zeichen --> QR-Code: 2-Q

==> Fehlerkorrekturbibliothek

int generateErrorCorrectionCodewords(
     uint8_t *error_correction_code_words,
     const size_t number_of_error_correction_code_words,
     const uint8_t *message, const size_t message_length)
      

Fehlerkorrekturdaten:
0x7B, 0x49, 0x72, 0xE5, 0x08, 0xCA, 0x44, 0x67, 0x8A, 0x24, 0xB3,
0x55, 0x0A, 0xDA, 0xA7, 0x6A, 0xC7, 0x45, 0xB2, 0x44, 0x4B, 0x74

Daten zusammmenfügen

Nachrichtendaten:
0x41, 0x24, 0x86, 0x56, 0xC6, 0xC6, 0xF2, 0x04, 0x55, 0x02, 0x07,
0x37, 0x47, 0x56, 0x46, 0x56, 0xE7, 0x47, 0x32, 0x10, 0xEC, 0x11


Fehlerkorrekturdaten:
0x7B, 0x49, 0x72, 0xE5, 0x08, 0xCA, 0x44, 0x67, 0x8A, 0x24, 0xB3,
0x55, 0x0A, 0xDA, 0xA7, 0x6A, 0xC7, 0x45, 0xB2, 0x44, 0x4B, 0x74

Daten zusammmenfügen

Nachrichtendaten:
0x41, 0x24, 0x86, 0x56, 0xC6, 0xC6, 0xF2, 0x04, 0x55, 0x02, 0x07,
0x37, 0x47, 0x56, 0x46, 0x56, 0xE7, 0x47, 0x32, 0x10, 0xEC, 0x11


Fehlerkorrekturdaten:
0x7B, 0x49, 0x72, 0xE5, 0x08, 0xCA, 0x44, 0x67, 0x8A, 0x24, 0xB3,
0x55, 0x0A, 0xDA, 0xA7, 0x6A, 0xC7, 0x45, 0xB2, 0x44, 0x4B, 0x74


Daten:

0x41, 0x24, 0x86, 0x56, 0xC6, 0xC6, 0xF2, 0x04, 0x55, 0x02, 0x07,
0x37, 0x47, 0x56, 0x46, 0x56, 0xE7, 0x47, 0x32, 0x10, 0xEC, 0x11,

0x7B, 0x49, 0x72, 0xE5, 0x08, 0xCA, 0x44, 0x67, 0x8A, 0x24, 0xB3,
0x55, 0x0A, 0xDA, 0xA7, 0x6A, 0xC7, 0x45, 0xB2, 0x44, 0x4B, 0x74

Daten in den QR-Code einfügen

Daten in den QR-Code einfügen

Daten in den QR-Code einfügen

Daten in den QR-Code einfügen

Daten in den QR-Code einfügen

Daten in den QR-Code einfügen

Daten in den QR-Code einfügen

Daten in den QR-Code einfügen

Daten in den QR-Code einfügen

Maskierung

Maskierungsmuster = Gruppennummber mod 8

Maskierung

Informations Module

==> Fehlerkorrekturbibliothek

  int generateFormatString(uint32_t *format_string, const int version,
                         int error_correction_level,
                         const int mask_pattern_id)
     

Informations Module

Livedemo

P.S.

  • Die Aufgabenstellung besteht goßteils aus Bildern!
  • Lest auch die letzten Teile der Angabe (Spezifikation, ...)!
  • Verwendet ein struct zum Speichern des QR-Codes!
  • News Group lesen.
  • Gut und viel testen!

Viel Erfolg bei Ass3!

Abgabeschluss:

  • 23.12.2018 23:59:59 Uhr