Merge pull request #33 from phl0/nextion_display_sizes

Code differentiation for Nextion display sizes
This commit is contained in:
Jonathan Naylor
2016-04-28 09:36:14 +01:00
10 changed files with 44 additions and 8 deletions

View File

@@ -110,6 +110,7 @@ m_tftSerialBrightness(50U),
m_hd44780Rows(2U), m_hd44780Rows(2U),
m_hd44780Columns(16U), m_hd44780Columns(16U),
m_hd44780Pins(), m_hd44780Pins(),
m_nextionSize(),
m_nextionPort(), m_nextionPort(),
m_nextionBrightness(50U) m_nextionBrightness(50U)
{ {
@@ -348,7 +349,9 @@ bool CConf::read()
} }
} }
} else if (section == SECTION_NEXTION) { } else if (section == SECTION_NEXTION) {
if (::strcmp(key, "Port") == 0) if (::strcmp(key, "Size") == 0)
m_nextionSize = value;
else if (::strcmp(key, "Port") == 0)
m_nextionPort = value; m_nextionPort = value;
else if (::strcmp(key, "Brightness") == 0) else if (::strcmp(key, "Brightness") == 0)
m_nextionBrightness = (unsigned int)::atoi(value); m_nextionBrightness = (unsigned int)::atoi(value);
@@ -680,6 +683,11 @@ std::vector<unsigned int> CConf::getHD44780Pins() const
return m_hd44780Pins; return m_hd44780Pins;
} }
std::string CConf::getNextionSize() const
{
return m_nextionSize;
}
std::string CConf::getNextionPort() const std::string CConf::getNextionPort() const
{ {
return m_nextionPort; return m_nextionPort;

2
Conf.h
View File

@@ -119,6 +119,7 @@ public:
std::vector<unsigned int> getHD44780Pins() const; std::vector<unsigned int> getHD44780Pins() const;
// The Nextion section // The Nextion section
std::string getNextionSize() const;
std::string getNextionPort() const; std::string getNextionPort() const;
unsigned int getNextionBrightness() const; unsigned int getNextionBrightness() const;
@@ -200,6 +201,7 @@ private:
unsigned int m_hd44780Columns; unsigned int m_hd44780Columns;
std::vector<unsigned int> m_hd44780Pins; std::vector<unsigned int> m_hd44780Pins;
std::string m_nextionSize;
std::string m_nextionPort; std::string m_nextionPort;
unsigned int m_nextionBrightness; unsigned int m_nextionBrightness;
}; };

View File

@@ -90,5 +90,6 @@ Columns=16
Pins=115,113,112,111,110,109 Pins=115,113,112,111,110,109
[Nextion] [Nextion]
Size=2.4
Port=/dev/ttyAMA0 Port=/dev/ttyAMA0
Brightness=50 Brightness=50

View File

