Own fork of MbedSmartRestMain

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Cumulocity Official

Revision:
95:5dfdc8568e9f
Parent:
93:61d44636f020
Child:
96:ea056f6be2e8
--- a/main.cpp	Wed Apr 22 11:22:25 2015 +0000
+++ b/main.cpp	Mon Apr 27 10:50:21 2015 +0000
@@ -9,6 +9,7 @@
 #include "MbedAgent.h"
 #include "GPSTracker.h"
 #include "DeviceConfiguration.h"
+#include "LCDDisplay.h"
 #include "logging.h"
 
 /**
@@ -54,17 +55,16 @@
     pMdm = &mdm;
     InterruptIn joystickUp(A2);
     InterruptIn joystickDown(A3);
-    LCDDisplay lcdDisplay;
     MDMParser::DevStatus devStatus;
     GPSI2C gps;
-    lcdDisplay.setLines("Mbed Agent V2.1rc2", getHost());
+    LCDDisplay::inst().setLines("Mbed Agent V2.1rc2", getHost());
     if (!mdm.init(SIM_PIN, &devStatus)) {
-        lcdDisplay.setLines("Modem Init Failure", "No SIM card found", "Or SIM has PIN");
+        LCDDisplay::inst().setLines("Modem Init Failure", "No SIM card found", "Or SIM has PIN");
         mdm.disconnect();
         mdm.powerOff();
         return 1;
     } else if (!gps.init()) {
-        lcdDisplay.setLines("GPS Init Failure");
+        LCDDisplay::inst().setLines("GPS Init Failure");
         mdm.disconnect();
         mdm.powerOff();
         return 2;
@@ -76,11 +76,11 @@
     DigitalIn fireButton(D4);
 
     if (fireButton) {
-        lcdDisplay.setLines("Factory Reset");
+        LCDDisplay::inst().setLines("Factory Reset");
         if (deviceMemory.resetPlatformCredentials()) {
-            lcdDisplay.setLines("Reset Success");
+            LCDDisplay::inst().setLines("Reset Success");
         } else {
-            lcdDisplay.setLines("Reset Failure");
+            LCDDisplay::inst().setLines("Reset Failure");
         }
         mdm.disconnect();
         mdm.powerOff();
@@ -88,15 +88,15 @@
         return 0;
     }
     aInfo("Main Thread: %p\r\n", Thread::gettid());    
-    lcdDisplay.setLines("Register Network...", "IMEI", devStatus.imei);
+    LCDDisplay::inst().setLines("Register Network...", "IMEI", devStatus.imei);
     if (!mdm.registerNet()) {
-        lcdDisplay.setLines("No Network Coverage");
+        LCDDisplay::inst().setLines("No Network Coverage");
         mdm.disconnect();
         mdm.powerOff();
         return 3;
     }
 
-    lcdDisplay.setLines("Join Network");
+    LCDDisplay::inst().setLines("Join Network");
 #ifdef SIM_APN
     if (mdm.join(SIM_APN, SIM_USER, SIM_PASS) == NOIP) {
 #else
@@ -107,7 +107,7 @@
         if (p) {
             snprintf(s, sizeof(s), "%.*s-%.*s", 3, p, getMNCLen(p), p+3);
         }
-        lcdDisplay.setLines("Wrong APN Settting", "MCC-MNC:", s);
+        LCDDisplay::inst().setLines("Wrong APN Settting", "MCC-MNC:", s);
         mdm.disconnect();
         mdm.powerOff();
         return 4;
@@ -115,26 +115,33 @@
 
     {
         DeviceInfo deviceInfo(mdm, devStatus);
-        MbedAgent agent(gps, mdm, lcdDisplay, deviceInfo, deviceMemory);
+        MbedAgent agent(gps, mdm, deviceInfo, deviceMemory);
 
-        lcdDisplay.setLines("Agent Init");
+        LCDDisplay::inst().setLines("Agent Init");
         if (!agent.init()) {
             mdm.disconnect();
             mdm.powerOff();
             return 5;
         }
-        lcdDisplay.setLines("Agent Run");
+        LCDDisplay::inst().setLines("Agent Run");
         int ret = 0;
         for (uint8_t tries = 3; tries; --tries) {
             ret = agent.run();
-            if (ret == 0)
+            if (ret == 0) {
+                char status[27];
+                const char* user= getUsername();
+                int len = strchr(user, '/')-user+sizeof("Tenant: ");
+                len = len <= 27 ? len : 27;
+                snprintf(status, len, "Tenant: %s", user);
+                LCDDisplay::inst().setFirstLine(status);
                 break;
+            }
         }
 
         switch (ret) {
-            case -1: lcdDisplay.setLines("Bootstrap error"); break;
-            case -2: lcdDisplay.setLines("Integrate failure"); break;
-            case -3: lcdDisplay.setLines("Config sync failure"); break;
+            case -1: LCDDisplay::inst().setLines("Bootstrap error"); break;
+            case -2: LCDDisplay::inst().setLines("Integrate failure"); break;
+            case -3: LCDDisplay::inst().setLines("Config sync failure"); break;
             default: agent.loop();
         }
         mdm.disconnect();