-
Posts
950 -
Joined
-
Last visited
-
Days Won
39
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by jcarmody
-
Does it make sense to add this to the end of the VI? Is there a more appropriate way to open a VI for editing?
-
Thanks. I actually had studied the vi that embedded the snippet but took the long way around. It's much prettier now . GetSnippet.vi
-
Here's a LabVIEW 8.6 VI that takes a path to a snippet-embedded PNG file and creates a snippet.vi in the same folder. I'm not happy with the way I did it; it works, but I have a feeling that there's a more elegant method. The next thing I'd like to try is to make a JKI RCF plugin that converts a PNG on the BD into code. It would be nicer to be able to have LabVIEW respond to a PNG being dropped onto the BD; do you know how I might do that? Hey folks! This picture is a Snippet made with the Code Capture Tool in LV 8.6! GetSnippet.vi
-
I purchased a Debug Deployment license for my project. I will use it, but my TestStand skills today are worse than my LabVIEW skills were two years ago. Please help me better understand the distinction. I use macros for sequencing tests and operations that make up a test, but the sequences can branch depending upon how the UUT responds. I call it a State Machine...
-
So, instead of having a large State Machine I'll have a large list of subsequences? That's feels better but I can't explain why. I think I'll use it, but it'll be for the built-in reporting and data storage and not because it's more readable. What else will I gain that addresses the issues folks have with my old kind of State Machine?
-
I'm intrigued by a few discussions we've had recently and am here to ask what architecture y'all use when writing a program to implement a long test procedure. Here's the first discussion, and here's the second. Here's the scenario: I have two test procedures for a product I need to test: an MTP (Manufacturing Test Procedure) and ATP (Acceptance Test Procedure). Each procedure contains a dozen or more individual tests (some are common between the two), each test requires configuring and reading a few IO devices and the application must have a reasonably functional user interface that allows automatic testing as well as permit a Technician to debug the UUT. My approach has been to write a JKI State Machine with states to control the hardware and macros to sequence the tests; this results in a long list of states. Several respectable LAVA contributors in the aforementioned discussions eschew this design, so my question is: what architecture can perform all my tests without using the kind of State Machine I've described?
-
NR-AWOL is more like it! I stopped giving my money to these gun-control traitors long ago. I keep getting the magazine, though, I'm a Life Member!
-
never mind...
-
The Code Capture Tool rocks. I love it. . The video was a great touch, too. Just to be clear (because I can't test it) folks will be able to drag a snippet made with the CCT in LV 8.6 to a LV 2009 BD? I'm wondering when CCT 3.0 will come out, with the ability to extract the code from a snippet in pre-2009 versions...
-
But, one of them will start first. No? And which one does is indeterminate and unreliable. If you have a producer and a consumer loop, and the consumer is set to stop when the queue it's consuming is empty, you want to make sure the producer starts first. That's what I was going for. If it happens to start in the proper order in development (giving you a false sense of confidence in your code) you won't be able to count on it working as an executable or on another target. I think. I have an alternative to your forth example. (Don't look under the hood, it has a sequence structure.)
-
1) They'll execute when all of their inputs are satisfied; if nothing forces one to start first then it's up to the Operating System to decide. Although I believe the winner is (practically) arbitrary and you can't depend on the order. You're better off forcing an order if it's important to you. 2) If you want to force one of them to run after the other you need to force a data dependency between the two of them, or you can throw style to the wind and use a Sequence Structure . One advantage to the first option is that the error cluster is passed throughout the program. You are passing your error cluster throughout your program, right?
-
I did not know that. Thanks.
-
Here's an article related to your condition, but it's not going to recommend a drug or medical procedure in the end. The article refers to many scientific works from such "reputable" sources as Circulation (AMA), The Journal of the American College of Cardiology, The American Journal of Medicine and the Journal of the American Medical Association. Remember that GIGO applies to our bodies as well as it does to the programs we write. I'm not sure how you'll feel about this, but it's worth mentioning because the world needs all the LabVIEW Architects it can get. Good luck. Three quotes for those TL/DR-type readers:
-
That did it for both LV versions. Thanks.
-
The first thought I had when reading your original post was to use a User Event. These are events similar to Front Panel object events, but you determine the data type and you write code to trigger them wherever you want. In your case, you'd trigger it when you get the xFF from the microcontroller and your Event Structure will respond. Here's an example. UsrEvent.vi
-
I just tried Install Code Capture Tool.vi on 8.2 without success. I've attached a screen capture of the result. A small window flashes after a slight pause, before the error message comes up. Perhaps that's a clue to what's happening? I tried the version you sent privately, but it didn't change anything. Perhaps I'll wait a few days to see if other folks with XP have the same trouble I'm having. I'd hate to have you spend time fixing something that isn't broken on your end. Thanks. cct.swf
-
Windows XP Yes
-
I tried to install this from VIPM without success. VIPM couldn't install it for LV 8.2; 8.6 completed successfully but I got an "Error 7 occurred at Open Config Data.vi" in 8.6. I went back and ran Install Code Capture Tool.vi in 8.6 and got the same error. Without CCT, I'll have to resort to taking pictures of my monitor to attach to my posts.
-
Nine people of my size will be the first ton.
-
JKI State Machine Sub States
jcarmody replied to jgcode's topic in Application Design & Architecture
Stop. You're embarrassing me... I addressed this issue (to my satisfaction) in the CaseSelect RCF plugin by using a tree with collapsible branches. The context menu lets you collapse or expand them all at once so you don't need to scroll past a long list. I like the work you did, however I almost got my feelings hurt in another thread that suggested *gasp* that a State Machine should never have as many states as I use. One thing I got out of that discussion got me thinking of my habit of using macros. I make a macro to perform a complicated function, but the steps of that function are all exposed as well. It's not so much trouble for me to maintain the software, but someone else after me may not recognize the utility of the macro and either miss some necessary steps or waste time redeveloping it. I'm thinking that I need to use sub-VIs rather than more sections in my State Machine. (Encapsulation?) Jim -
Check for update function
jcarmody replied to Svendsen's topic in Application Builder, Installers and code distribution
You could check the MD5 checksum of the executable and compare it with the latest file on your network. Your application would only need to know the path to the latest-and-greatest version and could compare the two. -
The same way you eat an elephant, one byte at a time.
-
Your post has been read a bunch of times without being answered. I can't understand what you're asking; perhaps you should restate the question.
-
The first thing I thought of when you wrote that was sharks with lasers attached to their heads...
-
You were correct to use a loop, but a For Loop isn't correct unless you know exactly how many times the substring exists in the main string. I used a While Loop with the 'offset past match' to detect when to stop (it'll be -1 if the search string isn't found). I'm not sure what you mean about storing "that substring into an array", but you can wire the 'match substring' of the Search function to an indexing tunnel and you'll get an array of the substring with as many elements as there are occurrences.