This was generated by one of a number of scripts that ran daily to track the development of the 6Bone test network for the new IPv6 Internet Protocol.
Each line represents an inter-site network link, and the colours represent the use of the different routing protocols used to establish and maintain connectivity.
The maps were published in a number of books and magazines, and also sales brochures for companies such as Sony. They were updated along with the associated site (http://www.cs-ipv6.lancs.ac.uk/) until the 6Bone made way for the wider deployment of IPv6 in June 2006.
Having had loads of fun over the years generating PostScript files from C programs and Unix Bash scripts, this was an experiment in understanding and generating PDF files directly from a C program without resorting to any of the Adobe tools. You'll need (the free) Adobe Reader to view the calendar.
The program runs as a web 'script' and offers a range of output formats and features. Users can select a wall planner or normal calendar, in either landscape of portrait, on most common paper sizes from US Letter to A0. There are also month or year per page options.
Options are set using buttons and menus on a web page.
Special dates and moon phases can be highlighted. The user also has a choice of themed pictures and a wide range of colour options. Multi-page calendars include thumbnails and proper named month / year links.
The calendar at the top of these pages is based on the same core C code.
See the Calendar page to have a go.
My first attempt at using Microsoft Embedded C++ and the Windows/ PocketPC APIs.
The system reads NEMA strings from a GPS module and converts the lat/long data into flat UK grid coordinates so conventional mapping data can be used.
Multiple sets of map data are used so more or less detailed maps can be displayed as users approach their destination or enter urban areas. Manual zooming is also supported via the PDA buttons.
Maps are held as tiles to reduce processing overheads. Redrawing is properly double buffered for smooth scrolling as the coordinates or orientation changes.
Fuzzy matched hot-spot data can be defined to allow points of interest to be defined. This has been used for locating hotels, bus and railway stations, speed cameras, etc. Each hotspot is sensitive to speed, direction of travel etc., and can initiate a defined action such as playing sound files, etc.
An extension of the above system added location transmission using GSM SMS text messages.
Text messages are sent periodically to a central site that can generate an overview map showing the location of all vehicles, their speed and direction of travel on a web page.
Transmission intervals vary according to vehicle speed to reduce costs.
The system was written in C# and ASP.NET back in 2001 and led to a number of companies developing similar systems.
The IPv6 group I established in early 1997 became interested in MobileIPv6 and developed a number of implementations. These included stacks for Linux, Cisco IOS, Microsoft Windows 2000, and Windows XP Professional.
MobileIPv6 allows devices to move between networks without breaking existing network connections. For example, you could move seamlessly from a corporate wired Ethernet network to a public Wireless LAN service while downloading a file.
The MobileIPv6 protocol also allows devices to be contacted even if they are not currently connected to their home network.
Our implementation for Microsoft Windows 2003 Server, and Windows CE .NET was shipped by Microsoft and for this we were awarded the first Microsoft Windows Embedded Academic Excellence Award by Bill Gates in 2002.
To try out the platform I created a C# implementation of the FAT filesystem and simple animated picture viewer application.
The project also involved building a board with an MMC/ SD card interface and Bluetooth module. See opposite.
More details are given on the project page.
See the teaching page for other courses I've taught over the years.