Join Date: Nov 2004
Location: Steps from the beach in Margaritaville (a state of mind between Inebriation and Sahuarita), AZ
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Quoted: 6 Post(s)
MX-780 Programming Best Practices (Part 2)
Before I get started on macros, allow me a brief discussion on macro reliability... For the most reliable macros, I want to use discrete codes wherever they're available. For anyone who hasn't dealt much with discrete codes and discrete workarounds, if I have discrete on and off codes, then I can send the ON command as many times as I want and the component will never turn off. Likewise, multiple OFF commands will never turn it on. That's a very significant difference compared to the Power button on the remote that simply toggles the power every time you press it! Whenever I have discrete codes available (whether for power, input or whatever), I generally send them 3 times with a .2 second delay in between. That way I can have a high degree of confidence that the command was received and acted upon – and that the macro will be highly reliable and repeatable.
But for devices that don't have discrete power codes, I need to find a suitable workaround. For example: most Blu-ray players don't have discrete power codes. But you can usually turn them ON by hitting Eject or Home/Menu/Smart Hub, etc. If you can do that, then you have the equivalent of a discrete ON code. Next you have to determine what needs to happen next and what delay (if any) needs to be inserted into the macro before the macro can resume.
The activity matters, here - if it's “Watch a DVD”, I can insert a jump to the (hidden) “Insert Disc Then Press Here” page immediately after ejecting the tray. But if it's “Watch Netflix”, I'll usually get an error if I don't retract the tray before sending the Netflix command – so I need to know how long I have to wait (after opening the tray while the BDP was off) before I can consistently, reliably send the “close tray” command. I usually do about 10 timings (with a stopwatch) and pick the longest one.
Let's say we're working with a newer Sony BDP. I can hit “HOME” to turn it on, and in 5 seconds or less I'm ready to navigate the crossbar menu or send a discrete Netflix command. So effectively, Home + 5 second delay = discrete ON. (Of course, I also set the variable “BDP_ON” to True.) Discrete OFF, then, is (call the) Discrete ON macro + Power button (and set “BDP_ON” to False).
These workarounds beat the heck out of nothing, but when you're dealing with an old Samsung BDP that needs 30 seconds (before the macro can move on) after ejecting the tray, it can really slow things down for the user. So, any time I use “discrete workarounds”, I always have 4 power macros for that device- two (that are discrete workarounds) labeled (e.g.) “BDP D-On” and “BDP D-Off”. Yes, even though they're not truly discrete power codes, I still use “D-” to designate them as such because theoretically they should behave like discrete power codes (albeit with an inherent delay). The two other macros I label “BDP V-On” and “BDP V-Off”. For these macros, I simply trust/hope that the status of the “BDP_ON” variable is correct and I either send a power command or do nothing (updating the variable status as necessary) – no delays added. For activity macros, I'll usually run the “V-” macros. But if I'm shutting the system off, I'll use “BDP D-Off” because I want to be as sure as possible in that scenario. (The System OFF macro can and should be a reliable means for resetting the whole system in case an Activity macro fails more than once.)
Finally, we have the worst case scenario: no discrete power commands and no available workarounds. One way of dealing with this (as with the new Cox Contour boxes) is to just leave it on all the time. Otherwise, you just have to get creative. A good example is sound bars. Many of my customers prefer these to the complexity of a full surround sound system, but most sound bars only offer power toggle. So ALL I can do in my macros is send a power toggle command (maybe tweak the repeat value), update the variable status and hope I got it right. But just in case I didn't, I can set the green button (upper left corner) – which I never use otherwise – in every single device/page/panel to send a sound bar power toggle. Then I explain the whole thing to the customer including why this is necessary. (So far this has worked very well.)
One last word about discrete workarounds that incorporate delays... You can (and should) insert a “Please Wait” screen at the beginning of such macros. (The Please Wait screen is in the jump dialog.) It's important, though, that at the end of the macro, you insert a jump to some device/page. If you don't, the Please Wait screen never goes away and you'll have to reset the remote by pulling one of the batteries out.