Jump to content

LabVIEW can generate QR code or not.


QRAsk

Recommended Posts

There are several .dll availables for .NET. You can use them also in LabVIEW. http://www.google.nl/search?q=qr+code+generator+dll. Further when you google on "ISO/IEC 18004:2006" you may or may not find a .PDF file containing the ISO/IEC specification of QR code, enabling you to fully implement QR code in LabVIEW. However note that the .PDF is actually not the latest edition "ISO/IEC 18004:2006" but the previous "ISO/IEC 18004:2000".

Link to comment

I think this is the closest thing I've seen. https://decibel.ni.c.../docs/DOC-14718

The author notes that the details required for implementation of QR code generation (and licensing I assume) are expensive.

It's a combination of the price and time. I (the author) work on the LabVIEW Language team and developing libraries for users is not one of my job responsibilities. Most of the work on the bar codes is done during my free time or on our free form test days.

I recently added (but have not yet cleaned up / tested / published) support for PDF417, which may be an acceptable alternative to QR codes. I noticed recently that tcpdf supports QR codes and it's distributed under the LGPL. I may be able to port it, but it's not very well documented (and neither is the source of their QR code support. It seems like a very complex bar code from what I've seen, so I'm not optimistic about being able to implement it quickly. (I'd also need to double check with NI's legal department regarding porting from LGPL code)

  • Like 1
Link to comment
  • 1 month later...

I've done most of the implementation for supporting QR codes, but I'm having a lot of trouble generating the error correction codes. There are four error correction levels (L, M, Q, and H). 100% of my tested QR codes have the correct error correction for Q and H. About 50% of M codes have the correct error correction codes, and none of the L codes have the correct error correction data. I can't figure out what's wrong with it. Does anyone have experience with generating QR codes?

I've looked at some other implementations (MIT license only -- I'd like to stay away from GPL code just in case), but their implementation is very confusing to me.

  • Like 1
Link to comment
  • 3 weeks later...

I've done most of the implementation for supporting QR codes, but I'm having a lot of trouble generating the error correction codes. There are four error correction levels (L, M, Q, and H). 100% of my tested QR codes have the correct error correction for Q and H. About 50% of M codes have the correct error correction codes, and none of the L codes have the correct error correction data. I can't figure out what's wrong with it. Does anyone have experience with generating QR codes?

post-26690-0-71182500-1334258067.png

  • Like 2
Link to comment

Yes, but did you make that with LabVIEW?

Shaun is correct, 100% pure G. Not up to spec, no Kanji, no mixed mode messages, just a simple encoder I have used many times to label objects around the lab. Chokes in a few corner cases when I approach the data limit of a particular version, but all levels of EC work.

(I am not trying just to be a tease, but there is a bit of cleanup left to do since I kind of stopped once it was working. I can probably help with the problems in your code though).

Edited by Darin
Link to comment

According to the text in the code....yes :)

Shaun is correct, 100% pure G. Not up to spec, no Kanji, no mixed mode messages, just a simple encoder I have used many times to label objects around the lab. Chokes in a few corner cases when I approach the data limit of a particular version, but all levels of EC work.

(I am not trying just to be a tease, but there is a bit of cleanup left to do since I kind of stopped once it was working. I can probably help with the problems in your code though).

Haha, I just realized that. I read it so quickly before that I completely skipped the first half of the sentence! I'd use the oops smiley if I didn't think it was obnoxious ;)

Darin, check your messages

Link to comment

Shaun is correct, 100% pure G. Not up to spec, no Kanji, no mixed mode messages, just a simple encoder I have used many times to label objects around the lab. Chokes in a few corner cases when I approach the data limit of a particular version, but all levels of EC work.

(I am not trying just to be a tease, but there is a bit of cleanup left to do since I kind of stopped once it was working. I can probably help with the problems in your code though).

Would you maybe want to publish the code on a public source? GIT? Google code? And maybe even a better start question do you even want to share it? (oh and I don't really care if its messy ;) )

Edited by Wouter
Link to comment

Not sure if I want to be on the hook for documentation/support if I posted to the CR, maybe a NI community page is in order, or Mr Mike will sort his out and add to the page. By all means let me know of any bugs, certainly a lot of version/EC combinations have not been tried.

Forums are a much better format for in-progress development IMHO. You are also far more likely to get contributions to bring it to fruition. You can decide on a license that suits you and is much clearer to people than the NI site.

Additionally, once mature and if you decide to, it can go as part of the Lava tools network, a package under the jki thingy, or just remain in the CR with no major headaches. Documentation isn't that rigorous (readme and version history if I recall). Perhaps start it off in the uncertified.

Nice work. :thumbup1:

Edited by ShaunR
Link to comment

You asked for it. A little cleaning went a long way, just did not have a chance to document things very well (have to jog my memory for that). This was built with piecemeal documentation, mostly to the original iso-spec, and with a lot of reverse engineering. Seems to work as well as my iPhone reader, hard to tell which one is the problem in a few corner cases.

Not sure if I want to be on the hook for documentation/support if I posted to the CR, maybe a NI community page is in order, or Mr Mike will sort his out and add to the page. By all means let me know of any bugs, certainly a lot of version/EC combinations have not been tried.

post-26690-0-19518000-1334538919.png

That is very nice! Which ISO version did you use? ISO/IEC 18004:2000 or ISO/IEC 18004:2006? Because I if you google good you can find the first one as a .pdf on the web. The second you can't (or well maybe... but then your google skills are better then mine :P)

Link to comment

OpenG candidate?

I tend to view OpenG functions as tidy little timesavers, this is more of a tool so I am not sure if it is a total match. But, I definitely want it to be shared in the same spirit.

That is very nice! Which ISO version did you use? ISO/IEC 18004:2000 or ISO/IEC 18004:2006? Because I if you google good you can find the first one as a .pdf on the web. The second you can't (or well maybe... but then your google skills are better then mine :P)

Most of the info came from Wikipedia (did not require many google skills for that), and it claims to be 2006. My guess is that the limit subset of features I have implelemented are compatible with the 2006 standard, but my no means is it "up to spec". Of course seeing the spec would be required for that, and that costs $$$.

I have added a thread on the Code in Development Board for those interested:

Already added a few more comments, and fixed one "bug" (more of a cheat) where I was using a mask to fix the bits when encoding the error correction. I changed the EC ring to not have sequential values, now the values correspond to the binary value of the encodings and it is clear that the mask is the one from the spec. (You should not have to worry about this "stuff" to use it, but of course the values L,M,Q,H would never correspond to 0,1,2,3 in the spec).

  • Like 1
Link to comment

Most of the info came from Wikipedia (did not require many google skills for that), and it claims to be 2006. My guess is that the limit subset of features I have implelemented are compatible with the 2006 standard, but my no means is it "up to spec". Of course seeing the spec would be required for that, and that costs $$$.

The Matcha Design blog has an excellent series (1, 2, 3, 4, 5, 6) on generating QR codes. I've used it to develop all of what I've got so far, but there seems to be something wrong during error correction.

Link to comment
  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.