Hi,
I am maintaining a site that uses series 2 Crestron processors and iViewer 4.0.242 build 242 on a variety of iPad 2 and 3 devices. We are using some serial joins to present messages to the iPad users about sources in use by another zone (e.g. "Apple TV in use by master bedroom"). There is also some code that will prevent the zone from being used by an ipad/zone if already in use elsewhere.
The logic that updates the messages is working 100% fine. We are using a serial i/o symbol to trigger the message change and then a buffer to propagate out to each iPad. e,g,
Serial i/o (trigger signal -> Message -> output serial signal)
cinema_tv_source_selected13 -> "Apple TV In use by cinema" -> appletv_current_zone_message$
kitchen_tv_source_selected13 -> "Apple TV In use by kitchen" -> appletv_current_zone_message$
Ipad message serial buffer (input serial string-> output serial string)
appletv_current_zone_message$ -> ipad1_serial_join27
appletv_current_zone_message$ -> ipad2_serial_join27
appletv_current_zone_message$ -> ipad3_serial_join27
appletv_current_zone_message$ -> ipad4_serial_join27
If the source zone changes we can see the serial strings changing with no problem.
Now, I know that the serial i/o symbol only transmits the serial data on a rising edge of the input digital signal. I also know that a serial buffer on transmits the serial data on a rising edge on the enable line or if the incoming serial values change. All the debugging we have done shows this is working fine. Serial values are propagating across buffers and processors (via intersystem comms objects) with no problems.
What we are seeing, however, is ipads not showing the serial output until an activity on that ipad has caused the serial data to be changed. So, for example:
1. user picks up iPad 1 and chooses appletv in cinema. Serial data on all ipadX_serial_join27 signals changes to "AppleTV in use by cinema". The logic that locks out other zones does it stuff.
2. user picks up iPad 2 and chooses appletv in kitchen. The user gets a warning box (i.e. zone lockout logic working) but the message is blank, even though the join has the correct data.
3. user selects sky in kitchen on iPad2. Source changes
4. user selects appletv in kitchen. The user gets a warning box (i.e. zone lockout logic working) and the message is now correct.
5. everything works fine from then on until a processor reboot or similar
It appears that the serial signal is not being picked up in the same way that digital and analogue signals are. We are using the most up to date released Crestron V3 JS file and looking at that I can see no reason why the serial data would not be picked up.
What is important to bear in mind is that this issue only seems to occur if the second ipad was not in use when the serial data is originally changed. It's as if the serial signal state is not picked up by the second ipad when it wakes up.
The other thing to point out is that all signals are in "make string permanent" symbols as well.
I am a bit flummoxed now. Has anyone experienced anything similar? Is there any more debugging I could do?
TIA - jez