1111QRManager qrManager;
1212
1313std::vector<uint8_t > QRManager::encode (const void * src, size_t len, size_t version, size_t ecc, size_t *out_len) {
14+ // If version is not specified, choose the smallest version that can hold the data
15+ if (version < 1 )
16+ version = qrcode_minVersion (ecc, (const char *)src);
17+
1418 qrManager.version = version;
1519 qrManager.ecc_mode = ecc;
1620
1721 *out_len = 0 ;
1822 qrManager.out_buf .clear ();
1923 qrManager.out_buf .shrink_to_fit ();
2024
21- if (version < 1 || version > 40 || ecc > 3 ) {
22- return qrManager.out_buf ;
25+ // if (version < 1 || version > 40 || ecc < 0 || ecc > 3) {
26+ // if (version < 1 || version > 40 || ecc > 3) {
27+ if (version > 40 || ecc > 3 ) {
28+ return qrManager.out_buf ; // error
2329 }
2430
2531 QRCode qr_code;
@@ -164,9 +170,14 @@ void QRManager::to_petscii(void) {
164170 std::vector<uint8_t > out;
165171 bool reverse = false ;
166172
167- out.push_back (size);
173+ // out.push_back(0x00); // Load Address
174+ // out.push_back(0x04); // Screen RAM 0x0400
175+
176+ // out.push_back(size);
177+ out.push_back (13 ); // Carriage return
168178
169179 for (auto y = 0 ; y < size; y += 2 ) {
180+ out.push_back (32 ); // Space
170181 for (auto x = 0 ; x < size; x += 2 ) {
171182 uint8_t val = bytes[1 +y*size+x];
172183 // QR Codes have odd number of rows/columns, so last PETSCII char is only half full
@@ -181,6 +192,8 @@ void QRManager::to_petscii(void) {
181192 }
182193 out.push_back (13 ); // Carriage return
183194 }
195+ // out.push_back(00);
196+ // out.push_back(00);
184197
185198 qrManager.out_buf = out;
186- }
199+ }
0 commit comments