Jump to content

Phillip Brooks

Members
  • Posts

    899
  • Joined

  • Last visited

  • Days Won

    50

Everything posted by Phillip Brooks

  1. I would limit the definition of a patch to be changes to NI provided code. Examples would be a fix of Riffle, updating NI VIs that contain oldvers and compat type sub-vis that NI tells us we should stop using (but they don't ) and fixing the fact that Telnet Buffered Read is not reentrant and causes numerous problems when used with TestStand. Maybe a template copy of a LabVIEW.ini file with cool features from the wiki disabled and with comments( super-secret baby!) (We might be able to help more if a few less VIs were password protected )
  2. Why do you want to use a stacked sequence structure? I suspect that the majority suggestion on LAVA would be to convert the flat seqs to sub-vis. If they are old and work, don't mess with them; especially if you aren't touching the code inside them. People usually use flat seq structures to enforce order of operation and a seemingly simple change can break things badly. They did this because they don't understand dataflow which means they don't know LabVIEW and that means there may be other monsters waiting to bite you. If the flat seqs are large (complex) and need to be modified, it might be better to create a sub-vi. Within the sub-vi, they can be converted from a flat to a stacked seq structure and then finally to a case structure that can be wrapped with a while loop and some shift registers to be turned into state machine. You can even use a diagram disable structure to leave a copy of the flat seq in place as you refactor. If something doesn't work, you can just use the old code until you have time to 'do it right'. If the flat seqs contain locals or property nodes that modify data not related to the code within the structures, you've got a whole big, ugly, nasty bag of butt hurt that can't be fixed with sub-vis or get better by adding a stacked sequence structure. The block diagram of your top level VI may look nice, but the next person looking at the code won't be any happier than you. When I open a piece of code that contains nested sequence structures, I become instantly upset to my stomach. My choices in order of preference: 1. State Machine 2. Flat seq structure 3. Anything else ( ) 4. stacked sequence structure P.S. Remembered this from the NI Idea Exchange: http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Splitting-and-exiting-flat-sequences/idi-p/1535798
  3. I guess all good things must come to a 404... http://www.ni.com/news/releases/april1201.htm
  4. A weak CRC is better than NO CRC over an unreliable transport. Remember that for many years (decades) most devices RECEIVING the message were classically very resource or processor limited and simple bitwise checks on the receiver are low overhead. If the device in question is using anything other than RS232/485 then I'm guessing somebody wrapped a dinosaur in a box, hid a "XYZ to RS232" converter in it and called the product "New and improved" with a price tag disproportionate to the cost. I can make such a statement only because I've been an unwilling contributor to such a thing.
  5. I have no idea, but I did read this post on the dark side just the other day and wondered what the heck a quadtree was...
  6. The spec sheet for the T-10 (http://www.konicaminolta.com/instruments/products/light/illuminance-meter/t10/specifications.html) indicates that there is a fast and slow mode for analog output. Maybe check the settings of the unit...
  7. Do they involve registering or testing a refnum? Feels a bit like watching "What's My Line?"
  8. Cross link from the Idea Exchange: http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Allow-References-to-be-Wired-into-Case-Selectors-to-Check-for/idi-p/1022833 Would the implementation of this idea make this situation less likely?
  9. Also, if the queue is created as a result of an error using enqueue, the subsequent pass through the loop does not pass out the newly created queue (use default if unwired). Zombies!
  10. Sounds great! Just please don't use "Three Button Dialog CORE.vi" as a starting point
  11. I just contributed to a post on the dark side where I discovered that the fractional seconds component <%<digits>u> of the scan from string uses the regional settings to evaluate the input string. My signature's "%^<%Y-%m-%dT%H:%M:%S%3uZ>T" is ISO 8601 compliant for CREATING a string because the spec allows for either separator to be used, but LabVIEW will always use the locale settings to PARSE the string. In order to properly interpret an OpenG configuration file for this case, I don't see how it can be done without adding a section to the INI to store the regional settings for the last write to the file using the OpenG functions.
  12. Were you thinking of the Map thread? http://lavag.org/topic/5983-map-implemented-with-classes-for-85/
  13. The TestStand API includes something called "DecimalPointLocalizationOptions" http://zone.ni.com/r...izationoptions/ Rather than trying to guess what the decimal point is, maybe the Variant Config library could add a [OpenG_Locale] section within the INI file that would store the locale specific data at the time the INI was written. Presumably the Variant Config INI file will be read using the library functions. The saved settings in the INI file could be compared to the runtime locale settings (%c) and the library could convert if necessary. The default-defaults could be used if the section was missing (non-OpenG INI or upgrading to new version of lib).
  14. I don't use either library often, what caught my eye was the locale decimal point part. The addition of a specifier for the separator and the implications are being discussed in the other thread.
  15. Google is your friend. LabVIEW Array of X-controls http://lmgtfy.com/?q=LabVIEW+Array+of+X-controls
  16. I've been asked to allow editing of a database table in a multicolumn listbox. I used to use a dialog to edit the record's contents, but now it would be nice to edit 'in place'. If you select a row and then select a cell, the cell changes into edit mode. I've tried various combinations of properties and looked through the methods to try and find how to set a cell to 'edit mode' programatically, but just can't find the right combination. The fields marked <REQUIRED> would be set to edit mode in succession until all <REQUIRED> fields are filled in or until the user selects a different control on the FP. Anyone know how to coax the cell into 'edit mode' programatically?
  17. The inability to change the NI picktime VI was noted in this Idea Exchange discussion. http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Calendar-control-that-does-not-block-the-GUI/idc-p/1419606#M9804
  18. There is an active review of the variant tools in this thread
  19. Here is our default image for our generic dialog. I smile every time I fail to wire a real image...
  20. You can also drag and drop the icon of one vi to another vi without copy/paste. No keystrokes required... (front panel to front panel)
  21. Where's the LAVA "Me Too" button? Mel Brooks may have a few words he'd like to share with you...
  22. Here are a couple of VIs I wrote for a tool that used the MCL. The first iterates over the MCL ItemNames to determine the max width. It looks at each cell's formatting to see if font customization have been made. Use the output to set the widths (AKA autofit width). MCL Get Max Col Widths.vi The second colors the rows with alternate colors. MCL Set RowColors.vi The assumption is that you have already deferred panel updates. These could probably be optimized, but they worked for my project.
  23. Combined with the Variant Configuration File VIs, you could persist an operator's preferences without a separate "configuration options" screen.
×
×
  • Create New...

Important Information

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