Skip to content

Commit

Permalink
v2.1.0 - more QR VERSIONS available
Browse files Browse the repository at this point in the history
  • Loading branch information
yoprogramo committed Jan 19, 2023
1 parent 6b4e0dc commit 306c661
Show file tree
Hide file tree
Showing 13 changed files with 833 additions and 92 deletions.
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@ Each subclass have its own repository with its own dependencies. This library ha

If you do not find match for your display model feel free to contribute with a new subclasss or file an Issue here.

# How to select a different QR version

By default the QR version is 7 and ECC 1. If you wanna use a different version you have to define in your project QRCODEVERSION with a number from 1 to 10.
We have chosen this conditional compilation to reduce the library footprint for small devices. Frame files courtesy of @slavendam.

## Breaking changes in version 2.0.0
To avoid conflict with other libraries we have renamed the file qrcode.h to qrcodedisplay.h, so all the subclasses have to do the same change.

Expand Down
2 changes: 1 addition & 1 deletion library.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "QRcodeDisplay",
"version": "2.0.2",
"version": "2.1.0",
"keywords": "qr code, ESP32, ESP8266, TFT display, OLED Display, E-ink display",
"description": "Base clase for generating QRCodes on ESP devices with different kind of displays",
"repository":
Expand Down
2 changes: 1 addition & 1 deletion library.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=QRcodeDisplay
version=2.0.2
version=2.1.0
author=Jose Antonio Espinosa <[email protected]>
maintainer=Jose Antonio Espinosa <[email protected]>
sentence=Base code for displaying QRcodes on ESP based MCU with OLED, TFT or E-Ink displays
Expand Down
56 changes: 56 additions & 0 deletions src/frame-v1.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#if defined(QRCODEVERSION) && QRCODEVERSION == 1
const unsigned char neccblk1 = 1;
const unsigned char neccblk2 = 0;
const unsigned char datablkw = 19;
const unsigned char eccblkwid = 7;
const unsigned char VERSION = 1;
const unsigned char ECCLEVEL = 1;
const unsigned char WD = 21;
const unsigned char WDB = 3;
unsigned char strinbuf[63];
unsigned char qrframe[600];
unsigned char rlens[22];
#ifndef __AVR__
#define PROGMEM
#define memcpy_P memcpy
#define __LPM(x) *x
#else
#include <avr/pgmspace.h>
#endif
const unsigned char framebase[] PROGMEM = {
0xfe,0x03,0xf8,
0x82,0x02,0x08,
0xba,0x02,0xe8,
0xba,0x02,0xe8,
0xba,0x02,0xe8,
0x82,0x02,0x08,
0xfe,0xab,0xf8,
0x00,0x00,0x00,
0x02,0x00,0x00,
0x00,0x00,0x00,
0x02,0x00,0x00,
0x00,0x00,0x00,
0x02,0x00,0x00,
0x00,0x80,0x00,
0xfe,0x00,0x00,
0x82,0x00,0x00,
0xba,0x00,0x00,
0xba,0x00,0x00,
0xba,0x00,0x00,
0x82,0x00,0x00,
0xfe,0x00,0x00,
};

