Thanks to the attendees for giving me a couple of hours of their time and attention. I kind of enjoy doing them. Here's my cryptic agenda items.
All the examples should be in the zipped up file (LabVIEW 2015)
Not all image formats are equal
Here I demonstrated the difference between Vector and Bitmap (png) images when customising controls. I also spent some time on 6 state buttons and what each state does.
Look in ..\UIPlaytime\SplashScreen\SourceCode\Images\EmStop.odp for the graphics used. I use LibreOffice Impress to create the vector graphics. OpenOffice didn't work last time I tested it. Powerpoint probably does.
Buttons.vi shows a 4 state button with png graphics and vector graphics (EMF) for comparison.
It also describes the 4 states
MouseoverButtons.vi shows 6 state buttons
Arcade.vi goes all in with an example of why vector is better. I was bored and amusing myself.
Demonstrated a real world application for displaying the status of database synchronisation on a Tow Tank.
I then showed how to use picture overlays on graphs, another very useful technique.
GraphImages.vi - you will probably need to relink to the image file.
Humans are slow
Demonstrated with a real world example how you only have to acquire and display at 10 times a second while idling to give the impression of real-time performance. I also went off piste a bit and demonstrated some of the next bit...
The key issue here is that states can help you...
Doing the minimum
Demonstrated 2 tricks -
Use a fake scroll bar and only display the required portion in a table.
The other trick is a bit more involved when dealing with lots of servers sending lots of data to a client. Bottlenecks are plentiful (network, CPU, UI).
Essentially it relies on the Server knowing the time and width in pixels of the displayed graphs. It then sets the timebase and number of readings accordingly.
Useful to Consider
Here I talk about Functional Dialogs for data entry. This a simple dialog whose only job is to check the correctness of data entered and only allow the user to proceed if all is correct. In typical demo fashion it went a bit wrong (the software is in development and I had updated the database), fixed now.
I also introduced the idea of Debug Driven Design, which is something that me and Joerg Hampel are thinking about at the mo'. More to come in the future on this one.
Questions and Answers
I always worry I don't consider the question enough on the fly, so here's some answers with a bit of thought.
AG asked is there any way of doing an animated transition between states? - The only easy way is with the 6 state button as demonstrated. I'm guessing a Picture Ring could be used too.
NP Asked about Transparency and Splitter Bars - I've thought about this a bit more and can't even think of an example I can make to test it. My guess is that you can't. I think sub-panels may also be amusing to try this on.
With regards only updating slowing during Idling IW asked was having the updates not showing during acquisition a compromise with the user? - That really depends on the job, but idling is not acquiring. And customers cannot see an acquire in real-time, their eyes are too slow. Bit of circular answer I'm afraid.
SC:Do you average the data Steve or simply plot every nth point - That just pushed the bottleneck to the CPU, which for this design doesn't help with scaleability EA:do you use notifiers for updating? - I don't think I've ever used notifiers for anything. SS: So if you wanted to log all the data for offline analysis then you couldn't use this method? - I'm guessing there is not an idling state in this case, so no.
LB: How do you calculate how much time will you invest at UI Design, depending on the features, Custom Controls, FP Controls ? or do you usually leverage it from other experiences? - This is an excellent question and my answer is hard won. In my experience the rewards for giving a customer something that looks really professional is not just pride in the job (which is important for happiness), but I also find that this work pays back in how the users interact with the system. So from a time perspective I'm actually happy to spend time on this sort of thing. Obviously templates and experience help with the quoting. I can turn out UIs pretty quick. LabVIEW is actually still very good at this sort of thing.
NP:What type of color schemes do you use for UI? - I let the customer drive me, my job is to facilitate their requirements and to point out logical/efficiency problems with their designs. If left to my own devices, boring standard windows colors.
CR: How do you communicate the UI design to the customer throughout the project? - Communication is key and we're pretty agile in this part of our process, so lots of prototypes and getting the customer to use the software as early as possible. Our design method is focused on being able to respond rapidly and flexibly to changes too.