@@ -584,13 +584,15 @@ void CMMDVMHost::createDisplay()
m_display = new CTFTSerial(callsign, dmrid, port, brightness); m_display = new CTFTSerial(callsign, dmrid, port, brightness);
} else if (type == "Nextion") { } else if (type == "Nextion") {
std::string size = m_conf.getNextionSize();
std::string port = m_conf.getNextionPort(); std::string port = m_conf.getNextionPort();
unsigned int brightness = m_conf.getNextionBrightness(); unsigned int brightness = m_conf.getNextionBrightness();
LogInfo(" Size: %s\"", size.c_str());
LogInfo(" Port: %s", port.c_str()); LogInfo(" Port: %s", port.c_str());
LogInfo(" Brightness: %u", brightness); LogInfo(" Brightness: %u", brightness);
m_display = new CNextion(callsign, dmrid, port, brightness); m_display = new CNextion(callsign, dmrid, size, port, brightness);
#if defined(HD44780) #if defined(HD44780)
} else if (type == "HD44780") { } else if (type == "HD44780") {
unsigned int rows = m_conf.getHD44780Rows(); unsigned int rows = m_conf.getHD44780Rows();

View File

@@ -23,9 +23,10 @@
#include <cassert> #include <cassert>
#include <cstring> #include <cstring>
CNextion::CNextion(const std::string& callsign, unsigned int dmrid, const std::string& port, unsigned int brightness) : CNextion::CNextion(const std::string& callsign, unsigned int dmrid, const std::string& size, const std::string& port, unsigned int brightness) :
m_callsign(callsign), m_callsign(callsign),
m_dmrid(dmrid), m_dmrid(dmrid),
m_size(size),
m_serial(port, SERIAL_9600), m_serial(port, SERIAL_9600),
m_brightness(brightness), m_brightness(brightness),
m_mode(MODE_IDLE) m_mode(MODE_IDLE)
@@ -108,12 +109,28 @@ void CNextion::writeDStar(const char* my1, const char* my2, const char* your, co
::sprintf(text, "t0.txt=\"%s %.8s/%4.4s\"", type, my1, my2); ::sprintf(text, "t0.txt=\"%s %.8s/%4.4s\"", type, my1, my2);
sendCommand(text); sendCommand(text);
if (strcmp(m_size.c_str(), "2.4") == 0) {
::sprintf(text, "t1.txt=\"%.8s\"", your);
sendCommand(text);
if (strcmp(reflector, " ") != 0) {
::sprintf(text, "t2.txt=\"via %.8s\"", reflector);
sendCommand(text);
}
} else if (strcmp(m_size.c_str(), "3.2") == 0) {
::sprintf(text, "t1.txt=\"%.8s\"", your);
sendCommand(text);
if (strcmp(reflector, " ") != 0) {
::sprintf(text, "t2.txt=\"via %.8s\"", reflector);
sendCommand(text);
}
} else if (strcmp(m_size.c_str(), "3.5") == 0) {
if (strcmp(reflector, " ") == 0) { if (strcmp(reflector, " ") == 0) {
::sprintf(text, "t1.txt=\"%.8s\"", your); ::sprintf(text, "t1.txt=\"%.8s\"", your);
} else { } else {
::sprintf(text, "t1.txt=\"%.8s <- %-8s\"", your, reflector); ::sprintf(text, "t1.txt=\"%.8s <- %-8s\"", your, reflector);
} }
sendCommand(text); sendCommand(text);
}
m_mode = MODE_DSTAR; m_mode = MODE_DSTAR;
} }
@@ -122,6 +139,11 @@ void CNextion::clearDStar()
{ {
sendCommand("t0.txt=\"Listening\""); sendCommand("t0.txt=\"Listening\"");
sendCommand("t1.txt=\"\""); sendCommand("t1.txt=\"\"");
if (strcmp(m_size.c_str(), "2.4") == 0) {
sendCommand("t2.txt=\"\"");
} else if (strcmp(m_size.c_str(), "3.2") == 0) {
sendCommand("t2.txt=\"\"");
}
} }
void CNextion::writeDMR(unsigned int slotNo, const std::string& src, bool group, const std::string& dst, const char* type) void CNextion::writeDMR(unsigned int slotNo, const std::string& src, bool group, const std::string& dst, const char* type)

View File

@@ -28,7 +28,7 @@
class CNextion : public IDisplay class CNextion : public IDisplay
{ {
public: public:
CNextion(const std::string& callsign, unsigned int dmrid, const std::string& port, unsigned int brightness); CNextion(const std::string& callsign, unsigned int dmrid, const std::string& size, const std::string& port, unsigned int brightness);
virtual ~CNextion(); virtual ~CNextion();
virtual bool open(); virtual bool open();
@@ -52,6 +52,7 @@ public:
private: private:
std::string m_callsign; std::string m_callsign;
unsigned int m_dmrid; unsigned int m_dmrid;
std::string m_size;
CSerialController m_serial; CSerialController m_serial;
unsigned int m_brightness; unsigned int m_brightness;
unsigned char m_mode; unsigned char m_mode;

Binary file not shown.

Binary file not shown.

BIN
Nextion/MMDVM_3.2.HMI Normal file

Binary file not shown.

BIN
Nextion/MMDVM_3.2.tft Normal file

Binary file not shown.