CaryCoders / Mbed 2 deprecated SX1276_GPS

Dependencies:   SX1276Lib AdaFruit_RGBLCD MCP23017 mbed

Fork of AdaFruit_RGBLCD by Justin Howard

Files at this revision

API Documentation at this revision

Comitter:
ftagius
Date:
Tue Jul 14 14:58:23 2015 +0000
Parent:
30:6b0785d23528
Child:
32:a2472bbe7c92
Commit message:
refactored sx1276 demo code

Changed in this revision

AdafruitGPS.lib Show annotated file Show diff for this revision Revisions of this file
GPS.lib Show diff for this revision Revisions of this file
KeyReaderAdaFruit/keyreaderadafruit.cpp Show diff for this revision Revisions of this file
KeyReaderAdaFruit/keyreaderadafruit.h Show diff for this revision Revisions of this file
KeyReaderNull/keyreadernull.cpp Show diff for this revision Revisions of this file
KeyReaderNull/keyreadernull.h Show diff for this revision Revisions of this file
LCDadafruit/lcd.cpp Show annotated file Show diff for this revision Revisions of this file
LCDadafruit/lcd.h Show annotated file Show diff for this revision Revisions of this file
LCDadafruit/lcdadafruit.cpp Show diff for this revision Revisions of this file
MenuManager/MenuManager.cpp Show diff for this revision Revisions of this file
MenuManager/MenuManager.h Show diff for this revision Revisions of this file
MenuManager/keys.cpp Show diff for this revision Revisions of this file
MenuManager/keys.h Show diff for this revision Revisions of this file
MenuManager/lcd.cpp Show diff for this revision Revisions of this file
MenuManager/lcd.h Show diff for this revision Revisions of this file
Modules/DateModule.cpp Show diff for this revision Revisions of this file
Modules/DateModule.h Show diff for this revision Revisions of this file
Modules/GPSModule.cpp Show diff for this revision Revisions of this file
Modules/GPSModule.h Show diff for this revision Revisions of this file
Modules/LatitudeModule.cpp Show diff for this revision Revisions of this file
Modules/LatitudeModule.h Show diff for this revision Revisions of this file
Modules/RadioModule.cpp Show diff for this revision Revisions of this file
Modules/RadioModule.h Show diff for this revision Revisions of this file
Modules/SyncModule.cpp Show diff for this revision Revisions of this file
Modules/SyncModule.h Show diff for this revision Revisions of this file
Modules/TempModule.cpp Show diff for this revision Revisions of this file
Modules/TempModule.h Show diff for this revision Revisions of this file
Modules/TimeModule.cpp Show diff for this revision Revisions of this file
Modules/TimeModule.h Show diff for this revision Revisions of this file
Modules/TitleModule.cpp Show diff for this revision Revisions of this file
Modules/TitleModule.h Show diff for this revision Revisions of this file
Modules/module.cpp Show diff for this revision Revisions of this file
Modules/module.h Show diff for this revision Revisions of this file
RTclock.lib Show diff for this revision Revisions of this file
console_chat.cpp Show annotated file Show diff for this revision Revisions of this file
hello.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
main.h Show annotated file Show diff for this revision Revisions of this file
ping_pong.cpp Show annotated file Show diff for this revision Revisions of this file
utilities.cpp Show annotated file Show diff for this revision Revisions of this file
vt100.lib Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AdafruitGPS.lib	Tue Jul 14 14:58:23 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/CaryCoders/code/AdafruitGPS/#35fcaa2209af
--- a/GPS.lib	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://developer.mbed.org/teams/CaryCoders/code/GPS/#d2ea48d59900
--- a/KeyReaderAdaFruit/keyreaderadafruit.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#include "mbed.h"
-#include "keyreaderadafruit.h"
-
-KeyReaderAdafruit::KeyReaderAdafruit(I2C & in_cI2C)
-    : Keys(in_cI2C)
-    , m_cMCP(in_cI2C, 0x20 << 1)
-    , m_cLCD(m_cMCP)
-{
-    m_cLCD.begin(16,2);
-}
-
-uint8_t KeyReaderAdafruit::readButtons()
-{
-    int nKeys = m_cLCD.readButtons();
-    uint8_t nKeysOut = eButtonNone;
-    
-    if (nKeys & BUTTON_UP) nKeysOut |= eButtonUp;
-    if (nKeys & BUTTON_DOWN) nKeysOut |= eButtonDown;
-    if (nKeys & BUTTON_LEFT) nKeysOut |= eButtonLeft;
-    if (nKeys & BUTTON_RIGHT) nKeysOut |= eButtonRight;
-    if (nKeys & BUTTON_SELECT) nKeysOut |= eButtonSelect;
-    
-    return nKeysOut;
-}
--- a/KeyReaderAdaFruit/keyreaderadafruit.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#ifndef __KEYREADERADAFRUIT_H__
-#define __KEYREADERADAFRUIT_H__
-
-#include "keys.h"
-#include "Adafruit_RGBLCDShield.h"
-#include "MCP23017.h"
-
-class KeyReaderAdafruit
-    : public Keys
-{
-public:
-                        KeyReaderAdafruit(I2C & in_cI2C);
-                            
-    virtual uint8_t     readButtons();
-    
-protected:
-            MCP23017    m_cMCP;
-            Adafruit_RGBLCDShield m_cLCD;
-
-};
-
-#endif // __KEYREADERADAFRUIT_H__
--- a/KeyReaderNull/keyreadernull.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-#include "mbed.h"
-#include "keyreadernull.h"
-
-KeyReaderNull::KeyReaderNull(I2C & in_cI2C)
-    : Keys(in_cI2C)
-{
-}
-
-uint8_t KeyReaderNull::readButtons()
-{
-    return eButtonNone;
-}
--- a/KeyReaderNull/keyreadernull.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-#ifndef __KEYREADERNULL_H__
-#define __KEYREADERNULL_H__
-
-#include "keys.h"
-
-class KeyReaderNull
-    : public Keys
-{
-public:
-                        KeyReaderNull(I2C & in_cI2C);
-                            
-    virtual uint8_t     readButtons();
-};
-
-#endif // __KEYREADERNULL_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LCDadafruit/lcd.cpp	Tue Jul 14 14:58:23 2015 +0000
@@ -0,0 +1,8 @@
+#include "mbed.h"
+#include "lcd.h"
+
+LCD::LCD(I2C & in_cI2C)
+    : Serial(USBTX,USBRX)
+    , m_cI2C(in_cI2C)
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/LCDadafruit/lcd.h	Tue Jul 14 14:58:23 2015 +0000
@@ -0,0 +1,25 @@
+#ifndef __LCD_H__
+#define __LCD_H__
+
+class LCD
+    : public Serial // for printf
+{
+public:
+                        LCD(I2C & in_cI2C);
+    virtual int         _putc(int c) = 0;
+            
+    virtual void        clear() = 0;
+    virtual uint8_t     columns() = 0;
+    virtual void        createChar(uint8_t location, uint8_t charmap[]) = 0;
+    virtual void        home() = 0;
+    virtual uint8_t     rows() = 0;    
+    virtual void        setCursor(uint8_t in_nX, uint8_t in_nY) = 0;
+    virtual void        showBlink(bool in_bShow) = 0;
+    virtual void        showCursor(bool in_bShow) = 0;
+    virtual void        showDisplay(bool in_bShow) = 0;
+    
+protected:
+            I2C &       m_cI2C;
+};
+
+#endif // __LCD_H__
--- a/LCDadafruit/lcdadafruit.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-#include "mbed.h"
-#include "lcdadafruit.h"
-
-LCDadafruit::LCDadafruit(I2C & in_cI2C)
-    : LCD(in_cI2C)
-    , m_cMCP(in_cI2C, 0x20 << 1)
-    , m_cLCD(m_cMCP)
-{
-    m_cLCD.begin(16,2);
-}
-
-int LCDadafruit::_putc(int in_nValue)
-{
-    return m_cLCD._putc(in_nValue);
-}
-
-void LCDadafruit::clear()
-{
-    m_cLCD.clear();
-}
-
-uint8_t LCDadafruit::columns()
-{
-    return 16;
-}
-
-void LCDadafruit::createChar(uint8_t location, uint8_t charmap[])
-{
-    m_cLCD.createChar(location,charmap);
-}
-
-void LCDadafruit::home()
-{
-    m_cLCD.home();
-}
-
-uint8_t LCDadafruit::rows()
-{
-    return 2;
-}
-
-void LCDadafruit::setCursor(uint8_t in_nX, uint8_t in_nY)
-{ 
-    m_cLCD.setCursor(in_nX,in_nY);
-}
-
-void LCDadafruit::showBlink(bool in_bShow)
-{
-    
-    if (in_bShow) m_cLCD.blink(); else m_cLCD.noBlink();    
-}
-
-void LCDadafruit::showCursor(bool in_bShow)
-{
-    if (in_bShow) m_cLCD.cursor(); else m_cLCD.noCursor();
-}
-
-void LCDadafruit::showDisplay(bool in_bShow)
-{
-    if (in_bShow) m_cLCD.display(); else m_cLCD.noDisplay();
-}
--- a/MenuManager/MenuManager.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,252 +0,0 @@
-#include "mbed.h"
-#include "module.h"
-#include "extra_chars.h"
-
-#include "MenuManager.h"
-
-MenuManager::MenuManager
-(
-    Module **               in_pModules,
-    size_t                  in_nModules,
-    LCD &                   in_cLCD,
-    Keys &                  in_cKeys
-)
-    : m_pModules(in_pModules)
-    , m_nModules(in_nModules)
-    , m_cLCD(in_cLCD)
-    , m_cKeys(in_cKeys)
-    , m_eMode(Module::eModeLast)
-    , m_nMenuPos(0)
-    , m_nIndex(0)
-    , m_nCursorX(0)
-    , m_nCursorY(0)
-{
-}
-
-void MenuManager::changeModule(bool in_bUp)
-{
-    size_t nModule = (m_nMenuPos + m_nCursorY) % m_nModules;
-    m_pModules[nModule]->change(m_nIndex,in_bUp);
-}
-
-void MenuManager::createChars()
-{
-    //uint8_t k_aUp[] = { 0x4,0xe,0x1f,0x15,0x4,0x4,0x4,0x4 };
-    //uint8_t k_aDown[] = { 0x4,0x4,0x4,0x4,0x15,0x1f,0xe,0x4 };
-    
-    uint8_t k_aUp[] = { 0x0,0x0,0x4,0xe,0x1f,0x0,0x0 };
-    uint8_t k_aDown[] = { 0x0,0x0,0x1f,0xe,0x4,0x0,0x0 };
-    uint8_t k_aRight[] = { 0x0,0x8,0xc,0xe,0xc,0x8,0x0 };
-    uint8_t k_aLeft[] = { 0x0,0x2,0x6,0xe,0x6,0x2,0x0 };
-    uint8_t k_aDegree[] = { 0xc,0x12,0x12,0xc,0x0,0x0,0x0,0x0 };
-
-    m_cLCD.createChar(eUp,k_aUp);
-    m_cLCD.createChar(eDown,k_aDown);
-    m_cLCD.createChar(eRight,k_aRight);
-    m_cLCD.createChar(eLeft,k_aLeft);    
-    m_cLCD.createChar(eDegree,k_aDegree);    
-}
-
-void MenuManager::initialise()
-{
-    createChars();
-
-    m_cLCD.setCursor(0,0);
-    m_cLCD._putc(eUp);
-
-    m_cLCD.setCursor(0,m_cLCD.rows() - 1);
-    m_cLCD._putc(eDown);
-    
-    m_nCursorX = 2;
-    m_nCursorY = 0;
-}
-
-void MenuManager::loop()
-{
-    Serial cPC(USBTX, USBRX);
-    setMode(Module::eModeMenu);
-    
-    m_nMenuPos = 0;    
-    m_nIndex = 0;    
-
-    initialise();
-    
-    showModules();
-       
-    while (true)
-    {
-        uint8_t nKeys = m_cKeys.readButtons();
-        if (Keys::eButtonNone != nKeys)
-        {
-       
-            processKeys(nKeys);
-        }
-        else
-        {
-          
-
-            switch (m_eMode)
-            {
-                case Module::eModeMenu:
-                    showModules(true);
-                    
-                    int nOffsetX = m_pModules[m_nMenuPos]->getCursorOffset(m_nIndex);
-                    m_cLCD.setCursor(m_nCursorY + nOffsetX,m_nCursorY);
-                    break;
-            }
-        }
-        
-        wait(0.2);
-    }
-}
-
-void MenuManager::processKeys(uint8_t in_nKeys)
-{
-    // Change mode based on select
-    if (in_nKeys & Keys::eButtonSelect)
-    {
-        Module::EModes eMode = (Module::EModes)((m_eMode + 1) % Module::eModeLast);        
-        setMode(eMode);
-        
-        // Start at top corner or first good item
-        if (Module::eModeSelect == m_eMode)
-        {
-            m_nIndex = 0;
-            m_nCursorY = 0;
-            
-            // Move to next valid module for editing
-            for (size_t i = 0; i < m_cLCD.rows(); i++)
-            {
-                size_t nPos = (m_nMenuPos + i) % m_nModules;
-                
-                if (-1 != m_pModules[nPos]->getCursorOffset(i))
-                {
-                    m_nCursorY = i;
-                    break;
-                }
-            }            
-        }
-    }
-
-    switch (m_eMode)
-    {                
-        case Module::eModeMenu:
-            setCursor(false,false);
-            showTracking(false);
-                                
-            if (in_nKeys & Keys::eButtonUp) m_nMenuPos--;
-            if (in_nKeys & Keys::eButtonDown) m_nMenuPos++;
-            
-            m_nMenuPos = m_nMenuPos % m_nModules;                    
-            break;
-            
-        case Module::eModeSelect:
-            setCursor(true,false);
-            showTracking(true);
-                                                    
-            if (m_nCursorY > 0 && (in_nKeys & Keys::eButtonUp)) m_nCursorY--;
-            if ((m_nCursorY < m_cLCD.rows() - 1) && (in_nKeys & Keys::eButtonDown)) m_nCursorY++;
-                                
-            if (in_nKeys & Keys::eButtonLeft) m_nIndex--;
-            if (in_nKeys & Keys::eButtonRight) m_nIndex++;
-            break;
-            
-        case Module::eModeChange:
-            setCursor(false,true);
-            showTracking(true);
-            
-            if (in_nKeys & (Keys::eButtonUp | Keys::eButtonDown))
-            {                    
-                bool bUp = (in_nKeys & Keys::eButtonUp) ? true : false;
-                changeModule(bUp);
-            }
-            
-            if (in_nKeys & Keys::eButtonLeft) m_nIndex--;
-            if (in_nKeys & Keys::eButtonRight) m_nIndex++;
-            break;
-    }
-
-    updateDisplay();
-}
-
-void MenuManager::setCursor(bool in_bCursor,bool in_bBlink)
-{
-    m_cLCD.showCursor(in_bCursor);
-    m_cLCD.showBlink(in_bBlink);
-}
-
-void MenuManager::setMode(Module::EModes in_eMode)
-{
-    m_eMode = in_eMode;
-    
-    for (size_t i = 0; i < m_nModules; i++)
-    {    
-        m_pModules[i]->onModeChange(m_eMode);
-    }
-}
-
-void MenuManager::showModules(bool in_bRefresh)
-{
-    for (size_t i = 0; i < m_cLCD.rows(); i++)
-    {
-        size_t nPos = (m_nMenuPos + i) % m_nModules;
-        m_cLCD.setCursor(2,i);
-    
-        if (m_pModules[nPos]->canRefresh() || !in_bRefresh) m_pModules[nPos]->show(in_bRefresh);
-    }
-}
-
-void MenuManager::showTracking(bool in_bShow)
-{
-    int nX = (m_cLCD.rows() >= 4) ? 0:1;
-    int nTop = nX ? 0:1;
-    int nBottom = m_cLCD.rows() - (nX ? 1:2);
-    
-    if (in_bShow)
-    {
-        m_cLCD.setCursor(nX,nTop);
-        m_cLCD._putc(eLeft);
-        
-        m_cLCD.setCursor(nX,nBottom);
-        m_cLCD._putc(eRight);
-    }
-    else
-    {
-        m_cLCD.setCursor(nX,nTop);
-        m_cLCD._putc(' ');
-        
-        m_cLCD.setCursor(nX,nBottom);
-        m_cLCD._putc(' ');                              
-    }
-}
-
-void MenuManager::updateDisplay()
-{
-    showModules();
-    
-    size_t nCurrent = (m_nMenuPos + m_nCursorY) % m_nModules;
-    
-    int nOffsetX = m_pModules[nCurrent]->getCursorOffset(m_nIndex);
-                
-    // If we didn't have anything, move the line
-    if (-1 == nOffsetX)
-    {
-        m_nCursorY = (m_nCursorY + 1) % m_cLCD.rows();
-        
-        nCurrent = (m_nMenuPos  + m_nCursorY) % m_nModules;
-        
-        m_nIndex = 0;
-        nOffsetX = m_pModules[nCurrent]->getCursorOffset(m_nIndex);
-    }
-        
-    if ((size_t)-1 != m_nIndex)
-    {
-        // Move cursor to new position
-        m_cLCD.setCursor(m_nCursorX + nOffsetX,m_nCursorY);
-    }
-    else
-    {
-        // If nothing to show - hide everything
-        setCursor(false,false);
-    }
-}
--- a/MenuManager/MenuManager.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#ifndef __MENUMANAGER_H__
-#define __MENUMANAGER_H__
-
-#include "lcd.h"
-#include "keys.h"
-
-class MenuManager
-{    
-public:
-    MenuManager
-    (
-        Module **               in_pModules,
-        size_t                  in_nModules,
-        LCD &                   in_cLCD,
-        Keys &                  in_cKeys
-    );    
-    void loop();
-
-protected:
-    void changeModule(bool in_bUp);
-    void createChars();
-    void initialise();
-    void processKeys(uint8_t in_nKeys);
-    void setCursor
-    (
-        bool        in_bCursor,
-        bool        in_bBlink
-    );
-    void setMode(Module::EModes in_eMode);    
-    void showModules(bool in_bRefresh = false);
-    void showTracking(bool in_bShow);
-    void updateDisplay();
-
-protected:
-    Module **               m_pModules;
-    size_t                  m_nModules;    
-    LCD &                   m_cLCD;
-    Keys &                  m_cKeys;
-    Module::EModes          m_eMode;
-    size_t                  m_nMenuPos;
-    size_t                  m_nIndex;
-    int                     m_nCursorX, m_nCursorY;
-};
-
-#endif /* __MENUMANAGER_H__ */
--- a/MenuManager/keys.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-#include "mbed.h"
-#include "keys.h"
-
-Keys::Keys(I2C & in_cI2C)
-    : m_cI2C(in_cI2C)
-{
-}
--- a/MenuManager/keys.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#ifndef __KEYS_H__
-#define __KEYS_H__
-
-class Keys
-{
-public:
-    enum EButtons
-    {
-        eButtonNone     = 0x00,
-        eButtonUp       = 0x01,
-        eButtonDown     = 0x02,
-        eButtonLeft     = 0x04,
-        eButtonRight    = 0x08,
-        eButtonSelect   = 0x10,
-    };
-        
-public:
-                        Keys(I2C & in_cI2C);
-                            
-    virtual uint8_t     readButtons() = 0;
-    
-protected:
-            I2C &       m_cI2C;
-};
-
-#endif // __KEYS_H__
--- a/MenuManager/lcd.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-#include "mbed.h"
-#include "lcd.h"
-
-LCD::LCD(I2C & in_cI2C)
-    : Serial(USBTX,USBRX)
-    , m_cI2C(in_cI2C)
-{
-}
--- a/MenuManager/lcd.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-#ifndef __LCD_H__
-#define __LCD_H__
-
-class LCD
-    : public Serial // for printf
-{
-public:
-                        LCD(I2C & in_cI2C);
-    virtual int         _putc(int c) = 0;
-            
-    virtual void        clear() = 0;
-    virtual uint8_t     columns() = 0;
-    virtual void        createChar(uint8_t location, uint8_t charmap[]) = 0;
-    virtual void        home() = 0;
-    virtual uint8_t     rows() = 0;    
-    virtual void        setCursor(uint8_t in_nX, uint8_t in_nY) = 0;
-    virtual void        showBlink(bool in_bShow) = 0;
-    virtual void        showCursor(bool in_bShow) = 0;
-    virtual void        showDisplay(bool in_bShow) = 0;
-    
-protected:
-            I2C &       m_cI2C;
-};
-
-#endif // __LCD_H__
--- a/Modules/DateModule.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-#include "mbed.h"
-#include "DateModule.h"
-#include "time_helper.h"
-
-const char * k_aWeekDays[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
-
-DateModule::DateModule
-(
-    Serial &    in_cDisplay,
-    RTclock &   in_cRTclock
-)
-    : Module(in_cDisplay)
-    , m_cRTclock(in_cRTclock)
-{
-    ::memset(&m_sLastTM,0,sizeof(m_sLastTM));
-}
-
-DateModule::~DateModule()
-{
-}
-
-void DateModule::change
-(
-    size_t      in_nIndex,
-    bool        in_bUp
-)
-{
-    tm sTM;
-    
-    // to get the current time information
-    if (!m_cRTclock.getTime(sTM)) GetTime(sTM);
-    bool bTwelveHour = m_cRTclock.isTwelveHour();
-
-    enum ETime
-    {
-        eWeekDay = 0,
-        eDayTen,
-        eDaySingle,
-        eMonthTen,
-        eMonthSingle,
-        eYearTen,
-        eYearSingle,
-    };    
-    
-    switch (in_nIndex)
-    {
-        case eWeekDay:      sTM.tm_wday += (in_bUp ? 1 : -1);  break;
-        case eDayTen:       sTM.tm_mday += (in_bUp ? 1 : -1) * 10;  break;
-        case eDaySingle:    sTM.tm_mday += (in_bUp ? 1 : -1);  break;
-        case eMonthTen:     sTM.tm_mon += (in_bUp ? 1 : -1) * 10;  break;
-        case eMonthSingle:  sTM.tm_mon += (in_bUp ? 1 : -1);  break;
-        case eYearTen:      sTM.tm_year += (in_bUp ? 1 : -1) * 10;  break;
-        case eYearSingle:   sTM.tm_year += (in_bUp ? 1 : -1);  break;
-    }
-    
-    if (sTM.tm_wday < 0)    sTM.tm_wday = 0;
-    if (sTM.tm_wday > 6)    sTM.tm_wday = 6;
-    if (sTM.tm_mday < 1)    sTM.tm_mday = 1;
-    if (sTM.tm_mday > 31)   sTM.tm_mday = 31;
-    if (sTM.tm_mon < 0)     sTM.tm_mon = 0;
-    if (sTM.tm_mon > 11)    sTM.tm_mon = 11;
-    if (sTM.tm_year < 2000 - 1900) sTM.tm_year = 2000 - 1900;
-    if (sTM.tm_year > 2099 - 1900) sTM.tm_year = 2099 - 1900;
-
-    if (m_cRTclock.setTime(sTM,bTwelveHour))
-    {
-        m_cRTclock.mapTime();
-    }
-    else
-    {
-        SetTime(sTM);
-    }
-}
-  
-int DateModule::getCursorOffset(size_t & inout_nIndex)
-{
-    const int k_aCursor[] = { 2, 4, 5, 7, 8, 12, 13 };
-    
-    if ((int)inout_nIndex < 0) inout_nIndex = 0;
-    if (inout_nIndex >= _countof(k_aCursor)) inout_nIndex = _countof(k_aCursor) - 1;
-       
-    return k_aCursor[inout_nIndex];
-}
-
-void DateModule::show(bool in_bRefresh)
-{
-    tm sTM;
-    
-    // to get the current time information
-    if (!m_cRTclock.getTime(sTM)) GetTime(sTM);
-    
-    // if refreshing - only update if there's a change
-    if (in_bRefresh)
-    {
-        // Check for change based on day (rest is irrelevant)
-        if (sTM.tm_mday == m_sLastTM.tm_mday) return;
-    }
-    
-    // Ensure internal struct has new TM data
-    ::memcpy(&m_sLastTM,&sTM,sizeof(m_sLastTM));
-    m_cDisplay.printf ("%s %02i/%02i/%04i    ", k_aWeekDays[sTM.tm_wday], sTM.tm_mday, sTM.tm_mon + 1, 1900 + sTM.tm_year);
-}
--- a/Modules/DateModule.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#ifndef __DATEMODULE_H__
-#define __DATEMODULE_H__
-
-#include "module.h"
-#include "RTclock.h"
-
-class DateModule
-    : public Module
-{
-public:
-    DateModule
-    (
-        Serial &    in_cDisplay,
-        RTclock &   in_cRTclock
-    );
-    virtual ~DateModule();
-    
-    virtual bool    canRefresh() { return true; }
-    virtual void    change
-                    (
-                        size_t      in_nIndex,
-                        bool        in_bUp
-                    );
-    virtual int     getCursorOffset(size_t & inout_nIndex);
-    virtual void    show(bool in_bRefresh);
-    
-protected:
-    RTclock &       m_cRTclock;
-    tm              m_sLastTM;
-};
-
-#endif /* __DATEMODULE_H__ */
--- a/Modules/GPSModule.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-#include "mbed.h"
-#include "GPSModule.h"
-#include "time_helper.h"
-#include "GPS.h"
-//Serial pc(USBTX, USBRX);
-GPS gps(PTE0,PTE1);
-
-
-GPSModule::GPSModule
-(
-    Serial &    in_cDisplay,
-    RTclock &   in_cRTclock
-)
-    : Module(in_cDisplay)
-    , m_cRTclock(in_cRTclock)
-{
-    ::memset(&m_sLastTM,0,sizeof(m_sLastTM));
-}
-
-GPSModule::~GPSModule()
-{
-}
-
-void GPSModule::show(bool in_bRefresh)
-{
- 
- 
-    if(gps.sample()) {
-           m_cDisplay.printf("Lon: %f", gps.l_longitude*-1.0f);
-        //   pc.printf("lon: %f, lat: %f\r\n", gps.longitude*-1.0f, gps.latitude);
-    }
-    else      
-    {  
-        m_cDisplay.printf("Lon: %s", "NA");
-    }        
- 
-}
--- a/Modules/GPSModule.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#ifndef __GPSModule_H__
-#define __GPSModule_H__
-
-#include "module.h"
-#include "RTclock.h"
-
-class GPSModule
-    : public Module
-{
-public:
-    GPSModule
-    (
-        Serial &    in_cDisplay,
-        RTclock &   in_cRTclock
-    );
-    virtual ~GPSModule();
-    
-    virtual bool    canRefresh() { return true; }
-    virtual void    show(bool in_bRefresh);
-    
-protected:
-    RTclock &       m_cRTclock;
-    tm              m_sLastTM;
-};
-
-#endif /* __GPSModule_H__ */
\ No newline at end of file
--- a/Modules/LatitudeModule.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#include "mbed.h"
-#include "LatitudeModule.h"
-#include "time_helper.h"
-#include "GPS.h"
-// Serial pc(USBTX, USBRX);
-
-//GPS gps(PTE0,PTE1);
-
-LatitudeModule::LatitudeModule
-(
-    Serial &    in_cDisplay,
-    RTclock &   in_cRTclock
-)
-    : Module(in_cDisplay)
-    , m_cRTclock(in_cRTclock)
-{
-    ::memset(&m_sLastTM,0,sizeof(m_sLastTM));
-}
-
-LatitudeModule::~LatitudeModule()
-{
-}
-
-void LatitudeModule::show(bool in_bRefresh)
-{
-    tm sTM;
-    
-    // to get the current time information
-    if (!m_cRTclock.getTime(sTM)) GetTime(sTM);
-    
-#if 0    
-    // if refreshing - only update if there's a change
-    if (in_bRefresh)
-    {
-        // Check for change based on hour (rest is irrelevant)
-        if (sTM.tm_hour == m_sLastTM.tm_hour) return;
-    }
-#endif    
-    
-    // Ensure internal struct has new TM data
-    ::memcpy(&m_sLastTM,&sTM,sizeof(m_sLastTM));
-
-    if (gps.lock_valid)
-        m_cDisplay.printf("Lat: %f", gps.l_latitude);
-    else
-        m_cDisplay.printf("Lat: %s", "NA");
-  
-}
\ No newline at end of file
--- a/Modules/LatitudeModule.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#ifndef __LatitudeModule_H__
-#define __LatitudeModule_H__
-
-#include "module.h"
-#include "RTclock.h"
-
-class LatitudeModule
-    : public Module
-{
-public:
-    LatitudeModule
-    (
-        Serial &    in_cDisplay,
-        RTclock &   in_cRTclock
-    );
-    virtual ~LatitudeModule();
-    
-    virtual bool    canRefresh() { return true; }
-    virtual void    show(bool in_bRefresh);
-    
-protected:
-    RTclock &       m_cRTclock;
-    tm              m_sLastTM;
-};
-
-#endif /* __GPSModule_H__ */
\ No newline at end of file
--- a/Modules/RadioModule.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-#include "mbed.h"
-#include "RadioModule.h"
-#include "time_helper.h"
-#include "mbed.h"
-#include "sx1276-hal.h"
-#include "main.h"
-#include "debug.h"
-#include "vt100.h"
-#include "serial_api.h"
-
- 
-RadioModule::RadioModule
-(
-    Serial &    in_cDisplay,
-    RTclock &   in_cRTclock
-)
-    : Module(in_cDisplay)
-    , m_cRTclock(in_cRTclock)
-{
-    ::memset(&m_sLastTM,0,sizeof(m_sLastTM));
-}
-
-RadioModule::~RadioModule()
-{
-
-}
-
-void RadioModule::show(bool in_bRefresh)
-{
-    Radio.Rx( RX_TIMEOUT_VALUE );
-    Radio.Tx( TX_TIMEOUT_VALUE );
-    app = APP_HELLO;
-    //while( 1 )
-    {
-        // wait_ms( 50 ); 
-        switch (app) {
-            case APP_PING:
-                start_ping_pong();
-                break;
-            case APP_CHAT:
-                console_chat();
-                break;
-            case APP_HELLO:
-                start_hello();
-                wait(0.11);
-                break;
-            case APP_CONSOLE:
-                // printf("-chat-> x");
-                fflush(stdout);    
-                console();
-                break;
-            default:
-                printf("unknown app %d\r\n", app);
-                break;    
-        } // ...switch (app)
-        printf("in radio mdoule\r\n");
-        //m_cDisplay.printf("SNR: %d RSSI: %d", RssiValue,SnrValue);
-              
-    }
-    m_cDisplay.printf("SNR: %d RSSI: %d", RssiValue,SnrValue);
-    
-}
--- a/Modules/RadioModule.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-#ifndef __RadioModule_H__
-#define __RadioModule_H__
-
-#include "module.h"
-#include "RTclock.h"
-//#include "main.h"
-
-class RadioModule
-    : public Module
-{
-public:
-    RadioModule
-    (
-        Serial &    in_cDisplay,
-        RTclock &   in_cRTclock
-    );
-    virtual ~RadioModule();
-    
-    virtual bool    canRefresh() { return true; }
-    virtual void    show(bool in_bRefresh);
-    
-protected:
-    RTclock &       m_cRTclock;
-    tm              m_sLastTM;
-};
-
-#endif /* __RadioModule_H__ */
\ No newline at end of file
--- a/Modules/SyncModule.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#include "mbed.h"
-#include "SyncModule.h"
-#include "extra_chars.h"
-
-SyncModule::SyncModule
-(
-    Serial &    in_cDisplay,
-    RTclock &   in_cClock
-)
-    : Module(in_cDisplay)
-    , m_cClock(in_cClock)
-    , m_eMode(eModeLast)    
-    , m_bSync(false)
-{
-}
-
-SyncModule::~SyncModule()
-{
-}
-
-void SyncModule::change
-(
-    size_t      /* in_nIndex */,
-    bool        /* in_bUp */
-)
-{
-    m_bSync = (m_bSync) ? false : true;
-}
-
-int SyncModule::getCursorOffset(size_t & inout_nIndex)
-{
-    return m_bSync ? 13 : 12;
-}
-
-void SyncModule::onModeChange(EModes in_eMode)
-{
-    EModes eOldMode = m_eMode;
-    m_eMode = in_eMode;
-
-    if (eModeChange != eOldMode) return;    
-    if (eModeMenu != m_eMode) return;
-    
-    if (m_bSync)
-    {
-        // Sync the internal mbed clock (stdlib)
-        m_cClock.mapTime();
-        m_bSync = false;    
-    }
-}
-
-void SyncModule::show(bool /*in_bRefresh*/)
-{
-    switch (m_eMode)
-    {
-        case eModeChange:
-        case eModeSelect:
-            m_cDisplay.printf("Sync Time? %s   ",m_bSync ? "yes" : "no");
-            break;
-            
-        default:
-            m_cDisplay.printf("Sync Time %c     ",eRight);
-    }
-}
--- a/Modules/SyncModule.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#ifndef __SYNCMODULE_H__
-#define __SYNCMODULE_H__
-
-#include "module.h"
-#include "RTclock.h"
-
-class SyncModule
-    : public Module
-{
-public:
-    SyncModule
-    (
-        Serial &    in_cDisplay,
-        RTclock &   in_cClock
-    );
-    virtual ~SyncModule();
-    
-    virtual void    change
-                    (
-                        size_t      in_nIndex,
-                        bool        in_bUp
-                    );
-    virtual int     getCursorOffset(size_t & inout_nIndex);
-    virtual void    onModeChange(EModes in_eMode);
-    virtual void    show(bool in_bRefresh);
-        
-protected:
-    RTclock &       m_cClock;
-    EModes          m_eMode;
-    bool            m_bSync;    
-};
-
-#endif /* __SYNCMODULE_H__ */
--- a/Modules/TempModule.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-#include "mbed.h"
-#include "TempModule.h"
-
-#include "extra_chars.h"
-
-#define MCP9808_I2CADDR_DEFAULT        (0x18 << 1)
-#define MCP9808_REG_CONFIG             0x01
-
-#define MCP9808_REG_CONFIG_SHUTDOWN    0x0100
-#define MCP9808_REG_CONFIG_CRITLOCKED  0x0080
-#define MCP9808_REG_CONFIG_WINLOCKED   0x0040
-#define MCP9808_REG_CONFIG_INTCLR      0x0020
-#define MCP9808_REG_CONFIG_ALERTSTAT   0x0010
-#define MCP9808_REG_CONFIG_ALERTCTRL   0x0008
-#define MCP9808_REG_CONFIG_ALERTSEL    0x0002
-#define MCP9808_REG_CONFIG_ALERTPOL    0x0002
-#define MCP9808_REG_CONFIG_ALERTMODE   0x0001
-
-#define MCP9808_REG_UPPER_TEMP         0x02
-#define MCP9808_REG_LOWER_TEMP         0x03
-#define MCP9808_REG_CRIT_TEMP          0x04
-#define MCP9808_REG_AMBIENT_TEMP       0x05
-#define MCP9808_REG_MANUF_ID           0x06
-#define MCP9808_REG_DEVICE_ID          0x07
-
-TempModule::TempModule(Serial & in_cDisplay,I2C & in_nI2C,uint8_t in_nAddress)
-    : Module(in_cDisplay)
-    , m_cI2C(in_nI2C)
-    , m_nAddress(in_nAddress)
-    , m_bValid(false)
-{
-    uint16_t nManufacturer = read16(MCP9808_REG_MANUF_ID);// != 0x0054) return false;
-    uint16_t nDeviceId = read16(MCP9808_REG_DEVICE_ID);//
-    
-    // Check to see if we need to autoscan for our device
-    m_bValid = (0x0054 == nManufacturer || 0x0400 == nDeviceId);
-
-//    bool bAutoScan = true;
-//    m_nAddress = 0;
-//    
-//    while (bAutoScan && m_nAddress < 0x80)
-//    {
-//        nManufacturer = read16(MCP9808_REG_MANUF_ID);// != 0x0054) return false;
-//        nDeviceId = read16(MCP9808_REG_DEVICE_ID);//
-//        
-//        bAutoScan = (0x0054 != nManufacturer || 0x0400 != nDeviceId);
-//        m_nAddress++;
-//    }
-}
-
-TempModule::~TempModule()
-{
-}
-
-float TempModule::readTempC()
-{
-    uint16_t t = read16(MCP9808_REG_AMBIENT_TEMP);
-    
-    float temp = t & 0x0FFF;
-    temp /=  16.0f;
-    
-    // check to see if signed bit set
-    if (t & 0x1000) temp -= 0xff;
-    
-    return temp;
-}
-
-void TempModule::write16(uint8_t in_nRegister, uint16_t in_nValue)
-{
-    char aBuffer[3] = { in_nRegister, in_nValue >> 8, in_nValue & 0xFF };
-    m_cI2C.write(MCP9808_I2CADDR_DEFAULT, aBuffer, sizeof(aBuffer));
-}
-
-uint16_t TempModule::read16(uint8_t in_nRegister)
-{
-    m_cI2C.write(m_nAddress, (const char *)&in_nRegister, sizeof(in_nRegister));
-    
-    char aReadBuffer[2];
-    m_cI2C.read(m_nAddress, aReadBuffer, sizeof(aReadBuffer));  
-    
-    return (aReadBuffer[0] << 8) | aReadBuffer[1];
-}
-
-void TempModule::show(bool in_bRefresh)
-{
-    static time_t nTime = time(NULL) + 1;
-    if (in_bRefresh || nTime < time(NULL))
-    {
-        m_cDisplay.printf("Room: %0.1f%cC     ",readTempC(),eDegree);
-        
-//        uint8_t nValue = read16(MCP9808_REG_MANUF_ID);        
-//        m_cDisplay.printf("%x - %x - %x          ", m_nAddress, nValue,read16(MCP9808_REG_DEVICE_ID));
-        
-        nTime = time(NULL) + 1;
-    }
-}
--- a/Modules/TempModule.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#ifndef __TEMPMODULE_H__
-#define __TEMPMODULE_H__
-
-#include "mbed.h"
-#include "module.h"
-
-class TempModule
-    : public Module
-{
-public:
-    TempModule
-    (
-        Serial &    in_cDisplay,
-        I2C &       in_cI2C,
-        uint8_t     in_nAddress
-    );
-    virtual ~TempModule();
-    
-    virtual bool    canRefresh() { return true; }
-    virtual bool    isValid() { return m_bValid; }
-    virtual void    show(bool in_bRefresh);
-
-protected:
-    float       readTempC();
-    uint16_t    read16(uint8_t in_nRegister);
-    void        write16(uint8_t in_nRegister, uint16_t in_nValue);
-
-    I2C &       m_cI2C;
-    uint8_t     m_nAddress;
-    bool        m_bValid;
-};
-
-#endif /* __TEMPMODULE_H__ */
--- a/Modules/TimeModule.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-#include "mbed.h"
-#include "TimeModule.h"
-#include "time_helper.h"
-
-#if 0
-    tm sTM;
-    sTM.tm_sec = 0;
-    sTM.tm_min = 0;
-    sTM.tm_hour = 18;
-    sTM.tm_mday = 9;
-    sTM.tm_mon  = 8 - 1;
-    sTM.tm_year = 2014 - 1900;
-    sTM.tm_wday = 6;
-
-    rtc.SetTime(sTM,true);
-#endif
-
-
-TimeModule::TimeModule
-(
-    Serial &    in_cDisplay,
-    RTclock &   in_cRTclock
-)
-    : Module(in_cDisplay)
-    , m_cRTclock(in_cRTclock)
-{
-    ::memset(&m_sLastTM,0,sizeof(m_sLastTM));
-}
-
-TimeModule::~TimeModule()
-{
-}
-
-void TimeModule::change
-(
-    size_t      in_nIndex,
-    bool        in_bUp
-)
-{
-    tm sTM;
-    
-    // to get the current time information
-    if (!m_cRTclock.getTime(sTM)) GetTime(sTM);
-    bool bTwelveHour = m_cRTclock.isTwelveHour();
-
-    enum ETime
-    {
-        eHourTen = 0,
-        eHourSingle,
-        eMinTen,
-        eMinSingle,
-        eSecondTen,
-        eSecondSingle,
-        eAmPm,
-    };    
-    
-    switch (in_nIndex)
-    {
-        case eHourTen:      sTM.tm_hour += (in_bUp ? 1 : -1) * 10;  break;
-        case eHourSingle:   sTM.tm_hour += (in_bUp ? 1 : -1); break;
-        case eMinTen:       sTM.tm_min += (in_bUp ? 1 : -1) * 10;  break;
-        case eMinSingle:    sTM.tm_min += (in_bUp ? 1 : -1); break;
-        case eSecondTen:    sTM.tm_sec += (in_bUp ? 1 : -1) * 10;  break;
-        case eSecondSingle: sTM.tm_sec += (in_bUp ? 1 : -1); break;
-        case eAmPm:
-            if (bTwelveHour)
-            {
-                if (in_bUp)
-                {
-                    if (sTM.tm_hour >= 12) bTwelveHour = !bTwelveHour; else sTM.tm_hour += 12;
-                }
-                else
-                {
-                    if (sTM.tm_hour >= 12) sTM.tm_hour -= 12; else bTwelveHour = !bTwelveHour;
-                }
-            }
-            else
-            {
-                bTwelveHour = !bTwelveHour;
-                if (in_bUp && sTM.tm_hour >= 12) sTM.tm_hour -= 12;
-                if (!in_bUp && sTM.tm_hour < 12) sTM.tm_hour += 12;
-            }                
-            break;
-    }
-    
-    if (sTM.tm_hour < 0)    sTM.tm_hour = 0;
-    if (sTM.tm_hour > 23)   sTM.tm_hour = 23;
-    if (sTM.tm_min < 0)     sTM.tm_min = 0;
-    if (sTM.tm_min > 59)    sTM.tm_min = 59;
-    if (sTM.tm_sec < 0)     sTM.tm_sec = 0;
-    if (sTM.tm_sec > 59)    sTM.tm_sec = 59;
-
-    if (m_cRTclock.setTime(sTM,bTwelveHour))
-    {
-        m_cRTclock.mapTime();
-    }
-    else
-    {
-        SetTime(sTM);
-    }
-}
-
-int TimeModule::getCursorOffset(size_t & inout_nIndex)
-{
-    const int k_aCursor[] = { 0, 1, 3, 4, 6, 7, 10 };
-    
-    if ((int)inout_nIndex < 0) inout_nIndex = 0;
-    if (inout_nIndex >= _countof(k_aCursor)) inout_nIndex = _countof(k_aCursor) - 1;
-       
-    return k_aCursor[inout_nIndex];
-}
-
-void TimeModule::show(bool in_bRefresh)
-{
-    tm sTM;
-    const char * pUnits = "  ";
-   
-    // to get the current time information 
-    if (m_cRTclock.getTime(sTM))
-    {
-        // Adjust for 12 hour clock
-        if (m_cRTclock.isTwelveHour())
-        {
-            pUnits = (sTM.tm_hour < 12) ? "am":"pm";
-            if (sTM.tm_hour > 12) sTM.tm_hour %= 12;
-        }
-    }
-    else
-    {
-        // If failed get internal time (as at least that's something
-        GetTime(sTM);
-    }
-    
-    // if refreshing - only update if there's a change
-    if (in_bRefresh)
-    {        
-        // Check for change based on second (rest is irrelevant)
-        if (sTM.tm_sec == m_sLastTM.tm_sec) return;
-    }
-    
-    // Ensure internal struct has new TM data
-    ::memcpy(&m_sLastTM,&sTM,sizeof(m_sLastTM));
-
-    m_cDisplay.printf ("%02i:%02i:%02i %s   ", sTM.tm_hour, sTM.tm_min, sTM.tm_sec, pUnits);    
-}
--- a/Modules/TimeModule.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#ifndef __TIMEMODULE_H__
-#define __TIMEMODULE_H__
-
-#include "module.h"
-#include "RTclock.h"
-
-class TimeModule
-    : public Module
-{
-public:
-    TimeModule
-    (
-        Serial &    in_cDisplay,
-        RTclock &   in_cRTclock
-    );
-    virtual ~TimeModule();
-    
-    virtual bool    canRefresh() { return true; }
-    virtual void    change
-                    (
-                        size_t      in_nIndex,
-                        bool        in_bUp
-                    );    
-    virtual int     getCursorOffset(size_t & inout_nIndex);
-    virtual void    show(bool in_bRefresh);
-        
-protected:
-    RTclock &       m_cRTclock;
-    tm              m_sLastTM;
-};
-
-#endif /* __TIMEMODULE_H__ */
--- a/Modules/TitleModule.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-#include "mbed.h"
-#include "TitleModule.h"
-#include "time_helper.h"
-
-TitleModule::TitleModule
-(
-    Serial &    in_cDisplay,
-    RTclock &   in_cRTclock
-)
-    : Module(in_cDisplay)
-    , m_cRTclock(in_cRTclock)
-{
-    ::memset(&m_sLastTM,0,sizeof(m_sLastTM));
-}
-
-TitleModule::~TitleModule()
-{
-}
-
-void TitleModule::show(bool in_bRefresh)
-{
-    tm sTM;
-    
-    // to get the current time information
-    if (!m_cRTclock.getTime(sTM)) GetTime(sTM);
-    
-    // if refreshing - only update if there's a change
-    if (in_bRefresh)
-    {
-        // Check for change based on hour (rest is irrelevant)
-        if (sTM.tm_hour == m_sLastTM.tm_hour) return;
-    }
-    
-    // Ensure internal struct has new TM data
-    ::memcpy(&m_sLastTM,&sTM,sizeof(m_sLastTM));
-    if (sTM.tm_hour < 6) m_cDisplay.printf("Night Time       ");
-    else if (sTM.tm_hour < 12) m_cDisplay.printf("Morning Time      ");
-    else if (sTM.tm_hour < 18) m_cDisplay.printf("Afternoon Time    ");
-    else if (sTM.tm_hour < 21) m_cDisplay.printf("Evening Time      ");
-    else m_cDisplay.printf("Bedtime           ");
-}
--- a/Modules/TitleModule.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#ifndef __TITLEMODULE_H__
-#define __TITLEMODULE_H__
-
-#include "module.h"
-#include "RTclock.h"
-
-class TitleModule
-    : public Module
-{
-public:
-    TitleModule
-    (
-        Serial &    in_cDisplay,
-        RTclock &   in_cRTclock
-    );
-    virtual ~TitleModule();
-    
-    virtual bool    canRefresh() { return true; }
-    virtual void    show(bool in_bRefresh);
-    
-protected:
-    RTclock &       m_cRTclock;
-    tm              m_sLastTM;
-};
-
-#endif /* __TITLEMODULE_H__ */
--- a/Modules/module.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-#include "mbed.h"
-#include "Adafruit_RGBLCDShield.h"
-#include "module.h"
-
-Module::Module(Serial & in_cDisplay)
-    : m_cDisplay(in_cDisplay)
-{
-}
-
-Module::~Module()
-{
-}
--- a/Modules/module.h	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#ifndef __MODULE_H__
-#define __MODULE_H__
-
-#ifndef _countof
-    #define _countof(a) (sizeof(a) / sizeof(a[0]))
-#endif
-
-class Module
-{
-public:
-    enum EModes
-    {
-        eModeMenu = 0,
-        eModeSelect,
-        eModeChange,
-        eModeLast
-    };
-    
-public:
-    Module(Serial & in_cDisplay);
-    virtual ~Module();
-    
-    virtual bool    canRefresh() { return false; }
-    virtual void    change
-                    (
-                        size_t      in_nIndex,
-                        bool        in_bUp
-                    )
-                    { ; }
-    virtual int     getCursorOffset(size_t & inout_nIndex)
-                    { return -1; }
-    virtual void    onModeChange(EModes in_eMode)
-                    { ; }
-    virtual void    show(bool in_bRefresh) = 0;
-    
-protected:
-    Serial & m_cDisplay;
-};
-
-#endif /* __MODULE_H__ */
--- a/RTclock.lib	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://mbed.org/users/vtraveller/code/RTclock/#bdc15c054ac1
--- a/console_chat.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ b/console_chat.cpp	Tue Jul 14 14:58:23 2015 +0000
@@ -2,7 +2,7 @@
 #include "sx1276-hal.h"
 #include "main.h"
 #include "debug.h"
-#include "vt100.h"
+//radfta #include "vt100.h"
 #include "serial_api.h"
  
 void console_chat()
@@ -57,7 +57,7 @@
 
 void print_help()
 {
-                ctrl.cls();
+                //radfta ctrl.cls();
                 printf("     Radio Utilities    \r\n");
                 printf("-----------------------------------------\r\n");
                 print_status();
@@ -135,26 +135,26 @@
                 AlwaysMaster=false;
                 break;        
              case 'G':
-                ctrl.cls();
+                // radfta ctrl.cls();
                 debug("Starting GPS exchange\r\n");
                 gpsEnabled = true;
                 fflush(stdout);
                 app = APP_HELLO;
-                gpsd.l_latitude = gpsd.l_longitude = gpsd.r_latitude = gpsd.r_longitude = 0;
+                // radfta gpsd.l_latitude = gpsd.l_longitude = gpsd.r_latitude = gpsd.r_longitude = 0;
                 Radio.Rx( RX_TIMEOUT_VALUE );
                 Radio.Tx( TX_TIMEOUT_VALUE );
                 break;    
             case 'P':
-                ctrl.cls();
+                // radfta ctrl.cls();
                 debug("Starting ping pong app\r\n");
                 fflush(stdout);
                 app = APP_PING;
-                gpsd.l_latitude = gpsd.l_longitude = gpsd.r_latitude = gpsd.r_longitude = 0;
+                // radfta gpsd.l_latitude = gpsd.l_longitude = gpsd.r_latitude = gpsd.r_longitude = 0;
                 Radio.Rx( RX_TIMEOUT_VALUE );
                 Radio.Tx( TX_TIMEOUT_VALUE );
                 break;
            case 'H':
-                ctrl.cls();
+                // radfta ctrl.cls();
                 debug("Starting hello exchange\r\n");
                 gpsEnabled = false;
                 fflush(stdout);
@@ -163,7 +163,7 @@
                 Radio.Tx( TX_TIMEOUT_VALUE );
                 break;                
             case 'C':
-                ctrl.cls();
+                // radfta  ctrl.cls();
                 printf("Starting chat app\r\n");
                 //printf("-chat-> ");
                 fflush(stdout);
--- a/hello.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ b/hello.cpp	Tue Jul 14 14:58:23 2015 +0000
@@ -2,7 +2,7 @@
 #include "sx1276-hal.h"
 #include "main.h"
 #include "debug.h"
-#include "vt100.h"
+// radfta #include "vt100.h"
 #include "serial_api.h"
 #include "GPS.h"
 #include <math.h>
@@ -46,6 +46,7 @@
     float a = 0;
     float d = 0;
     
+#ifdef radfta    
     gpsd.distance = 0;
     if (gpsd.l_latitude == 0.0)
     {
@@ -80,13 +81,13 @@
     }
     gpsd.distance = gpsd.distance + d;
    // printf("distance: %f\r\n", gpsd.distance);
-  
+#endif  
 }
  
 void check_gps(void)
 {
     static int gps_count=0;
-    
+#ifdef radfta    
     if (gps_count >= 0)
     {
         //printf("checking gps\r\n");
@@ -157,7 +158,7 @@
         //printf("not checking gps\r\n");
         gps_count++;
     }
-       
+#endif       
 }
 
 void hello(void)
@@ -200,8 +201,8 @@
 
             printf("rx timeout in gps/hello loop. ");
             printf("per=%d\r\n", per);
-            gpsd.r_latitude = 0;
-            gpsd.r_longitude = 0;
+            // radfta gpsd.r_latitude = 0;
+            // radfta gpsd.r_longitude = 0;
             // printf("rcv - rssi = %d snr = %d msg=%s\r\n", RssiValue, SnrValue, BufferRx);
             cLCD.setCursor(0,0);
             cLCD.printf("RI:NA SR:NA      ");
@@ -220,30 +221,37 @@
                 else
                 {
                   // float latitude, longitude;
+#ifdef radfta                  
                   if(sscanf((char *)BufferRx, "GP,%f,%f", &gpsd.r_latitude, &gpsd.r_longitude ) >= 1) 
                   {                    
                     led = !led;     
                     printf("rssi=%d snr=%d rlat=%0.5f rlon=%0.5f llat=%0.5f llon=%0.5f dst=%0.0fm ", RssiValue, SnrValue, gpsd.r_latitude, gpsd.r_longitude, gpsd.l_latitude, gpsd.l_longitude, gpsd.distance);
                     printf("per=%d\r\n", per);
-
                     cLCD.setCursor(0,0);
                     cLCD.printf("RI:%d SR:%d    ", RssiValue,SnrValue);
                     //printf("Msg received - Lat: %0.4f Lon: %0.4f\r\n", latitude, longitude);
                   }
                   else
                     printf("strange received message: %s\r\n", BufferRx);
-                 } 
+#else
+                  cLCD.setCursor(0,0);
+                  cLCD.printf("RI:%d SR:%d    ", RssiValue,SnrValue);
+                  printf("received message: %s\r\n", BufferRx);               
+#endif                    
+              }                  
             }
        case RX_ERROR:
             if (gpsEnabled)
             {
                 check_gps();
             }   
