-
Posts
576 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by orko
-
QUOTE (Tomi Maila @ Apr 12 2008, 01:01 AM) Tomi, I found that lightening up the font smoothing (in edit->preferences) helped this.
-
QUOTE (Phillip Brooks @ Apr 11 2008, 11:36 AM) LOL :laugh: Very true! Funny you should bring that up... it wasn't a coincidence that my signature changed recently. This time however, it has nothing to do with not enjoying my job. PM me for details...
-
QUOTE (crelf @ Apr 11 2008, 10:44 AM) You mean like the Microsoft Updater just "updates" existing software? :laugh: Don't get me wrong, the updater may have very well offered a choice to "opt out". I just didn't see one since I'm so used to that updater offering updates to QT and itunes...and my ipod won't work correctly if all of my computers aren't synced to the same version of itunes. I see the screen and hit okay. They have me trained well. Of course, Safari definitely was checked by default in the list of updates, otherwise I wouldn't have gotten it. BTW...I'm really digging this safari browser...
-
Well, well, well. Apple just updated my Quicktime to the latest version on my Vista laptop... and guess who came along for the ride? I was surprised because so far the Apple updater only has updated software that was already installed. This seems like a bold (but I like it) move by them to push their browser like this.
-
Well, the "special" MCL that PJM extracted is definitely not the same beast as any MCL that I've tried (even back to LV6.0). Just look at what happens when you play with the "Symbols Visible" boolean... Download File:post-3266-1207897024.vi From this, it looks like the special MCL is 0-based for the "Symbols Visible" active cell column, while any other MCL is base-1. Somewhere out there, there was a MCL that behaves differently than all the rest. Maybe someone who has an older version of LV can check it out...when was the MCL introduced? Of course, this may be a control that never made it out of NI's door...and was just used in compiled code.
-
QUOTE (normandinf @ Apr 10 2008, 02:38 PM) Perhaps an even bigger clue is the fact that your MCL is an integer and his is an array of integers...
-
Marcel, This looks good. I've modified the ConnectorPane_Core.vi to work when there is more than one subVI on the ConnectorPane_Wired_example.vi (it was throwing an error since you were closing the references too early). You can see an example of the problem I had with this on the enclosed example. When there are more than one subVI with the same name on the example's block diagram, this doesn't work. I wonder if perhaps explicitly passing in the VI reference (instead of relying on the list of callers) to the core VI would solve this problem...
-
Two while loops updating one waveform chart
orko replied to Aaron L's topic in Application Design & Architecture
I totally concur with Paul's suggestion. One of the many benefits of using queues is that you can use a cluster with an enum and numeric inside of it as your data type for the queue. Then when you dequeue an element from it the enum would tell the loop that is operating on the chart what to do (clear the chart,add to chart, even change attributes of the chart if you want). Oh, and of course you can stop your chart loop with this mechanism as well when your main sequences are finished. Here's a very simplified example w/o error handling or deferred panel updates optimization: Download File:post-3266-1207858000.vi (LV8.2) -
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (scls19fr @ Apr 10 2008, 11:44 AM) That is when queues are useful. Enqueuing an item in an event strucure is very fast, and another loop can dequeue the item and take all the time it needs to complete the task (producer/consumer). -
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (scls19fr @ Apr 10 2008, 10:29 AM) Yes, better! QUOTE (scls19fr @ Apr 10 2008, 10:29 AM) I still have a problem with initializing the Express VI / Input / Simulate arbitrary signal The problem happens when I click on Autostart and click on Stop before the end of the Autostart sequence A similar problem happens with "programmed" signals The VI Express need to be initialize when -I click on STOP TURBO -I click on STOP PROG / MANUAL You just need to wire a TRUE boolean to the "Reset" input of the express VIs when you want them to be initialized. Now that you are using events, this should be as easy as wiring a TRUE boolean out of the "start prog" and "autostart" events (I would initialize them on START, not STOP). -
QUOTE (T_Schott @ Apr 10 2008, 01:41 AM) See http://forums.lavag.org/A-Utility-I-Wrote-Last-Summer-t211.html&view=findpost&p=9207' target="_blank">above post for the version that works in LV8.x Place the vi in your <labview>/projects folder and restart labview, you should now have it in the Tools menu.
-
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (scls19fr @ Apr 10 2008, 12:31 AM) It sounds like you are heading in the right direction. Take a real close look at the Producer/Consumer with events template I mentioned. It will fit nicely with what you are describing. -
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (scls19fr @ Apr 9 2008, 12:38 PM) it's not so bad...yet. QUOTE (scls19fr @ Apr 9 2008, 12:38 PM) Sorry but I don't understand what you mean (don't forget... I'm french ;-) ) Sorry Okay, I was trying to say, "your code is too big". A well designed application should be able to be seen on one monitor screen, without the need to scroll. Solutions include using state machines in place of sequences, using event structures for button change detection, and sometimes just shortening up the wires. QUOTE (scls19fr @ Apr 9 2008, 12:38 PM) I would like to find a sample... because the NI sample are nearly empty.... so it doesn't help me very much ! I do not know the translated menus, but in english there are a bunch of design templates at: File->New..., then it's listed under VI/From Template/Frameworks QUOTE (scls19fr @ Apr 9 2008, 12:38 PM) I still have a problem with restart ! Using another shift register to hold a boolean value for resetting the signals should do the trick. Download File:post-3266-1207777098.vi -
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (scls19fr @ Apr 9 2008, 07:48 AM) Actually, to have this express VI start over when you run out of points, simply change the settings in your express VIs to: http://lavag.org/old_files/monthly_04_2008/post-3266-1207760436.png' target="_blank"> As far as the rest of the code goes, I have some standard suggestions: - use globals/local variables sparingly to avoid race conditions in the future - become familiar with how event structures work, since this application is very "user intensive" and relies on events happening on the front panel - avoid "stretching" the code. If you can't see everything with minimal (or ideally no) scrolling, then it's time to rethink the design. For instance, this app to me is divided into three major parts: front panel events, triggers, and handlers. For this reason... - Research the design pattern templates and examples that NI has installed for you, especially (for this case) the producer/consumer loop with events. This design pattern fits into a great number of application designs and has become the weapon of choice for me when re-using code that provides a user interface. -
QUOTE (Aristos Queue @ Apr 8 2008, 02:07 PM) Personally, I think the above behavior is evil. Sorry, but I don't care if it makes sense that it happens procedurally... can someone tell me why in Pete's sake I would ever want to select "no" in this situation...? Am I missing something or is this situation programatically detectable/avoidable? If so, why can't we just get rid of the evil dialog that corrupts our VI? Like Chris, I am still pre-caf at this point... so perhaps there is something I'm not thinking of.
-
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (scls19fr @ Apr 9 2008, 03:48 AM) I didn't like the disconnect between the wait/dX either (I would have thought that the dX input would be available on the outside of the Express VI as a terminal so you could synchronize the two easily). The neat thing about Express VI's though is that you can right-click them and select "Open Front Panel". By accepting the conversion, you now have a subVI that you can dive into and see how it works (even pull code out of to create a template for another VI). Doing this, I'm sure that you could figure out how to wire in the dX instead of having it set inside a "magic blue box". Good Luck! -
Stop 2 parallels do loops while
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (mross @ Apr 8 2008, 11:04 AM) They do not fire reliably at the same time... Which is why I don't use this method. See the below VI which shows that the second and third event structures do not get the event until the subsequent loop iteration. If they all got the event at the same time, then the delays here would be less than the wait time for each loop: (LV8.5) -
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (scls19fr @ Apr 8 2008, 02:25 AM) Yes, that translation was correct (Simulate Arbitrary Signal). I've modified your example so perhaps you can see a little more clearly what is happening. http://lavag.org/old_files/post-3266-1207691811.vi'>Download File:post-3266-1207691811.vi In the express VI, there are options of either 1) outputting one point per iteration or 2) the entire signal on each iteration. If you are planning on using this in a loop, select the "one point per iteration" selection. You had the "entire signal on each iteration" selected, so it was just outputting the whole sequence of points on each loop to the graph. Think of this express VI as a "Y value generator", in that it produces a bunch of Y values based on the data points you define inside the express VI. In the VI you posted, you had selected points that were 1000 "X values" apart for each second in time based on your desired test criteria (1k,1.5k,2k,3k). This is fine, however selecting 30m (or 30 milli-units) as your dX created (1000/0.03) = 33,333.333_ Y values for every second of data. That is why you had 100,000 points coming out of this express VI. To cycle through them in real time, you would have had to have a loop running at a period of (3 second/100,000 points) = 30us per loop, or 33.3kHz. A bit overkill for 4 state changes In the above, I've changed the express VI to use the "one point per iteration" mode, and selected data points that were 1 unit away from each other for each second of test data. Then using a dX of 10m gave a total output points of (1/0.01) = 100 points (or 300 points in the 3 second total). Matching the dX by putting a 10ms wait in the For Loop hopefully produced the effect you were after. I also showed how you can use the "Data Valid" output from the express VI to signal when it is done cycling through the points. Hope this helps! -
Piecing together the tidbits of HTML & JavaScript that you've provided in your screenshots, this URL should be the one that is requested when you submit the form (don't put the "ADMIN:ADMIN@" at the front of this): http://192.168.40.125:20080/EMSRequest/LoginConfirm?Login_id=Login&user=ADMIN&ConfirmPwd=ADMIN Temporarily remove the wire going into the DS Open Connection and DS Read and wire the above URL instead as a constant to see if it will work. And no, you shouldn't need to put the [text] at the end, since datasockets use text as default. Check to verify the correct IP and port is in the URL first, of course. If using this URL still doesn't work, you've more than likely got a session cookie problem (as described above) or something quirky going on with the dynamic content being provided from the unit. An easy way to check this would be to use something other than LV and see if it works... like Curl or Wget
-
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
QUOTE (scls19fr @ Apr 7 2008, 07:10 AM) I'm confused. It seems that your design (while loops, local variable, sequences) cannot be changed, somehow...? I don't see why you would want to go through the hassle of creating your own timing functions when LabVIEW has all sorts of internal waveform generation VIs ready to go. Can you tell us to what purpose you are trying to build this code? This may shed some more light on the subject. -
QUOTE (Christina Rogers @ Apr 7 2008, 04:55 AM) Ah, Ok. I think that limitation is going to invalidate my reasoning for trying to integrate into the GSW. I was trying to add an item/task without taking away anything that the developer had access to originally. So perhaps the next option would be to try and use the "New" dialog, which opens when you either select the "New" or the "more..." link on the GSW. I'm looking through the code (what I can see...a lot of the GSW library is locked) and I understand how to place a new node into the LVNewDialog.xml so that my item shows up in the Project category. Unfortunately, I don't see a built in MagicNumber (yes, I found out where these come from :ninja: ) that will allow me to open a copy of a project into memory from a "template" on disk. The only built in way to get this to happen that I see is to use the elaborate "Project from Wizard" mechanism, which the more I delve into the more I realize it is way too complex for me to follow blindfolded. I feel like I may be flailing here. The task seems easy enough, copy a project from a disk location and open it up in memory as a new unsaved project. Unfortunately the method to do this doesn't appear to be part of the GSW or its plugins (even though it seems really close). QUOTE (bpreis @ Apr 7 2008, 12:09 PM) It's just VI Server calls to the Project API to add files, however, it's a little more complicated when adding targets. You might find resource\Framework\Providers\lvdesktop.llb\PC_New.vi useful. Pass it your project reference and the project's "Root" reference (to the "Item" input). The "BehaviorGUIDs" input allows you to restrict the displayed results. The RT and PDA project wizards for example would use known BehaviorGUIDs so that the dialog only presents supported target types. I'm not sure how liberal we are about giving out GUIDs and such and I unfortunately don't have a list of all the possible BehaviorGUIDs anyway, but some other LV person (or PSE) who trolls here might be able to help you more with that particular input. After invoking that VI, you should be able to continue operating on the project refnum by adding files to your new target with VI Server. If you're dealing with shared variables, be aware that much of their VI Server interface is private, but there is a primitive VI-based API in vi.lib\variable\* that might help. Now this may be something I can use...! Thank you for your insight...and the tip on shared variables, although for this project we aren't using them. One question, do you know when this became available (LV8.x)?
-
QUOTE (Aristos Queue @ Apr 6 2008, 09:30 PM) Thanks AQ, I knew of two versions of the GSW (with/without the Targets section) but didn't realize there was a third... I've asked Christina for her help on this. She also mentions in her blog that the GSW isn't a supported feature in LV8.5, and as such may change in future revisions (read:use at your own risk). I was wondering if there was any changes to the GSW in LV8.5.1, but after reviewing the readme I don't think so. That was a bug fix release... so I would think that changes(if any) would probably be more likely to occur in a minor release (ie:LV8.6). As far as the whole "template/tookit chooser" that I'm trying to accomplish, I was also wondering if someone at NI would have had some insight on the mechanisms used internally to create new target projects (like the RT/PDA target projects that are created on the fly after their wizards finish). Are those just using VI Server calls to the Project API to create new projects in memory based on the user's choices in the wizard? That was my plan of attack for this custom project creator that this is turning out to be.
-
I would like to help you, but this description is so vague that I could only take a wild guess as to what you are trying to do (and I don't want to waste either of our time). Please be a little more specific. What VI are you refering to? How are you trying to use it? What characters are you getting back and how are you looking at them (using an email client? Which one?). Screenshots are fantastic, actual VIs that you are trying to get to work may be better. Also, this question doesn't belong in the LabVIEW 8.x.x Discussions forum. Please take the time to become familiar with the several different forums LAVA has available, so that you can get the best response possible in the shortest amount of time.
-
Generate my own input signal for a device
orko replied to scls19fr's topic in Application Design & Architecture
Will this VI (found in the analog waveform generation pallete) do the trick? -
QUOTE (tcplomp @ Apr 5 2008, 04:55 AM) This is where I've looked up most of the info I have so far on customizing the GSW. Thanks Christina!! Although what I'm going after is modifying an existing developer's GSW by adding 1 thing to it...basically an additional link in the "New" section for "New SystemX Client" which brings up a chooser to select which template they want to use. Changing the GSW completely would not be what I'm after. QUOTE (tcplomp @ Apr 5 2008, 04:55 AM) What you could do is have every TK VI in a lvlib in a separate folder. If a LVLIB is selected, you do a save as on the lvlib, copy it and the directory, add the lvlib to the new project and you should be save. That sounds like a good plan and is what I'm leaning toward doing. Thanks Ton!