1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-30 03:26:13 +01:00
CommandStation-EX/LCD_LCD.h
Asbelos 0e3046e24f
Lcd experimental (#46)
* LCD/OLED Implementation
* OLED basic working 32
*132 display
* LCD/OLED startup ok
* Simplified setup
* Missing freememory include
* Format Width
Allow right padding number width in String format
* Intermediate scroll
* Compile issues with no LCD
* Clean buffers at startup
* Support for format left padded numbers
* Smarter Scrolling
And forced start messages
Free Ram in slot 2
* LCD tidying
Neater setup block in .ino.
Dropped unnecessary code
No-scroll if display not full
* Missing %E format support
This is used in WifiInterface checkForOK
* Wifi correction and memory guard
2020-10-12 14:32:47 -04:00

38 lines
1.5 KiB
C

/*
* © 2020, Chris Harlow. All rights reserved.
*
* This file is part of CommandStation-EX
*
* This is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* It is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with CommandStation. If not, see <https://www.gnu.org/licenses/>.
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCDDriver(LCD_DRIVER); // set the LCD address, cols, rows
// DEVICE SPECIFIC LCDDisplay Implementation for LCD_DRIVER
LCDDisplay::LCDDisplay() {
lcdDisplay=this;
LCDDriver.init();
LCDDriver.backlight();
interfake(LCD_DRIVER);
clear();
}
void LCDDisplay::interfake(int p1, int p2, int p3) {(void)p1; (void)p2; lcdRows=p3; }
void LCDDisplay::clearNative() {LCDDriver.clear();}
void LCDDisplay::setRowNative(byte row) {
LCDDriver.setCursor(0, row);
LCDDriver.print(F(" "));
LCDDriver.setCursor(0, row);
}
void LCDDisplay::writeNative(char * b){ LCDDriver.print(b); }
void LCDDisplay::displayNative() { LCDDriver.display(); }