+#ifdef radfta            
             if (gpsEnabled)
                 sprintf((char *)BufferTx, "GP,%4.5f,%4.5f", gpsd.l_latitude, gpsd.l_longitude);
             else
+#else            
                 strcpy( ( char* )BufferTx, ( char* )HelloMsg );
-               
+#endif               
             BufferSize=strlen((char *)BufferTx);
             //printf("Sending new buffer\r\n");
             Radio.Send( BufferTx, BufferSize );
--- a/main.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ b/main.cpp	Tue Jul 14 14:58:23 2015 +0000
@@ -1,22 +1,22 @@
 #include "mbed.h"
 #include "lcdadafruit.h"
-#include "keyreaderadafruit.h"
-#include "keyreadernull.h"
-#include "RTclock.h"
-#include "DateModule.h"
-#include "TempModule.h"
-#include "TimeModule.h"
-#include "TitleModule.h"
-#include "SyncModule.h"
-#include "GPSModule.h"
-#include "LatitudeModule.h"
-#include "RadioModule.h"
-#include "MenuManager.h"
+//radfta #include "keyreaderadafruit.h"
+//radfta #include "keyreadernull.h"
+// #include "RTclock.h"
+//#include "DateModule.h"
+//#include "TempModule.h"
+//#include "TimeModule.h"
+//#include "TitleModule.h"
+//#include "SyncModule.h"
+//#include "GPSModule.h"
+//#include "LatitudeModule.h"
+//#include "RadioModule.h"
+//#include "MenuManager.h"
 #include "sx1276-hal.h"
 #include "GPS.h"
 #include "main.h"
 #include "debug.h"
