Continuing on another thread at this forum
(http://forums.ni.com/ni/board/message?board.id=170&message.id=132285),
I'm trying to build a GUI to display data. Because I'm relatively new
to LabVIEW and especially to it's GUI and calling of multiple VI's, I'm
strugling with it and I feel like getting buried under all the
information.
I Think my program should be very easy to program, but I'm just to
unexperienced with it to know where and how to start on some things.
Let me explain what the program should display and how.
Data acquired from a few serial ports/DAQ needs to be displayed on
about 9 'instruments' on the monitor. Acquiring data and sampling it is
no problem for me, I created a bunch of VI's for it (and bundling data
and so on to a connector). But then I want it displayed on the monitor,
no big deal if it would only need to be displayed on the same way, here
is where my troubling starts.
Let's divide the screen in 3*3 parts, in case of a 960*720 resolution
you then end up with 9 windows of 320*240 in size, this is my starting
point from where all the VI's are designed. I've included a sample of 1
'instrument'-display. This is a 320*240 sized thing, which scales
itself depending on the actual panel size, so that it can be used for
every 4*3 resolution beginning at 960*720. Now picture 8 more of these
VI's on 1 'frontpanel'. At all time they need to be updated with the
current values (which are coming from different VI's), looks to me I
need 9 VI's running 'on top' of my standard executable panel if you get
what I mean.
Now comes the tricky bit (at least for me), for 1 of these windows, I
think of the logo of the yacht and when the logo is clicked for 1
second all the 9 panels turn into night-mode (you can see it in the
demo, when connecting a control to it), this is only a variable who's
value needs to be changed. Because most of the 9 panels do not display
all the information or do not have all the controls which are needed
(some debug info containing all the data gathered need to be displayed
and in case of my example the units (m/s and knots) needs to be
changed, or i.e. the scale of a waveform chart for other 'panels') are
not displayed on the standard display. But when somewhere in a panel a
mouse down occures then a 'property or config' display needs to be
opened corresponding with the 320*240 area clicked where this info is
displayed and some controls are placed. During this period, the
remaining 8 panels need to be still updated with data, after changing
(or just reading) data the user should be able to choose OK or Cancel
or press outside the panel which would cancel the values too. Anyway
when confirmed or not confirmed the display should return to it's
standard "monitor" function in day or night view. At any time a maximum
of 1 instrument should display it's 'sub-display'.
I Hope it is somewhat clear on how it should work ultimately, despite
my poor way of explanation in English. When I get some examples of the
best way to do something like this I should be able to fix it, by means
of that at this point I don't even get if and how I should use global
variables or funtional globals, call by reference and so on...