<h3>Contribution description</h3>
<p>This PR add this <a href="https://github.com/nayuki/QR-Code-generator">QR code generator project</a> as a package.</p>
<p>The test application provided simply prints the generated QR code in the terminal and can be scanned with a QR code scanner (tested on Android).</p>
<p>This library could be used with any kind of displays or printers.</p>

<h3>Testing procedure</h3>
<ul>
<li>Green Murdock</li>
<li>The provided test application works (tested on native and nrf52dk):</li>
</ul>
<details>
<pre><code>$ BUILD_IN_DOCKER=1 make -C tests/pkg_qr-code-generator BOARD=nrf52dk flash test IOTLAB_NODE=auto-ssh --no-print-directory 
Launching build container using image "riot/riotbuild:latest".
docker run --rm --tty --user $(id -u) -v '/usr/share/zoneinfo/Europe/Paris:/etc/localtime:ro' -v '/work/riot/RIOT:/data/riotbuild/riotbase:delegated' -e 'RIOTBASE=/data/riotbuild/riotbase' -e 'CCACHE_BASEDIR=/data/riotbuild/riotbase' -e 'BUILD_DIR=/data/riotbuild/riotbase/build' -e 'RIOTPROJECT=/data/riotbuild/riotbase' -e 'RIOTCPU=/data/riotbuild/riotbase/cpu' -e 'RIOTBOARD=/data/riotbuild/riotbase/boards' -e 'RIOTMAKE=/data/riotbuild/riotbase/makefiles'      -e 'BOARD=nrf52dk'  -w '/data/riotbuild/riotbase/tests/pkg_qr-code-generator/' 'riot/riotbuild:latest' make 'BOARD=nrf52dk'    
Building application "tests_pkg_qr-code-generator" for "nrf52dk" with MCU "nrf52".

"make" -C /data/riotbuild/riotbase/pkg/qr-code-generator
"make" -C /data/riotbuild/riotbase/build/pkg/qr-code-generator/c -f /data/riotbuild/riotbase/pkg/qr-code-generator/qr-code-generator.mk
"make" -C /data/riotbuild/riotbase/boards/nrf52dk
"make" -C /data/riotbuild/riotbase/boards/common/nrf52xxxdk
"make" -C /data/riotbuild/riotbase/core
"make" -C /data/riotbuild/riotbase/cpu/nrf52
"make" -C /data/riotbuild/riotbase/cpu/cortexm_common
"make" -C /data/riotbuild/riotbase/cpu/cortexm_common/periph
"make" -C /data/riotbuild/riotbase/cpu/nrf52/periph
"make" -C /data/riotbuild/riotbase/cpu/nrf52/vectors
"make" -C /data/riotbuild/riotbase/cpu/nrf5x_common
"make" -C /data/riotbuild/riotbase/cpu/nrf5x_common/periph
"make" -C /data/riotbuild/riotbase/drivers
"make" -C /data/riotbuild/riotbase/drivers/periph_common
"make" -C /data/riotbuild/riotbase/sys
"make" -C /data/riotbuild/riotbase/sys/auto_init
"make" -C /data/riotbuild/riotbase/sys/isrpipe
"make" -C /data/riotbuild/riotbase/sys/malloc_thread_safe
"make" -C /data/riotbuild/riotbase/sys/newlib_syscalls_default
"make" -C /data/riotbuild/riotbase/sys/stdio_uart
"make" -C /data/riotbuild/riotbase/sys/test_utils/interactive_sync
"make" -C /data/riotbuild/riotbase/sys/tsrb
   text    data     bss     dec     hex filename
  14616     128    2544   17288    4388 /data/riotbuild/riotbase/tests/pkg_qr-code-generator/bin/nrf52dk/tests_pkg_qr-code-generator.elf
