HomePilot
The HomePilot is a "set top box", developed and manufactured by
PCTVnet ASA.
Like the competing WebTV, the HomePilot is a box that is
designed to sit on top of your TV set.
The idea is that you'll want to be surfing the Internet
from wherever you prefer to sit down to watch TV.
The main difference between the HomePilot and the competition,
is that it offers several options in addition to
email and web surfing. Among these are :
- SmartHome: control lights, heating and appliances in your home
- Alarm system: wireless sensors and switches communicate with the HomePilot, which sounds a siren or sends a text message to your mobile phone whenever something's wrong at home.
- Smartcard reader: might be used for various tasks, e.g. online shopping, software licensing, user identification, ...
The HomePilot runs the QNX operating system, with the addition of the
Photon GUI.
QNX is a very reliable realtime operating system. It is
quite scalable, and thus it is a good choice for "high end" embedded
platforms.
Also, QNX has a lot in common with UNIX, making programming
in C and C++ pretty much a straightforward task.
Working for PCTVnet, I analyzed, designed and implemented the SmartHome and
alarm system software.
Also, I was the architect, evangelist and main reason for
the software development team to migrate all application source code from
C to C++.
And I created several small pieces of software, e.g. the
Picture-in-Picture software that enables the user to browse the Internet
and watch TV at the same time.
SmartHome
The SmartHome system allows the user to specify the brightness level
for lamps, the temperature for heaters, and the on/off state for various
household appliances.
The user interface is rather simplistic, aiming to be easy
to use for people with no experience using computers.
Alarm system
The alarm system is, from the software developer's view, just an
extension of the SmartHome system.
The user interface is easy to use, and rarely needs to be
accessed more than once by the user.
Smartcard activation
A smartcard is used to activate the software, making it possible to
license selected parts of the system to specific customers.
From C to C++
The SmartHome system was separated into two parts from the
beginning : a SmartHome specific part and a reusable class library.
The class library part was extended into a complete Photon wrapper
library, and also extended with various stuff that Photon doesn't have.
Basically, this library does for QNX/Photon what MFC does
for Windows (Widget wrappers, custom widgets, dialogs, messageboxes,
application class, message routing, strings, dynamic
arrays/lists/trees/maps, files, memfiles, archives, exception handling
and so on).
All HomePilot applications were easily migrated to use this brilliant
error-reducing time saver. The sources became a lot more readable, less
prone to error, and a lot easier to maintain and develop further. (Yeah!
OOx
IS the new silver bullet.)
Target technologies
Software made
- SmartHome software - drivers, scheduler, GUI
- "MFC" C++ library for QNX/Photon. Probably the most valuable library ever made for QNX/Photon.
- Echelon network driver for the IBM PC parallel port. Probably the only one of its kind ever made outside of Echelon Corp.
- Echelon network driver for the HomePilot PCMCIA SmartHome hardware. Definitely the first of its kind. Ever.
- Echelon LNS API ported to QNX
- X10 support for the SmartHome software
- Picture-in-Picture API and GUI.
- A few other QNX and Windows applications.
- A few HTML pages
Links