On January 12, 2005 6:08 am, Su Shaw Bank wrote:
>          May anybody just explain to me the basic flow to build a
> software which work like the win-hand? The programme should work like
> can real time control the desktop of the computer. I am using the
> Tungsten C with wi-fi.

That is no simple task you've set yourself.  Investigate the VNC protocol and 
various implementations for every operating system.  It's well known and 
widely used.  TightVNC seems to be on the leading edge (with update push vs. 
poll and improved compression) while OSXvnc, WinVNC, and a variety of others 
are also available.  See also PalmVNC [http://palmvnc2.free.fr/].  Clients 
and servers are, literally, available for every platform.

Question one: Is there really a need for yet another remote control 
application?  Or can you implement what you want as additional features on 
PalmVNC?  (I've re-written a large portion of it for my own use.)

If you wish to continue your project, palm-side there are several things which 
are needed for a remote-control program:

1. A TCP/IP protocol to transfer bitmap graphics to the Palm, and generic 
   events to the PC.
2. A way to decompress the incoming image stream.  ZLib is nice.
3. Trapping keyboard events and tap events for encapsulation.
4. Connection management / bookmarking.
5. Possible protocol handler for application sub-launch.
6. Multiple resolution support, with scaling.  This includes 16-bit color.
   An interesting option to cut bandwidth use is, on 320x320+ devices, 
   implementing an interlacing system.  I.e. 160x160 double-scaled or 
   interlaced would remove 3/4 the bandwidth.
7. Ideal would be multiple-protocol support with PC-side extensions.  Best 
would be a combination of the following:
    - VNC (it's completely open)
    - RDP/Windows Remote Desktop/MS Terminal Server (there are open 
      implementations, but currently none are very good)
    - A custom, highly optimized solution for wireless (Bluetooth) access.

By "generic events", I include capability detection palm-side, including such 
properties as display resolution, keyboard capabilities (on-screen, 
handwriting, or external), 
PC-side, several things would be really, really nice.

1. Resolution switching (8-bit, for example) and desktop background removal.
2. Push vs. polling of the screen for updates.  See: TightVNC.
3. Limited area polling. (i.e. the 320x320 or whatever viewing area.  Updates 
   outside this area do not re-send the viewport to the handheld.  This is one 
   major problem with many of the existing solutions.)
4. Secure connection management via daemon, server process, or system tray 
   application.  Secure = hopefully more than a simple plaintext password.
   Dual-direction popup authentication would be nice, with live generated 
   passwords for each.  Possibly with e-mail (or other) invitations.  See the 
   palm-side protocol handler (to handle links or e-mail attachments) idea.
5. Windows-only support is no longer acceptable.  Linux should also be a 
   priority (as many folks who use remote access applications are more than 
   simple users) and MacOS would be almost trivial.  See OSXvnc.
6. Open source would make people happy, commercial would instill the trust of 
   corporate users, and hopefully pay back the cost of implementation and 
   advertising.  As there are already many of these applications available, 
   both free and commercial, there is very little space remaining for a 
   non-compatible solution.
7. Server-side scaling.  This would give opportunities for optimization of 
   bandwidth, as well as pretty anti-aliasing.  ^___^;

Any others' ideas would be greatly appreciated. ;-)

Strangely enough, I, a long time ago, created a compression scheme for 
animated video.  Wrote a complete dirty rectangle / threshold / keyframe 
frame extractor using PNGs for the destination, and a player.  PNGs are nice.

Enjoy!

-- 
Matthew Bevan, Margin Software
 - Re-inventing the wheel, every time.

Finagle's Eighth Law:
        If an experiment works, something has gone wrong.

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please 
see http://www.palmos.com/dev/support/forums/

Reply via email to