Yes, I asked ChatGPT also. The context is known. I know what the data is. The shema doesn't change. I just need to read and write the data. I will have to use the same format, because it it used on other VEE testers. I'll just use some string manipulation to read and write desired data.
Re: Reading VEE data files into LabVIEW
Re: LabVIEW PDF Report Generation Toolkit without opening the Word app or alternative
@LucianH wrote:I looking for a way how to generate PDF report with multiple data (string, tables and image included) ...
Historically we using Simplicity AI Toolkit to generate PDFs since years. Its not free — you have to pay 355 Euro, but saves lot of my time to build own wrapper around PDF and works. Any other "free" solution don't meet my needs at some points. Can recommend for sure, at least try (I'm not affiliated with Simplicity).
having Trouble in activating labView community edition on iinux
I'm not able to activate Community edition though the browser says , you are authenticated.
operating system : popos 22.04
LabView version: 2023 q1 community
the background of the image is the browser and the front one is the app.
Pardon me for any missing information , I will try to provide as soon as possible if required.
Re: FPGA Image for USRP X410 fails to populate on NI-USRP Configuration Utility
Hi,
If the FPGA image fails to populate, please do the following:
I was able to locate the FPGA image at C:\Program Files\NI\LVAddons\niusrprio\1\instr.lib\niUSRP\Reference FPGA\FPGA Bitfiles
Manually search your PC for the FPGA image and load it into the NI USRP Configuration Utility.
There are a total of 4 types of images in this folder, which can be used depending on the application.
Re: having Trouble in activating labView community edition on iinux
Did you download the community edition with the same account you used to activate it? If not, do what the message window says. You do not need to reinstall it after downloading.
Addtion of PNG files in a Package for Control Palette
I am trying to generate a Palette containing a bunch of elements for User Interfaces. This palette contains all the .ctl files but some of my elements are stored in .png files. Theorically it is as simple as drag-and-drop the png into the Front Panel of the UIs and it will appear as a decoration. What I am trying to do is instead of searching for this png files every time, having a palette that already contains this png elements.
Option 1. Is there a way of adding a .png to the Controls Palette?
Option 2. Converting all of the .png to .ctl by creating one control for each one of the elements. For this I tried to automate adding the .png as a decoration in the front panel - as simple as the drag and drop, but programmatically. I am stuck on this point where i need to create a new decoration out of a .png programatically, but no information have I found about this topic.
What I'm requesting is to get any feedback on how to resolve the problem with either option 1 or 2.
Re: Help with Saving Multiple Array Values Without Overwriting in LabVIEW
Holy, while I was sleeping, they were destroying me—just kidding! So, let me see what I can do:
- You have a useless loop inside a greedy loop
.
First, I noticed that It was totally useless at that moment. I was completely clueless about how to pass the value I wanted through the loop and create an array that would keep a history of the values (I don’t even know how to set this up!).- Your shift register is not initialized and should be blue, not orange (do you know the difference?)
If I say I don’t know, would you be mad? Well, jokes aside, no, I really don’t know the difference. I think it might be about the variable type, like int, float, and so on, like how the wires usually work. But I’ve never looked deeply into it, so I don’t know if that’s what you’re referring to.- For every iteration of the outer loop, the FOR loop repeats the same operation N times.
Yeah, I think this might be the problem in my .vi.- Having these controls inside the FOR loop is pointless because they probably won't change during the execution of the loop.
The idea was to use this .vi in another application, then connect it to this one, so I could make it like a "function" and repeat it in other parts of the application without having to redo all the connections.- Never ever make a label an empty string. You can hide the label on the front panel but it should always show on the diagram
Okay, this was something that Bob pointed out as well, so I guess it could really be a problem. I’ll try to solve this too.
By the way, I saw what you did, and it worked perfectly, just like I wanted! So, really, thank you!
Re: Help with Saving Multiple Array Values Without Overwriting in LabVIEW
Well, I admit that even after using LabVIEW for about 4 months, I still struggle with how to do most of the things I need. That’s why I came to the American forum (even though I'm in Brazil, just saying... it's good here, but you guys usually respond faster—probably because of experience).
Normally, a Control named A that has a single Dbl stored in it can be right-clicked and changed to an Indicator named A that stores a single Dbl. Similarly, A can also designated a 1D Array of Dbl, but though it is named the same as the "scalar" variable "A", it is different, and naming both a scalar (A) and a 1D Array (A) the same is a Bad Idea and eventually will lead you to a broken wire.
Hmm, I only made it like this because I was referencing this .vi in my application, and the indicator I use is a scalar, but I think I can change that.
When you say "Saving Multiple Array Values without Overwriting", where do you want to save them? If you save them in memory, the amount of data you can save is governed by the memory of your PC, say 8 GB. If you save them to disk, the limitation is much higher, often 1 TB or more.
Do you want to be able to look at all the values? Then "in memory" might be what you want. If they are "results/data" to be looked at later, then "on disk" is probably better.
As for saving the data, it’s simple. I plan to save it as an image of the .vi for demonstration purposes, and then I’ll store it in a folder with the test name.
You should never have a Control ("Salvar") in a Block Diagram without a label! Why hide it? It can only cause you trouble. [Oh -- are you trying to make an Event Structure, something that will "Fire" every time you push the "Save" button? Learn about Event Structures! Don't re-invent basic LabVIEW tools. Resist writing code for "Add", for example.
Apparently, the Event Structure was exactly what I needed in this case. But in my defense, I was just trying to do what made logical sense to me (dysfunctional? Of course it was, but I tried! ksadkas).
Do you understand what the For loop does? The first time, it builds a bunch of 1D Arrays of size 1, holding the values of the Front Panel controls. The second time, it overwrites the 1D Arrays of size 1 with (similar) Arrays of size 2. Note the original data are lost. The third time, the Arrays of size 2 are overwritten by Arrays of size 3.
I thought I knew what I was doing, but now I realize I didn’t, and yes, that was exactly my problem.
I bet that is not what you want. I'm guessing you want the first Array to have the first value(s). The next time through the (For) Loop, the output should be the previous Array with the new inputs appended at the end. What do you know about a Structure (most commonly used with While Loops) that have an Input that was formerly the Output of the previous run? A related question -- how do you restrict a While Loop to only running once?
Well, thank God I didn’t bet against you because you’re right! You pointed out some really good questions, so I’ll pass these on to someone really good because I still don’t know kskskas.
Okay, now I’ll give it a try. If I had to guess, I’d say it has something to do with using a shift register to save the previous value, and then I’d make the loop run only once by using a false condition. But again, that’s just a random guess.
Re: Help with Saving Multiple Array Values Without Overwriting in LabVIEW
@Bob_Schor escreveu:Since your quantities L, E, DI, DF, CI, CF, etc. appear to be independent measures (even though all of the same type), rather than make an array of these quantities, I'd make a Cluster whose elements are named L, E, DI, DF, CI, CF, etc. (Hint -- always create a TypeDef from your Cluster and use it everywhere you reference the cluster. This will save you from writing code that connects CI to DF and DF to CI).
Bob Schor
Well, I really didn’t understand this one. How could I create a TypeDef for my cluster?(sorry for this)
Working toward Certified LabVIEW Developer Certification
The next Huntsville Alabama LabVIEW User Group meeting is this Wednesday, October 9, 12:00-1:00, at Mission Driven Research 7500 Memorial Parkway SW, Suite 215-A. Bring your laptop so that you can work with us as we sharpen our skills and practice implementing LabVIEW design patterns.
At the Thursday, November 14, meeting Heath Causey will talk about current topics related to NI (National Instruments) hardware and software.
Re: High Cyclic Fatigue DAQ with Failure Triggering Increased Rate / Shutoff - Producer/Consumer Pattern
I have been working on the implementation of the suggested changes and getting a further understanding of tdms. I think I may have gone down a rabbit hole though in the use of variants within the queue and I am not sure why I cannot unbundle these the way I bundled them. The clusters passed to the queue consist of an enum, variant, and string. I used variants to pass multiple data types to the queue, but I think it may be simpler done with converting the inputs to double instead. Another thought is multiple queues though I thought that might get into some messier issues.
Am I going down the right road here? Thanks for the help.
Re: Help with Saving Multiple Array Values Without Overwriting in LabVIEW
@MarcusP. wrote:Well, I really didn’t understand this one. How could I create a TypeDef for my cluster?(sorry for this)
Find your cluster on the front panel or on the block diagram, right-click and choose "Make Type Def.". Right-Click again and choose "Open Type Def." Give the type definition a nice icon and save it as a .ctl file (File->Save).
Re: Help with Saving Multiple Array Values Without Overwriting in LabVIEW
Right-click the cluster..."make type def". After that, you can right-click and "open typedef". This will open the control editor where you can then save it.
Re: having Trouble in activating labView community edition on iinux
yeah , i did download with same account with which I'm using to activate.
are there any prior steps to get community license.
Re: programmation sur Labview
Obviously, we don't do your homework. So far you have not even touched anything on the template. If you paid attention in class, this should be easy to do. If you cannot, programming is not for you and the right thing would be to fail the class.
Of course we are here to help! Once you put some effort into this and get stuck, you can ask very specific questions and we will try to help.
One thing you should do first is use a smaller font for the instructions on the front panel, currently the last paragraph is cut off.
Here is the translation of the instructions:
---------------------------------------------
GBF (low frequency generator)
Intent: frequency generation from an initial frequency and a frequency step and by progressive comparison to a final frequency, by building a program whose elements are already given (on the front panel and in the diagram)
Reminder: execution of the program with the arrow in the menu bar; "full" arrow: no errors, broken arrow: errors
Process
1-Without loop: do the sum Finitial+step dF (by displaying the result) and the test showing if the result is greater than or equal to Ffinal (by displaying the value of the boolean test, true or false); experiment with different values
2-Convert the numerical result into a string, add the term FREQ and display the final result (in a string therefore)
3- With loop Tq 1: repeat the previous implementation but this time in a progressive process showing the evolution of the frequency, starting from Finitial to Ffinal, with loop 1. This stops automatically when the result of the Boolean test (described in phase 1) is true.
**If we place the final display of the values outside the loop, what do we observe?
4- With loop Tq 2: in phase 3, frequency generation loop 1 is launched instantly upon execution of the program; here, its launch (without modifying it) is done on command of the user by adding and using loop 2 and relying on the property of the "While" loop observed previously in 3**. Unlike loop 1 for which the stop is automated by the test at the operations level, the stop of loop 2 is subject to the user's action by pressing a button
Tools: commands-indicators (numeric, Boolean), operators, comparator, conversion function, concatenation function, time function, "while" loop
Suggestions:
-Clearly define the objective and the tasks to be performed
-Front panel: define the inputs (commands) and the outputs (indicators)
-Diagram:
*identify the input terminals associated with the commands on the front panel and the output terminals for the indicators, that is, establish the correspondence between the user interface (front panel) and the diagram.
*structure the diagram by grouping the objects according to their roles and the link between them and by placing the operations or tasks between the commands and indicators
-Do not hesitate to use "contextual help", to display the tool palette
------------------------------------------
Re: llb in window explorer
@TeddyBear24 wrote:They're currently on "branchA" for cloneA and "main" for cloneB but that shouldn't have an impact since they're now two seperate entities.
Maybe I'm not understanding the real problem but it sounds like if the llb you're looking for is only in the cloneA folder then the llb was only committed to branchA and was never pulled into the main branch which is why it doesn't exist in cloneB.
Re: HTML Reports - Center Align Table Cells and Add Additional Spacing Between Images
Thank you for your help, this looks super slick!
Thank you for the CSS link as well, I am not familiar with formatting this way and I really appreciate you providing me a solid example that looks beautiful. I am going to mess with it a bit so I can learn more and gain a new tool in my toolbelt.
Re: Darren's Occasional Nugget 06/12/2023
Also, this NEEDS to be updated in big bold letters that it's reaching out to an external service and feeding information to it to generate the images. This is 150% a showstopper in my industry and without that notification this could be very very bad™ with regards to regulations such as ITAR.
Note: I've submitted an issue to the repo.
Re: having Trouble in activating labView community edition on iinux
Check this out to see (a) if your version of Linux is compatible with the version of LabVIEW you are trying to install and (b) for details on How to Install.
Bob Schor
Re: llb in window explorer
I probably wasn't clear in my explanation
The source code I'm working on was created a few years back and left on a git repo since. I arrived recently and was asked to bring a little mainenance to it (debugging) and since I'm the only one working on it there is no issue with someone else pushing new files to it.
That source code was on a git repository with only one branch (main) which I cloned (cloneA), created a branch (branchA) to try and understand what was going on in it without breaking anything. I didn't push anything so the remote git repo is still with the original content.
When I go back to the main branch of cloneA I can find the .llb files in the file explorer.
Then I went back to the remote git repo and cloned it again (momentarily forgot I had a clean main branch in cloneA) which is cloneB.
The thing is, I can't see the .llb files in the remote git repo when I navigate in the folders and they aren't there either in cloneB.
So I'm quite confused as to how those .llb files/folders happen to be present in one of my clones and not the other. I can launch cloneA in Teststand and the llb are found and the sequence runs (after changing the paths to reference from the root of the project so not with the Search Directories option).
I can't launch cloneB in Teststand as I get a "file not found" error when looking for a Client.llb/file.vi. When I navigate to the location in the file explorer, where there should be the Client.llb, it's not there (when it is present in cloneA in that same location but not in the remote git repo).
I don't know if this is helpful, but the VIs are managed with git lfs. So might be a cloning error? But they're not in the remote repo either so not sure how that goes.
I thought it might be a case where they're "generated" or something when the Teststand sequence or a VI is launched and that's how they end up "appearing" as .llb in my folders afterwards. Especially since I can see a corresponding folder (Client/file.vi) with the VIs that were called in the Teststand sequence when I open a Client_server.lvproj file in that same folder (but I can't put that path in Teststand since it's through a .lvproj)
basically:
1) my teststand sequence calls for Client.llb/file.vi
2)
$ ls cloneA/serverClient
Client_server.lvproj
Client.llb
3) when I open Client_server.lvproj in Labview I get a file tree with
Client/file.vi that I can open in labview
4) when I double click (in the file explorer) on Client.llb it opens a tab to file.vi
5)
$ ls cloneB/serverClient
Client_server.lvproj
(so no Client.llb)
6) when I open that Client_server.lvproj in Labview I get a file tree with
Client/file.vi that I can open in labview (same as 3)
The Teststand sequence in cloneB will say it can't find Client.llb/file.vi while I managed to change the teststand call to ServerClient/Client.llb/file.vi in cloneA
I hope that's more understandable