Hi Jarrod,
Thanks for your responsiveness. I have been known to do the uncommon thing from time to time. It keeps things interesting.
I spent some more time looking at this as I was going to implement it according to your suggestion.
What I found is that it works either way, but with one caveat in that iViewer will only accept the connection when (in server mode) or initiate the connection (when in client mode) if the WiFi connection is established. As long as I don't put the Tab to sleep, it also still works if I turn off the WiFi adapter in the Tab once the connection is established.
With iViewer was in client mode, I reverted the service code to use the localhost address so that it was waiting on
127.0.0.1:55000. I set the TCP client up in iViewer to connect to
0.0.0.0:55000 and once the WiFi network was available, I got the connection when running the service in the debugger.
Since my WAP is not guaranteed to be on at startup, I will not be able to do it this way. At this point, my work-around will be to use an app to start things up by sending an IR code to trigger an IR rule and then have that app launch iViewer.
I also have a provision in the service to monitor the ambient light sensor. We briefly communicated about this around a year or so ago, and I have found that in my HT room, there seems to be enough resolution to the sensor readings to distinguish between lights that are on in the room and ambient daylight, and keep the lights from toggling on and off randomly.
From my viewpoint, at least, it seems to be a valid use case for an iViewer
user to want to be able to at least transmit IR from host devices that
are capable of doing so.
In addition, I understand the utility of the loopback connection.
Please pardon me for pointing this out, however, in my opinion, specifying an IP address in a system where it will never connect to the IP stack seems to be somewhat of a departure from standard networking. In the java class for Android that provides IP addresses, there are two functions: InetAddress.getLocalHost() and InetAddress.getLoopbackAddress(). The return from getLocalHost() will fall back to the loopback address if it cannot get the localhost address. Beyond that, most operating systems do have an IP stack available when specifying the address 127.0.0.1.
From my viewpoint it would be nice to have the ability to specify that 127.0.0.1 is to connect to localhost rather than the loopback address through, perhaps, an added type of System in System Manager or a switch in the dialog. To me, it seems that such an option would simplify setup of a loopback in that the IP address and other details could become redundant if loopback were its own system type or switch in the System Manager dialog. However, outside of whatever changes might be made to iViewer to support that, there would have to some sort of versioning on the guiDesigner files to not break everyone who currently employes a loopback system - at least from my viewpoint; my developer side sees that it might be easier said than done.
The other "nice to have" for me would be the ability to use the IR emitter on host devices that have one. On Android at least, it is pretty straightforward to use through ConsumerIrManager (if one is present), and with some minor processing in API 19 and beyond, CCF codes can be used.
Thanks again.