New branch to work on turning wxPi into a daemon that runs continously and can support faster polling.
Converted wxPi to act more like a daemon.  The script now runs in a loop in order to avoid having to use cron.  Also added a check for stale archive data.  Now wxPi.py will run through several loops to make sure that it has the latest data before saving to the archive/uploading to WUnderground.
Added logging to syslog and an init script to start wxPi at boot.
Various bug fixes to get the software running again.
Added an options parser so that the PID file can get updated.  Updated the logging format.
Fixed the logging and the 'clearToSend' lockout mechanism.
Will this fix the slow creep in file descriptors?
Cleaned up the new line characters in a few of the C++ files.  Added a call to RCSwitch::disableReceive() at the end of read433.
Major overhaul to the daemon branch to try and make it more robust.  This has a high probablity of not working right the first time.
It's better but I wouldn't call it 'working'.  There seems to be some bad interaction going on with the threads.
Lets try moving the uploader back into the wxThreads.py module.
This one mostly works, i.e., the threads seems to interact in a reasonable fashion.  However, there still seems to be a few issues with the signal handler.
Even more cleanup to get the daemon branch working.  This cleans up the logging and eliminates the 'verbose' keyword in a variety of functions.
Threading seems to work now but the performance isn't too great.  I think Archiver and Uploader should be moved into the main thread to get around the sqlite3-multithread-issue.
Moved the archiving and uploading threads out of wxThreads.py and into the main loop.  Maybe this will help with the performance.
Added lockouts for when the scrpt has just started and the state hasn't been fully populated yet.
Rearranged the thread stopping code and added a debuggin statement to try and track down the strange rain values.
Added another catch to the rain calculation code to deal with crazy rain values that result from missing data in the database.
Rearranged the state locks to try and improve the performance.  Removed the locks from led.py and database.py.
Removed a dangling call to the old lock in led.py.