2) If I am using double taps, I normally somehow highlight on a single tap (a little pointer or a frame around the item). I keep track of which item in the list or on the screen is "Highlighted". A single tap is then touching an item that is not currently highlighted, a double tap is touching one that is.
4) probably timing out the connection. All of my TCPIP sends are done asynchronously and timed
5) You can't tell when it is asleep. The processor is stopped so no code is running. You can't tell when it is going to sleep, no indications. You can tell when it has awoken from sleep by using a real time clock and running a loop that process in a small amount of time. The clock is checked in the loop and if the normal elapsed time has occurred between loop cycles it has not awoken from sleep and is currently awake. If the time between loops was about 57 seconds it just woke up internally and will go back to sleep in about 5 seconds if you do nothing