-
Posts
720 -
Joined
-
Last visited
-
Days Won
81
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by LogMAN
-
Welcome to the forums 🎉 I haven't really thought about it as this was the first time I learned about Nigel (never thought anything like that is even remotely possible in LV). Still, I'm familiar with GitHub Copilot and Visual Studio's IntelliCode, which have great IDE integration. What I'm looking for is not so much an AI that writes my code (because I know how to do that), but one that accelerates my development process by suggesting changes in the context of my code. For example, to predict what I'm going to do and provide hints in the form of grayed-out suggestions I can simply accept by pressing a key (tab-driven-development 😉). Things like: When I place an "open connection" function, it suggests the corresponding "close connection" function. When I place several methods of a class or VISA or DAQmx, it suggests how to order them in a sensible manner (open, read, write, close). When I connect the terminals of a VI, it suggests to connect error wires as well. When I place error terminals it suggests adding an error case structure. Of course, there are more specialized tasks where a smart AI would also be really useful: Creation of driver libraries, just like your example from importing a PDF to generating code. Configuration of CLFNs Beautify/Cleanup my block diagram Suggest changes when upgrading to a newer version of LabVIEW Suggest icons for my VIs 😍 Derive VI descriptions from code Apply changes to a set of VIs (i.e., renaming them) Point out mistakes in my code (missing cases, unhandled errors, etc.) That's awesome. I hope we can play with it soon
-
1:02:00 "... but NIgel can control your physical hardware!" *terminator theme intensifies* Jokes aside, the copilot looks interesting but it needs much better integration to be useful for any of my day-to-day tasks. It needs much faster response time and it will have to show how well it can work with legacy and non-standard code bases that aren't developed with NI's portfolio and vision in mind. Did they mention if and when this can be tried out?
-
I'm not familiar with network streams but the online help provides an example for your particular scenario (scroll to the very bottom): Specifying Network Stream Endpoint URLs - NI Based on your code this works for me: Working Example.zip Edit: To provide some more explanation: Only one application can create endpoints in the default (empty) context "//localhost/". Incidentally, this is also the default context when you create a writer endpoint by name. For example, writer endpoint "my_writer" is equivalent to "//localhost/my_writer". In your particular example, Application B creates a writer endpoint "ApplicationA_in_writer", which is equivalent to "//localhost/ApplicationA_in_writer". Application C creates a writer endpoint "ApplicationB_in_writer", which is equivalent to "//localhost/ApplicationB_in_writer". And since only one application can use the default context, the error happens. To create endpoints in separate contexts, you must specify the context in the endpoint name. For example, "//localhost:ApplicationB/ApplicationA_in_writer" and "//localhost:ApplicationC/ApplicationB_in_writer".
-
I'm not quite sure if this is what you are looking for but here is an example that works for me: Excel Formula.vi
-
A union is always sized to its largest member, not the sum of its members. In your case, 4 bytes. You currently provide 8 bytes of memory. Try reducing the size of the union to 4 bytes.
-
+1 for Unbundle. It it simple, requires less code and you understand immediately that these elements belong to the current class. They are also easier to maintain in case you ever feel the need to change the name or type of an element and work well with In-Place Element Structures in Unbundle-Bundle-Scenarios.
-
A few month later, this is what Bing Image Creator produces for the same input: Can confirm, wires everywhere...
-
Not like this Because that is the goal; break down your complex and complicated data types into simple and uncomplicated ones. For configuration data you could maintain the path to the storage location and load the data as needed.
-
This is explained in the SQLITE help pages: https://www.sqlite.org/lang_savepoint.html#savepoints
-
Sounds like an uncommitted transaction. Make sure you have committed all transactions before closing the file. Uncommitted transactions are lost.
-
Upgrade LV2017 => LV2021 : Windows 10 memory increase
LogMAN replied to Francois Aujard's topic in LabVIEW General
This appears to be a known issue in LabVIEW 2021 SP1. https://www.ni.com/de-de/support/documentation/bugs/22/labview-2021-sp1-known-issues.html -
For future reference: https://download.ni.com/#support/daq/pc/ni-daq/daqmx/ It appears they moved their old ftp server to that site.
-
-
-
Here is the kind of response it produces for LabVIEW: The responses are impressive but it doesn't look like we are getting replaced any time soon...
-
The reason your cant change the unit label at runtime is because unit labels change the data type of the wire (notice the "S" in brackets at the end). That said, what you want can be achieved with the display format. Enable unit label and specify the unit "S" Change the display format to SI notation and the number of digits to 3 Now it will automatically add the prefix according to your value. For example, 10000 S will turn into 10 kS.
- 1 reply
-
- 1
-
-
While community-scoped VIs are only accessible from VIs in the same library and friends, they are still exported. To see the complete list of exported members, use Get Exported File List.vi or open the library from the Getting Started Window. Attempting to execute community-scoped VIs results in a runtime error. Here is an example using Open VI Reference. The same error should appear in TestStand (otherwise it's a bug). LabVIEW simply hides community-scoped members in Project Explorer for convenience. Looks like TestStand does not do that.
-
LabVIEW clusters can actually be passed by value, given that the values are structs. For classes, you need to construct the class before you pass it to the method.
-
It sounds as if you want to pass a .NET Array type by ref to your method. This should be possible by constructing an array in LabVIEW, for example, by using the To .NET Object function, and passing the instance by reference to your method (assuming that your method signature is by ref). If you want to avoid generics, you can also initialize your own array as illustrated below.
-
-
Yes, this makes sense for class members. They should always access the private data cluster directly. Property nodes are only good for callers (and maybe when accessing parent class data). In the past I also avoided property nodes. Mostly because of stability and performance issues (~2011-2015). Nowadays they appear to be stable and are just easier to read (also, I'm lazy and property nodes don't need icons 😏). This is probably the best way to do it. Read-only and write-only access, however, should still be done with standalone bundle/unbundle. It makes it easier to understand what is going on, avoids unnecessary wires, and has the same memory footprint. By the way, Darren Nattinger recently held a presentation at GDevConNA 2022 that might be interesting to you. He provides some insights into features of LabVIEW that aren't as stable as one would hope...