-
-
Notifications
You must be signed in to change notification settings - Fork 671
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FR] Encode QR data more efficiently #6612
Comments
@wolflu05 I'm on board, it would be a good idea to improve our QR system for better printing. Preserving backwards compatibility is obviously necessary, but mostly on the "scanning" side.
Good idea, we could default to the new style, and allow users to preserve old style, potentially I would suggest that we make the new codes a bit more unique, though. Perhaps an |
I seem to remember that @matmair has tried to standardize things across inventory software. Maybe you know something/have some ideas in this area too, on how qrcodes can be standardized across inventory software while trying to fit the required data into a v1 QR code with abilities to increase the error correction level. |
The standard is to use EAN or G1 codes but that will take more space than your suggestion. This could be combined with #5208 / a generic reference model to make this useable for plugins too |
But aren't ean/gtin numbers just 13 digits so they would fit in a v1 qr? And as they are all numbers, they would even fit in a number type qr with 30% error correction. |
Sorry I was unclear; typeIds would need v2, they are at least 28 chars |
They then even would need v3, because 15% error correction would be minimum in my opinion (max 26chars) . Higher ECL would be even better. So when we do it, we should make typeids optional as a third encoding type next to the current behavior and something short for small qrs (this issue). |
This issue seems stale. Please react to show this is still important. |
I still need to find a better solution for this. It's definitely on my roadmap. |
Please verify that this feature request has NOT been suggested before.
Problem statement
Current QR codes encode lots of unnecessary data, and even in binary format (which requires much more bits per char) which causes higher version QR codes more modules => larger grid => cannot be printed that small. This especially happens with stock location QR codes because they encode the most of unnecessary data, and even an id with only one char already requires a v2 QR code
{"part": 9}
(11 chars) => v1{"part": 99999}
(15 chars) => v2{"stocklocation": 9}
(20 chars) => v2{"stocklocation": 99999999}
(27 chars) => v3QR version overview
Source
Comparison
(base coast/
extra bytes)
{"part": ID}
(10){"stocklocation": ID}
(19){"stockitem": ID}
(15){"build": ID}
(11)(max: 14)
(max: 26)
(max: 42)
The cells show the max digit count of which an ID can consist to work with that version of QR code
Suggested solution
I suggest to reduce the size of unnecessary data and either add the ability to increase the ECL level from
M
(15%) to something likeQ
(25%) or evenH
(30%) while still staying with a V1 QR code for all types currently available. And to still keep backwards compatibility I suggest we add a toggle to the settings to decide which type to use. And for scanning systems (web UI, app, ...), we could easily support to read both types.For encoding the data a bit more sparingly I have two ideas:
P9999
(part)P9999
019999
The cells show the max digit count of which an ID can consist to work with that version of QR code
Describe alternatives you've considered
/
Examples of other systems
I'm not sure how other systems efficiently encode their data in QR codes, but I'm sure we're not the first ones. Maybe there is even a efficient standard we could use?
Do you want to develop this?
The text was updated successfully, but these errors were encountered: