From 2d35ee51217226379c9df52e2682296b45b7752a Mon Sep 17 00:00:00 2001 From: phl0 Date: Fri, 24 Jun 2016 13:17:02 +0200 Subject: [PATCH 1/4] Add a few more chars to display AM/PM indicator --- Nextion/MMDVM_2.4.HMI | Bin 273578 -> 273578 bytes Nextion/MMDVM_2.4.tft | Bin 348542 -> 348547 bytes Nextion/MMDVM_3.2.HMI | Bin 273578 -> 273578 bytes Nextion/MMDVM_3.2.tft | Bin 348588 -> 348593 bytes Nextion/MMDVM_3.5.HMI | Bin 629212 -> 629212 bytes Nextion/MMDVM_3.5.tft | Bin 700933 -> 700938 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Nextion/MMDVM_2.4.HMI b/Nextion/MMDVM_2.4.HMI index d3014ac753bf24f8f16a1b7f1724a743c0b3a883..4d2eefadd79563dfc453fad9af2bddaab47c5386 100644 GIT binary patch delta 36 ucmV+<0Nekn*$}GP5P*aMgaWh!kNlV390Y8azy}1}x7Ymx&n^V11c+`ng%D)` delta 41 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 diff --git a/Nextion/MMDVM_3.2.HMI b/Nextion/MMDVM_3.2.HMI index 25b07cec7b006717374e092c3a3f2553ba9939c9..e40638f2449c51c40a533453f07ffa4586e1a782 100644 GIT binary patch delta 42 ycmZ2=Q()Cifrb{w7N#xC{ePz4lVQo3et@0j&UQU979Ym#%Kw?0by>_r4GRH+)DQds delta 47 zcmV+~0MP%c*$}GP5P*aMgaWh!kNlT^3bxyA>^iI@luEgHc#jM@-dsx1~Ol1^JAO&?4dY=XoQ38CNl9L-FA=YP(g zb9X0m_fB4E9k;i2+Mvgd z_SU$KnN5wqP2}D*!$muP>le6qyvD`h^#dCRA{z&+jRW@U1I{Z2VgDQ_D{PHBlfz`n znX}&=@9c^+R=e({OF(^iB<&P$I-YR$A5XZyEQ}O~kIZ!cZ1v`Zy(xElczTvw5?LIM zn(e-3?Hd)&zs7wsylswKWR1x+ll5W4TsIbuNVz4}nmn`e({OjnogQflKTPpR_V_S1 zo0pk*EjO%9m<`**6K3+h_tp7nkyN;6E_b&Se{qGrdG2&;=AOXjDI={u{N?OFdkW1(%ziL48!q)pCn$GY079kVK!fMw$af)JCx^r3uVa zXJnPUkvjN>`W9-TTD_QhxL0naKHB9W`44$XdZWzy24C0k9qQpn)W%O_1C3#;dYf#d z`Djz`q7L?`_fiY5srOM2$K=N{8Z#fFTvkyJ-<1vWsX#-A{1f$YMn*^Ln5?2nd|y6H zJ?x-1UXU-+4F07)B~Q~h>|C=ai#mv^M^Xzh^%&}*GB+^8B289M9~)$gRu0G>c}|WV zWA zkuS+E>Z4ZeDn2!!!#{zA;KC;0n1&-c7Rutm9zgei}tU6KGbq(imP< zAD|grRF5byeG`qMR{aFE(L_DGDv!wjQXeDY#!{J)cghDT@BgPY{EB)wPHptaztT89 zQGY7W%OUCj z?-{S99+prWx63>hb=!@jfRW`sL-m=?d!O zdbwOH56P$HK6y-jOnu}O87t)Vayd<6y=X+1AG#l?w8-JuxoSI$ zG|6W9EOpSLZlxA>s@tiDZut@QaZx5JOwW?H%KK;%+vP8)hj*!sBl0MX;UmiXzfVj5 zrui6BU!o4|$>u;7wUDjOp&rWRb+V57XpqfXd0ifrXXIs9m{Voc#{yX=8;k*(IVACh zJV8BtLT!91&(jQ2Q_RX-nWk|pQQuA-)Tx(K3wNnkQV$#C^Rkor=#hh3$-UC-38rdT zD1RW=Qy)8Ir|gk~G>NfOjWei+Z&Dkz@>?{6CUvuXmd4Sc-cKELs^6p*-c}zBIC$ul z7i2-DdHbtn4fU{E{#@>qzmb2ZK0cQPSLu|jp-HTjk5Lc1sf|5yFU{brdhjaV|2973 zB#zNvGo42r6sQx_f~QW>BFt5%X&x5SEG(6Ev`f1y$I(Ks%s-D&0q h96Jpqe4&Vw4C-hUtJJ&H9qPewbB#N}iBCQ`{r@KZ)bs!V delta 3326 zcmXxn4Qy5A9mnzCJuh8zX}Qwc_V)4|PHCagDU{+WFRiq<$})$=5mB%kA`Im{aha3M zD0j>i!emNk?UB_WQYC@Z6?C>yS4+lpqBJ8^$n=;o6_gxjsIc3VfdS@F=f1*m(QqYp(&F zOZ=Afj+S>*6K=i9M+g6|ZSe7nB|eUA8)+ViHIF#WBkt=XUT0CXFZ8ma`=)rSd;DVW zP%PR|?v?KtOnE(nDgW@qn2Dae*&m1vMl0v|uQ`izqut-|+oD5red8P%-*$_?E$XlJ z6VdW{eyNi?frH&q&V0W#wmzzy&jT$*(fxBcd$@+LyT$hO?r3@~HycyePFKZFMqkzP z;_6VN>IHt4(>^(xHQ)b9G_=5-9#gWu+6O3)Ptve83byh-EuJx$@PdWa@4s*a5V>XD{#ETU=bQn#u9OkE68 zgG(|m$M#GbV3AxWo8^9M27O#YoR$Bh2F1DdMn;A-g?Z{)StlE)hi|HHrw$gW7gK`` zayt#sA&<(x$uDKmc>BJYo3-3c4SqmfJS?}+1h%Vp%3ZV&`_(T~4+qtq)WNUSN2o!+ z{6zW*`yonY9X0r_+#;XJXz7w4&;UcyzfQ+w9Sw1xe4HBWp)Q`6FVHmpp*|-+rb%2? z$0pbh>Qfil)InUGOARU}WbCp~n^iQxR@tsej~tK}il%q66VF8c{QO(6*33ahlE~9BYr*4;fX%gM)H>ihR^-=2Jcj|ZOB%D)! zO!F~Dv+$Ml3xN_$l?&wqG&_UMTwFXv<9L*&(5l``6L>}4L({mdc8YA@O5(m>m z!4BCW`)GhOa!iwgiT0W***Hi)+B40 ztd}cjh{t3*HRz%If|tECjjJ@{A{N>gJeq`|J|@d@%`2#f8R}Wo!EALk^|3?l z()?-a;Td%sb?}_Jo$@Ck2V~{~mjF4X)(XmRL%B*mF89dSX@FDmg3Kw?DH`HiaxFD@ zg1Xo)chWT8SNF>gX%a)!$N7v#!_>n?^(b{Prv5LTf|4orc4f2>^Jo_8JDnqCr{G= zmu10p+q31JauW^lq&!3o-lZ;%%M&z#)0EHuS&jZl3o)wxl6ttRj#b#Vcd3gkYEUW{ z$R-+Ki)_{8usk7$r1y1us)Po(MK;MT)(l#?gm_J!q6VK)7bEf_O{4k-JDDqMXcBj+ z@1Y)=)GMfimFm^hV5|I zSWL69R5sD6$jF!Eahi=kQWt-sah#<|TvDUTK7ffTl=6jQZqjI?aja3ltnN||NBqA@ LiC262rT+f|Pg&16 diff --git a/Nextion/MMDVM_3.5.HMI b/Nextion/MMDVM_3.5.HMI index 0e06f3100fa645e23f554b4789f0348d81dc3ac6..f56a04d7b27434c1a68be65476ec23baa51c1713 100644 GIT binary patch delta 70 zcmV-M0J;C%vnJfLCV+$igaU*Egam{Iga(8Mgb1_=!D$B?0096B|1+2Ga0xE~8MjY@ c3Bm!FU}p*0x1VAO4FR{HZ3#Fm1bhEvC~j96S^xk5 delta 43 zcmcb!S?$hdwT2eP7N!>F7M2#)7Pc1l7LF~P2Q#OCN#o4fuA9ZVTAyX|ok?B*d5jSJ diff --git a/Nextion/MMDVM_3.5.tft b/Nextion/MMDVM_3.5.tft index 41d66cb7ae4b684fb093b9c8ed2306fad5c22676..b190b219b62efd01ed30e7856c25512dff3e9384 100644 GIT binary patch delta 3411 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 R Date: Fri, 24 Jun 2016 16:08:28 +0100 Subject: [PATCH 2/4] Time/date format by system locale (HD44780 & Nextion) --- Conf.cpp | 16 ---------------- Conf.h | 4 ---- HD44780.cpp | 31 +++++++++++-------------------- HD44780.h | 3 +-- MMDVM.ini | 2 -- MMDVMHost.cpp | 6 ++---- Nextion.cpp | 19 +++---------------- Nextion.h | 3 +-- 8 files changed, 18 insertions(+), 66 deletions(-) diff --git a/Conf.cpp b/Conf.cpp index 1dd916c..4e877f9 100644 --- a/Conf.cpp +++ b/Conf.cpp @@ -136,12 +136,10 @@ m_hd44780PWMBright(), m_hd44780PWMDim(), m_hd44780DisplayClock(false), m_hd44780UTC(false), -m_hd44780DateFormat("British"), m_nextionPort("/dev/ttyAMA0"), m_nextionBrightness(50U), m_nextionDisplayClock(false), m_nextionUTC(false), -m_nextionDateFormat("British"), m_nextionIdleBrightness(20U), m_oledType(3), m_oledBrightness(0), @@ -452,8 +450,6 @@ bool CConf::read() m_hd44780DisplayClock = ::atoi(value) == 1; else if (::strcmp(key, "UTC") == 0) m_hd44780UTC = ::atoi(value) == 1; - else if (::strcmp(key, "DateFormat") == 0) - m_hd44780DateFormat = value; else if (::strcmp(key, "Pins") == 0) { char* p = ::strtok(value, ",\r\n"); while (p != NULL) { @@ -471,8 +467,6 @@ bool CConf::read() m_nextionDisplayClock = ::atoi(value) == 1; else if (::strcmp(key, "UTC") == 0) m_nextionUTC = ::atoi(value) == 1; - else if (::strcmp(key, "DateFormat") == 0) - m_nextionDateFormat = value; else if (::strcmp(key, "IdleBrightness") == 0) m_nextionIdleBrightness = (unsigned int)::atoi(value); } else if (section == SECTION_OLED) { @@ -925,11 +919,6 @@ bool CConf::getHD44780UTC() const return m_hd44780UTC; } -std::string CConf::getHD44780DateFormat() const -{ - return m_hd44780DateFormat; -} - std::string CConf::getNextionPort() const { return m_nextionPort; @@ -950,11 +939,6 @@ bool CConf::getNextionUTC() const return m_nextionUTC; } -std::string CConf::getNextionDateFormat() const -{ - return m_nextionDateFormat; -} - unsigned int CConf::getNextionIdleBrightness() const { return m_nextionIdleBrightness; diff --git a/Conf.h b/Conf.h index 5160328..16eb6fd 100644 --- a/Conf.h +++ b/Conf.h @@ -143,14 +143,12 @@ public: unsigned int getHD44780PWMDim() const; bool getHD44780DisplayClock() const; bool getHD44780UTC() const; - std::string getHD44780DateFormat() const; // The Nextion section std::string getNextionPort() const; unsigned int getNextionBrightness() const; bool getNextionDisplayClock() const; bool getNextionUTC() const; - std::string getNextionDateFormat() const; unsigned int getNextionIdleBrightness() const; // The OLED section @@ -260,13 +258,11 @@ private: unsigned int m_hd44780PWMDim; bool m_hd44780DisplayClock; bool m_hd44780UTC; - std::string m_hd44780DateFormat; std::string m_nextionPort; unsigned int m_nextionBrightness; bool m_nextionDisplayClock; bool m_nextionUTC; - std::string m_nextionDateFormat; unsigned int m_nextionIdleBrightness; unsigned char m_oledType; diff --git a/HD44780.cpp b/HD44780.cpp index 7721ea7..ac397e6 100644 --- a/HD44780.cpp +++ b/HD44780.cpp @@ -36,7 +36,7 @@ char m_buffer2[128U]; char m_buffer3[128U]; char m_buffer4[128U]; -CHD44780::CHD44780(unsigned int rows, unsigned int cols, const std::string& callsign, unsigned int dmrid, const std::vector& pins, bool pwm, unsigned int pwmPin, unsigned int pwmBright, unsigned int pwmDim, bool displayClock, bool utc, bool duplex, const std::string& dateformat) : +CHD44780::CHD44780(unsigned int rows, unsigned int cols, const std::string& callsign, unsigned int dmrid, const std::vector& pins, bool pwm, unsigned int pwmPin, unsigned int pwmBright, unsigned int pwmDim, bool displayClock, bool utc, bool duplex) : CDisplay(), m_rows(rows), m_cols(cols), @@ -56,7 +56,6 @@ m_displayClock(displayClock), m_utc(utc), m_duplex(duplex), //m_duplex(true), // uncomment to force duplex display for testing! -m_dateformat(dateformat), m_fd(-1), m_dmr(false), m_clockDisplayTimer(1000U, 0U, 75U), // Update the clock display every 75ms @@ -719,29 +718,21 @@ void CHD44780::clockInt(unsigned int ms) Time = localtime(¤tTime); } - int Day = Time->tm_mday; - int Month = Time->tm_mon + 1; - int Year = Time->tm_year + 1900; - int Hour = Time->tm_hour; - int Min = Time->tm_min; - int Sec = Time->tm_sec; - + setlocale(LC_ALL,""); + strftime(m_buffer1, 128, "%X", Time); // Time + strftime(m_buffer2, 128, "%x", Time); // Date + if (m_cols == 16U && m_rows == 2U) { - ::lcdPosition(m_fd, m_cols - 8, 1); + ::lcdPosition(m_fd, m_cols - 10, 1); + ::lcdPrintf(m_fd, "%s%.*s", strlen(m_buffer1) > 8 ? "" : " ", 10, m_buffer1); } else { - ::lcdPosition(m_fd, (m_cols - 8) / 2, m_rows == 2 ? 1 : 2); + ::lcdPosition(m_fd, (m_cols - strlen(m_buffer1) > 8 ? 10 : 8) / 2, m_rows == 2 ? 1 : 2); + ::lcdPrintf(m_fd, "%.*s", strlen(m_buffer1) > 8 ? 10 : 8, m_buffer1); } - ::lcdPrintf(m_fd, "%02d:%02d:%02d", Hour, Min, Sec); if (m_cols != 16U && m_rows != 2U) { - ::lcdPosition(m_fd, (m_cols - 8) / 2, m_rows == 2 ? 0 : 1); - if (strcmp(m_dateformat.c_str(), "British") == 0) { - ::lcdPrintf(m_fd, "%02d/%02d/%2d", Day, Month, Year%100); - } else if (strcmp(m_dateformat.c_str(), "German") == 0) { - ::lcdPrintf(m_fd, "%02d.%02d.%2d", Day, Month, Year%100); - } else if (strcmp(m_dateformat.c_str(), "American") == 0) { - ::lcdPrintf(m_fd, "%02d/%02d/%2d", Month, Day, Year%100); - } + ::lcdPosition(m_fd, (m_cols - strlen(m_buffer2)) / 2, m_rows == 2 ? 0 : 1); + ::lcdPrintf(m_fd, "%s", m_buffer2); } m_clockDisplayTimer.start(); } diff --git a/HD44780.h b/HD44780.h index ae999ae..7cd3805 100644 --- a/HD44780.h +++ b/HD44780.h @@ -53,7 +53,7 @@ enum ADAFRUIT_COLOUR { class CHD44780 : public CDisplay { public: - CHD44780(unsigned int rows, unsigned int cols, const std::string& callsign, unsigned int dmrid, const std::vector& pins, bool pwm, unsigned int pwmPin, unsigned int pwmBright, unsigned int pwmDim, bool displayClock, bool utc, bool duplex, const std::string& dateformat); + CHD44780(unsigned int rows, unsigned int cols, const std::string& callsign, unsigned int dmrid, const std::vector& pins, bool pwm, unsigned int pwmPin, unsigned int pwmBright, unsigned int pwmDim, bool displayClock, bool utc, bool duplex); virtual ~CHD44780(); virtual bool open(); @@ -94,7 +94,6 @@ private: bool m_displayClock; bool m_utc; bool m_duplex; - std::string m_dateformat; int m_fd; bool m_dmr; CTimer m_clockDisplayTimer; diff --git a/MMDVM.ini b/MMDVM.ini index a4b0031..518ee35 100644 --- a/MMDVM.ini +++ b/MMDVM.ini @@ -120,14 +120,12 @@ PWMBright=100 PWMDim=16 DisplayClock=1 UTC=0 -DateFormat=British [Nextion] Port=/dev/ttyAMA0 Brightness=50 DisplayClock=1 UTC=0 -DateFormat=British IdleBrightness=20 [OLED] diff --git a/MMDVMHost.cpp b/MMDVMHost.cpp index c0fd30d..1d2d114 100644 --- a/MMDVMHost.cpp +++ b/MMDVMHost.cpp @@ -860,7 +860,6 @@ void CMMDVMHost::createDisplay() unsigned int brightness = m_conf.getNextionBrightness(); bool displayClock = m_conf.getNextionDisplayClock(); bool utc = m_conf.getNextionUTC(); - std::string dateformat = m_conf.getNextionDateFormat(); unsigned int idleBrightness = m_conf.getNextionIdleBrightness(); LogInfo(" Port: %s", port.c_str()); @@ -870,7 +869,7 @@ void CMMDVMHost::createDisplay() LogInfo(" Display UTC: %s", utc ? "yes" : "no"); LogInfo(" Idle Brightness: %u", idleBrightness); - m_display = new CNextion(m_callsign, dmrid, port, brightness, displayClock, utc, dateformat, idleBrightness); + m_display = new CNextion(m_callsign, dmrid, port, brightness, displayClock, utc, idleBrightness); #if defined(HD44780) } else if (type == "HD44780") { unsigned int rows = m_conf.getHD44780Rows(); @@ -882,7 +881,6 @@ void CMMDVMHost::createDisplay() unsigned int pwmDim = m_conf.getHD44780PWMDim(); bool displayClock = m_conf.getHD44780DisplayClock(); bool utc = m_conf.getHD44780UTC(); - std::string dateformat = m_conf.getHD44780DateFormat(); if (pins.size() == 6U) { LogInfo(" Rows: %u", rows); @@ -900,7 +898,7 @@ void CMMDVMHost::createDisplay() if (displayClock) LogInfo(" Display UTC: %s", utc ? "yes" : "no"); - m_display = new CHD44780(rows, columns, m_callsign, dmrid, pins, pwm, pwmPin, pwmBright, pwmDim, displayClock, utc, m_duplex, dateformat); + m_display = new CHD44780(rows, columns, m_callsign, dmrid, pins, pwm, pwmPin, pwmBright, pwmDim, displayClock, utc, m_duplex); } #endif #if defined(OLED) diff --git a/Nextion.cpp b/Nextion.cpp index 676b2a0..4d74c38 100644 --- a/Nextion.cpp +++ b/Nextion.cpp @@ -24,7 +24,7 @@ #include #include -CNextion::CNextion(const std::string& callsign, unsigned int dmrid, const std::string& port, unsigned int brightness, bool displayClock, bool utc, const std::string& dateformat, unsigned int idleBrightness) : +CNextion::CNextion(const std::string& callsign, unsigned int dmrid, const std::string& port, unsigned int brightness, bool displayClock, bool utc, unsigned int idleBrightness) : CDisplay(), m_callsign(callsign), m_dmrid(dmrid), @@ -33,7 +33,6 @@ m_brightness(brightness), m_mode(MODE_IDLE), m_displayClock(displayClock), m_utc(utc), -m_dateformat(dateformat), m_idleBrightness(idleBrightness), m_clockDisplayTimer(1000U, 0U, 400U) { @@ -247,21 +246,9 @@ void CNextion::clockInt(unsigned int ms) else Time = ::localtime(¤tTime); - int Day = Time->tm_mday; - int Month = Time->tm_mon + 1; - int Year = Time->tm_year + 1900; - int Hour = Time->tm_hour; - int Min = Time->tm_min; - int Sec = Time->tm_sec; - + setlocale(LC_ALL,""); char text[50U]; - if (strcmp(m_dateformat.c_str(), "British") == 0) { - ::sprintf(text, "t2.txt=\"%02d:%02d:%02d %02d/%02d/%2d\"", Hour, Min, Sec, Day, Month, Year % 100); - } else if (strcmp(m_dateformat.c_str(), "German") == 0) { - ::sprintf(text, "t2.txt=\"%02d:%02d:%02d %02d.%02d.%2d\"", Hour, Min, Sec, Day, Month, Year % 100); - } else if (strcmp(m_dateformat.c_str(), "American") == 0) { - ::sprintf(text, "t2.txt=\"%02d:%02d:%02d %02d/%02d/%2d\"", Hour, Min, Sec, Month, Day, Year % 100); - } + strftime(text, 50, "t2.txt=\"%x %X\"", Time); sendCommand(text); m_clockDisplayTimer.start(); // restart the clock display timer diff --git a/Nextion.h b/Nextion.h index f7de717..38fa55f 100644 --- a/Nextion.h +++ b/Nextion.h @@ -29,7 +29,7 @@ class CNextion : public CDisplay { public: - CNextion(const std::string& callsign, unsigned int dmrid, const std::string& port, unsigned int brightness, bool displayClock, bool utc, const std::string& dateformat, unsigned int idleBrightness); + CNextion(const std::string& callsign, unsigned int dmrid, const std::string& port, unsigned int brightness, bool displayClock, bool utc, unsigned int idleBrightness); virtual ~CNextion(); virtual bool open(); @@ -60,7 +60,6 @@ private: unsigned char m_mode; bool m_displayClock; bool m_utc; - std::string m_dateformat; unsigned int m_idleBrightness; CTimer m_clockDisplayTimer; From 06af87f0299bae68eae1ef12e7e30ea544ccfe78 Mon Sep 17 00:00:00 2001 From: Tony Corbett G0WFV Date: Fri, 24 Jun 2016 16:58:01 +0100 Subject: [PATCH 3/4] Fix centering of 8 character of times on HD44780 --- HD44780.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HD44780.cpp b/HD44780.cpp index ac397e6..7b6ab96 100644 --- a/HD44780.cpp +++ b/HD44780.cpp @@ -726,8 +726,8 @@ void CHD44780::clockInt(unsigned int ms) ::lcdPosition(m_fd, m_cols - 10, 1); ::lcdPrintf(m_fd, "%s%.*s", strlen(m_buffer1) > 8 ? "" : " ", 10, m_buffer1); } else { - ::lcdPosition(m_fd, (m_cols - strlen(m_buffer1) > 8 ? 10 : 8) / 2, m_rows == 2 ? 1 : 2); - ::lcdPrintf(m_fd, "%.*s", strlen(m_buffer1) > 8 ? 10 : 8, m_buffer1); + ::lcdPosition(m_fd, (m_cols - strlen(m_buffer1) == 8 ? 8 : 10) / 2, m_rows == 2 ? 1 : 2); + ::lcdPrintf(m_fd, "%.*s", strlen(m_buffer1) == 8 ? 8 : 10, m_buffer1); } if (m_cols != 16U && m_rows != 2U) { From 7d31554488d6094acb773ebbdd7d77d784b23a24 Mon Sep 17 00:00:00 2001 From: phl0 Date: Fri, 24 Jun 2016 18:14:48 +0200 Subject: [PATCH 4/4] Correct time offset --- HD44780.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HD44780.cpp b/HD44780.cpp index 7b6ab96..d9ecad1 100644 --- a/HD44780.cpp +++ b/HD44780.cpp @@ -726,7 +726,7 @@ void CHD44780::clockInt(unsigned int ms) ::lcdPosition(m_fd, m_cols - 10, 1); ::lcdPrintf(m_fd, "%s%.*s", strlen(m_buffer1) > 8 ? "" : " ", 10, m_buffer1); } else { - ::lcdPosition(m_fd, (m_cols - strlen(m_buffer1) == 8 ? 8 : 10) / 2, m_rows == 2 ? 1 : 2); + ::lcdPosition(m_fd, (m_cols - (strlen(m_buffer1) == 8 ? 8 : 10)) / 2, m_rows == 2 ? 1 : 2); ::lcdPrintf(m_fd, "%.*s", strlen(m_buffer1) == 8 ? 8 : 10, m_buffer1); }