BinaryClock v2.1 - The Monolithic Binary Clock *************************************************************************************** About --------------------------------------------------------------------------------------> The software used to control my binary clock, written in C++; currently the clock utilizes the Raspberry Pi Model B Rev 2.0 as hardware. Features ---------------------------------------------------------------------------------------> - Service architecture, like a microkernel with daemons, with each service executing under its own thread. - Multi-threaded web-service (partial HTTP/1.1 support). - - Custom template syntax for function callbacks. - Disk-caching for reducing secondary I/O overhead. - Complete list of services: - Alarm Clock: - Allows multiple times to be set. - Configuration: - Disk thrashing protection. - IP to Country Lookup: - Daily updates of IP block allocations to countries, which updates the database with the country's of IP's. - Relay Board: - Allows any sized relay board to be controlled with the ability to set multiple conditions for switching sockets/individual relay points on/off. - Sensors - Routely polls TMP36 temperature sensor and a photo-resistor. Developers ---------------------------------------------------------------------------------------> You should be able to fork a copy of this repository, compile and run it straight away on any Unix system (tested on Debian Squeeze and Arch May 2013 release). For hardware interaction on the Raspberry Pi, you should modify the definition "HARDWARE_VIRTUAL_MODE" to false (located in main.cpp). YOU SHOULD NOT modify this flag on a non-Raspberry-Pi system because it modifies the kernel memory and may crash the target system! Any service can be easily disabled by commenting out its addition to the service controller, located in main.cpp. History ---------------------------------------------------------------------------------------> This project originally started in mid-April 2012 with Binary Clock v1.0, called "EvilDuino". The software was written in C# and used the Netduino Plus (v1.0) as hardware. Many thanks is owed to the netduino community for helping with the shift registers malfunctioning. Around the end of December 2012, Binary Clock v2.1 was created, called "The Monolithic Binary Clock" due to its much larger physical appearance as a tower (for fake electrical sockets). However the repository for v2.0 was pulled in early June 2013 in preparations for v2.1 as a clean start with many design improvements, primarily to the service architecture. Third-Party Libraries ---------------------------------------------------------------------------------------> libpqxx is required due to the guestbook feature of the web-service using PostgreSQL (Postgres) for storage. Arch: pacman -S libpqxx License ---------------------------------------------------------------------------------------> All contents of this repository are subject to the following license: Creative Commons Attribution-ShareAlike 3.0 Unported http://creativecommons.org/licenses/by-sa/3.0/ Live Version ---------------------------------------------------------------------------------------> A live version of this clock can (sometimes) be found at: http://www.ubermeat.co.uk:82/ Contact ---------------------------------------------------------------------------------------> Website: ubermeat.co.uk E-mail: limpygnome@gmail.com