Background of PiTcl, introduction to the documentation

Home
Sitemap
 

This is the reference manual of PiTcl 0.5, as distributed at August 29, 1999. For instructions on how to compile and install it see the installation manual.

Before I finally decided to get a Palm Pilot I had already wandered through the web in search of software supporting it, knowing very well that I am an exotic with my Linux box at home, at least to companies like 3Com, with their fixation on Win*. pilot-link from Kenneth Albanowski was the only one I found.

At its center is a library for the communication with a pilot over a serial line, and talking the same protocol as the original software. Surrounding it are some applications for basic transfers (pilot-xfer) and some for the transfers to special applications.

This is fine for the basics, or if you work with the supported applications. To deal with a new application an additional converter is required, usually written in C.

Fortunately some bindings are provided for the most popular scripting languages, making it that task easier. I am most comfortable with Tcl and took therefore a look at that one. The README stated


This is an experimental piece of code to bind the pilot-link library to Tcl.


And from the main TODO:


Tcl binding:

  • Add Tcl 8 specific code to allow retrieval of raw records, and optionally use Tcl routines for packing and unpacking.
  • Add all dlp functions.
  • Clean up the channel code rats nest. Somehow. (Separate source file?)

I decided to work on that but had no time on my hands at that time (before the tcl conference). Afterward I talked to Kenneth to make sure that no one else was working on it and started.

After having a closer look at the code I came to the conclusion that the chosen approach, a new channel type together with functions special to it was not the right way to go and instead of trying to clean up the code and fixing bugs a complete rewrite from scratch was started.

The result is this extension, PiTcl. The basic concept is that of connection and database objects, the details of the communication to the pilot are hidden inside. This prevents its disruption from the outside, as was possible with the earlier approach (via read / write at inappropriate times). The communication is synchronous, but that is no loss, earlier it was impossible too, due to missing support of select from within pilot-link.

With it the glueing capabilities of tcl are extended once more, enabling us to write converters for new applications more easily than is possible in C and the required dealings with the low-level API of pilot-link itself.


Please read the installation manual to gain insight into the complete requirements of this extension.


© Andreas Kupries
Last update at Sun Aug 29 00:44:05 MEST 1999