Official reference client implementation for Cumulocity SmartREST on u-blox C027.

Dependencies:   C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed

Fork of MbedSmartRestMain by Vincent Wochnik

Committer:
xinlei
Date:
Mon Apr 13 14:24:58 2015 +0000
Revision:
93:0acd11870c6a
Child:
96:5dfdc8568e9f
v2.1rc1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xinlei 93:0acd11870c6a 1 #include "LCDDisplay.h"
xinlei 93:0acd11870c6a 2 #include "logging.h"
xinlei 93:0acd11870c6a 3
xinlei 93:0acd11870c6a 4 #define DEF "\033[39m"
xinlei 93:0acd11870c6a 5 #define GRE "\033[32m"
xinlei 93:0acd11870c6a 6 #define CYA "\033[36m"
xinlei 93:0acd11870c6a 7
xinlei 93:0acd11870c6a 8 void LCDDisplay::_setLine(char *dest, const char* src, size_t n)
xinlei 93:0acd11870c6a 9 {
xinlei 93:0acd11870c6a 10 if (n == 0) {
xinlei 93:0acd11870c6a 11 return ;
xinlei 93:0acd11870c6a 12 } else if (src && src!=dest) {
xinlei 93:0acd11870c6a 13 strncpy(dest, src, n-1);
xinlei 93:0acd11870c6a 14 dest[n-1] = '\0';
xinlei 93:0acd11870c6a 15 }
xinlei 93:0acd11870c6a 16 }
xinlei 93:0acd11870c6a 17
xinlei 93:0acd11870c6a 18 void LCDDisplay::clear()
xinlei 93:0acd11870c6a 19 {
xinlei 93:0acd11870c6a 20 _setLine(firstLine, "", sizeof(firstLine));
xinlei 93:0acd11870c6a 21 _setLine(secondLine, "", sizeof(secondLine));
xinlei 93:0acd11870c6a 22 _setLine(thirdLine, "", sizeof(thirdLine));
xinlei 93:0acd11870c6a 23 _lcd.cls();
xinlei 93:0acd11870c6a 24 }
xinlei 93:0acd11870c6a 25
xinlei 93:0acd11870c6a 26 void LCDDisplay::setFirstLine(const char* p)
xinlei 93:0acd11870c6a 27 {
xinlei 93:0acd11870c6a 28 _setLine(firstLine, p, sizeof(firstLine));
xinlei 93:0acd11870c6a 29 lcdPrint(firstLine, secondLine, thirdLine);
xinlei 93:0acd11870c6a 30 }
xinlei 93:0acd11870c6a 31
xinlei 93:0acd11870c6a 32 void LCDDisplay::setSecondLine(const char* p)
xinlei 93:0acd11870c6a 33 {
xinlei 93:0acd11870c6a 34 _setLine(secondLine, p, sizeof(secondLine));
xinlei 93:0acd11870c6a 35 lcdPrint(firstLine, secondLine, thirdLine);
xinlei 93:0acd11870c6a 36 }
xinlei 93:0acd11870c6a 37
xinlei 93:0acd11870c6a 38 void LCDDisplay::setThirdLine(const char* p)
xinlei 93:0acd11870c6a 39 {
xinlei 93:0acd11870c6a 40 _setLine(thirdLine, p, sizeof(thirdLine));
xinlei 93:0acd11870c6a 41 lcdPrint(firstLine, secondLine, thirdLine);
xinlei 93:0acd11870c6a 42 }
xinlei 93:0acd11870c6a 43
xinlei 93:0acd11870c6a 44 void LCDDisplay::setLines(const char *p1, const char *p2, const char *p3)
xinlei 93:0acd11870c6a 45 {
xinlei 93:0acd11870c6a 46 _setLine(firstLine, p1, sizeof(firstLine));
xinlei 93:0acd11870c6a 47 if (p2)
xinlei 93:0acd11870c6a 48 _setLine(secondLine, p2, sizeof(secondLine));
xinlei 93:0acd11870c6a 49 else
xinlei 93:0acd11870c6a 50 _setLine(secondLine, "", sizeof(secondLine));
xinlei 93:0acd11870c6a 51
xinlei 93:0acd11870c6a 52 if (p3)
xinlei 93:0acd11870c6a 53 _setLine(thirdLine, p3, sizeof(thirdLine));
xinlei 93:0acd11870c6a 54 else
xinlei 93:0acd11870c6a 55 _setLine(thirdLine, "", sizeof(thirdLine));
xinlei 93:0acd11870c6a 56 lcdPrint(firstLine, secondLine, thirdLine);
xinlei 93:0acd11870c6a 57 }
xinlei 93:0acd11870c6a 58
xinlei 93:0acd11870c6a 59 void LCDDisplay::lcdPrint(const char *l1, const char *l2, const char *l3)
xinlei 93:0acd11870c6a 60 {
xinlei 93:0acd11870c6a 61 aDebug(GRE "io::lcdPrint" DEF "\r\n");
xinlei 93:0acd11870c6a 62
xinlei 93:0acd11870c6a 63 lcdLock.lock();
xinlei 93:0acd11870c6a 64 _lcd.cls();
xinlei 93:0acd11870c6a 65 _lcd.locate(0, 0);
xinlei 93:0acd11870c6a 66 _lcd.printf("%s\n", l1);
xinlei 93:0acd11870c6a 67 aDebug(GRE "> " CYA "%s\r\n" DEF, l1);
xinlei 93:0acd11870c6a 68
xinlei 93:0acd11870c6a 69 if (l2 != NULL) {
xinlei 93:0acd11870c6a 70 _lcd.printf("%s\n", l2);
xinlei 93:0acd11870c6a 71 aDebug(GRE "> " CYA "%s\r\n" DEF, l2);
xinlei 93:0acd11870c6a 72
xinlei 93:0acd11870c6a 73 if (l3 != NULL) {
xinlei 93:0acd11870c6a 74 _lcd.printf("%s\n", l3);
xinlei 93:0acd11870c6a 75 aDebug(GRE "> " CYA "%s\r\n" DEF, l3);
xinlei 93:0acd11870c6a 76 }
xinlei 93:0acd11870c6a 77 }
xinlei 93:0acd11870c6a 78 lcdLock.unlock();
xinlei 93:0acd11870c6a 79 }