-#include "vt100.h"
+//#include "vt100.h"
 #include "serial_api.h"
 
 
@@ -26,8 +26,8 @@
 
 //#define RF_FREQUENCY                                    868000000 // Hz
 //#define RF_FREQUENCY                                    880030000 
-//#define RF_FREQUENCY                                    915000000.0 // Hz
-#define RF_FREQUENCY                                    413000000.0 // Hz
+#define RF_FREQUENCY                                    915000000.0 // Hz
+//#define RF_FREQUENCY                                    413000000.0 // Hz
 #define TX_OUTPUT_POWER                                 20        // 14 dBm
 #define LORA_BANDWIDTH                                  2         // [0: 125 kHz,
                                                                   //  1: 250 kHz,
@@ -69,7 +69,7 @@
  */
 typedef RadioState States_t;
 volatile States_t State = LOWPOWER;
-vt100 ctrl;
+// radfta vt100 ctrl;
 
 SX1276MB1xAS Radio( OnTxDone, OnTxTimeout, OnRxDone, OnRxTimeout, OnRxError, NULL, NULL );
 // for hand wired I2C cI2C(PTC9, PTC8); 
@@ -336,7 +336,7 @@
 {
   
     int i;
-    gpsd.setBaud57600();
+    // radfta gpsd.setBaud57600();
     pc.baud(9600);
     //pc.baud(57600);
     cI2C.frequency(400000);    // I2C can handle two different frequencies - switch to high speed if asked
@@ -397,15 +397,7 @@
         pc.printf("Starting GPS App\r\n");
     }
     
