Jump to content


  • Content Count

  • Joined

  • Days Won


Everything posted by ShaunR

  1. This is a 3rd party (and free) solution I've used the past, successfully. Download Sumatra PDF from the website and install. You can use it to print from the command line. .Sumatra Print.vi
  2. To use the PrintDocument .NET interface you need a 3rd party .NET assembly to render it (like Acrobat). Otherwise you'll just get a blank document.
  3. You can register ActiveX controls using regsvr32.exe (located in windows/system32).
  4. NI have said on many occasions that the VI diagram password system is not intended to protect IP - more of a disincentive to fiddle with diagrams (think of operators on a production line). NI's recommendation if you require stronger security is to remove the diagrams.
  5. Nah. You just haven't had a misspent youth like I have ;)
  6. If it's something like Get User Tag.vi or Set User Tag.vi, I can guarantee there is nothing in there that would surprise you.
  7. The most likely route is to carve off LabVIEW into a separate subsidiary company to let it sink or swim on it's own merits.
  8. Well. It seems my response to this was deleted. Presumably the hyperbole I used angered the Lavagods.
  9. I almost changed with 2013 because of the JSON primitive but alas, it was as much use a chocolate fireguard. I would change to 2020 because of the TLS support if it were not that I was forced to create my own solution 6 years ago If 2021 has multilingual support I will change to that but I won't hold my breath. I'll let you whizz-kids find all the bugs in the latest versions and my crusty VI's will still work for you. That is the magic of LabVIEW.
  10. Nice list of features, not that I use any of them. Well. Maybe the occasional VIM but that was available unofficially in 2009 like many of the others You did, however, leave out the TLS for TCP in 2020 which is a huge one IMO. Unless NI find a way to give us proper multilingual support; that alone will mean it's eventual downfall. I predict it is only a matter of time until LabVIEW becomes a SaaS because of that.
  11. Why wouldn't you use a notifier for this? It seems the only reason you have chosen this method is because it doesn't poll data (advantage over a global or local variable) or you have more than one element and expect the consumer(s?) to eventually catch up. A queue is a many-to-one construction whereas a notfier is a one-to-many so it seems a strange choice if you have multiple consumers.
  12. Well. not exactly horses for courses and "generally used" brings us back to square one. Your experience is demonstrably the same as mine and many others yet cling to a specific use case (that i would agree with JKSH as an abuse) that you admit is obsolete. But you do you. I guess it's one of those differences between a Systems Engineer and a Programmer. Macro vs micro scale.
  13. If you do that with the example then the detection time for "doggie died" is 9 times more which is why you use a single element queue. In an actual Watchdog rather than the example (where the wait is inline in the example rather than a timed event) the detection time is just the kicker's timeout. With your modification it would be 10 "kicks". If this were kicking every 10 minutes, that's a watchdog failure detection of 2 secs with an SEQ vs 100 minutes with your change. It seems you have proven my point with another practical example but are hung up on terminology.
  14. Functional globals were used in lieu of DVR's before DVR's were invented. Maybe they were used inside classes to produce singletons before DVR's but there are lots of tricks to get around Labview POOP. I've always seen SEQ's used as a synchronisation method as demonstrated with the watchdog.
  15. Queue's provide a feature that is not present with other methods such as notifiers and events. They provide a "back-pressure" in that the server can detect when when the queue is full. So any situation where server thottling or ordered, buffered synchronisation is required is a natural candidate to use a queue, even if the queue size is one. My point though is that a single element queue is not generally used as an alternative to a DVR and is used for a completely different reason. WD example.vi
  16. That's not why most of us use single element queues. It is used mainly for synchronisation between concurrent operations. In that respect it is akin to pipelining or events and is an edge case of a queued state machine. In fact. I used a single element queue to make a "named events" VIM. A watchdog timer is a good example of when to use a SEQ and the data - value or type - is irrelevant.
  17. I've been badgering Rolf for years to release his API properly. He's produced some fantastic API's that have no equal in terms of function and quality-especially cross platform. My current use case is for ffmpeg.
  18. Generate output to a command prompt? LabVIEW has no concept of a being a console application and you can't natively create one. You can execute console apps using System Exec but if you want LabVIEW to behave as if it were a console app, you have to program a VI to specifically send to stdout and stderr streams. There are a couple of solutions to this: But my preferred solution is Rolf's Pipes API.
  19. 1. Standard way for variable length strings is to prepend the length. 2. The connection was closed. This can happen as part of normal communication, for example, when you press stop in loop C. This is because you will explicitly close the connection while your read loop is trying to connect or read.
  20. You don't get an NI part number just by publishing on the Tools Network. Granted, when I was asked if i wanted to take advantage, it was a product on the tools network but it becomes a part of their product catalogue. Companies can then order it through NI themselves along with their other software and hardware and NI then pay you.
  21. NI have (at least used to have) a facility where you can give them the software and their sales team will sell it alongside their other products. You get an NI product number and it's included in their software catalogue.
  22. No news is good news. I have a couple of "tricks" I use here. Periodically I will remove the software from the public and wait to see if I get any complaints that it's missing. If there is still no feedback then it goes back in my private toolbox-no immediate interest means people are probably no longer using it and you don't have to support it in 10 years time when someone stumbles across it. Sometimes I release a "Beta" version. They are not really beta's (I don't believe in them) but fully tested products. These are usually for things that have taken me some time to create b
  23. Boss: There's no "i" in team. ShaunR: There's no "u" either but there is "me".
  24. I've written quite a few a test sequencers. They all worked roughly the same way which was a little bit like CSS in being able to include other files. Basically scripting. I have always been lucky though. I got to specify the hardware and using SCPI means you can just script the commands directly from the files with a simple TCPIP or Serial squirter and not bother with drivers. But simple wrappers around drivers can also be used for difficult stuff. I just extended the SCPI syntax to include the hardware route. So you end up with "recipe's" and add some custom stuff for delays/waits, a dialogu
  • Create New...

Important Information

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