mirror of
https://codeberg.org/mclemens/ubitxv6.git
synced 2025-02-21 06:57:27 -05:00
Render setup menus better
This commit is contained in:
parent
2902764d73
commit
9ebdf8b213
108
setup.cpp
108
setup.cpp
@ -25,6 +25,67 @@ void setupExit(){
|
|||||||
extern int32_t calibration;
|
extern int32_t calibration;
|
||||||
extern uint32_t si5351bx_vcoa;
|
extern uint32_t si5351bx_vcoa;
|
||||||
|
|
||||||
|
static const unsigned int COLOR_TEXT = DISPLAY_WHITE;
|
||||||
|
static const unsigned int COLOR_BACKGROUND = DISPLAY_BLACK;
|
||||||
|
static const unsigned int COLOR_TITLE_BACKGROUND = DISPLAY_NAVY;
|
||||||
|
static const unsigned int COLOR_SETTING_BACKGROUND = DISPLAY_NAVY;
|
||||||
|
static const unsigned int COLOR_ACTIVE_BORDER = DISPLAY_WHITE;
|
||||||
|
static const unsigned int COLOR_INACTIVE_BORDER = COLOR_BACKGROUND;
|
||||||
|
|
||||||
|
static const unsigned int LAYOUT_OUTER_BORDER_X = 10;
|
||||||
|
static const unsigned int LAYOUT_OUTER_BORDER_Y = 10;
|
||||||
|
static const unsigned int LAYOUT_OUTER_BORDER_WIDTH = 300;
|
||||||
|
static const unsigned int LAYOUT_OUTER_BORDER_HEIGHT = 220;
|
||||||
|
|
||||||
|
static const unsigned int LAYOUT_INNER_BORDER_X = 12;
|
||||||
|
static const unsigned int LAYOUT_INNER_BORDER_Y = 12;
|
||||||
|
static const unsigned int LAYOUT_INNER_BORDER_WIDTH = 296;
|
||||||
|
static const unsigned int LAYOUT_INNER_BORDER_HEIGHT = 216;
|
||||||
|
|
||||||
|
static const unsigned int LAYOUT_TITLE_X = LAYOUT_INNER_BORDER_X;
|
||||||
|
static const unsigned int LAYOUT_TITLE_Y = LAYOUT_INNER_BORDER_Y;
|
||||||
|
static const unsigned int LAYOUT_TITLE_WIDTH = LAYOUT_INNER_BORDER_WIDTH;
|
||||||
|
static const unsigned int LAYOUT_TITLE_HEIGHT = 35;
|
||||||
|
|
||||||
|
static const unsigned int LAYOUT_ITEM_X = 30;
|
||||||
|
static const unsigned int LAYOUT_ITEM_Y = LAYOUT_TITLE_Y + LAYOUT_TITLE_HEIGHT + 5;
|
||||||
|
static const unsigned int LAYOUT_ITEM_WIDTH = 260;
|
||||||
|
static const unsigned int LAYOUT_ITEM_HEIGHT = 30;
|
||||||
|
static const unsigned int LAYOUT_ITEM_PITCH_Y = LAYOUT_ITEM_HEIGHT + 1;
|
||||||
|
|
||||||
|
static const unsigned int LAYOUT_SETTING_VALUE_X = LAYOUT_ITEM_X;
|
||||||
|
static const unsigned int LAYOUT_SETTING_VALUE_Y = LAYOUT_ITEM_Y + 3*LAYOUT_ITEM_PITCH_Y;
|
||||||
|
static const unsigned int LAYOUT_SETTING_VALUE_WIDTH = LAYOUT_ITEM_WIDTH;
|
||||||
|
static const unsigned int LAYOUT_SETTING_VALUE_HEIGHT = LAYOUT_ITEM_HEIGHT;
|
||||||
|
|
||||||
|
static const unsigned int LAYOUT_INSTRUCTION_TEXT_X = 20;
|
||||||
|
static const unsigned int LAYOUT_INSTRUCTION_TEXT_Y = LAYOUT_ITEM_Y + 5*LAYOUT_ITEM_PITCH_Y;
|
||||||
|
static const unsigned int LAYOUT_INSTRUCTION_TEXT_WIDTH = LAYOUT_ITEM_WIDTH;
|
||||||
|
static const unsigned int LAYOUT_INSTRUCTION_TEXT_HEIGHT = LAYOUT_ITEM_HEIGHT;
|
||||||
|
|
||||||
|
void displayDialog(char *title, char *instructions){
|
||||||
|
displayClear(COLOR_BACKGROUND);
|
||||||
|
displayRect(LAYOUT_OUTER_BORDER_X,LAYOUT_OUTER_BORDER_Y,LAYOUT_OUTER_BORDER_WIDTH,LAYOUT_OUTER_BORDER_HEIGHT, COLOR_ACTIVE_BORDER);
|
||||||
|
displayRect(LAYOUT_INNER_BORDER_X,LAYOUT_INNER_BORDER_Y,LAYOUT_INNER_BORDER_WIDTH,LAYOUT_INNER_BORDER_HEIGHT, COLOR_ACTIVE_BORDER);
|
||||||
|
displayText(title, LAYOUT_TITLE_X, LAYOUT_TITLE_Y, LAYOUT_TITLE_WIDTH, LAYOUT_TITLE_HEIGHT, COLOR_TEXT, COLOR_TITLE_BACKGROUND, COLOR_ACTIVE_BORDER);
|
||||||
|
displayText(instructions, LAYOUT_INSTRUCTION_TEXT_X, LAYOUT_INSTRUCTION_TEXT_Y, LAYOUT_INSTRUCTION_TEXT_WIDTH, LAYOUT_INSTRUCTION_TEXT_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
||||||
|
}
|
||||||
|
|
||||||
|
void printCarrierFreq(unsigned long freq){
|
||||||
|
|
||||||
|
memset(c, 0, sizeof(c));
|
||||||
|
memset(b, 0, sizeof(b));
|
||||||
|
|
||||||
|
ultoa(freq, b, DEC);
|
||||||
|
|
||||||
|
strncat(c, b, 2);
|
||||||
|
strcat(c, ".");
|
||||||
|
strncat(c, &b[2], 3);
|
||||||
|
strcat(c, ".");
|
||||||
|
strncat(c, &b[5], 1);
|
||||||
|
displayText(c, LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_TITLE_BACKGROUND, COLOR_BACKGROUND);
|
||||||
|
}
|
||||||
|
|
||||||
void setupFreq(){
|
void setupFreq(){
|
||||||
int knob = 0;
|
int knob = 0;
|
||||||
int32_t prev_calibration;
|
int32_t prev_calibration;
|
||||||
@ -35,13 +96,15 @@ void setupFreq(){
|
|||||||
frequency = (frequency/1000l)* 1000l;
|
frequency = (frequency/1000l)* 1000l;
|
||||||
setFrequency(frequency);
|
setFrequency(frequency);
|
||||||
|
|
||||||
displayRawText("You should have a", 20, 50, DISPLAY_CYAN, DISPLAY_NAVY);
|
displayText("You should have a", LAYOUT_SETTING_VALUE_X, LAYOUT_ITEM_Y, LAYOUT_ITEM_WIDTH, LAYOUT_ITEM_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
||||||
displayRawText("signal exactly at ", 20, 75, DISPLAY_CYAN, DISPLAY_NAVY);
|
displayText("signal exactly at ", LAYOUT_SETTING_VALUE_X, LAYOUT_ITEM_Y + 1*LAYOUT_ITEM_PITCH_Y, LAYOUT_ITEM_WIDTH, LAYOUT_ITEM_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
||||||
ltoa(frequency/1000l, c, 10);
|
ltoa(frequency/1000l, c, 10);
|
||||||
strcat(c, " KHz");
|
strcat(c, " KHz");
|
||||||
displayRawText(c, 20, 100, DISPLAY_CYAN, DISPLAY_NAVY);
|
displayText(c, LAYOUT_SETTING_VALUE_X, LAYOUT_ITEM_Y + 2*LAYOUT_ITEM_PITCH_Y, LAYOUT_ITEM_WIDTH, LAYOUT_ITEM_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
||||||
|
displayText("Rotate to zerobeat", LAYOUT_SETTING_VALUE_X, LAYOUT_ITEM_Y + 4*LAYOUT_ITEM_PITCH_Y, LAYOUT_ITEM_WIDTH, LAYOUT_ITEM_HEIGHT, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
||||||
displayRawText("Rotate to zerobeat", 20, 180, DISPLAY_CYAN, DISPLAY_NAVY);
|
|
||||||
|
ltoa(calibration, b, 10);
|
||||||
|
displayText(b, LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_TITLE_BACKGROUND, COLOR_BACKGROUND);
|
||||||
//keep clear of any previous button press
|
//keep clear of any previous button press
|
||||||
while (btnDown())
|
while (btnDown())
|
||||||
active_delay(100);
|
active_delay(100);
|
||||||
@ -72,7 +135,7 @@ void setupFreq(){
|
|||||||
//displayRawText("Rotate to zerobeat", 20, 120, DISPLAY_CYAN, DISPLAY_NAVY);
|
//displayRawText("Rotate to zerobeat", 20, 120, DISPLAY_CYAN, DISPLAY_NAVY);
|
||||||
|
|
||||||
ltoa(calibration, b, 10);
|
ltoa(calibration, b, 10);
|
||||||
displayText(b, 100, 140, 100, 26, DISPLAY_CYAN, DISPLAY_NAVY, DISPLAY_WHITE);
|
displayText(b, LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_TITLE_BACKGROUND, COLOR_BACKGROUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
EEPROM.put(MASTER_CAL, calibration);
|
EEPROM.put(MASTER_CAL, calibration);
|
||||||
@ -131,7 +194,7 @@ void setupCwDelay(){
|
|||||||
|
|
||||||
itoa(10 * (int)cwDelayTime, b, 10);
|
itoa(10 * (int)cwDelayTime, b, 10);
|
||||||
strcat(b, " msec");
|
strcat(b, " msec");
|
||||||
displayText(b, 100, 100, 120, 26, DISPLAY_CYAN, DISPLAY_BLACK, DISPLAY_BLACK);
|
displayText(b, LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_SETTING_BACKGROUND, COLOR_BACKGROUND);
|
||||||
|
|
||||||
while (!btnDown()){
|
while (!btnDown()){
|
||||||
knob = enc_read();
|
knob = enc_read();
|
||||||
@ -145,7 +208,7 @@ void setupCwDelay(){
|
|||||||
|
|
||||||
itoa(10 * (int)cwDelayTime, b, 10);
|
itoa(10 * (int)cwDelayTime, b, 10);
|
||||||
strcat(b, " msec");
|
strcat(b, " msec");
|
||||||
displayText(b, 100, 100, 120, 26, DISPLAY_CYAN, DISPLAY_BLACK, DISPLAY_BLACK);
|
displayText(b, LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_SETTING_BACKGROUND, COLOR_BACKGROUND);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,11 +227,11 @@ void setupKeyer(){
|
|||||||
displayDialog("Set CW Keyer", "Press tune to Save");
|
displayDialog("Set CW Keyer", "Press tune to Save");
|
||||||
|
|
||||||
if (!Iambic_Key)
|
if (!Iambic_Key)
|
||||||
displayText("< Hand Key >", 100, 100, 120, 26, DISPLAY_CYAN, DISPLAY_BLACK, DISPLAY_BLACK);
|
displayText("< Hand Key >", LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_SETTING_BACKGROUND, COLOR_BACKGROUND);
|
||||||
else if (keyerControl & IAMBICB)
|
else if (keyerControl & IAMBICB)
|
||||||
displayText("< Iambic A >", 100, 100, 120, 26, DISPLAY_CYAN, DISPLAY_BLACK, DISPLAY_BLACK);
|
displayText("< Iambic A >", LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_SETTING_BACKGROUND, COLOR_BACKGROUND);
|
||||||
else
|
else
|
||||||
displayText("< Iambic B >", 100, 100, 120, 26, DISPLAY_CYAN, DISPLAY_BLACK, DISPLAY_BLACK);
|
displayText("< Iambic B >", LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_SETTING_BACKGROUND, COLOR_BACKGROUND);
|
||||||
|
|
||||||
if (!Iambic_Key)
|
if (!Iambic_Key)
|
||||||
tmp_key = 0; //hand key
|
tmp_key = 0; //hand key
|
||||||
@ -192,11 +255,11 @@ void setupKeyer(){
|
|||||||
tmp_key = 0;
|
tmp_key = 0;
|
||||||
|
|
||||||
if (tmp_key == 0)
|
if (tmp_key == 0)
|
||||||
displayText("< Hand Key >", 100, 100, 120, 26, DISPLAY_CYAN, DISPLAY_BLACK, DISPLAY_BLACK);
|
displayText("< Hand Key >", LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_SETTING_BACKGROUND, COLOR_BACKGROUND);
|
||||||
else if (tmp_key == 1)
|
else if (tmp_key == 1)
|
||||||
displayText("< Iambic A >", 100, 100, 120, 26, DISPLAY_CYAN, DISPLAY_BLACK, DISPLAY_BLACK);
|
displayText("< Iambic A >", LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_SETTING_BACKGROUND, COLOR_BACKGROUND);
|
||||||
else if (tmp_key == 2)
|
else if (tmp_key == 2)
|
||||||
displayText("< Iambic B >", 100, 100, 120, 26, DISPLAY_CYAN, DISPLAY_BLACK, DISPLAY_BLACK);
|
displayText("< Iambic B >", LAYOUT_SETTING_VALUE_X, LAYOUT_SETTING_VALUE_Y, LAYOUT_SETTING_VALUE_WIDTH, LAYOUT_SETTING_VALUE_HEIGHT, COLOR_TEXT, COLOR_SETTING_BACKGROUND, COLOR_BACKGROUND);
|
||||||
}
|
}
|
||||||
|
|
||||||
active_delay(500);
|
active_delay(500);
|
||||||
@ -216,23 +279,6 @@ void setupKeyer(){
|
|||||||
menuOn = 0;
|
menuOn = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const unsigned int COLOR_TEXT = DISPLAY_WHITE;
|
|
||||||
static const unsigned int COLOR_BACKGROUND = DISPLAY_BLACK;
|
|
||||||
static const unsigned int COLOR_TITLE_BACKGROUND = DISPLAY_NAVY;
|
|
||||||
static const unsigned int COLOR_ACTIVE_BORDER = DISPLAY_WHITE;
|
|
||||||
static const unsigned int COLOR_INACTIVE_BORDER = DISPLAY_DARKGREY;
|
|
||||||
|
|
||||||
static const unsigned int LAYOUT_TITLE_X = 10;
|
|
||||||
static const unsigned int LAYOUT_TITLE_Y = 10;
|
|
||||||
static const unsigned int LAYOUT_TITLE_WIDTH = 300;
|
|
||||||
static const unsigned int LAYOUT_TITLE_HEIGHT = 35;
|
|
||||||
|
|
||||||
static const unsigned int LAYOUT_ITEM_X = 30;
|
|
||||||
static const unsigned int LAYOUT_ITEM_Y = LAYOUT_TITLE_Y + LAYOUT_TITLE_HEIGHT + 5;
|
|
||||||
static const unsigned int LAYOUT_ITEM_WIDTH = 260;
|
|
||||||
static const unsigned int LAYOUT_ITEM_HEIGHT = 30;
|
|
||||||
static const unsigned int LAYOUT_ITEM_PITCH_Y = 31;
|
|
||||||
|
|
||||||
const char MI_SET_FREQ [] PROGMEM = "Set Freq...";
|
const char MI_SET_FREQ [] PROGMEM = "Set Freq...";
|
||||||
const char MI_SET_BFO [] PROGMEM = "Set BFO...";
|
const char MI_SET_BFO [] PROGMEM = "Set BFO...";
|
||||||
const char MI_CW_DELAY [] PROGMEM = "CW Delay...";
|
const char MI_CW_DELAY [] PROGMEM = "CW Delay...";
|
||||||
|
7
ubitx.h
7
ubitx.h
@ -196,13 +196,6 @@ void doSetup2(); //main setup function, displays the setup menu, calls various d
|
|||||||
void setupBFO();
|
void setupBFO();
|
||||||
void setupFreq();
|
void setupFreq();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//displays a nice dialog box with a title and instructions as footnotes
|
|
||||||
void displayDialog(char *title, char *instructions);
|
|
||||||
void printCarrierFreq(unsigned long freq); //used to display the frequency in the command area (ex: fast tuning)
|
|
||||||
|
|
||||||
|
|
||||||
//main functions to check if any button is pressed and other user interface events
|
//main functions to check if any button is pressed and other user interface events
|
||||||
void doCommands(); //does the commands with encoder to jump from button to button
|
void doCommands(); //does the commands with encoder to jump from button to button
|
||||||
void checkTouch(); //does the commands with a touch on the buttons
|
void checkTouch(); //does the commands with a touch on the buttons
|
||||||
|
24
ubitx_ui.cpp
24
ubitx_ui.cpp
@ -218,30 +218,6 @@ int getValueByKnob(int minimum, int maximum, int step_size, int initial, char*
|
|||||||
return knob_value;
|
return knob_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void printCarrierFreq(unsigned long freq){
|
|
||||||
|
|
||||||
memset(c, 0, sizeof(c));
|
|
||||||
memset(b, 0, sizeof(b));
|
|
||||||
|
|
||||||
ultoa(freq, b, DEC);
|
|
||||||
|
|
||||||
strncat(c, b, 2);
|
|
||||||
strcat(c, ".");
|
|
||||||
strncat(c, &b[2], 3);
|
|
||||||
strcat(c, ".");
|
|
||||||
strncat(c, &b[5], 1);
|
|
||||||
displayText(c, 110, 100, 100, 30, COLOR_TEXT, COLOR_BACKGROUND, COLOR_BACKGROUND);
|
|
||||||
}
|
|
||||||
|
|
||||||
void displayDialog(char *title, char *instructions){
|
|
||||||
displayClear(COLOR_BACKGROUND);
|
|
||||||
displayRect(10,10,300,220, COLOR_TEXT);
|
|
||||||
displayHline(20,45,280,COLOR_TEXT);
|
|
||||||
displayRect(12,12,296,216, COLOR_TEXT);
|
|
||||||
displayRawText(title, 20, 20, COLOR_TEXT, COLOR_BACKGROUND);
|
|
||||||
displayRawText(instructions, 20, 200, COLOR_TEXT, COLOR_BACKGROUND);
|
|
||||||
}
|
|
||||||
|
|
||||||
void displayVFO(int vfo){
|
void displayVFO(int vfo){
|
||||||
int x, y;
|
int x, y;
|
||||||
int displayColor, displayBackground, displayBorder;
|
int displayColor, displayBackground, displayBorder;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user