Jump to content

Doon

Members
  • Posts

    43
  • Joined

  • Last visited

    Never

Everything posted by Doon

  1. QUOTE (tmunsell @ Oct 22 2008, 08:37 PM) I think this is an issue of input formatting... as Minh Pham has indicated above, context help is your friend. I will never stop using it -- especially when building graphs. QUOTE (tmunsell @ Oct 22 2008, 08:37 PM) As for inputting the data, I don't have to use a spreadsheet. The limits are fixed data that just needs to be displayed so that I can see if the live data is falling within the min and max lines. I strongly urge you to leave Excel. I have had all kinds of heartache with maintenance of ActiveX controls for MS Office. However, to ensure expandability, it would be best to store limit data external to your application. This becomes especially important if you deliver executables. I suggest a basic format such as CSV. QUOTE (Minh Pham @ Oct 22 2008, 10:41 PM) You cant have it outside the loop as it will only update the data when the loop stoped. Ditto that. . . Unless you start messing with VI Server , you will need your graph/chart indicator in your loop. For your reference I built a simple app that plots limits in an XY Graph: http://lavag.org/old_files/post-3343-1224742877.vi'>Download File:post-3343-1224742877.vi
  2. Hi Todd, As Minh Pham said, you simply need to bundle your "limit" data along with your "live" data. I would suggest something along the lines of iteratively updating a predefined 2D array (two columns with your 'limits' with a third column for your 'live' data). This assumes your graphs will have a consistent number of data points. One question for your consideration: Do you plan to load the limits from the Excel sheet and/or subsequently export the data for printing in Excel? I ask because your topic implies a desire to do so, in which case, this issue is not as open-and-shut. Have a nice day, -H
  3. QUOTE (alukindo @ Jul 30 2008, 10:00 PM) Anthony, You should be able to adjust your print options. PDF uses JPEG compression for embedded images. Specifically, Adobe Distiller (I assume you are printing to "Adobe PDF") uses "Medium" compression for its "standard" print option. You have a host of options available in the print properties dialog. I trust that you can find a solution that will provide a nice compromise between image quality and file size. have a nice day, -H
  4. Hi Sylvain, It sounds like you need to setup your x-axis as a time stamp. In the graph's properties, under "Format and Precision", set the x-axis to "Absolute Time". Then select Advanced editing mode option and set the Format string to %<%H>T. This should make the sequence as you want it. Then you have to adjust your x-values into the correct time-stamp sequence. You have to offset the array by 7 hours and multiply by 3600 (this is due to storage of time in seconds from 17:00T1903-12-31). This would produce an x-axis that will wrap around in 24-hour intervals. The only problem with this is that you must change the format of your incoming x-data into a linear sequence (...,21,22,23,24,25,...). As everyone has stated above, the XY graph is plotting in the data as it is given in the sequence it is given. An alternative solution may be to use a waveform graph and adjust the x-axis offset to align with your data (again, using absolute time-stamp for the x-axis). have a nice day, --H
  5. QUOTE (Tim_S @ Jun 20 2008, 11:24 AM) My primary impetus for using DataGridView was to create multi-typed tables. However, if I didn't need to use it, I would not have. My biggest problem with .NET in LabVIEW is the shear number of property and method nodes needed to get anything done (not unlike LV trees). Unfortunately, I have nothing I can release at this time, sorry. Check back in about a month. -H
  6. QUOTE (Altomare @ Jun 19 2008, 09:11 AM) Altomare, I have always found the http://forums.msdn.microsoft.com/' rel='nofollow' target="_blank">MS Developer Network Forum to be quite helpful when hacking at the .NET framework. Also, a good book on the .NET framework is invaluable (and expensive). However, virtually all of the resources out there are in either VB or C#. I suggest that unless you need to incorporate .NET in LabVIEW (for example, to use the DataGridView control ), you are probably going to save a lot of time and heartache simply mimicking the window features as discussed above. One option is to take screen caps of windows and cut-and-paste components into front panel elements. This would give you a "professional" look without the headaches. I hope that helps, --H
  7. Hiya, I read an article on Ars Technica which discusses (on the second page) different programmer archetypes. The context of the article is the evolutionary development of the Windows environment and the implementation of the .Net framework. The section, entitled "A Developer Taxonomy," gives an eagle's perspective on programmers' motivations and lends insight into both the resentment expressed by "traditional" programmers and the sometimes parochial views I have witnessed of some LabVIEW programmers. FWIW, I am glad that there is such a wide variety of programmers out there -- one to fit every need. Not everyone needs to be a hardboiled programmer in order to produce working code. have a nice day, -H
  8. Doon

    cluster

    QUOTE (reem @ Apr 17 2008, 08:26 AM) My mantra is "try it and see; if it doesn't work, Ctrl-Z" Sampling rate, Port Number, and Gain all seem like standard controls that could be included in a cluster. I suspect you may be on the wrong path about what controls are. Maybe a little clarification (or a picture) would help. 8D
  9. QUOTE (orko @ Apr 16 2008, 08:18 AM) Even More reason for me to push (read: beg) for an upgrade. Thanks.
  10. QUOTE (tcplomp @ Apr 15 2008, 10:47 PM) Maybe I'm doing this wrong, but when I switch between conditionals, I right-click the project in the "Project Explorer" window and select "Properties..." In the "Conditional Disable Symbols" section, the only options I see are "Add" and "Remove Selected Items". So far, my only solution is to first remove my symbol, then re-Add it with a new value. Is there a cleaner way to change Symbols in a project? That would surely make my day. Cheers, -H
  11. According to NI's Knowledgebase, you should try to re-install NI-VISA. Funny, though, When I run the error (General Error Handler.vi), I get back the following: VISA: (Hex 0xBFFF009E) A code library required by VISA could not be located or loaded. Getting an "Undefined" error code can be a pretty good indication that certain component (in this case, NI-VISA) drivers are not installed.
  12. QUOTE (orko @ Apr 15 2008, 11:57 AM) Ditto, One case in point, I have two target test stands for automated testing as part of product delivery. One has additional functionality (mine) and the other has non-disimilar equipment performing the same task (theirs). In the mid-level equipment code, I have added Conditional Disables to handle the differences between the two test stands. Countless times, I went to deliver new code, only to realize that I forgot to change the Conditional Symbol. Having the Build Spec's handle this would certainly make multi-targetting much more streamlined. Unfortunately, I still follow the practice of Remove Symbol, Add Symbol.
  13. QUOTE (mross @ Apr 7 2008, 01:24 PM) I see two problems with local variables 1) You cannot use "push-button" interface with locals. That would mean that one would have to use "switch-buttons" to stop the loop and another local variable to unset the switch so that it looks like a push-button. 2) You end up with a "polling interface" type structure which suffers from potential race conditions. You run the risk of one loop quiting and precluding the quiting of another. QUOTE (mross @ Apr 7 2008, 01:24 PM) Also, NI says don't use multpile event structures, so I don't. Event Structures behave as "invisible queues". This is the result of NI's implementation of the Event Structure. This means that *sequential* event structures are dangerous (e.g., try sequencing two event loops that handle the same controls). I have always surmised that this was a "lesser of two evils" design decision on NI's part, given the intrinsic parallel capabilities of LabVIEW. have a nice day, 8D
  14. Hiya, I have always used a "parallel" event structure to handle stopping parallel loops. In each loop, simply add an event structure with the "Stop":Value Change event. Connect "NewVal" parameter out of the Event Data Node to the stop button of the containing While Loop, and a-la-peanutbutter-and-jelly-sandwiches, you have parallel stopping loops. Download File:post-3343-1207596547.vi __ALTERNATIVELY__ If you need one loop to stop another, you may register a dynamic event. But that may be a bit complex for the purposes you need. have a nice day, -H
  15. QUOTE (brianafischer @ Apr 4 2008, 09:22 AM) Hiya, To get you started, here is a "standard" 360-counter device. http://lavag.org/old_files/post-3343-1207331297.vi'>Download File:post-3343-1207331297.vi It basically counts up and down as the user rotates the knob (the knob having a range from 0 to 360 -- you should be able to adjust this to any resolution). I leave it to your devices for figuring out how to get it to stop (Hint: One option would be to implement this in an X-Control). have a nice day, --H
  16. Hi Paul, I agree with Mr. Sweeny that you are missing a sort of "get user input" method. My suggestion would be to consider an Event Structure that would trigger on a "value change" of the listbox. However, I did notice that you have an array output from your listbox, indicating "multiple selection". This would be a little trickier to implement. If I may, I would like to have more detail on how you handle the list. If you have no need for "multiple selection", I would suggest changing the listbox to "0 or 1 Item" selection mode. have a nice day, --H
  17. Doon

    Read serial stream

    uhu13, Welcome! I suggest using a *Chart* instead of a *Graph* display. Charts automatically append the data they display. If you need to output the data from your loop, you could use a shift-register to continuously build your array. In that case, you would want to use a Graph display to avoid replotting data each loop. have a nice day, -H
  18. QUOTE(Daklu @ Feb 7 2008, 11:04 AM) Hiya, Daklu I remember doing something like this a while back. I was wondering if you needed the enum at all. I had done something similar (tab controls and a cluster). In my implementation, I used the tab control to index the a cluster array. That way, each element corresponded to the tab position (i.e., Tab 1 = element 0, Tab 2 = element 1, etc.). The only problem I can foresee in my implementation is if something were to rearrange the array -- otherwise, smooth sailing. happy coding! -H
  19. This may be a silly question, but did you check for an auxiliary COM port on your motherboard? I just got a new MoBo this last week and was surprised to find an internal COM port (in addition to three sets of internal USB ports ). The port would be a 2x4 100-mil header (mine was designated "COMB"). As stated above, RS232 was not designed for more than two devices (one master and one slave). It would be in your best interest to seek out an alternative solution to your setup. -H
  20. Ctrl-H is a noob's best friend You could also right-click the icon and select "help" Teach a man to fish... -H
  21. QUOTE(Gavin Burnell @ Jun 5 2007, 04:54 PM) Yeah, I ignored that issue . I assumed that since hma had a finite set of entries, this might be a solution. QUOTE(Gavin Burnell @ Jun 5 2007, 04:54 PM) If platform independence can be sacrificed and the target is Win32 then I think the ActiveX tab control can have new tabs added at runtime - if so, that could provide the tabs part of the UI with a single cluster control displating the current index. Bravo! :worship: This is definitely a very viable solution. Wowie! -H
  22. Hiya Because Mr. Burnell Got the hackin' ball rolling, Here's my solution.http://forums.lavag.org/index.php?act=attach&type=post&id=6040 It uses the tab control simply as an enum. Personally, I would suggest using an enum. the values are shuffled into and out of the display cluster from the cluster array. Good points of this is that it only uses *one* cluster, ergo only one cluster to update. Bad points is the need to cycle data in-and-out of the cluster. IMO, I would say that Mr. Plotzke is spot-on with the Idea of editing the array directly, using the scrollbar to shuttle between entries. This saves from having to initialize a separate cluster and cluster array. Also, This means that, should the need arise, one can expand the array size on the fly. Cheers! -H
  23. Doon

    sEQEUNCE

    QUOTE(crelf @ May 3 2007, 07:50 AM) This may go without saying, but if the two loops are unrelated -- that is, they do not share data -- would it not be more efficient to put the two loops in a sequence structure? I have always understood that data transfered into or out-of loops cause a re-allocation of memory. Clarification on this issue would be quite nice. -H
  24. I understand that this thread is mostly aimed at old members. I, myself, have been 98.9 percent lurker on this forum for almost two years. But I cannot help but be a bit concerned. What would happen if new moderators were comprised of the very members who inspired this thread? I can understand the frustration you have with HH questions. It's the same thing that drives IT people to wear those silly black shirts with rtfm across the chest (no offense to those of you wearing those shirts). I would suggest setting up a means for members to relieve their frustrations at HH-type questions -- perhaps with a button to click. Enough clicks by enough members could send the topic to a different section, as described above. Perhaps this can be done as a ratio: """After 12 viewings, 63% of the readers found this topic to be poorly formed. Please revise your question and resubmit.""" This would establish more of a consensus system. It would also save from a lot of the "please send code" responses. And isn't that the point -- to make the forum more productive? Furthermore, I'm sure everyone gets the same satisfaction I feel when they click a button labelled "HH" -H
  25. Hiya, I hate to follow Tomi Maila's logic with dribble, but here goes: We always want our children to be better than ourselves. That means to say that child nodes should contain enhancements beyond their parents. I would call it "specialization through extension". I agree with Tomi on the point of simplicity. One would not want to add functionallity to a node by adding that functionality to generic node and masking it to the one child. I'll bet that there are cases where the opposite is true. This file/directory question had me going back-and-forth for a while. It gets even more complicated when one considers examples like the Unified File Systems (of the GNU/Linux variety) in which "everything is a file". [/two cents] --H
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.