From c989a36e21cc2567c4225190926bc17522e125f7 Mon Sep 17 00:00:00 2001 From: stevet Date: Wed, 8 Nov 2023 15:28:27 -0500 Subject: [PATCH 1/2] new LCD '@' message for JMRI Virtual LCD USB-only for now --- StringFormatter.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/StringFormatter.cpp b/StringFormatter.cpp index c475ef0..cd74030 100644 --- a/StringFormatter.cpp +++ b/StringFormatter.cpp @@ -39,12 +39,12 @@ void StringFormatter::diag( const FSH* input...) { void StringFormatter::lcd(byte row, const FSH* input...) { va_list args; - // Issue the LCD as a diag first - send(&USB_SERIAL,F("<* LCD%d:"),row); + // Copy to serial client for display 0 <@ display# line# message> + send(&USB_SERIAL,F("<@ 0 %d "),row); va_start(args, input); send2(&USB_SERIAL,input,args); - send(&USB_SERIAL,F(" *>\n")); - + send(&USB_SERIAL,F(">\n")); + DisplayInterface::setRow(row); va_start(args, input); send2(DisplayInterface::getDisplayHandler(),input,args); @@ -53,6 +53,12 @@ void StringFormatter::lcd(byte row, const FSH* input...) { void StringFormatter::lcd2(uint8_t display, byte row, const FSH* input...) { va_list args; + // Copy to serial client <@ display# line# message> + send(&USB_SERIAL,F("<@ %d %d "),display,row); + va_start(args, input); + send2(&USB_SERIAL,input,args); + send(&USB_SERIAL,F(">\n")); + DisplayInterface::setRow(display, row); va_start(args, input); send2(DisplayInterface::getDisplayHandler(),input,args); From 9df9e8c93499c4ef303368e0e68217bde3bb60b6 Mon Sep 17 00:00:00 2001 From: mstevetodd Date: Fri, 10 Nov 2023 11:57:48 -0500 Subject: [PATCH 2/2] support leading/trailing spaces in LCD message text --- StringFormatter.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/StringFormatter.cpp b/StringFormatter.cpp index cd74030..4ed597e 100644 --- a/StringFormatter.cpp +++ b/StringFormatter.cpp @@ -39,11 +39,11 @@ void StringFormatter::diag( const FSH* input...) { void StringFormatter::lcd(byte row, const FSH* input...) { va_list args; - // Copy to serial client for display 0 <@ display# line# message> - send(&USB_SERIAL,F("<@ 0 %d "),row); + // Copy to serial client for display 0 <@ display# line# "message"> + send(&USB_SERIAL,F("<@ 0 %d \""),row); va_start(args, input); send2(&USB_SERIAL,input,args); - send(&USB_SERIAL,F(">\n")); + send(&USB_SERIAL,F("\">\n")); DisplayInterface::setRow(row); va_start(args, input); @@ -53,11 +53,11 @@ void StringFormatter::lcd(byte row, const FSH* input...) { void StringFormatter::lcd2(uint8_t display, byte row, const FSH* input...) { va_list args; - // Copy to serial client <@ display# line# message> - send(&USB_SERIAL,F("<@ %d %d "),display,row); + // Copy to serial client <@ display# line# "message"> + send(&USB_SERIAL,F("<@ %d %d \""),display,row); va_start(args, input); send2(&USB_SERIAL,input,args); - send(&USB_SERIAL,F(">\n")); + send(&USB_SERIAL,F("\">\n")); DisplayInterface::setRow(display, row); va_start(args, input);