-
Posts
3,432 -
Joined
-
Last visited
-
Days Won
289
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by hooovahh
-
I don't know if this is the "best way" but have you thought about making your enum with Reserved3, Reserved5, Reserved6, Reserved7 placed in between valid values? This way you can have your enum in a case statement, but also directly change from a U8 of value 4 to MotorDisconnected. In the past my numbers have jumped alot, say from 0, 1, 125, 500, 1000 so using an enum with blanks was not a solution, but for this it may be. In my case I was lucky and my enum value was something to the effect of "500 Baud", "1000 Baud" so I got it as a string and converted it to 500 and 1000 decimal but that too is not an option here. EDIT: Is there a valid reason why Enums must be sequential by the way?
-
I'd start with MAX. If you have DAQmx installed the cDAQ chassis will show up there and you can start a test panel on your devices. Then you'll see the low level inputs and outputs of your hardware making sure the values you see are the ones you expect. Don't start writing tons of code then get strange values and blame the software. If MAX doesn't have the values you expect then LabVIEW won't either. If MAX looks good, then check out some of the DAQmx examples Help >> Find Examples in LabVIEW. The examples have had a big face lift in 2012 and 2013 so I hope you are using one of those versions.
-
This is the best practice for sure. I always start with a project, or a library. Often times I forget about some kind of linkage that editing just a VI will cause issues with. I like to bring up text based languages and say that if we were writing VB code would we take notepad and open some random file to edit? No we would open the project first.
- 21 replies
-
- error
- generating
-
(and 3 more)
Tagged with:
-
Okay so in the past a way to force LabVIEW to include some VI was to add it to a part of the code that is never called. That however breaks some of your requirements (like dynamically loading) but can be accomplished today. What about this solution which is also "clunky" and I don't have an example of it working. Alice makes a Pre/Post Build VI that runs which scans the application hierarchy. Alice can know the interdependence that LabVIEW can't, and can write Pre/Post Build VI to know the link without loading the VIs, and include them in the build somehow. Possibly by just copying them to a subfolder that the EXE is in, or by modifying the Build Specifications to have them be Always Included. This can also be done today but sounds like a pain, and again Bob will have to know to use this Pre/Post Build VI, but hopefully he got the project file as a template from Alice which already calls this VI. EDIT: To get number 4 there could be a tag of some kind, maybe a #AlwaysInclude so that any 3rd party could add more assuming they adhere to the standards Alice added to her Pre/Post VI. For the future...I guess there could be some kind of new object similar to the Static VI Reference called Dynamic VI Reference (too confusing?), which would be some kind of flag to the compiler/builder that makes it known that this VI needs to be included, because of a non static dependency, but should not be loaded into memory because of this.
-
...well this is quite interesting. I haven't tried it yet but I have some concerns. I notice that not all UI elements are the same size between the VI and the web page. So is it often that you will have UI objects on top of each other? What about subpanels does it work with them? How about splitters and panes? Which brings me to the question about window resizing, and how it handles that. Don't get me wrong very neat, and I like having options, I just see several updates to NI products having similar functionality.
- 10 replies
-
- remote control
- automatic web page
-
(and 1 more)
Tagged with:
-
LabVIEW 2013 Favorite features and improvements
hooovahh replied to John Lokanis's topic in LabVIEW General
Yeah I guess there are some things a Raspberry Pi does that I would have a hard time getting a MyRIO to do (1080 HDMI output is one) but then again I can't have the Raspberry Pi update a timed processing loop running at 40MHz+ (talking about the FPGA) -
LabVIEW 2013 Favorite features and improvements
hooovahh replied to John Lokanis's topic in LabVIEW General
I get more excited about the possibilities. This can basically become a headless device that performs a task using AIO, DIO, SPI, UART, Vision, Wifi, Bluetooth, and USB. I have so many applications where someone will ask for a program that does X and just runs without needing a PC. A simple one recently was someone wanted to send a CAN command and have a waveform be generated based on the message. So send a CAN message and a Sine wave is generated at X frequency and Y amplitude. This is quite easy with LabVIEW and a cDAQ CAN module, and analog output module, but needs a laptop. With this I could do it without a PC. I could even add control (pots switches) and a LCD output. What about a headless resolver simulator that simulates a position, or speed? Or a remote logging application where you can do a FTP data dump over Wifi? With the new version of Multisim/Ultiboard you can simulate a circuit then push it down to an FPGA and it will best approximate the simulated circuit, we could put this on a MyRIO and take our simulation into the real world without a PC. Talk about rapid prototype! If an Arduino, and a Raspberry Pi had a baby, it would have nothing on a MyRIO. (okay maybe not exactly true but still) -
type def automatic changes not being saved in LV2013
hooovahh replied to John Lokanis's topic in LabVIEW General
I can't seem to find the link at the moment but Olivier JOURDAN over at SAPHIR made a String Details custom probe that I've been using for a while that I like which shows hex, and code display of strings. They have several others here but the string details is not one of them. But I totally agree that the probes that ship with LabVIEW could use an overhaul for things like this, along with properly handling resizing of the probe window. -
LabVIEW 2013 Favorite features and improvements
hooovahh replied to John Lokanis's topic in LabVIEW General
I talked to someone at NI today and they were able to get some slightly more official information (while still being unofficial). Not naming any names, but the word from this individual was that student pricing would be $250, universities was $500, and non-academic pricing would be available for $1,000. To be clear nothing official but I can't wait to get my hands on one of these. -
I have to agree with today's XKCD about functional programming
hooovahh replied to Aristos Queue's topic in LAVA Lounge
You discovered the mouse-overs? Sounds like you were one of today's 10,000 Relevant XKCD A bit of a stretch but I wanted to see if I could find one. -
To remove compiled code or not, that is the question.
hooovahh replied to MikaelH's topic in Development Environment (IDE)
Is that also the last step? -
Tools Palette Not Functioning Correctly
hooovahh replied to GraemeJ's topic in Development Environment (IDE)
I can say for sure, but have you tried repairing LabVIEW? Not saying it will fix it, I just have never seen the behavior you are describing. -
That is fantastic. I wanted the INI key for a more detailed file list of what has been made in an installer. I had no idea that it would give more detailed failure information. I may do some testing on build time, and if it isn't much more I'm going to use this on all builds I do.
- 21 replies
-
- error
- generating
-
(and 3 more)
Tagged with:
-
How long did you have to run it to see the time to plot increase? I added a feed back node to keep track of how long it takes to clear the graph and I saw 10950ms or less. After running it for about 5 minutes it was around the same. One issue is there is no synchronization between the producer and the consumer loops. You have some loop getting 100 new data points every 1ms. And you have a consumer loop that runs every 10ms getting 100 points at a time. But because your producer runs faster, and overwrites the previous data in the global, the new 100 points your read will not be a continuation of the previous 100 points. I modified your global so that when you do a write you append to the data in the global, and after it reaches the desired size it resets. I tried modifying the VIs and posting them but my LabVIEW has decided it doesn't like your VIs anymore for some reason...it feels like Friday.
-
Intended OpenG installation and update flow?
hooovahh replied to RnDMonkey's topic in OpenG General Discussions
I wondered how that worked, that's neat. I for some reason always thought it was all the packages in one, so I never installed it because I was worried I would have two versions of OpenG installed on my palette if I did. Thanks for the info. -
Not just the disabled diagram structure. I found one time where my code used the conditional diagram structure to do different things if it was in the runtime engine or not. Both cases were executable and worked fine. Then I changed the VI to be inlined. The VI ran just fine in the development environment, but in the runtime engine case I used a property node which isn't allowed in a inlined VI.
- 21 replies
-
- error
- generating
-
(and 3 more)
Tagged with:
-
To remove compiled code or not, that is the question.
hooovahh replied to MikaelH's topic in Development Environment (IDE)
We did something very similar here about a year ago. We took our reuse library (2011 and up) and added pre-build VIs for VIPM to use before making the package, to remove compiled code, and turn off automatic error handling, and allow debugging, on VIs that aren't demo VIs or example VIs (these we tend to probe around and see how it works so we want to be able to debug). After a year of usage we've had no issues. We also invested some time to understand what VIs can be inlined and went through the process of inlining them. And again after a year no issues yet. -
Simply because you don't understand a feature, doesn't mean it is unsuitable. I agree with Yair that a different way of displaying it is the right way. I've never seen a Waveform Chart used in a real application, only in test demos to show quick data. When you make a real application you realize how limited it really is and must upgrade to the Waveform Graph, or XY Graph to manage the data your self. It sounds like you have found one of those times where the Waveform Chart is limited. You can do this with relatively little updates to the code, you just need a way to remember the data your self, in a shift register, functional global, or feedback node.
-
When I've used that INI key it makes the log file in the same directory as the project file with a .TXT file extension.
- 21 replies
-
- 1
-
-
- error
- generating
-
(and 3 more)
Tagged with:
-
Sub Panel: Insert VI has changed in LV 20213
hooovahh replied to MikaelH's topic in Development Environment (IDE)
Wait you could put a control in a subpanel? What would it do for you? Just show an image of it that can be interacted with...can you then programatically get the control value...can you then build dynamic UI's where controls are semi-made at runtime? Yes the easiest solution would be to make a VI that just has that control in it. Kind of strange that they would remove a feature like this. Maybe there is some NI code that only works on subpanels if it is a VI so they removed this feature to support another. -
How much work would it be to recreate your project in 2013? I ask because I have seen instances where a project file get corrupted or something, where it breaks and there is no explanation for it. So I tried making a new project, then adding my code to it, making the Build Specification the same way the other was and it works. Possibly something went wrong in the upgrade process from 2011. I'm not saying this will fix it but if the project file it self is the problem this should help. I just reread your post and it sounds like you may have tried this, you said "so I upgraded it... with no success..." what did you upgrade? Also I never use the Generate Preview. The last time I used it, it took just as long to generate a preview as it did to build the application. Has it improved over the years?
- 21 replies
-
- error
- generating
-
(and 3 more)
Tagged with:
-
This guy is just spam. They troll threads looking for keywords that they can promote their product with.
-
Generate Event by clicking a plot on waveform chart/graph
hooovahh replied to K Waris's topic in LabVIEW General
Well we probably do need one. In my defense I could control how close to a point you could be. I noticed that the GetPlotAtPos method registers when you are clicking on the line. I increased the line width and my space I could click increased. -
Generate Event by clicking a plot on waveform chart/graph
hooovahh replied to K Waris's topic in LabVIEW General
I'm not sure I fully understand what you need. Your post was a little wordy. But I think what you want is the "Mouse Down" event on the graph. This will be generated when a mouse click event happens when the mouse is on the graph. You can then read the "Button" value and determine which mouse button was used (left, right, middle). You can then determine if the mouse is on a specific part of the graph and ignore the event or not based on other criteria. EDIT: Okay so I re-read you post and I think you want to know when a plot is clicked on. Attached is a quick example on how you might be able to do it. Run it and click on a data point on the white plot and it should stop and tell you what you clicked on. Note that this only works on the points them selves, and not the line drawn between them but you can modify it to support that. Also note that if you are within 5% of a point it considers you clicking that point, for some large or small graphs this may need to be changed. Graph Mouse Click Plot.vi