Countdown?
avi_dave
Posts: 62
Anyone has ideas on countdown feedback or m$ like graphic way of showing progress or status, if you know what I mean?
Example:
wait 10 send_command dvTP_Main, "'TEXT1-14 seconds'"
wait 20 send_command dvTP_Main, "'TEXT1-13 seconds'"
wait 30 send_command dvTP_Main, "'TEXT1-12 seconds'"
wait 40 send_command dvTP_Main, "'TEXT1-11 seconds'"
wait 50 send_command dvTP_Main, "'TEXT1-10 seconds'"
wait 60 send_command dvTP_Main, "'TEXT1- 9 seconds'"
wait 70 send_command dvTP_Main, "'TEXT1- 8 seconds'"
wait 80 send_command dvTP_Main, "'TEXT1- 7 seconds'"
wait 90 send_command dvTP_Main, "'TEXT1- 6 seconds'"
wait 100 send_command dvTP_Main, "'TEXT1- 5 seconds'"
wait 110 send_command dvTP_Main, "'TEXT1- 4 seconds'"
wait 120 send_command dvTP_Main, "'TEXT1- 3 seconds'"
wait 130 send_command dvTP_Main, "'TEXT1- 2 seconds'"
wait 140 send_command dvTP_Main, "'TEXT1- 1 seconds'"
wait 150 send_command dvTP_Main, "'TEXT1- 0 '"
or example:
Variable loadingfB
If (loadingfB >=1)&&(loadingfB <=20)
{
loadingfb = loading + 2
send_level dvTP_Main,loadingfb
}
with a horizaontal vol bar?
Loading >>>
>>>>>>
>>>>>>>>>>>>
Example:
wait 10 send_command dvTP_Main, "'TEXT1-14 seconds'"
wait 20 send_command dvTP_Main, "'TEXT1-13 seconds'"
wait 30 send_command dvTP_Main, "'TEXT1-12 seconds'"
wait 40 send_command dvTP_Main, "'TEXT1-11 seconds'"
wait 50 send_command dvTP_Main, "'TEXT1-10 seconds'"
wait 60 send_command dvTP_Main, "'TEXT1- 9 seconds'"
wait 70 send_command dvTP_Main, "'TEXT1- 8 seconds'"
wait 80 send_command dvTP_Main, "'TEXT1- 7 seconds'"
wait 90 send_command dvTP_Main, "'TEXT1- 6 seconds'"
wait 100 send_command dvTP_Main, "'TEXT1- 5 seconds'"
wait 110 send_command dvTP_Main, "'TEXT1- 4 seconds'"
wait 120 send_command dvTP_Main, "'TEXT1- 3 seconds'"
wait 130 send_command dvTP_Main, "'TEXT1- 2 seconds'"
wait 140 send_command dvTP_Main, "'TEXT1- 1 seconds'"
wait 150 send_command dvTP_Main, "'TEXT1- 0 '"
or example:
Variable loadingfB
If (loadingfB >=1)&&(loadingfB <=20)
{
loadingfb = loading + 2
send_level dvTP_Main,loadingfb
}
with a horizaontal vol bar?
Loading >>>
>>>>>>
>>>>>>>>>>>>
0
Comments
You can also add the $P to a level control in TP Design to display the percent value. Do an inverted value and you should have a count down value.
Paul
There are times when it is appropriate. Let's say, the warm-up or cool-down of a projector: the device itself sometimes won't allow any action until it's done, and the "Please Wait" screen reminds them and gives them indication of why nothing is happening.
Roger McLean
Swinburne University
It may not be the most elegant way to use a timeline, but it works for me.
Roger McLean
Swinburne University
Well I think it is very important when you have a large number of people using your system, all with different levels of technical knowledge. Just because most of us on this forum are AV guys doesn't mean that your users have a clue what is going on and you need to as a programmer direct them. Also you mention 'cancel', a properly designed UI should allow you an escape or warn you before you decide to shut down the projector.
Maybe so but to me, it would be like having my oven's display say "Please Wait..." while it preheats. Rather than doing that, it has a preheat light that turns on when it is preheated and a little bell sounds. Simple but effective. No condescending command to wait, or please wait or pretty please wait, or locking out of functionality, graying of buttons, or an inaccurate countdown as if the space shuttle was about to launch. On my UIs that control a projector there is a 'preheat' light that changes color depending on the status of the projector.
Sorry, but countdowns, 'Please wait...' dialogs, etc are a pet peeve of mine so I try to discourage them wherever they may lurk.
Paul
I think more programmers will adopt your thinking as they spend more time perfecting fool-proof logic. It is not an easy task to control devices that require warm up/cool down control. It is generally much easier to just lock out the user.
Many years ago (think Axcess days) I was required to develop video projector code for 1-way button panels where "please wait" is not an option. It did not matter how many times you pushed on, off, or selected a different input during the warm up/cool down cycle. The last button that was pressed was the function that always occurred. This is why the commands WAIT_UNTIL(nSomeConditionExists) 'Some Wait Name' and CANCEL_WAIT_UNTIL 'Some Wait Name' exist in the language. With some clever code you can outsmart the device and the user.
Just remember, as soon as you make something fool-proof, they come out with a better class of fools
I think a couple of the posters have it so the code does not allow anything to happen during the warm-up phase, but they use the count down as an indicator to the users to explain that the system is not broken, it is just warming up and there is nothing else that can be done. This would not be accurate in residential setting as you could adjust lighting, HVAC, Scan for a Movie to watch, .... I think this is more for commercial applications where the AMX is controlling a presentation system and that presentation system is controlled by a different person every hour. Letting these people that use the system infrequently know what is happening can prevent a bunch of needless calls to the IT department as well as avoiding that confused and frustrated appearance of ineptitude as the person continuously bangs on the touch panel complaining about the system never working only to have to look like an idiot when they are told there is a 30 second warm-up. (Not the best impression to start a meeting off with...IMHO).
I think may stance is this: Count down screens are just another tool in the toolbox. Just like you don't use a hammer to cut a hole in drywall for a speaker install (I hope ), you don't have to use the countdown screen on every job. Sure, the hammer could be made to work, but it is much more efficient and looks more professional to use a drywall saw.
Just my Sunday morning "Why am I not still sleeping?" thoughts,
Jeff
Paul
I think is very naive to think that programmers that use these tools haven't perfected their logic, sometimes regardless of what a_riot42 thinks it is appropriate and doing something to occupy the user is better that doing nothing. Even if it's timely page flips it's all the same thing you're keeping the user 's mind busy so he doesn't realize there's a delay in the action that results form a button push. Every PC and Mac uses a form of this with their hour glasses or bouncing desk top icons and it's what 100's of millions of people are used to and expect and quite frankly there will always be times when a please wait will be the most effective and appropriate thing to do. I use it when I'm transferring files in conjunction with progress bars just like AMX does when loading TP files and I do believe I once read in a TP design guide that AMX recommends stimulating the user any time TP button push doesn't immediately or reasonably soon there after result in some noticeable occurrence.
Flashing buttons, bargraph, timer, and lockout, or some combination there of, are all options to apply when appropriate. For the less experienced programmer, lockout might be the only way to prevent a user from getting into trouble. I personally prefer a combination of good logic with some sort of indicator of progress. The user should always have a good way to escape without waiting.
On a DMS panel you can't have the feedback, so the use must be instructed that he has to wait some time before anything will happen.
i know for sure that in these situations most problems occur. Not because of faulty programming logic, but because a modal user wants immediate response to his actions...
For example: most of the Barco projectors we use keep their shutter closed while starting up. You would think nothing happens, because no light is emitted from the projector. After a minute or so the shutter opens and *BAM* there is your picture. If we would have used no indication for the user about the state of the projector, i'm pretty sure we would have had much more problems using this projector...
I personly dislike "please wait" popup pages, and prefer an indicator graphic/text on the top or bottom of a page.
i would discourage the use of WAIT_UNTIL. I have had some major issues using this function (along with LONG_WHILE )
what would you want to do while waiting? Play a game of tetris?
In corporate situations, the projector is the main display medium. When it is powering up, a user can't do anything else but wait. Maybe adjust volume and turn off the lights, but those buttons can be added to the "please wait" popup page
P.S.
Multi-Quote FTW!
As for 1-way vs 2-way feedback, I treat them the same. If a user says "show the PC on the projector", my code does it's best to ensure that this happens. If the projector is cooling down, I keep trying to fire it back up then select the appropriate input. These situations are a bit trickier to associate a progress bar to, since I've found that cooldown times tend to vary with environment. As far as the user is concerned, they don't need to know that the projector is first cooling down, then warming back up. As such, my "warm up" notice (on 2-way systems) is still appropriate as far as the end user is concerned.
I guess this thread is pointing out a situation where a countdown may or may not be appropriate. I don't use them for projectors. I do like them for lights which mysteriously turn off after 5 minutes.
In the corporate sector, my experience continually shows that users are always under pressure to present, and they do not need to 'press and hope'; they need to 'press and know'. Users are inevitably surrounded by their peers and they do not need to be intimidated by an AV system in front of these people by not knowing what it is doing or if indeed it's even doing it.
I always display status to the users via a slim status bar 'creatively' placed on the panel. The status bar is subtle, yet obvious and intuitive. If there is a message - like the projector is cooling - it lights up in a contrasting color from its relaxed invisible state with a message and disappears accordingly.
Knowledge is power to an end user.
Absolutely, surely to deliver the best control system we have to assess & pre-empt the thinking of the user and give them feedback to guide them to achieving the end result they require.
Status Bars, Please wait's, lockouts etc are all tools that are available to us - I would never presume to categorically rule out using any available tool... In the same way as the thread on testing code & UI's - non programmer users will always approach things differently to how we think and use our own systems... just because we know that the projector is cooling / warming, the VC is dialling out, the room temp has not stablised etc etc doesn't mean that the average user know's this or thinks this while hitting buttons.
My 2p
Less experience? good logic? this forum sure went from a general question from a programmer to slamming a practice that has nothing to do with one's programming skills!!!!!!! but rather the end users level of understanding of how long a certain process takes. All of my systems are designed and programmed in such a way that anybody can walk in and with no training required use it.
Easy Thomas...there are many rookies that read, but never post. Based on some of the systems that I have personally reviewed in the field, some programmers either just don't have the time, experience, or skill to provide the best AMX user experience. My previous posts are intended to get these newbies to better understand what more experienced programmers already do.
All of you that take pride in your solutions deserve much credit for setting the bar high. Keep up the good work and thought provoking posts.