Home AMX User Forum NetLinx Studio

Countdown?

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 >>>
>>>>>>
>>>>>>>>>>>>

Comments

  • dthorsondthorson Posts: 103
    I like to use a time line in this instance
    (* SHUTDOWN TIMER *)
    IF(TIMELINE_ACTIVE(iSHUTDOWN_TIMELINE_TRACKER[_SHUTDOWN_TIMLINE]))		
    {
    	WAIT 10
    	{
    	  iSHUTDOWN_TIMER[_SHUTDOWN_TIMLINE] = iSHUTDOWN_TIMER[_SHUTDOWN_TIMLINE]+1
    	  SEND_LEVEL vdvTP1,_TP_LVL_SHUTDOWN,iSHUTDOWN_TIMER[_SHUTDOWN_TIMLINE]
    
              //Add send to TP Text command "'Please Wait',atoi(iSHUTDOWN_TIMER[_SHUTDOWN_TIMLINE]+1)"
    
    	}
    	IF(iSHUTDOWN_TIMER[_SHUTDOWN_TIMLINE] = iSHUTDOWN_SEC)	
    	{
    	  CALL 'SYSTEM OFF'(_ROOM_1)
    	  SEND_COMMAND vdvTP1,"'@PPF-',cTP_PAGES[_TP_POPUP_SHUTDOWN]"
    	}
    }
    

    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.
  • avi_daveavi_dave Posts: 62
    Thanx that should be cleaner....
  • a_riot42a_riot42 Posts: 1,624
    Why would you want to do this? This sounds like another "Please Wait..." situation, where you are making the user wait through some countdown process. Whenever I see that it raises a red flag in my head that the UI wasn't designed correctly. As a user it makes me cringe to see "Please Wait..." as I am generally never given a choice in the matter, and may want to cancel that or do something else while I am "waiting".
    Paul
  • DHawthorneDHawthorne Posts: 4,584
    a_riot42 wrote: »
    Why would you want to do this? This sounds like another "Please Wait..." situation, where you are making the user wait through some countdown process. Whenever I see that it raises a red flag in my head that the UI wasn't designed correctly. As a user it makes me cringe to see "Please Wait..." as I am generally never given a choice in the matter, and may want to cancel that or do something else while I am "waiting".
    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.
  • annuelloannuello Posts: 294
    We use a similar timeline-based countdown on our theatre systems. We use a PIR to turn off the lights once the system is shutdown by the user. However, rather than turning off the lights straight away (& plunging the user into darkness), we give a 5 minute countdown on the touch panel. If the PIR detects motion during this countdown, the counter resets to 5 minutes but continues to count down. This way the user can see that the lights will turn off automatically.

    Roger McLean
    Swinburne University
  • mpullinmpullin Posts: 949
    Makes sense to me. This is exactly the type of scenario you would want a timeline for, the operations are all built into NetLinx, you can create, kill, restart, even automatically do something based on which sequence of the timeline you are in. Very little work to do on the programmer's part. Check out the section of the AMX programmer's manual starting on the subject of timelines, or just read the help files built into NS.
  • annuelloannuello Posts: 294
    Just to clarify, my timeline is a repeating one which runs for one second. In the timeline_event I decrement counters (minutes & seconds) appropriately, then use the counter values in my touch panel string. (I pad out second values below 10 with a leading '0'.) Obviously I also test the counters to see if they have reached 0:00, and if so, pause the timeline & turn the lights off.

    It may not be the most elegant way to use a timeline, but it works for me.

    Roger McLean
    Swinburne University
  • Thomas HayesThomas Hayes Posts: 1,164
    a_riot42 wrote: »
    Why would you want to do this? This sounds like another "Please Wait..." situation, where you are making the user wait through some countdown process. Whenever I see that it raises a red flag in my head that the UI wasn't designed correctly. As a user it makes me cringe to see "Please Wait..." as I am generally never given a choice in the matter, and may want to cancel that or do something else while I am "waiting".
    Paul


    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.
  • avi_daveavi_dave Posts: 62
    Well said.......
  • a_riot42a_riot42 Posts: 1,624
    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 could not agreed more.
    a_riot42 wrote: »
    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. ;)
  • Spire_JeffSpire_Jeff Posts: 1,917
    B_Clements wrote: »
    I think more programmers will adopt your thinking as they spend more time perfecting fool-proof logic.

    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
  • Thomas HayesThomas Hayes Posts: 1,164
    Well put Jeff, my systems are used by several hundred people every hour and we do not have the staff to answer that many calls if I didn't have these warm/cool screens. Resi systems are different because once a few people have learned how the system operates than they learn with how long events take to happen. I even had to use a pop up window to prevent people from selecting the different sources while the projector is switching and locking onto the selected source.(switch time varied from 3-7 sec's depending on age of proj. ) I had a few people that expected the image to appear instantly once they selected the source and when it did not they would press the source button again and again and again till they managed to lock up the projector.
  • a_riot42a_riot42 Posts: 1,624
    Brian makes a good point. What if your user doesn't have a touch screen but is using a keypad, where there is no option to display a countdown page or a please wait dialog? Often in a corporate setting all they get is a DMS on the wall and no touch panel to drop, break, lock up, lose wireless, lose battery charge etc. What do the "Please Wait..." camp do in those situations?
    Paul
  • Thomas HayesThomas Hayes Posts: 1,164
    The Extron push button controller will 'flash' the power button till the projector is ready and hold the source selection info is queue till it is ready. It is highly unlikely that you would have a large number of command functions on a keypad anyways. As for the DMS keypad, I tried them and refuse to use them in any of my installations for a number of reason.
  • viningvining Posts: 4,368
    B-Clements wrote:
    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.
    I don't think any one here mentioned locking out the users with a modal pop up all though that may be what the originall poster did but at this point we don't know. IMHO any time you don't get instant visual feed back as a direct result form a button push it is your job as a programmer or designer to stimulate the user either by using a "Please Wait", Working", file transfer progress bars, a "Windows hour glass sybmol, a bouncing ball, something that re-assures the users that first of all that button push was received and that the command is executing.

    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.
  • Programmers toolbox
    Spire_Jeff wrote: »
    I think may stance is this: Count down screens are just another tool in the toolbox. Jeff

    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.
  • yuriyuri Posts: 861
    a_riot42 wrote: »
    Brian makes a good point. What if your user doesn't have a touch screen but is using a keypad, where there is no option to display a countdown page or a please wait dialog? Often in a corporate setting all they get is a DMS on the wall and no touch panel to drop, break, lock up, lose wireless, lose battery charge etc. What do the "Please Wait..." camp do in those situations?
    Paul

    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.
    B_Clements wrote: »
    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. ;)

    i would discourage the use of WAIT_UNTIL. I have had some major issues using this function (along with LONG_WHILE ;) )
    a_riot42 wrote: »
    Why would you want to do this? This sounds like another "Please Wait..." situation, where you are making the user wait through some countdown process. Whenever I see that it raises a red flag in my head that the UI wasn't designed correctly. As a user it makes me cringe to see "Please Wait..." as I am generally never given a choice in the matter, and may want to cancel that or do something else while I am "waiting".
    Paul

    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!
  • annuelloannuello Posts: 294
    On my projector warm-ups I display a full screen notice which says "Please wait while the projector warms up". I only display it for around 7 seconds, then it automatically disappears. If the user presses it while it is visible it will disappear immediately, allowing them to get on with other things. At least they have seen that the projector is warming up. On a side note, when shutting down the systems I blank the projector for 1 minute. If the projector is required again in this time the 1-minute OFF is cancelled.

    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.
  • DarksideDarkside Posts: 345
    vining wrote: »
    IMHO any time you don't get instant visual feed back as a direct result form a button push it is your job as a programmer or designer to stimulate the user either by using a "Please Wait", Working", file transfer progress bars, a "Windows hour glass sybmol, a bouncing ball, something that re-assures the users that first of all that button push was received and that the command is executing.

    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.
    I concur.

    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.
  • Jimweir192Jimweir192 Posts: 502

    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
  • Thomas HayesThomas Hayes Posts: 1,164
    B_Clements wrote: »
    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.

    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.
  • 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.
Sign In or Register to comment.