-     while( 0 )
-    {
-        static int count =1;
-        cLCD.setCursor(0,1);
-        wait(1);
-        cLCD.printf("%d            ",count);   
-        count++;
-        
-    }
+ 
     while( 1 )
     {
         // wait_ms( 50 ); 
@@ -434,42 +426,5 @@
         } // ...switch (app)
       
     }
-          
-      
-    //KeyReaderNull cKeys(cI2C);
-#if 0
-    KeyReaderAdafruit cKeys(cI2C);
-    
-    RTclock cClock(cI2C, 0x68 << 1, RTclock::eDS3231);
-
-    // Spin up RTC
-    cClock.mapTime();
-  
-    // Set up display modules    
-    Module * aModules[] =
-    {
-        //new TitleModule(cLCD,cClock),        
-       // new TempModule(cLCD,cI2C,0x18 << 1),
-       // new TimeModule(cLCD,cClock),
-       // new DateModule(cLCD,cClock),     
-        new RadioModule(cLCD,cClock),
-        new LatitudeModule(cLCD,cClock),   
-        new GPSModule(cLCD,cClock),
    
-    };
-  
-
-    // Set up the menu manager
-    // MenuManager cMenuManager(aModules,_countof(aModules),cLCD,cKeys,16,2);
-    MenuManager cMenuManager(aModules,_countof(aModules),cLCD,cKeys);
-
- 
-    // Start menu manager loop   
-   
-    
-    
- 
-      cMenuManager.loop();
-#endif
-  
 }
