Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by sydney

  2. Make a simple FSM (finite state machine) with a while loop, imbedded case statement, and an enumerated type to handle the states. Now picture this code in the various states displaying controls and indicators on the various pages of a tabbed display. When the FSM state machine is in a particular state where it would be desirable to display a particular page that state's code would assign a constant, enumerated type to the tabbed page's value property to have the display automatically switch to that page of the display. All the needed pages were already there and the state machine is navigating to the various pages as needed, which is why I normally do not even show the tabs on the display as the user does not do any navigation, the FSM does. Typically I would have several pages for setting up the hardware, and several more to display the parameters from the hardware devices. Now this can rapidly get to the point where I have a couple dozen pages to manage along with the associated code to run the hardware. I need an enumerated type to manage the states of the FSM, and the tabbed page display needs it's own enumerated type to assign to the value property nodes when I want to change pages in the display. This last enumerated type is the main source of my problem since every time, while developing the code, when I need to add a page I then have to go back to every property node and delete the old constant and install a new enumerated type! I made a simple example to illustrate... Sydney tabbed_pages.vi tabbed_pages_enums.ctl tabbed_pages_enums_2.ctl
  3. I use an FSM with a tabbed page display very frequently. The FSM, using its own strictly type def's enumerated constants, will navigate to the different tabbed pages by setting the tabbed pages value property: so any state of the FSM can tell the tabbed page display to present whatever page is desired to associate with the present FSM state. The tabbed pages cover most of the screen and do not have visible tabs making for a very useful technique to display large sets of data in my projects since there frequently is needed displays that show 30 - 60 parameter values on any one display page. My problem is that the tabbed pages have an associated enumerated type for the page values, and I end up with a seperate strict type def enumerated type for the FSM. This works well but has major drawbacks: maintainability and scalability. I would like to change the enumerated type def for the FSM, apply those changes throughout the FSM (no problem at all!), and be able to apply those changes to the type def for the tabbed page display. Then I would like to add a tabbed page in the correct order or position to agree with the FSMs enumerated type. So far I have experimented with trying to cast the enumerated types which can't be done because they are both strictly type def to different controls (I believe). And I have tried to take the enumerated type from the FSM and use it for the Tabbed Pages and vice versa also with no luck. I also have tried to construct separate strict type defs, one for the FSM and the other for the Tabbed Pages and then edit both separately and then 'Apply Changes', but I have problems with the tabbed pages display as it seems that adding a page does not update the 'value' constants that I have previously used in the program, so I have to go back and delete and create anew all the previous 'value' constants for the tabbed pages, and that is a bookkeeping nightmare for a large program. If I can overcome this limitation, this GUI code pattern would be an excellent development technique worthy of becoming a template! I can supply a simple example program, but it is so trivial I do not think it is necessary, but that might be because I use this technique so much. Any suggestions would be greatly appreciated. Sydney
  4. In ver 6.1 there was a panel print.vi that printed the front panel of a vi to the default printer. In my 8.6 version LabIVIEW I found what looks like something the will do the same thing in reports with the Easy Print VI Panel or Documentation.vi which seems to allow one to set this up to print to any printer and not just the default printer. If this is so that is one more reason to upgrade to the current version for the current project that I am working on which was originally written in version 6.1 - it is large with about 400 VIs! From what I have seen so far the original panel print.vi in v 6.1 had no way to print to anything but the default printer, unless of course, I go in and try to change the default path as desired using windows dll calls, and that does not sound like a great deal of fun. Of course it would also be nice if there was some way in the 8.6 version to get a list of available printers so I am also open to any suggestions to solve this problem using version 8.6 also. Any feedback will be appreciated.
  5. when I log in the main screen constantly refreshes at about 1x per second and stops this nonsense once I can click on something an go to another screen. From there I can visit the various sites with no further problems. I do not have any problems of this sort with any other web site so this looks like a LAVA site problem.
  6. Is it possible to use Open Office with the Reports toolkit? I either need to purchase MS Office or use Open Office and my first intuition says that I'm going to be buying MS Office pretty soon.
  • Create New...

Important Information

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