const unsigned char framask[] PROGMEM = {
0xff,0xff,0xff,
0xff,0xff,0xf8,
0x10,0x04,0x00,
0x80,0x08,0x1f,
0xf0,0x7f,0xc0,
0xff,0x80,0xff,
0x80,0x7f,0xc0,
0x1f,0xf0,0x03,
0xfe,0x00,0x3f,
0xe0,0x00,
};
#endif
108 changes: 108 additions & 0 deletions src/frame-v10.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
#if defined(QRCODEVERSION) && QRCODEVERSION == 10
const unsigned char neccblk1 = 2;
const unsigned char neccblk2 = 2;
const unsigned char datablkw = 68;
const unsigned char eccblkwid = 18;
const unsigned char VERSION = 10;
const unsigned char ECCLEVEL = 1;
const unsigned char WD = 57;
const unsigned char WDB = 8;
unsigned char strinbuf[456];
unsigned char qrframe[600];
unsigned char rlens[58];
#ifndef AVR
#define PROGMEM
#define memcpy_P memcpy
#define __LPM(x) *x
#else
#include <avr/pgmspace.h>
#endif
const unsigned char framebase[] PROGMEM = {
0xfe,0x00,0x00,0x00,0x00,0x03,0x3f,0x80,
0x82,0x00,0x00,0x00,0x00,0x01,0x20,0x80,
0xba,0x00,0x00,0x00,0x00,0x03,0x2e,0x80,
0xba,0x00,0x00,0x00,0x00,0x01,0x2e,0x80,
0xba,0x00,0x00,0x3e,0x00,0x01,0x2e,0x80,
0x82,0x00,0x00,0x22,0x00,0x02,0x20,0x80,
0xfe,0xaa,0xaa,0xaa,0xaa,0xaa,0xbf,0x80,
0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x3e,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0f,0x80,0x00,0x3e,0x00,0x00,0xf8,0x00,
0x08,0x80,0x00,0x22,0x00,0x00,0x88,0x00,
0x0a,0x80,0x00,0x2a,0x00,0x00,0xa8,0x00,
0x08,0x80,0x00,0x22,0x00,0x00,0x88,0x00,
0x0f,0x80,0x00,0x3e,0x00,0x00,0xf8,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xa6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x3e,0x00,0x00,0xf8,0x00,
0x00,0x80,0x00,0x22,0x00,0x00,0x88,0x00,
0xfe,0x00,0x00,0x2a,0x00,0x00,0xa8,0x00,
0x82,0x00,0x00,0x22,0x00,0x00,0x88,0x00,
0xba,0x00,0x00,0x3e,0x00,0x00,0xf8,0x00,
0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xba,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};

const unsigned char framask[] PROGMEM = {
0xff,0xff,0xff,0xff,0xff,0xf8,0x10,0x04,
0x00,0x80,0x08,0x00,0x40,0x01,0x00,0x02,
0x00,0x02,0x00,0x01,0x00,0x00,0x40,0x00,
0x08,0x00,0x00,0x80,0x00,0x04,0x00,0x00,
0x10,0x00,0x00,0x20,0x00,0x00,0x20,0x00,
0x00,0x10,0x00,0x00,0x1f,0x00,0x00,0x43,
0xe0,0x00,0x0c,0x3e,0x00,0x00,0xe1,0xf0,
0x00,0x07,0x87,0xc0,0x00,0x1f,0x02,0x00,
0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,
0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x08,
0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,
0x04,0x00,0x00,0x00,0x00,0x10,0x00,0x00,
0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x20,
0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x80,
0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x7f,
0x00,0x00,0x00,0x00,0x00,0xfe,0x00,0x00,
0x00,0x00,0x00,0xfe,0x00,0x00,0x3e,0x00,
0x00,0xff,0xc0,0x00,0x1f,0x00,0x00,0x7f,
0xf0,0x00,0x07,0xc0,0x00,0x1f,0xfe,0x00,
0x00,0xf8,0x00,0x03,0xff,0xe0,0x00,0x0f,
0x80,0x00,0x3f,0xff,0x00,0x00,0x00,0x00,
0x00,0x07,0xfc,0x00,0x00,0x00,0x00,0x00,
0x0f,0xf8,0x00,0x00,0x00,0x00,0x00,0x0f,
0xf8,0x00,0x00,0x00,0x00,0x00,0x00,
};
#endif
61 changes: 61 additions & 0 deletions src/frame-v2.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#if defined(QRCODEVERSION) && QRCODEVERSION == 2
const unsigned char neccblk1 = 1;
const unsigned char neccblk2 = 0;
const unsigned char datablkw = 34;
const unsigned char eccblkwid = 10;
const unsigned char VERSION = 2;
const unsigned char ECCLEVEL = 1;
const unsigned char WD = 25;
const unsigned char WDB = 4;
unsigned char strinbuf[100];
unsigned char qrframe[600];
unsigned char rlens[26];
#ifndef __AVR__
#define PROGMEM
#define memcpy_P memcpy
#define __LPM(x) *x
#else
#include <avr/pgmspace.h>
#endif
const unsigned char framebase[] PROGMEM = {
0xfe,0x00,0x3f,0x80,
0x82,0x00,0x20,0x80,
0xba,0x00,0x2e,0x80,
0xba,0x00,0x2e,0x80,
0xba,0x00,0x2e,0x80,
0x82,0x00,0x20,0x80,
0xfe,0xaa,0xbf,0x80,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0xf8,0x00,
0x00,0x80,0x88,0x00,
0xfe,0x00,0xa8,0x00,
0x82,0x00,0x88,0x00,
0xba,0x00,0xf8,0x00,
0xba,0x00,0x00,0x00,
0xba,0x00,0x00,0x00,
0x82,0x00,0x00,0x00,
0xfe,0x00,0x00,0x00,
};

