Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 10/28/2022 in all areas

  1. Today I told NI, that I am not willing to join a subcription program, in which NI can increase the pices as they want or to shutdown my software and that LabVIEW 2022 will be my last version. I just can encourage all other guys to do the same and to not accept such a pricing model.
    2 points
  2. new release in my fork : https://github.com/AntoineChalons/lv-toml/releases/tag/releases%2Fv2.3.2 what's new : I've improved the error reporting when there is a typo in the value, ex : [cluster] some-numerial-value = 10 other-numerial-value-with-a-typo = 10s The error source will quote the line at fault and give you the line index, something like "Parsing error at line 3 : 'other-numerical-value-with-a-typo = 10s'
    2 points
  3. There was a couple, but I never used any of them. I think BLT is one that meets the needs, and I think Wirebird Labs had one, but that hasn't had any update in forever.
    2 points
  4. Hey let's not get hasty now. But honestly this has bitten me on a few occasions as well, so don't feel bad.
    2 points
  5. Is this a sequence editor? If so I don't see the tab design being very scalable. Here is a screenshot of something we do. It has a tree control on the left with all the different step types, with categories for them. Then the user can drag and drop an icon over to the right. Once they do a dialog will come up with the settings for the step they selected. They can also double click a step on the right for the settings for that step to come up again. There's lots of extra stuff like custom step limits, which is a slide out, and visual arrows if a step has a condition for jumping. Loops are seen as a tree on the right where you can drag and drop into or out of loops, and rearranging steps is also a drag and drop. There is also columns for icons that can be clicked, which is actually two picture controls because you can't have multiple glyphs in a tree, and if you can hack that in the icon size has to be real small. Each step has a typed cluster with the settings for it, that get flattened to a variant. You might not need to get this fancy, but a listbox of step types, and a listbox for the sequence might be a good start.
    2 points
  6. I don't like VIs to be set to Modal in the VI Properties. I actually have a VI Analyzer test to find these. This is because when the VI reserved to be ran, but the panel is open, it will be modal, but also not running. In this situations aborting gracefully is difficult, and needs either an Abort All VI set to run when opened, or something like my Tray Launcher. Because of this I have very few modal VIs in my code, and instead I will set them to modal using VI server when the VI is running. If I have a VI that I want to be Model when it is running, I will set it with something like a constant of True when calling those panel manipulation VIs. I guess that's a long way to say "For debugging benefits". As for what VIs do I want to be Model? I'd say things that are dialog settings that need to be filled out now. If my user presses Start Test a dialog comes up asking about the details of the test to be ran, and that dialog is Model.
    2 points
  7. You don't need that. That is the API that you could create TPLAT with. This is the basic procedure Create a product definition (Using LFEdit or via the Softwarekey web page). Create a licence file for the product (Using LFEdit). Apply the licence to the lvlib (Using TPLAT in advanced mode. This will give you a Licenced version of your code.) Point VIPM to the licence when you build the distribution (If you have the full VIPM, it can also apply it instead of using TPLAT above). This is the full licencing process (excluding the VIPM). You can also buy the licensing server from Softwarekey for installation on your own network, if you want everything in-house rather than using theirs (or NI's)
    1 point
  8. This is the process for adding licencing to addons. You only need "Protection PLUS 5 SDK" if you want Advanced licencing features or your own SOLO server. The licence file (*.lf) created by TPLAT can only create a licence for "Standard" and you cannot change the SOLO server location (NI's SOLO server). In advanced mode you can choose a pre-created licence file (created with LFEdit from the Protection PLUS 5 SDK) which can have a different SOLO Server URL and more advanced features. What happens if you click on the "New to Solo Server" on the TPLAT dialogue? Is there no link to sign up? (I don't have TPLAT installed for 2022 at present).
    1 point
  9. Actually, BOTH behaviours with or without "ignore errors inside node" set are different from error-chaining the individual subVIs (which is how I would argue stacked Property Node should behave).
    1 point
  10. Hello, LAVA. My team at SpaceX is looking for LabVIEW developers. We have two job reqs open, one for entry-level developer and one for senior. Ground Software is the mission control software for all Falcon and Dragon flights. Every screen you see in the image below is running LabVIEW. Our G code takes signals off of the vehicles, correlates it for displays across all our mission control centers and remote viewers at our customer sites and NASA. It's the software used for flight controllers to issue commands to the vehicles. This is the software that flies the most profitable rockets in the world, and we're going to be flying a lot next year and in the years to come. If you'd like to get involved with a massively distributed application with some serious network requirements, please apply. You can help us build a global communications platform, support science research, and be one of the stairsteps to Mars. Entry level: https://boards.greenhouse.io/spacex/jobs/6436532002?gh_jid=6436532002 Senior level: https://boards.greenhouse.io/spacex/jobs/6488107002?gh_jid=6488107002
    1 point
  11. That is very unlikely. It would turn classes into interfaces, which is a major breaking change.
    1 point
  12. Just in case you are looking for a solution that doesn't have to work in runtime, there is this property for class libraries.
    1 point
  13. Interfaces have no private data control, which means you can just check if such control exists in memory. The original VI is available on GitHub: https://github.com/logmanoriginal/labview-composition ("Is Interface Or LabVIEW Object.vi")
    1 point
  14. Hello Youssef, As Shaun and Brian mentioned, BLT is a toolbox allowing you to distribute commercial LabVIEW applications with just a few easy steps. However it is limited to LabVIEW executable running on Windows. So this will not cover your need for licensing LabVIEW source code. If you are looking to sell LabVIEW applications running as executable on Windows computers with advanced licensing scenarios, you should definitely look into BLT for LabVIEW. You can try BLT for free with no time limitation, with all the features, and distribute 1 application on up to 5 computers. After that, there are some fees associated. BLT does not only provide licensing features, but also auto-update capabilities, usage tracking and remote debugging tools. You can get a lot of information regarding BLT for LabVIEW at https://BLTforLabVIEW.com and also by looking at the product documentation at: http://help.studiobods.com/bltforlabview If you have any further questions feel free to send an email to contact@studiobods.com Best regards.
    1 point
  15. Yes. I think it was the Studio Bods one I was thinking of. Looking at it now it seems to be geared towards executables and not sure if it will suffice for source code.
    1 point
  16. Interesting. This is could be due to their new subscription method. It might be worth finding out whether that is the case as there will be other caveats like you need to maintain a subscription Indeed. I vaguely remember a third party that was offering an alternative solution that was implicitly geared towards LabVIEW and used the TPLAT. But I can't remember who it was or how it worked.
    1 point
  17. Glad I could help. I don't think the "app store" like model is something NI is willing to invest effort on, they seem happy to let the community deal with it, from what I could see NI did the bare minimum - which is already not too bad - to give the community a reasonably good solution to handle licenses. Again I've not used it myself, but I've seen people use, I hope it works out well for you. I strongly encourage you to contact NI, and more specifically Nancy Henson or Eric Reffett (look them up on linkedin to see their role at NI) to give them feedback about the developer center on community.ni.com.
    1 point
  18. check to make sure that the input terminals are the same setting as well: "required, recommended, optional." This matters
    1 point
  19. The toolkit will lock the libraries and produce a licence file which you can browse to and select in VIPM. NI have a SoftwareKey Server that they use for Tools Network offerings but you can buy and install your own from SoftwareKey.
    1 point
  20. I'm not sure it's all up to date, but from the link I gave in my first response you should find all the existing doc & tutorials. https://forums.ni.com/t5/Developer-Center-Resources/VI-Package-Manager-Licensing-a-Package/ta-p/3491276 I've never had to go through this process, but I know many people who have. Good luck to you!
    1 point
  21. I would attack it differently. Send that reboot command to the application itself, let it clean everything up and then have it reboot itself or even the entire machine.
    1 point
  22. Mostly we use 3 levels for the instrument driver (InstrumentBase <- InstrumentType(e.g. PowerSupply) <- RealInstrumentDriver (but also a simulated type) We currently have 398 classes in our instrument hierarchy, 60 different InstrumentTypes such as: (TemperatureControllers, Robots, WeldingLasers, GlueDispensers, StepperMotors)
    1 point
  23. This functionality is a post LabVIEW 8.0 feature. The original config file VIs originate from way before that. They were redesigned to use queues instead of LVGOOP objects, but things that were supposedly working were not all changed. Also using the "create or replace" open mode on the Open File node has the same effect. Still something else is going on here too. The Config file VIs do properly close the file which is equivalent to flushing the file to disk (safe of some temporary Windows caching). Unless you save this configuration over and over again it would be VERY strange if the small window that such caching could offer for corruption, would always happen at exactly the moment the system power is failing. Something in this applications code is happening that has not yet been reported by the OP.
    1 point
  24. 🤷‍♂️ I came up with this without swearing, though. In truth I still have to test it for real (meaning, that it really compiles smoothly on a target, not just no broken arrow). My goal was to get the job done, not to learn the theory of Xnodes....
    1 point
  25. I think that is the point he is trying to make though (based on the title of the thread); that LabVIEW should let us specify which plot we are working on when setting a property without it being overruled by what is done elsewhere as long as that is not actually on the same plot. If e.g. you have one location where you want to set the property of plot 2 and you also have some code in parallel working on a a property of plot 4 they should be able to declare/access the separate plots *without the risk of a race condition*. I agree with @infinitenothing, it is a bad design (I have not checked if anyone has already asked for a change of that in the idea exchange though. It would be a good idea to post there.)
    1 point
  26. Well you have a clear race condition here when setting the "ActPlot" property in two parallel running loops, so I do not see how the behavior you describe is a surprise. It is working completely as one should expect.
    1 point
  27. Hi Sam, After the startup.rtexe is deployed into your cRIO, and reboot it, with the Run As Startup option selected from the LabVIEW Project Explorer, you can use these commands from the terminal: /etc/init.d/nilvrt stop ==> to stop the RT App. /etc/init.d/nilvrt start ==> to run the RT App. Hope this helps.
    1 point
  28. Mise en cache des fichiers - Win32 apps | Microsoft Learn
    1 point
  29. Regarding which port was used it should be possible to get that information from winsock library on Windows. I think the answer can be found here: https://forums.ni.com/t5/LabVIEW/Is-it-possible-to-extract-the-local-port-associated-with-a-TCP/td-p/459672
    1 point
  30. I found this DMC slide. I wasn't quite sure when to use Floating vs Modal, and this helped me a bunch. In my situation right now, I like and am going to use Hoovahh's code to set to modal through VI server. Graceful. I really do appreciate this code that you shared. https://www.ieee.li/pdf/viewgraphs/user_interfaces_in_labview.pdf
    1 point
  31. You are not using SQLite for this? Not only can you have multiple messages based on required verbosity but you can have fine grained segregation based on type (information, debug, Critical, Warning etc) and user (Operator, Technician, Maintenance etc). Additionally you can have language translations.
    1 point
  32. That is working to measure loop iteration time. Stores the initial time in a shift register. Then each iteration takes the current time and subtracts the previous, while also storing the current time in the register for use in the next iteration.
    1 point
  33. This announcement might be of interest: https://create.vi/ni-and-jki-partnering-on-package-management-in-labview-d243b13ae3a6 "Features in VIPM Pro 2023+ (Paid): NI Third Party Licensing and Activation Toolkit (TPLAT) Integration"
    1 point
  34. The .rtexe is actually not an executable file. Rather, it is a "bundle" that contains your compiled VIs. The real executable is /usr/local/natinst/labview/lvrt -- This executable loads your .rtexe bundle and runs the top-level VI(s) from the bundle. The lvrt program checks a config file -- /etc/natinst/share/lvrt.conf -- to find out which .rtexe it should load. So, in theory, you could edit this file and then shut down the VIs that are currently running. This causes lvrt to re-launch, and it will read your updated config file and load your new .rtexe. Notes: Only 1 rtexe can be active at a time. If you simply kill lvrt (as opposed to triggering a proper shutdown from within your .rtexe), LabVIEW thinks that it crashed. By default, LabVIEW will enter Safe Mode after 2 crashes: https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000kFQ6SAM
    1 point
  35. I also was a bit frustrated by this some times. So attached is a demo of some panel movement code. It has a few main functions. The first is sometimes I'd have a dialog I wanted to pop up, but I wanted it to be centered on whatever monitor the mouse was on. My thought was that this was the monitor the user was using, and they probably just clicked something, so put it there. I also had times that I would pop up a dialog under the mouse and so I wanted the panel to be centered on the mouse as best it can, but stay on the same monitor. This doesn't always work well with taskbars that can be hidden, and size and position not being consistent but it mostly works. And lastly I sometimes had a need to set a panel to maximize on a specific monitor. We typically would have 2 or 3 set side by side in the system. So this VI can set a panel to maximize on the "Primary", "Left", "Right", "Second from Left" or a few others. As you noticed this won't fix LabVIEW native dialogs, and any solution I can think of for those will be a bit hacky. Panel Movement Center Maximize Demo.zip
    1 point
×
×
  • Create New...

Important Information

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