Hello,
I am interested in your opinions and suggestions for better handling of larger number of indicators. Let me explain the situation, then I will show some relevant code to explain better what I do.
So, I have developed an application where I interface several cDAQ modules, 4 RS232 units, etc. The GUI represents the "pipe and instrumentation diagram (P&ID)", which our users and engineers are familiar with. In my application I use 3 TAB pages, the first page shows the whole P&ID, the two others give other info to the users via other VIs which are dynamically called and inserted into subPanels. The monitor size is 24 inches widescreen (1920 x 1200 pixel).
The main page where I have the P&ID, and managed to create a logical and easy to "look through" GUI, hiding most of the settings input into pop-up windows via runtime shortcuts menus. All main menu buttons are auto hidden, and they slide in when the mouse cursor pulled to the side, a kind of auto-hiding sidebar (using some runtime moving SplitterBars tricks), for further decreasing the GUI elements not always needed to be visible...
But still, this main page is required to show to the user about 40 (mostly numeric) indicators (system style). Due to the fact that LabVIEW (and I think also NXG
) lacks the feature to use clusters which can have independent elements on the Front Panel, I cannot group (most of) these 40 indicators into clusters (they are at very different places scattered around on the FP).
I know, I know, we can use a classic cluster and make the border/bg invisible, but still this approach would create an "overlapping elements, GUI nightmare" on my FP.
So my basic problem was that, I wanted to keep my main VI BD neat and small enough (now it is like 1.5 monitor in vertical, and 1.1 monitor in horizontal), and these 40 individual numeric indicators on my BD would waste away lots of space...
My final idea was that, ok, not the nicest solution, but I can just use an outer fixed iteration FOR loop, and inside a CASE structure. Plus, the iteration terminal connected to the Case selector (cases named as 0 to N-1), see the example snippet below. I just bundle out by names the different data lines in this "Display" loop in my main VI BD, and connect the data by wire to the ~40 different indicators. Also, I can do some final scaling here too before presenting data. In this way I can easily see through the different (commented) cases, where the indicators are grouped logical way. So easy to debug, etc.
All this works fine, no problem. I just wonder, is this an "OK" trick to do (if we cannot use the cluster approach), or can cause problems (performance wise, etc)? Of course, I would never design a GUI where much more than 40 values are present at the same time, I was at "the edge". I guess I could have used some SubPanel or the above mentioned invisible cluster tricks, but I decided to go in this KISS way ![Smiley Happy Smiley Happy]()
What is your opinion? I hope I did not explain it too much? Sorry for the long description! ![Smiley Very Happy Smiley Very Happy]()
Thanks!
![for_case1.png for_case1.png]()