iotlab-node --jmespath='keys(@)[0]' --format='lambda ret: exit(int(ret))'  --list saclay,nrf52dk,10 --flash /work/riot/RIOT/tests/pkg_qr-code-generator/bin/nrf52dk/tests_pkg_qr-code-generator.bin
r
ssh -t abadie@saclay.iot-lab.info 'socat - tcp:nrf52dk-10.saclay.iot-lab.info:20000' 
Help: Press s to start test, r to print it is ready
READY
s
START
main(): This is RIOT! (Version: 2021.07-devel-202-gc8cfd-pr/pkg/qr-code-generator)
██████████████  ██████████    ██    ██████████████
██          ██  ██    ██      ████  ██          ██
██  ██████  ██  ████    ██  ████    ██  ██████  ██
██  ██████  ██  ████        ██      ██  ██████  ██
██  ██████  ██  ██████████  ████    ██  ██████  ██
██          ██    ██  ██    ████    ██          ██
██████████████  ██  ██  ██  ██  ██  ██████████████
                ██      ██████  ██                
  ████  ██  ████    ██████  ██████  ██  ██████████
  ████    ██  ████████  ██        ████          ██
  ██  ████████  ██  ██  ████                ██████
██████  ██    ██    ██  ██            ██      ██  
          ████████  ██  ██        ██████  ██  ████
  ██          ████    ██  ██    ██████    ██    ██
██    ██    ██    ████████        ██  ██    ██████
  ██    ████  ████    ██        ██  ██  ██    ██  
██      ██  ██████          ████████████████      
                ██████    ██  ████      ████  ████
██████████████  ████████  ████████  ██  ████  ████
██          ██    ██  ██████    ██      ████    ██
██  ██████  ██  ██████████      ████████████    ██
██  ██████  ██    ████  ██  ██        ████████    
██  ██████  ██  ██  ████      ██  ██    ██      ██
██          ██  ████    ██████████      ████  ██  
██████████████          ██      ██  ████      ████

SUCCESS
</code></pre>
</details>

<h3>Issues/PRs references</h3>
<p>None</p>


<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/RIOT-OS/RIOT/pull/16462'>https://github.com/RIOT-OS/RIOT/pull/16462</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>pkg: add qrcode generator package</li>
  <li>tests: add test application for qrcode package</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-6d56c6cf118d798a2e6cfb8a0a82cd77fea915c948ccd22c2896eda80ab78aea">pkg/Kconfig</a>
    (1)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-2b142412e6016e9cc6cc2a251e964df8d1eb9d73fcc6f325044b3d8debea92fa">pkg/qr-code-generator/Kconfig</a>
    (9)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-12812608ac2f02005cb89d39e4a012c68cfd0a43b9e3c8df0e7df68a1ec6db48">pkg/qr-code-generator/Makefile</a>
    (11)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-019d0a42a51611ec5682405eda555cc57e4376ace6c4378e656431b6a58b0d98">pkg/qr-code-generator/Makefile.include</a>
    (1)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-cc96528cbf264f657e59c0cee175236996dbabb5016ba7284179ebbd22bead46">pkg/qr-code-generator/doc.txt</a>
    (11)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-d66a2e0a7ba16a6195833b88fcf67c6efa64f7905b913aa035d6dfc86af5346b">pkg/qr-code-generator/qr-code-generator.mk</a>
    (5)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-7f71383ae716ef45b14408b3bcae0a0794415d16111bd5ecc43d3a26f39d5d1f">tests/pkg_qr-code-generator/Makefile</a>
    (9)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-5f55fd7a5caed71a96688ee5159c55b4fae07acf486b75c772482f1560b8a537">tests/pkg_qr-code-generator/app.config.test</a>
    (1)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-ad045d248a875fedd6e4cbe94c48b1d2d0a3ae71afb64fd7d88d81fb70ef49f2">tests/pkg_qr-code-generator/main.c</a>
    (53)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/16462/files#diff-735834419698eee4a18f1e01ef4434b72fd914f9e238643346b9bd5dc4799b45">tests/pkg_qr-code-generator/tests/01-run.py</a>
    (48)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/16462.patch'>https://github.com/RIOT-OS/RIOT/pull/16462.patch</a></li>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/16462.diff'>https://github.com/RIOT-OS/RIOT/pull/16462.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/16462">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYF43JQCMWG4HAHN5ETTMZNKNANCNFSM44O26PTA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/ABE7WYDHHOIMYD3JEP5ESB3TMZNKNA5CNFSM44O26PTKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4NET3RQA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/16462",
"url": "https://github.com/RIOT-OS/RIOT/pull/16462",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>