--- a/main.h	Tue Jun 16 11:56:16 2015 +0000
+++ b/main.h	Tue Jul 14 14:58:23 2015 +0000
@@ -14,9 +14,11 @@
 */
 #ifndef __MAIN_H__
 #define __MAIN_H__
-#include "vt100.h"
 #include "lcdadafruit.h"
 #include "GPS.h"
+#include "enums.h"
+#include "typedefs.h"
+
 /*
  * Callback functions prototypes
  */
@@ -101,7 +103,7 @@
 extern uint16_t BufferSize;
 extern uint8_t BufferTx[];
 extern uint8_t BufferRx[];
-extern vt100 ctrl;
+// radfta extern vt100 ctrl;
 extern float Frequency;
 extern int TxPower;
 extern int Bandwidth;
--- a/ping_pong.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ b/ping_pong.cpp	Tue Jul 14 14:58:23 2015 +0000
@@ -2,7 +2,7 @@
 #include "sx1276-hal.h"
 #include "main.h"
 #include "debug.h"
-#include "vt100.h"
+// radfta #include "vt100.h"
 #include "serial_api.h"
 
 void start_ping_pong(void)
@@ -33,7 +33,7 @@
 {
     static uint8_t i;
     // static bool isMaster = true;
-    vt100 ctrl;
+    // radfta vt100 ctrl;
     static int xmit_count = 0;
        
     //ctrl.cls();
--- a/utilities.cpp	Tue Jun 16 11:56:16 2015 +0000
+++ b/utilities.cpp	Tue Jul 14 14:58:23 2015 +0000
@@ -2,7 +2,7 @@
 #include "sx1276-hal.h"
 #include "main.h"
 #include "debug.h"
-#include "vt100.h"
+//radfta #include "vt100.h"
 #include "serial_api.h"
 
 int get_kbd_str(char* buf, int size)
--- a/vt100.lib	Tue Jun 16 11:56:16 2015 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-http://developer.mbed.org/teams/CaryCoders/code/vt100/#0a86bf429b6f