Apply DSP meter to all lcd types
This commit is contained in:
parent
b984f62dfd
commit
c27bbf1b6b
@ -29,12 +29,14 @@
|
||||
//#define UBITX_DISPLAY_LCD1602I_DUAL //I2C type 16 x02 LCD Dual
|
||||
//#define UBITX_DISPLAY_LCD2004P //24 x 04 LCD (Parallel)
|
||||
//#define UBITX_DISPLAY_LCD2004I //I2C type 24 x 04 LCD
|
||||
#define UBITX_DISPLAY_NEXTION //NEXTION LCD
|
||||
#define UBITX_DISPLAY_NEXTION //NEXTION LCD
|
||||
|
||||
//#define UBITX_DISPLAY_NEXTION_SAFE //Only EEProm Write 770~775
|
||||
#define I2C_LCD_MASTER_ADDRESS_DEFAULT 0x27 //0x27 //DEFAULT, if Set I2C Address by uBITX Manager, read from EEProm
|
||||
#define I2C_LCD_SECOND_ADDRESS_DEFAULT 0x3F //0x27 //only using Dual LCD Mode
|
||||
|
||||
//Select betwen Analog S-Meter and DSP (I2C) Meter
|
||||
//#define USE_I2CSMETER
|
||||
|
||||
#define EXTEND_KEY_GROUP1 //MODE, BAND(-), BAND(+), STEP
|
||||
//#define EXTEND_KEY_GROUP2 //Numeric (0~9), Point(.), Enter //Not supported in Version 1.0x
|
||||
@ -120,6 +122,24 @@ extern byte I2C_LCD_SECOND_ADDRESS; //only using Dual LCD Mode
|
||||
#define TX_LPF_C (3) //Relay
|
||||
#define CW_KEY (2)
|
||||
|
||||
//******************************************************
|
||||
//DSP (I2C) Meter
|
||||
//******************************************************
|
||||
//S-Meter Address
|
||||
#define I2CMETER_ADDR 0x58
|
||||
//VALUE TYPE============================================
|
||||
//Signal
|
||||
#define I2CMETER_CALCS 0x59 //Calculated Signal Meter
|
||||
#define I2CMETER_UNCALCS 0x58 //Uncalculated Signal Meter
|
||||
|
||||
//Power
|
||||
#define I2CMETER_CALCP 0x57 //Calculated Power Meter
|
||||
#define I2CMETER_UNCALCP 0x56 //UnCalculated Power Meter
|
||||
|
||||
//SWR
|
||||
#define I2CMETER_CALCR 0x55 //Calculated SWR Meter
|
||||
#define I2CMETER_UNCALCR 0x54 //Uncalculated SWR Meter
|
||||
|
||||
//==============================================================================
|
||||
// for public, Variable, functions
|
||||
//==============================================================================
|
||||
@ -196,6 +216,9 @@ extern char byteToChar(byte srcByte);
|
||||
extern void DisplayCallsign(byte callSignLength);
|
||||
extern void DisplayVersionInfo(const char* fwVersionInfo);
|
||||
|
||||
//I2C Signal Meter, Version 1.097
|
||||
extern int GetI2CSmeterValue(int valueType); //ubitx_ui.ino
|
||||
|
||||
#endif //end of if header define
|
||||
|
||||
|
||||
|
@ -738,6 +738,9 @@ void idle_process()
|
||||
{
|
||||
int newSMeter;
|
||||
|
||||
#ifdef USE_I2CSMETER
|
||||
scaledSMeter = GetI2CSmeterValue(I2CMETER_CALCS);
|
||||
#else
|
||||
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
||||
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||
|
||||
@ -752,6 +755,7 @@ void idle_process()
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
DisplayMeter(0, scaledSMeter, 13);
|
||||
checkCountSMeter = 0; //Reset Latency time
|
||||
|
@ -669,6 +669,9 @@ void idle_process()
|
||||
int newSMeter;
|
||||
displaySDRON = 0;
|
||||
|
||||
#ifdef USE_I2CSMETER
|
||||
scaledSMeter = GetI2CSmeterValue(I2CMETER_CALCS);
|
||||
#else
|
||||
//VK2ETA S-Meter from MAX9814 TC pin / divide 4 by KD8CEC for reduce EEPromSize
|
||||
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||
|
||||
@ -684,9 +687,9 @@ void idle_process()
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
DisplayMeter(0, scaledSMeter, 0);
|
||||
|
||||
checkCountSMeter = 0;
|
||||
} //end of S-Meter
|
||||
_Addr = I2C_LCD_MASTER_ADDRESS;
|
||||
|
@ -690,7 +690,10 @@ void idle_process()
|
||||
if (((displayOption1 & 0x08) == 0x08 && (sdrModeOn == 0)) && (++checkCountSMeter > SMeterLatency))
|
||||
{
|
||||
int newSMeter;
|
||||
|
||||
|
||||
#ifdef USE_I2CSMETER
|
||||
scaledSMeter = GetI2CSmeterValue(I2CMETER_CALCS);
|
||||
#else
|
||||
//VK2ETA S-Meter from MAX9814 TC pin
|
||||
newSMeter = analogRead(ANALOG_SMETER) / 4;
|
||||
|
||||
@ -706,6 +709,7 @@ void idle_process()
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
DisplayMeter(0, scaledSMeter, 0);
|
||||
checkCountSMeter = 0; //Reset Latency time
|
||||
|
@ -1,5 +1,8 @@
|
||||
/*************************************************************************
|
||||
KD8CEC's uBITX Display Routine for Nextion LCD
|
||||
|
||||
Uses the default protocol of Nextion LCD.
|
||||
Do not assign a 2 byte address to Nextion LCD.
|
||||
-----------------------------------------------------------------------------
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -56,53 +59,6 @@ void LCD_Init(void)
|
||||
//initMeter(); //for Meter Display
|
||||
}
|
||||
|
||||
//===================================================================
|
||||
//I2C Signal Meter, Version 1.097
|
||||
//
|
||||
//===================================================================
|
||||
|
||||
#define USE_I2CSMETER
|
||||
//S-Meter Address
|
||||
#define I2CMETER_ADDR 0x58
|
||||
//VALUE TYPE============================================
|
||||
//Signal
|
||||
#define I2CMETER_CALCS 0x59 //Calculated Signal Meter
|
||||
#define I2CMETER_UNCALCS 0x58 //Uncalculated Signal Meter
|
||||
|
||||
//Power
|
||||
#define I2CMETER_CALCP 0x57 //Calculated Power Meter
|
||||
#define I2CMETER_UNCALCP 0x56 //UnCalculated Power Meter
|
||||
|
||||
//SWR
|
||||
#define I2CMETER_CALCR 0x55 //Calculated SWR Meter
|
||||
#define I2CMETER_UNCALCR 0x54 //Uncalculated SWR Meter
|
||||
|
||||
// 0xA0 ~ 0xCF : CW Decode Mode + 100Hz ~
|
||||
// 0xD0 ~ 0xF3 : RTTY Decode Mode + 100Hz ~
|
||||
// 0x10 ~ 0x30 : Spectrum Mode
|
||||
int GetI2CSmeterValue(int valueType)
|
||||
{
|
||||
if (valueType > 0)
|
||||
{
|
||||
Wire.beginTransmission(I2CMETER_ADDR); //j : S-Meter
|
||||
Wire.write(valueType); //Y : Get Value Type
|
||||
Wire.endTransmission();
|
||||
}
|
||||
|
||||
Wire.requestFrom(I2CMETER_ADDR, 1);
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
if (Wire.available() > 0)
|
||||
{
|
||||
return Wire.read();
|
||||
}
|
||||
else
|
||||
{
|
||||
delay(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//===================================================================
|
||||
//Begin of Nextion LCD Protocol
|
||||
//
|
||||
@ -678,6 +634,9 @@ void updateDisplay() {
|
||||
sendUIData(0); //UI
|
||||
}
|
||||
|
||||
//****************************************************************
|
||||
// Spectrum for Range scan and Band Scan
|
||||
//****************************************************************
|
||||
#define RESPONSE_SPECTRUM 0
|
||||
#define RESPONSE_EEPROM 1
|
||||
#define RESPONSE_EEPROM_HEX_F 89 //C Language order
|
||||
@ -686,8 +645,8 @@ void updateDisplay() {
|
||||
|
||||
const uint8_t ResponseHeader[11]={'p', 'm', '.', 's', 'h', '.', 't', 'x', 't', '=', '"'};
|
||||
const uint8_t ResponseFooter[4]={'"', 0xFF, 0xFF, 0xFF};
|
||||
|
||||
const char HexCodes[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', };
|
||||
|
||||
//void sendSpectrumData(unsigned long startFreq, unsigned long incStep, int scanCount, int delayTime, int sendCount)
|
||||
//sendResponseData(RESPONSE_EEPROM, 0, eepromIndex, eepromReadLength, eepromDataType, 1);
|
||||
//protocol Type : 0 - Spectrum, 1 : EEProm
|
||||
@ -764,17 +723,15 @@ void sendResponseData(int protocolType, unsigned long startFreq, unsigned int se
|
||||
} //end of for
|
||||
}
|
||||
|
||||
//sendSpectrumData(unsigned long startFreq, unsigned int incStep, int scanCount, int delayTime, int sendCount)
|
||||
//sendSpectrumData(frequency - (1000L * 50), 1000, 100, 0, 10);
|
||||
//****************************************************************
|
||||
//Receive command and processing from External device (LCD or MCU)
|
||||
//****************************************************************
|
||||
int spectrumSendCount = 10; //count of full scan and Send
|
||||
int spectrumOffset = 0; //offset position
|
||||
int spectrumScanCount = 100; //Maximum 200
|
||||
unsigned int spectrumIncStep = 1000; //Increaase Step
|
||||
|
||||
// tern static uint8_t swr_receive_buffer[20];
|
||||
extern uint8_t receivedCommandLength;
|
||||
extern void SWSerial_Read(uint8_t * receive_cmdBuffer);
|
||||
//extern void byteToMode(byte modeValue, byte autoSetModebyFreq);
|
||||
uint8_t swr_buffer[20];
|
||||
|
||||
//SoftwareSerial_Process
|
||||
|
@ -268,4 +268,34 @@ int enc_read(void) {
|
||||
return(result);
|
||||
}
|
||||
|
||||
//===================================================================
|
||||
//I2C Signal Meter, Version 1.097
|
||||
//===================================================================
|
||||
|
||||
// 0xA0 ~ 0xCF : CW Decode Mode + 100Hz ~
|
||||
// 0xD0 ~ 0xF3 : RTTY Decode Mode + 100Hz ~
|
||||
// 0x10 ~ 0x30 : Spectrum Mode
|
||||
int GetI2CSmeterValue(int valueType)
|
||||
{
|
||||
if (valueType > 0)
|
||||
{
|
||||
Wire.beginTransmission(I2CMETER_ADDR); //j : S-Meter
|
||||
Wire.write(valueType); //Y : Get Value Type
|
||||
Wire.endTransmission();
|
||||
}
|
||||
|
||||
Wire.requestFrom(I2CMETER_ADDR, 1);
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
if (Wire.available() > 0)
|
||||
{
|
||||
return Wire.read();
|
||||
}
|
||||
else
|
||||
{
|
||||
delay(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user