const unsigned char framask[] PROGMEM = {
0xff,0xff,0xff,0xff,
0xff,0xf8,0x10,0x04,
0x00,0x80,0x08,0x00,
0x40,0x01,0x00,0x02,
0x00,0x02,0x00,0xff,
0xc0,0x7f,0xf0,0x1f,
0xfe,0x03,0xff,0xe0,
0x3f,0xff,0x00,0x07,
0xfc,0x00,0x0f,0xf8,
0x00,0x0f,0xf8,0x00,
0x00,
};
#endif
68 changes: 68 additions & 0 deletions src/frame-v3.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#if defined(QRCODEVERSION) && QRCODEVERSION == 3
const unsigned char neccblk1 = 1;
const unsigned char neccblk2 = 0;
const unsigned char datablkw = 55;
const unsigned char eccblkwid = 15;
const unsigned char VERSION = 3;
const unsigned char ECCLEVEL = 1;
const unsigned char WD = 29;
const unsigned char WDB = 4;
unsigned char strinbuf[116];
unsigned char qrframe[600];
unsigned char rlens[30];
#ifndef __AVR__
#define PROGMEM
#define memcpy_P memcpy
#define __LPM(x) *x
#else
#include <avr/pgmspace.h>
#endif
const unsigned char framebase[] PROGMEM = {
0xfe,0x00,0x03,0xf8,
0x82,0x00,0x02,0x08,
0xba,0x00,0x02,0xe8,
0xba,0x00,0x02,0xe8,
0xba,0x00,0x02,0xe8,
0x82,0x00,0x02,0x08,
0xfe,0xaa,0xab,0xf8,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x02,0x00,0x0f,0x80,
0x00,0x80,0x08,0x80,
0xfe,0x00,0x0a,0x80,
0x82,0x00,0x08,0x80,
0xba,0x00,0x0f,0x80,
0xba,0x00,0x00,0x00,
0xba,0x00,0x00,0x00,
0x82,0x00,0x00,0x00,
0xfe,0x00,0x00,0x00,
};

const unsigned char framask[] PROGMEM = {
0xff,0xff,0xff,0xff,
0xff,0xf8,0x10,0x04,
0x00,0x80,0x08,0x00,
0x40,0x01,0x00,0x02,
0x00,0x02,0x00,0x01,
0x00,0x00,0x40,0x00,
0x08,0x00,0x00,0x80,
0x03,0xff,0x00,0x1f,
0xfc,0x00,0x7f,0xf8,
0x00,0xff,0xf8,0x00,
0xff,0xfc,0x00,0x01,
0xff,0x00,0x00,0x3f,
0xe0,0x00,0x03,0xfe,
0x00,0x00,0x00,
};
#endif
Loading

0 comments on commit 306c661

Please sign in to comment.