Add files via upload
-Added definition of 5th line in OLED.h -Added new logos for D-Star, Fusion, DMR and Idle Screen -Relocated text for better reading in all modes (moved everything down a line) -Added a line to make the logo of the active mode scroll. (you have to un-comment it; it is at the very end of OLED.cpp) -D-Star screen organised to show the info in a more visual way
This commit is contained in:
parent
1437fca2f2
commit
ed6c4cb854
2 changed files with 191 additions and 127 deletions
316
OLED.cpp
316
OLED.cpp
|
@ -18,63 +18,90 @@
|
|||
|
||||
#include "OLED.h"
|
||||
|
||||
//Logo MMDVM for Idle Screen
|
||||
static unsigned char logo_glcd_bmp[] =
|
||||
{ 0b00101011, 0b11010100,
|
||||
0b01010111, 0b11101010,
|
||||
0b01010111, 0b11101010,
|
||||
0b00101011, 0b11010100,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000001, 0b10000000,
|
||||
0b00000000, 0b00000000 };
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xFE, 0x01, 0xFF, 0x3F, 0xC0, 0x1F, 0xE7, 0xFF, 0xFC, 0xF8, 0x00, 0xF9, 0xFC, 0x03, 0xFE,
|
||||
0x00, 0xFE, 0x01, 0xFF, 0x3F, 0xE0, 0x3F, 0xE4, 0x00, 0x02, 0x48, 0x00, 0x91, 0xFC, 0x03, 0xFE,
|
||||
0x01, 0xFF, 0x03, 0xFF, 0x3F, 0xE0, 0x3F, 0xE5, 0xFF, 0xF1, 0x24, 0x01, 0x33, 0xFE, 0x07, 0xFE,
|
||||
0x03, 0xEF, 0x03, 0xCF, 0x3D, 0xF0, 0x7D, 0xE5, 0x00, 0x09, 0x24, 0x01, 0x27, 0xDE, 0x07, 0x9E,
|
||||
0x03, 0xCF, 0x87, 0xCF, 0x3C, 0xF0, 0x79, 0xE5, 0x00, 0x05, 0x12, 0x02, 0x47, 0x9F, 0x0F, 0x9E,
|
||||
0x07, 0xC7, 0x87, 0x8F, 0x3C, 0xF8, 0xF9, 0xE5, 0x00, 0x05, 0x12, 0x02, 0x4F, 0x8F, 0x0F, 0x1E,
|
||||
0x07, 0x83, 0xCF, 0x8F, 0x3C, 0x78, 0xF1, 0xE5, 0x00, 0x05, 0x09, 0x04, 0x8F, 0x07, 0x9F, 0x1E,
|
||||
0x0F, 0x83, 0xCF, 0x0F, 0x3C, 0x7D, 0xF1, 0xE5, 0x00, 0x05, 0x09, 0x04, 0x9F, 0x07, 0x9E, 0x1E,
|
||||
0x0F, 0x01, 0xFF, 0x0F, 0x3C, 0x3F, 0xE1, 0xE5, 0x00, 0x05, 0x04, 0x89, 0x1E, 0x03, 0xFE, 0x1E,
|
||||
0x1F, 0x01, 0xFE, 0x0F, 0x3C, 0x1F, 0xE1, 0xE5, 0x00, 0x09, 0x04, 0x89, 0x3E, 0x03, 0xFC, 0x1E,
|
||||
0x1E, 0x00, 0xFE, 0x0F, 0x3C, 0x1F, 0xC1, 0xE5, 0xFF, 0xF1, 0x02, 0x52, 0x3C, 0x01, 0xFC, 0x1E,
|
||||
0x3C, 0x00, 0xFC, 0x0F, 0x3C, 0x0F, 0x81, 0xE4, 0x00, 0x02, 0x02, 0x22, 0x78, 0x01, 0xF8, 0x1E,
|
||||
0x7C, 0x00, 0x7C, 0x0F, 0x3C, 0x0F, 0x81, 0xE7, 0xFF, 0xFC, 0x01, 0xFC, 0xF8, 0x00, 0xF8, 0x1E,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
//DMR 48x16 px
|
||||
static unsigned char logo_dmr_bmp[] =
|
||||
{ 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111,
|
||||
0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000001,
|
||||
0b10111111, 0b11111000, 0b01111000, 0b00011110, 0b01111111, 0b11100001,
|
||||
0b10111111, 0b11111110, 0b01111100, 0b00111110, 0b01100000, 0b00011001,
|
||||
0b10110000, 0b00001110, 0b01100110, 0b01100110, 0b01100000, 0b00011001,
|
||||
0b10110000, 0b00000110, 0b01100011, 0b11000110, 0b01100000, 0b00011001,
|
||||
0b10110000, 0b00000110, 0b01100001, 0b10000110, 0b01100000, 0b00011001,
|
||||
0b10110000, 0b00000110, 0b01100000, 0b00000110, 0b01111111, 0b11111001,
|
||||
0b10110000, 0b00000110, 0b01100000, 0b00000110, 0b01111000, 0b00000001,
|
||||
0b10110000, 0b00000110, 0b01100000, 0b00000110, 0b01101100, 0b00000001,
|
||||
0b10110000, 0b00000110, 0b01100000, 0b00000110, 0b01100110, 0b00000001,
|
||||
0b10110000, 0b00001110, 0b01100000, 0b00000110, 0b01100011, 0b00000001,
|
||||
0b10111111, 0b11111110, 0b01100000, 0b00000110, 0b01100001, 0b10000001,
|
||||
0b10011111, 0b11111000, 0b01100000, 0b00000110, 0b01100000, 0b11000001,
|
||||
0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000001,
|
||||
0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111
|
||||
};
|
||||
|
||||
//D-Star 64x16 px
|
||||
//Logo D-Star 128x16 px
|
||||
static unsigned char logo_dstar_bmp[] =
|
||||
{ 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111,
|
||||
0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000001,
|
||||
0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000001,
|
||||
0b10000001, 0b11111100, 0b00000000, 0b00111100, 0b00000000, 0b00000000, 0b00000000, 0b01000001,
|
||||
0b10000001, 0b00000010, 0b00000000, 0b01000010, 0b01000000, 0b00000000, 0b00000000, 0b01000001,
|
||||
0b10000001, 0b00000010, 0b00000000, 0b01000000, 0b01000000, 0b00000000, 0b00000000, 0b01000001,
|
||||
0b10000001, 0b00000010, 0b00000000, 0b01000000, 0b01000000, 0b00000000, 0b00000000, 0b01000001,
|
||||
0b10000001, 0b00000010, 0b01111111, 0b00111100, 0b01111000, 0b00111100, 0b00111100, 0b01000001,
|
||||
0b10000001, 0b00000010, 0b00000000, 0b00000010, 0b01000000, 0b00000010, 0b01000010, 0b01000001,
|
||||
0b10000001, 0b00000010, 0b00000000, 0b00000010, 0b01000000, 0b00111110, 0b01000000, 0b01000001,
|
||||
0b10000001, 0b00000010, 0b00000000, 0b00000010, 0b01000000, 0b01000010, 0b01000000, 0b00000001,
|
||||
0b10000001, 0b00000010, 0b00000000, 0b01000010, 0b01000010, 0b01000010, 0b01000000, 0b01000001,
|
||||
0b10000001, 0b11111100, 0b00000000, 0b00111100, 0b00111100, 0b00111100, 0b01000000, 0b01000001,
|
||||
0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000001,
|
||||
0b10000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000001,
|
||||
0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111, 0b11111111
|
||||
};
|
||||
{
|
||||
0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x60, 0x03, 0xFF, 0xC0, 0x00, 0x00, 0x1F, 0xF0, 0xFF, 0xFE, 0x07, 0x80, 0x3F, 0xF8,
|
||||
0x00, 0x00, 0xC0, 0x07, 0xC1, 0xE0, 0x00, 0x00, 0x78, 0x7C, 0xFF, 0xFE, 0x0F, 0xC0, 0x3F, 0xFC,
|
||||
0x00, 0x01, 0xC0, 0x07, 0x80, 0xF0, 0x00, 0x00, 0xE0, 0x3C, 0x07, 0x80, 0x0F, 0xC0, 0x78, 0x0E,
|
||||
0x00, 0x03, 0xC0, 0x07, 0x80, 0x70, 0x00, 0x00, 0xE0, 0x38, 0x07, 0x00, 0x1B, 0xC0, 0x78, 0x0E,
|
||||
0x00, 0x07, 0xC0, 0x07, 0x80, 0x70, 0x00, 0x01, 0xE0, 0x00, 0x07, 0x00, 0x33, 0xC0, 0x70, 0x1E,
|
||||
0x07, 0xFF, 0xFE, 0x07, 0x00, 0x70, 0x00, 0x01, 0xF8, 0x00, 0x07, 0x00, 0x63, 0xC0, 0x70, 0x3C,
|
||||
0x01, 0xFF, 0xF8, 0x0F, 0x00, 0x71, 0xFF, 0xE0, 0xFF, 0xF0, 0x0E, 0x00, 0xE1, 0xE0, 0xFF, 0xE0,
|
||||
0x00, 0x7F, 0xE0, 0x0F, 0x00, 0x60, 0x00, 0x00, 0x03, 0xF8, 0x0E, 0x00, 0xC1, 0xE0, 0xFF, 0xE0,
|
||||
0x00, 0x3F, 0x80, 0x0E, 0x00, 0xE0, 0x00, 0x00, 0x00, 0xF0, 0x0E, 0x01, 0xFF, 0xE0, 0xE0, 0x70,
|
||||
0x00, 0x7F, 0x00, 0x1E, 0x00, 0xE0, 0x00, 0x03, 0x80, 0x70, 0x0C, 0x03, 0xFC, 0xE0, 0xE0, 0x30,
|
||||
0x00, 0xFF, 0x00, 0x1E, 0x01, 0xC0, 0x00, 0x07, 0x80, 0xE0, 0x1C, 0x07, 0x00, 0xE1, 0xE0, 0x38,
|
||||
0x01, 0xEF, 0x00, 0x1C, 0x07, 0x80, 0x00, 0x07, 0xC1, 0xE0, 0x1C, 0x06, 0x00, 0xF1, 0xC0, 0x38,
|
||||
0x03, 0x87, 0x00, 0x3F, 0xFF, 0x00, 0x00, 0x03, 0xFF, 0x80, 0x1C, 0x0C, 0x00, 0xF3, 0xC0, 0x38,
|
||||
0x06, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
//Logo DMR 128x16 px
|
||||
static unsigned char logo_dmr_bmp[] =
|
||||
{
|
||||
0x00, 0x01, 0xFF, 0xFF, 0xF8, 0x01, 0xF8, 0x00, 0x00, 0x1F, 0x1F, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
|
||||
0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x81, 0xFC, 0x00, 0x00, 0x3F, 0x1F, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xE1, 0xFE, 0x00, 0x00, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x0F, 0xF1, 0xFF, 0x80, 0x01, 0xFF, 0x1F, 0x80, 0x00, 0x1F, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x03, 0xF9, 0xFF, 0xC0, 0x03, 0xFF, 0x1F, 0x80, 0x00, 0x0F, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x01, 0xF9, 0xFF, 0xE0, 0x07, 0xFF, 0x1F, 0x80, 0x00, 0x0F, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x01, 0xFD, 0xF3, 0xF0, 0x1F, 0x9F, 0x1F, 0x80, 0x00, 0x1F, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x00, 0xFD, 0xF1, 0xFC, 0x3F, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x00, 0xFD, 0xF0, 0xFE, 0x7E, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x01, 0xFD, 0xF0, 0x7F, 0xFC, 0x1F, 0x1F, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x01, 0xF9, 0xF0, 0x1F, 0xF0, 0x1F, 0x1F, 0x81, 0xFC, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x07, 0xF9, 0xF0, 0x0F, 0xE0, 0x1F, 0x1F, 0x80, 0x7F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0xF8, 0x00, 0x3F, 0xF1, 0xF0, 0x07, 0xC0, 0x1F, 0x1F, 0x80, 0x3F, 0xC0, 0x00, 0x00,
|
||||
0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xC1, 0xF0, 0x03, 0x80, 0x1F, 0x1F, 0x80, 0x0F, 0xF0, 0x00, 0x00,
|
||||
0x00, 0x01, 0xFF, 0xFF, 0xFF, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x1F, 0x80, 0x03, 0xFC, 0x00, 0x00,
|
||||
0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x01, 0xF0, 0x00, 0x00, 0x1F, 0x1F, 0x80, 0x01, 0xFF, 0x00, 0x00
|
||||
};
|
||||
|
||||
//Logo Fusion 128x16
|
||||
const unsigned char logo_fusion_bmp [] =
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x03, 0xFC, 0x00, 0x1F, 0xE1, 0xFE, 0x1F, 0xFF, 0xF8, 0x7F, 0xC3, 0xFF, 0xFF, 0x1F, 0xFF, 0xFE,
|
||||
0x03, 0xFC, 0x00, 0x3F, 0xC3, 0xFC, 0x3F, 0x80, 0x00, 0x7F, 0x87, 0xF0, 0xFF, 0x0F, 0xF1, 0xFF,
|
||||
0x07, 0xFF, 0xFC, 0x7F, 0x83, 0xF8, 0x7F, 0x80, 0x00, 0xFF, 0x0F, 0xF0, 0xFF, 0x1F, 0xE1, 0xFE,
|
||||
0x0F, 0xFF, 0xF0, 0x7F, 0x07, 0xF0, 0xFF, 0xFF, 0xC1, 0xFF, 0x1F, 0xE1, 0xFE, 0x3F, 0xC3, 0xFC,
|
||||
0x0F, 0xF0, 0x00, 0xFE, 0x0F, 0xE0, 0x7F, 0xFF, 0xE1, 0xFE, 0x3F, 0xC3, 0xFC, 0x3F, 0xC3, 0xFC,
|
||||
0x1F, 0xE0, 0x01, 0xFC, 0x1F, 0xE0, 0x1F, 0xFF, 0xE3, 0xFC, 0x3F, 0xC3, 0xF8, 0x7F, 0x87, 0xF8,
|
||||
0x3F, 0xC0, 0x03, 0xFC, 0x3F, 0xC0, 0x00, 0x3F, 0xC7, 0xF8, 0x7F, 0x87, 0xF8, 0xFF, 0x0F, 0xF0,
|
||||
0x7F, 0xC0, 0x03, 0xFF, 0xFF, 0xE0, 0x00, 0x7F, 0x07, 0xF8, 0x7F, 0xCF, 0xE1, 0xFF, 0x1F, 0xF8,
|
||||
0x7F, 0x80, 0x01, 0xFF, 0xFF, 0xC7, 0xFF, 0xFC, 0x0F, 0xF0, 0x3F, 0xFF, 0x81, 0xFE, 0x1F, 0xF0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
COLED::COLED(unsigned char displayType, unsigned char displayBrightness, bool displayInvert) :
|
||||
m_displayType(displayType),
|
||||
|
@ -127,12 +154,14 @@ void COLED::setIdleInt()
|
|||
|
||||
display.clearDisplay();
|
||||
OLED_statusbar();
|
||||
display.setCursor(0,display.height()/2);
|
||||
display.setTextSize(2);
|
||||
|
||||
display.setCursor(0,30);
|
||||
display.setTextSize(3);
|
||||
display.print("Idle");
|
||||
|
||||
display.setTextSize(1);
|
||||
display.startscrollleft(0x02,0x0f);
|
||||
display.display();
|
||||
display.startscrollright(0x02,0x0f);
|
||||
}
|
||||
|
||||
void COLED::setErrorInt(const char* text)
|
||||
|
@ -141,8 +170,10 @@ void COLED::setErrorInt(const char* text)
|
|||
|
||||
display.clearDisplay();
|
||||
OLED_statusbar();
|
||||
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
display.printf("%s\n", text);
|
||||
display.printf("%s\n",text);
|
||||
|
||||
display.display();
|
||||
}
|
||||
|
||||
|
@ -152,151 +183,176 @@ void COLED::setLockoutInt()
|
|||
|
||||
display.clearDisplay();
|
||||
OLED_statusbar();
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
|
||||
display.setCursor(0,30);
|
||||
display.setTextSize(3);
|
||||
display.print("Lockout");
|
||||
|
||||
display.setTextSize(1);
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::writeDStarInt(const char* my1, const char* my2, const char* your, const char* type, const char* reflector)
|
||||
{
|
||||
m_mode = MODE_DSTAR;
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
display.printf("%s %.8s/%4.4s", type, my1, my2);
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
|
||||
display.clearDisplay();
|
||||
display.fillRect(0,OLED_LINE1,display.width(),display.height(),BLACK); //clear everything under logo
|
||||
|
||||
display.setCursor(0,OLED_LINE2);
|
||||
display.printf("via %.8s", reflector);
|
||||
display.fillRect(0, OLED_LINE3, display.width(), 10, BLACK);
|
||||
display.printf("%s %.8s/%4.4s",type,my1,my2);
|
||||
|
||||
display.setCursor(0,OLED_LINE3);
|
||||
display.printf("%.8s <- %-8s", your, reflector);
|
||||
display.printf("-> %.8s",your);
|
||||
|
||||
display.setCursor(0,OLED_LINE5);
|
||||
display.printf("via %.8s",reflector);
|
||||
|
||||
|
||||
|
||||
OLED_statusbar();
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::clearDStarInt()
|
||||
{
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
display.clearDisplay();
|
||||
display.fillRect(0,OLED_LINE2, display.width(),display.height(),BLACK); //clear everything under logo
|
||||
|
||||
display.setCursor(40,38);
|
||||
display.print("Listening");
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
display.fillRect(0, OLED_LINE3, display.width(), 10, BLACK);
|
||||
|
||||
OLED_statusbar();
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::writeDMRInt(unsigned int slotNo, const std::string& src, bool group, const std::string& dst, const char* type)
|
||||
void COLED::writeDMRInt(unsigned int slotNo,const std::string& src,bool group,const std::string& dst,const char* type)
|
||||
{
|
||||
|
||||
if (m_mode != MODE_DMR) {
|
||||
display.clearDisplay();
|
||||
|
||||
display.clearDisplay();
|
||||
|
||||
m_mode = MODE_DMR;
|
||||
|
||||
if (slotNo == 1U)
|
||||
{
|
||||
display.fillRect(0, OLED_LINE3, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE3);
|
||||
{
|
||||
display.fillRect(0,OLED_LINE4,display.width(),20,BLACK); //20=> clear 2 lines
|
||||
display.setCursor(0,OLED_LINE4);
|
||||
display.print("2 Listening");
|
||||
display.fillRect(0, OLED_LINE4, display.width(), 10, BLACK);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
{
|
||||
display.fillRect(0,OLED_LINE2,display.width(),20,BLACK); //20=> clear 2 lines
|
||||
display.setCursor(0,OLED_LINE2);
|
||||
display.print("1 Listening");
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (slotNo == 1U) {
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
display.printf("%i %s %s", slotNo, type, src.c_str());
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
if (slotNo == 1U)
|
||||
{
|
||||
display.fillRect(0,OLED_LINE2,display.width(),20,BLACK);
|
||||
display.setCursor(0,OLED_LINE2);
|
||||
display.printf("%s%s", group ? "TG" : "", dst.c_str());
|
||||
} else {
|
||||
display.fillRect(0, OLED_LINE3, display.width(), 10, BLACK);
|
||||
display.printf("%i %s %s",slotNo,type,src.c_str());
|
||||
display.setCursor(0,OLED_LINE3);
|
||||
display.printf("%i %s %s", slotNo, type, src.c_str());
|
||||
display.fillRect(0, OLED_LINE4, display.width(), 10, BLACK);
|
||||
display.printf("%s%s",group ? "TG" : "",dst.c_str());
|
||||
}
|
||||
else
|
||||
{
|
||||
display.fillRect(0,OLED_LINE4,display.width(),20,BLACK);
|
||||
display.setCursor(0,OLED_LINE4);
|
||||
display.printf("%i %s %s",slotNo,type,src.c_str());
|
||||
display.setCursor(0,OLED_LINE5);
|
||||
display.printf("%s%s", group ? "TG" : "", dst.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
OLED_statusbar();
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::clearDMRInt(unsigned int slotNo)
|
||||
{
|
||||
OLED_statusbar();
|
||||
if (slotNo == 1U)
|
||||
{
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
{
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 20, BLACK);
|
||||
display.setCursor(0,OLED_LINE2);
|
||||
display.print("1 Listening");
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
display.fillRect(0, OLED_LINE3, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE3);
|
||||
{
|
||||
display.fillRect(0, OLED_LINE4, display.width(), 20, BLACK);
|
||||
display.setCursor(0, OLED_LINE4);
|
||||
display.print("2 Listening");
|
||||
display.fillRect(0, OLED_LINE4, display.width(), 10, BLACK);
|
||||
}
|
||||
}
|
||||
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::writeFusionInt(const char* source, const char* dest, const char* type, const char* origin)
|
||||
{
|
||||
|
||||
m_mode = MODE_YSF;
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
display.printf("%s %.10s", type, source);
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
|
||||
display.clearDisplay();
|
||||
display.fillRect(0,OLED_LINE1,display.width(),display.height(),BLACK);
|
||||
|
||||
display.setCursor(0,OLED_LINE2);
|
||||
display.printf("%s %.10s", type, source);
|
||||
|
||||
display.setCursor(0,OLED_LINE3);
|
||||
display.printf(" %.10s", dest);
|
||||
|
||||
OLED_statusbar();
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::clearFusionInt()
|
||||
{
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
display.fillRect(0, OLED_LINE1, display.width(), display.height(), BLACK);
|
||||
|
||||
display.setCursor(40,38);
|
||||
display.print("Listening");
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
OLED_statusbar();
|
||||
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::writeP25Int(const char* source, bool group, unsigned int dest, const char* type)
|
||||
{
|
||||
m_mode = MODE_P25;
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
display.printf("%s %.10s", type, source);
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
|
||||
display.clearDisplay();
|
||||
display.fillRect(0, OLED_LINE2, display.width(), display.height(), BLACK);
|
||||
|
||||
display.setCursor(0,OLED_LINE2);
|
||||
display.printf("%s %.10s", type, source);
|
||||
|
||||
display.setCursor(0,OLED_LINE3);
|
||||
display.printf(" %s%u", group ? "TG" : "", dest);
|
||||
|
||||
OLED_statusbar();
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::clearP25Int()
|
||||
{
|
||||
display.fillRect(0, OLED_LINE1, display.width(), 10, BLACK);
|
||||
display.setCursor(0,OLED_LINE1);
|
||||
display.clearDisplay();
|
||||
display.fillRect(0, OLED_LINE2, display.width(), display.height(), BLACK);
|
||||
|
||||
display.setCursor(40,38);
|
||||
display.print("Listening");
|
||||
display.fillRect(0, OLED_LINE2, display.width(), 10, BLACK);
|
||||
OLED_statusbar();
|
||||
|
||||
display.display();
|
||||
}
|
||||
|
||||
void COLED::writeCWInt()
|
||||
{
|
||||
display.clearDisplay();
|
||||
display.setCursor(0,display.height()/2);
|
||||
|
||||
display.setCursor(0,30);
|
||||
display.setTextSize(3);
|
||||
display.print("CW TX");
|
||||
|
||||
display.setTextSize(1);
|
||||
display.display();
|
||||
display.startscrollright(0x02,0x0f);
|
||||
|
@ -305,12 +361,14 @@ void COLED::writeCWInt()
|
|||
void COLED::clearCWInt()
|
||||
{
|
||||
display.clearDisplay();
|
||||
display.setCursor(0,display.height()/2);
|
||||
display.setTextSize(2);
|
||||
|
||||
display.setCursor(0,30);
|
||||
display.setTextSize(3);
|
||||
display.print("Idle");
|
||||
|
||||
display.setTextSize(1);
|
||||
display.display();
|
||||
display.startscrollright(0x02,0x0f);
|
||||
display.startscrollleft(0x02,0x0f);
|
||||
}
|
||||
|
||||
void COLED::close()
|
||||
|
@ -323,15 +381,19 @@ void COLED::OLED_statusbar()
|
|||
display.stopscroll();
|
||||
display.fillRect(0, 0, display.width(), 16, BLACK);
|
||||
display.setTextColor(WHITE);
|
||||
|
||||
display.setCursor(0,0);
|
||||
if (m_mode == MODE_DMR)
|
||||
display.drawBitmap(0, 0, logo_dmr_bmp, 48, 16, WHITE);
|
||||
display.drawBitmap(0, 0, logo_dmr_bmp, 128, 16, WHITE);
|
||||
else if (m_mode == MODE_DSTAR)
|
||||
display.drawBitmap(0, 0, logo_dstar_bmp, 64, 16, WHITE);
|
||||
display.drawBitmap(0, 0, logo_dstar_bmp, 128, 16, WHITE);
|
||||
else if (m_mode == MODE_YSF)
|
||||
display.print("Fusion");
|
||||
display.drawBitmap(0, 0, logo_fusion_bmp, 128, 16, WHITE);
|
||||
else if (m_mode == MODE_P25)
|
||||
display.print("P25");
|
||||
else
|
||||
display.drawBitmap(0, 0, logo_glcd_bmp, 16, 15, WHITE);
|
||||
display.drawBitmap(0, 0, logo_glcd_bmp, 128, 16, WHITE);
|
||||
|
||||
// display.startscrollright(0x00,0x02); //<-Uncomment this line to make the mode logo scroll
|
||||
|
||||
}
|
||||
|
|
2
OLED.h
2
OLED.h
|
@ -24,6 +24,7 @@
|
|||
#define OLED_LINE2 26
|
||||
#define OLED_LINE3 36
|
||||
#define OLED_LINE4 46
|
||||
#define OLED_LINE5 56
|
||||
|
||||
#include "Display.h"
|
||||
#include "Defines.h"
|
||||
|
@ -71,6 +72,7 @@ private:
|
|||
unsigned char m_displayType;
|
||||
unsigned char m_displayBrightness;
|
||||
bool m_displayInvert;
|
||||
;
|
||||
|
||||
ArduiPi_OLED display;
|
||||
void OLED_statusbar();
|
||||
|
|
Loading…
Reference in a new issue