Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 08/29/2022 in Posts

  1. Hello! For a company conference I'm arranging a LabVIEW quiz like the TV-show Family Feud and I would very much appreciate your help to gather response material. If you haven't seen the show, this is how it works in short: Before the show, 100 people are asked a bunch of questions, like "Name a fruit" The 100 people might then have answered: Apple: 43 Orange: 22 Pineapple: 21 Banana: 14 On the show the team then have to guess what people answered. If they guess "Apple", they get 43 points etc. I'm now looking for 100 people (or as many as I can find ) and have made a Google forms with 12 questions. The idea is not to think long and hard about the answers but write the first thing you think of and it might take about 3-5 minutes to answer all of them. If you would take some time to answer the questions I would very much appreciate it! https://forms.gle/QAnjTETdGGoXkyA79 If anyone is interested I can share the results later on. Thank you in advance!
    5 points
  2. Took some time to find this old thread in the Wayback Engine, but here it is: http://web.archive.org/web/20080315135806/http://forums.lavag.org/Comments-in-Configuration-Files-t9183.html&mode=linear You want the "read_configuration_data.vi ( 78.66K )" attachment.
    3 points
  3. So I removed the defualt version of libzmq3-dev package from Ubuntu and installed manualy the version with draft api enabled (for Ubuntu 20.4) echo 'deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/release-draft/xUbuntu_20.04/ /' | sudo tee /etc/apt/sources.list.d/network:messaging:zeromq:release-draft.list curl -fsSL https://download.opensuse.org/repositories/network:messaging:zeromq:release-draft/xUbuntu_20.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_messaging_zeromq_release-draft.gpg > /dev/null sudo apt update sudo apt install libzmq3-dev That fixes the problem and the basic functions ZMQ LabVIEW library works.
    2 points
  4. Lots of questions here, I will simply point you to vipm.io from when you'll be able to get VIPM related info. There are 4 'levels' of VIPM, free, community, pro and entreprise, see differences here https://www.vipm.io/download/ As far as I know VIPM is not a tool that will let you manage license subscription in your product, for this I think the best starting point is on NI forums : https://forums.ni.com/t5/Developer-Center-Resources/tkb-p/7307 As a side note, I think handling different types of licenses of your product is not an easy task, good luck with that!
    2 points
  5. Hardcoded paths the search directories may be, but each .tsenv file can have its own set of search directories and then each developer can have their own environment. Then if the sequences are set to use a relative path, problems should be gone.
    2 points
  6. Hi SayMaster, What seems to work for us is handling the Custom directories for the environment. This allows us to keep the .tsenv file and any dependencies of the environment in .git so we can have multiple environments setup each having its own search directories, adapters etc. The search directories, adapters etc are stored in the Cfg folder so you can have one for each environment that you set up. It has the benefit that you could also modify and prepare your deployment machines from your development environment, just by starting TS in the corresponding environment. Hope this helps!
    2 points
  7. Thanks, I downloaded the vi, and edited the post adding it.
    2 points
  8. Performance public service announcement. Benchmark is included below for those who want to validate this discovery. "Type Cast" works by flattening the type to string and then unflattening. In this case, it doesn't recognize the special case of the byte array already being a string, but the Byte Array To String node does recognize that equivalence, so doing this eliminates a significant part of the type cast effort. This has been reported to NI as a possibility for future optimization. array-typecast-benchmark.vi
    1 point
  9. 1 point
  10. The latter. Just like @hooovahh explained, the files are copied to a temporary location which can result in longer paths. The output directory for your application determines the location of the temporary folder, which is actually just the name of the executable as a folder (i.e. "Application.exe" but it's a folder). EDIT: Regarding vi.lib, these files also reside inside the "Application.exe" folder. Here is an example for JSONtext: "C:\Code\Repository\builds\Untitled Project 1\My Application\Application.exe\1abvi3w\vi.lib\JDP Science\JSONtext\LVClass Serializer" Here is an example of what it looks like during build.
    1 point
  11. It can. I believe the actual building will take place near the project in a hidden folder. So if your project is in C:\Code\Repository\Project Name, then you will have a folder like C:\Code\Repository\Project Name\Hidden Folder\VI.lib\... with all the code in it. So the full path to the reuse and project can be an issue. Shortening either is useful if that is the issue you are having. This was a much bigger issue in the XP days, where people would have source code checked out in their user folder, which was C:\Documents and Settings\Users\User Name\My Documents
    1 point
  12. Here's a couple more promotional videos recently unearthed. NIWeek 99 Highlights: NIWeek 2000 promotional video, with invitation by Dr. T:
    1 point
  13. I've got a client that is being haunted with this as well. It's right up there with sand into the gearbox.
    1 point
  14. Start here and then Google specifics. Good luck Generally though, you choose a licence and then mark the software as being covered by that licence (about box, licence file, etc) . Commercial offerings a bit harder though since you need to stop people using it if they have not bought a licence. Two ways you can look at it. A single piece of software that the user can choose from multiple licences (hard) or multiple, discrete, pieces of software have their own licence (easy). Non commercial is easy-just distribute a licence with the product. Commercial is harder-you need to cripple the software somehow when distributed and only become fully featured after a licence is purchased. You can either go it alone (web page and download) or via NI who have a couple of options. You would need to contact NI since they recently changed their sales model so I don't know what they are offering now, Depends on the licence-there are many. Not that I'm aware of. VIPM is an installer and distribution platform. If it's a commercial product then you will also need to look into the Third Party Licensing and Activation toolkit If you want a completely managed sales solution then speak with NI.
    1 point
  15. Nope! You have to do it like in the lower picture. And while the order "should" not matter, it's after all the intend of using reference counts to not allow a client to dispose an object before all other clients have closed it too, I try to always first close the sub objects and then the owner of them (just as you did). There are assemblies and especially ActiveX automation servers out there who don't properly do ref counting and may spuriously crash if you don't do it in the right order.
    1 point
  16. This utility VI is helpful for filtering out only contained controls in a right-click Affected Items array. [LabVIEW 20xx]\resource\plugins\PopupMenus\support\Filter For Contained Controls Only.vi Many of the shipping right-click plugins use this VI for the exact purpose you describe... for example, check out the source code for the Change To Array Or Element plugin: [LabVIEW 20xx]\resource\plugins\PopupMenus\edit time panel and diagram\Change To Array Or Element.llb\Change To Array Or Element.vi
    1 point
  17. This project may be interesting. It talks directly the Omron proprietary FINS protocol: https://github.com/jmor2000/LV-OMRON-FINS No OPC, no special Ethernet/IP function block or whatever needed on the Omron PLC. While the Omron FINS protocol is proprietary it is actually openly documented by Omron: https://www.myomron.com/downloads/1.Manuals/Networks/W227E12_FINS_Commands_Reference_Manual.pdf
    1 point
  18. I was working with a PXI-8840 dual-core, so slightly different than OP's, but we were successful in replacing the RAM using off the shelf parts just this past week. The original 4GB stick it came with was this: https://www.crucial.com/memory/ddr3/ct51264bf160bj We just bought the exact same model*, with instead 8gb: https://www.crucial.com/memory/ddr3/ct102464bf160b There wasn't any issues installing it, or being recognized.
    1 point
  19. Two ways to do what the OP is asking. 1. VI Server world: Children have a static link to their parents and Parents have a dynamic link to their children. This means that once a class is loaded into memory, the parent knows about the child. According to the documentation this will NOT work in the runtime environment, but i've used this several times when making IDE Tools. 2. Runtime Reflection: The following code will also give you an array of all of the children loaded in memory, but this time it uses less VI Server so it will work in the runtime environment. I use this when using a plugin architecture. I've not done a lot of performance testing with it, but on a medium-ish size project (one with ~150 classes) it only takes about 50 ms to run, so it's worked well for me so far. Having given you those solutions, I still think your best bet is to use a statically defined array. This will ensure things are loaded into memory when their needed and such. My solutions really only become worth it once you're dynamically loading classes.
    1 point
  20. I talked to Rob... I pointed out that he is the father of the JAMA architecture, and I asked permission, and he said, yes, we can therefore refer to him as "Pa JAMA".
    1 point
  21. Two years later...I found another way to handle this which is to put a clear functions command in a MATLAB Script Node at the start of the VI. This will force a recompile of the externally-edited .m file.
    1 point
  22. This is probably occurring because you have two instances of MATLAB open: the one you are editing, and the one LabVIEW is using to communicate with MATLAB and run the .m file. Try this: 1) Start with all applications closed. 2) Open the VI that has the Matlab Script Node and run it. You should notice a MATLAB Command Window in your taskbar as well. 3) Instead of double clicking test.m to open it, or opening MATLAB yourself to edit it, switch to the MATLAB Command Window and type 'open test.m' and hit enter. You should get test.m up in an editor. 4) Edit test.m to say a=a+2 as you mentioned above and save it. 5) Run the VI again. Because you edited the .m file in the same instance that will execute it, MATLAB knows that it needs to recompile it before it runs it. Apparently MATLAB does some caching when it compiles scripts into runnable code, and multiple instances of MATLAB don't talk to each other about which cached versions have been invalidated and should be recompiled. Editing in the same instance that will be doing the execution should fix that for you. I hope that helps.
    1 point
  23. You have two very similar threads on this forum, which makes it difficult to have a linear discussion: https://lavag.org/topic/22489-let%E2%80%99s-make-deep-learning-easy-with-haibal-library-on-labview/#comment-142891 We all agree that graphical programming has tons of advantages over pages of text code. However, most of us hate to be arm-twisted in having to pay annually for new versions of a language that fixes bug at a snail pace (if ever), release features that take 2 to 3 versions to work as advertised, and is offering abysmal level of technical support (and the list of recriminations could go on and on). Your toolkit looks truly amazing, but I would argue that you are not alone in having invested massive amount of time and effort in G-code. Yet, some of us who have, have come to the conclusion that we cannot reasonably tie our work to NI's whim and suicidal plans for LabVIEW. I have decided to migrate as fast as I can to Python. I'd argue that someone who is willing to do so (migrate to Python) will find the resources to master the basics of DL in Python, not mentioning that you'll have to keep running to stay on top of the new developments in the field with your toolkit. How you can hope to do that for free is a mystery to me. As I said, admirable, but a tad idealistic... Sorry for being he bearer of bad news, but "un homme averti en vaut deux", as the French say.
    0 points
×
×
  • Create New...

Important Information

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