|Linux-IrDA||Java-IrDA||IrNET||Linux & Wireless LANs||Papers||Main page|
e-Squirt is a simple protocol allowing to sense and control other devices and to build many complex interactions between devices and their environment, as can be shown in the various CoolTown demos. The dumb description of the protocol is that it allows passing URLs between devices over the IrDA medium.
RUI (Remote UI) is an extension of e-Squirt. It allows two devices to exchange HTML pages over IrDA. This is used to control an appliance, like an universal remote control. You can use it standalone (generic control), or with sending an URL (the device returns some job options and status).
I also did initially a few sample implementations of e-squirt for Linux in C (e-Squirt version 1). Those implementations were not much used in practice, but are useful because they are easy to read, and also useful for debugging. In fact, the Ultra implementations served as the reference implementation to test other implementations against (mostly the Hardware Beacons).
After this initial implementation, I rewrote the whole e-Squirt for Linux as a C library with a simple and clean API (e-Squirt version 2). This is still a bit rough, but much easier to use and integrate in complex programs than the initial sample code. The library is also more flexible, has more options, and add support for extra protocols and encodings (such as Obex), and add support for RUI.
The new Linux library also contains all the test vectors and test procedures to check the interoperability and compliance of the various implementations. Those test programs also illustrate the use of the library and can be used for simple demos.
Note that there are 2 distinct transport for e-Squirt, one is a regular IrDA socket, the other is the Ultra protocol (connectionless broadcast). On each transport, you may use Obex or not. Basically, all the possible ways to program client server over IrDA are included in the code :-)
The version 2 of my e-Squirt stuff has been included in the CoolBase platform, along with the version for other platforms (Win32, WinCE, Palm & EPOC). You will find the latest source in the CVS.
While most of the other e-Squirt implementation have died, I recently did a massive upgrade of it for a different project (e-Squirt version 3). I added specification of e-Squirt over HTTP, some OBEX-HTTP proxies and BlueTooth transport. This also includes the usual bugfixes and improvements.
e-Squirt over HTTP enable the support of TCP/IP transport (such as over 802.11). It is implemented via Connection Diversity, which is not currently released.
The OBEX-HTTP proxies are fairly generic, so could be reuse in a context totally different than e-Squirt (which we are currently doing), but will work only with OBEX-HTML applications, so it won't allow you to magically use a web browser to access any OBEX device.
The OBEX over BlueTooth transport is transparent to the application, and include e-Squirt and RUI. This new transport is implemented via OBEX over RfCOMM and use SDP, so require a fairly recent version of BlueZ.
The usage of the e-Squirt test programs is documented within the package.
Wireless LANs -
Created 1 august 00
Updated 6 June 03
Project hosted and sponsored by :