Jump to content
QRAsk

LabVIEW can generate QR code or not.

Recommended Posts

Thank you.

I want to generate on offline.

What tools I have to use?

I don't know how you would do this offline. As I stated, you must have internet access because it uses the Google Charts API.

Share this post


Link to post
Share on other sites

I don't know how you would do this offline. As I stated, you must have internet access because it uses the Google Charts API.

Thank you.

Share this post


Link to post
Share on other sites

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".

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Yes, but did you make that with LabVIEW?

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

  • Like 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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)

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

But do anyone know how to decode the Code 39 and QR code by using labview?

Any .dll library or zxing library can be used?

Share this post


Link to post
Share on other sites

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.