Add rescueops new feature
This commit is contained in:
11
Makefile
11
Makefile
@@ -6,7 +6,7 @@
|
|||||||
# ---- STOCK QUANSHENG FERATURES ----
|
# ---- STOCK QUANSHENG FERATURES ----
|
||||||
ENABLE_FMRADIO ?= 0
|
ENABLE_FMRADIO ?= 0
|
||||||
ENABLE_UART ?= 1
|
ENABLE_UART ?= 1
|
||||||
ENABLE_AIRCOPY ?= 1
|
ENABLE_AIRCOPY ?= 0
|
||||||
ENABLE_NOAA ?= 0
|
ENABLE_NOAA ?= 0
|
||||||
ENABLE_VOICE ?= 0
|
ENABLE_VOICE ?= 0
|
||||||
ENABLE_VOX ?= 1
|
ENABLE_VOX ?= 1
|
||||||
@@ -17,7 +17,7 @@ ENABLE_DTMF_CALLING ?= 0
|
|||||||
ENABLE_FLASHLIGHT ?= 1
|
ENABLE_FLASHLIGHT ?= 1
|
||||||
|
|
||||||
# ---- CUSTOM MODS ----
|
# ---- CUSTOM MODS ----
|
||||||
ENABLE_SPECTRUM ?= 1
|
ENABLE_SPECTRUM ?= 0
|
||||||
ENABLE_BIG_FREQ ?= 1
|
ENABLE_BIG_FREQ ?= 1
|
||||||
ENABLE_SMALL_BOLD ?= 1
|
ENABLE_SMALL_BOLD ?= 1
|
||||||
ENABLE_CUSTOM_MENU_LAYOUT ?= 1
|
ENABLE_CUSTOM_MENU_LAYOUT ?= 1
|
||||||
@@ -49,6 +49,7 @@ ENABLE_FEAT_F4HWN_SLEEP ?= 1
|
|||||||
ENABLE_FEAT_F4HWN_RESTORE_SCAN ?= 1
|
ENABLE_FEAT_F4HWN_RESTORE_SCAN ?= 1
|
||||||
ENABLE_FEAT_F4HWN_NARROWER ?= 1
|
ENABLE_FEAT_F4HWN_NARROWER ?= 1
|
||||||
ENABLE_FEAT_F4HWN_CONTRAST ?= 1
|
ENABLE_FEAT_F4HWN_CONTRAST ?= 1
|
||||||
|
ENABLE_FEAT_F4HWN_MENU_LOCK ?= 0
|
||||||
ENABLE_FEAT_F4HWN_VOL ?= 0
|
ENABLE_FEAT_F4HWN_VOL ?= 0
|
||||||
ENABLE_FEAT_F4HWN_RESET_CHANNEL ?= 0
|
ENABLE_FEAT_F4HWN_RESET_CHANNEL ?= 0
|
||||||
ENABLE_FEAT_F4HWN_PMR ?= 0
|
ENABLE_FEAT_F4HWN_PMR ?= 0
|
||||||
@@ -225,6 +226,8 @@ ifeq ($(ENABLE_FEAT_F4HWN),1)
|
|||||||
AUTHOR_STRING_2 ?= F4HWN
|
AUTHOR_STRING_2 ?= F4HWN
|
||||||
VERSION_STRING_2 ?= v3.7
|
VERSION_STRING_2 ?= v3.7
|
||||||
|
|
||||||
|
EDITION_STRING ?= Custom
|
||||||
|
|
||||||
AUTHOR_STRING ?= $(AUTHOR_STRING_1)+$(AUTHOR_STRING_2)
|
AUTHOR_STRING ?= $(AUTHOR_STRING_1)+$(AUTHOR_STRING_2)
|
||||||
VERSION_STRING ?= $(VERSION_STRING_2)
|
VERSION_STRING ?= $(VERSION_STRING_2)
|
||||||
else
|
else
|
||||||
@@ -412,6 +415,7 @@ ifeq ($(ENABLE_FEAT_F4HWN),1)
|
|||||||
CFLAGS += -DSQL_TONE=550 # For SA818, use 600 and python3 sa818.py --port /dev/ttyS2 radio --frequency 434.975 --ctcss 71.9 --tail Open
|
CFLAGS += -DSQL_TONE=550 # For SA818, use 600 and python3 sa818.py --port /dev/ttyS2 radio --frequency 434.975 --ctcss 71.9 --tail Open
|
||||||
CFLAGS += -DAUTHOR_STRING_1=\"$(AUTHOR_STRING_1)\" -DVERSION_STRING_1=\"$(VERSION_STRING_1)\"
|
CFLAGS += -DAUTHOR_STRING_1=\"$(AUTHOR_STRING_1)\" -DVERSION_STRING_1=\"$(VERSION_STRING_1)\"
|
||||||
CFLAGS += -DAUTHOR_STRING_2=\"$(AUTHOR_STRING_2)\" -DVERSION_STRING_2=\"$(VERSION_STRING_2)\"
|
CFLAGS += -DAUTHOR_STRING_2=\"$(AUTHOR_STRING_2)\" -DVERSION_STRING_2=\"$(VERSION_STRING_2)\"
|
||||||
|
CFLAGS += -DEDITION_STRING=\"$(EDITION_STRING)\"
|
||||||
else
|
else
|
||||||
CFLAGS += -DSQL_TONE=550
|
CFLAGS += -DSQL_TONE=550
|
||||||
endif
|
endif
|
||||||
@@ -439,6 +443,9 @@ endif
|
|||||||
ifeq ($(ENABLE_FEAT_F4HWN_CONTRAST),1)
|
ifeq ($(ENABLE_FEAT_F4HWN_CONTRAST),1)
|
||||||
CFLAGS += -DENABLE_FEAT_F4HWN_CONTRAST
|
CFLAGS += -DENABLE_FEAT_F4HWN_CONTRAST
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(filter $(ENABLE_FEAT_F4HWN_MENU_LOCK),1 2),)
|
||||||
|
CFLAGS += -DENABLE_FEAT_F4HWN_MENU_LOCK=$(ENABLE_FEAT_F4HWN_MENU_LOCK)
|
||||||
|
endif
|
||||||
ifeq ($(ENABLE_FEAT_F4HWN_VOL),1)
|
ifeq ($(ENABLE_FEAT_F4HWN_VOL),1)
|
||||||
CFLAGS += -DENABLE_FEAT_F4HWN_VOL
|
CFLAGS += -DENABLE_FEAT_F4HWN_VOL
|
||||||
endif
|
endif
|
||||||
|
@@ -1398,7 +1398,7 @@ void APP_TimeSlice10ms(void)
|
|||||||
return;
|
return;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef ENABLE_FEAT_F4HWN
|
#if !defined(ENABLE_FEAT_F4HWN) || defined(ENABLE_FEAT_F4HWN_MENU_LOCK)
|
||||||
#ifdef ENABLE_FLASHLIGHT
|
#ifdef ENABLE_FLASHLIGHT
|
||||||
FlashlightTimeSlice();
|
FlashlightTimeSlice();
|
||||||
#endif
|
#endif
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include "flashlight.h"
|
#include "flashlight.h"
|
||||||
|
|
||||||
#ifndef ENABLE_FEAT_F4HWN
|
#if !defined(ENABLE_FEAT_F4HWN) || defined(ENABLE_FEAT_F4HWN_MENU_LOCK)
|
||||||
enum FlashlightMode_t gFlashLightState;
|
enum FlashlightMode_t gFlashLightState;
|
||||||
|
|
||||||
void FlashlightTimeSlice()
|
void FlashlightTimeSlice()
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#ifndef ENABLE_FEAT_F4HWN
|
#if !defined(ENABLE_FEAT_F4HWN) || defined(ENABLE_FEAT_F4HWN_MENU_LOCK)
|
||||||
enum FlashlightMode_t {
|
enum FlashlightMode_t {
|
||||||
FLASHLIGHT_OFF = 0,
|
FLASHLIGHT_OFF = 0,
|
||||||
FLASHLIGHT_ON,
|
FLASHLIGHT_ON,
|
||||||
|
29
app/main.c
29
app/main.c
@@ -84,6 +84,12 @@ static void processFKeyFunction(const KEY_Code_t Key, const bool beep)
|
|||||||
{
|
{
|
||||||
uint8_t Vfo = gEeprom.TX_VFO;
|
uint8_t Vfo = gEeprom.TX_VFO;
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
if(gEeprom.MENU_LOCK == true) {
|
||||||
|
return; // prevent F function if MENU LOCK is true
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (gScreenToDisplay == DISPLAY_MENU) {
|
if (gScreenToDisplay == DISPLAY_MENU) {
|
||||||
gBeepToPlay = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL;
|
gBeepToPlay = BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL;
|
||||||
return;
|
return;
|
||||||
@@ -680,11 +686,19 @@ static void MAIN_Key_MENU(bool bKeyPressed, bool bKeyHeld)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
if(gEeprom.MENU_LOCK == false) {
|
||||||
|
#endif
|
||||||
|
|
||||||
gFlagRefreshSetting = true;
|
gFlagRefreshSetting = true;
|
||||||
gRequestDisplayScreen = DISPLAY_MENU;
|
gRequestDisplayScreen = DISPLAY_MENU;
|
||||||
#ifdef ENABLE_VOICE
|
#ifdef ENABLE_VOICE
|
||||||
gAnotherVoiceID = VOICE_ID_MENU;
|
gAnotherVoiceID = VOICE_ID_MENU;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
gRequestDisplayScreen = DISPLAY_MAIN;
|
gRequestDisplayScreen = DISPLAY_MAIN;
|
||||||
@@ -694,6 +708,13 @@ static void MAIN_Key_MENU(bool bKeyPressed, bool bKeyHeld)
|
|||||||
|
|
||||||
static void MAIN_Key_STAR(bool bKeyPressed, bool bKeyHeld)
|
static void MAIN_Key_STAR(bool bKeyPressed, bool bKeyHeld)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
if(gEeprom.MENU_LOCK == true) {
|
||||||
|
return; // prevent F function if MENU LOCK is true
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
if (gCurrentFunction == FUNCTION_TRANSMIT)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -927,7 +948,13 @@ void MAIN_ProcessKeys(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
|
|||||||
MAIN_Key_STAR(bKeyPressed, bKeyHeld);
|
MAIN_Key_STAR(bKeyPressed, bKeyHeld);
|
||||||
break;
|
break;
|
||||||
case KEY_F:
|
case KEY_F:
|
||||||
GENERIC_Key_F(bKeyPressed, bKeyHeld);
|
#ifndef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
GENERIC_Key_F(bKeyPressed, bKeyHeld);
|
||||||
|
#else
|
||||||
|
if(gEeprom.MENU_LOCK == false) {
|
||||||
|
GENERIC_Key_F(bKeyPressed, bKeyHeld);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
break;
|
break;
|
||||||
case KEY_PTT:
|
case KEY_PTT:
|
||||||
GENERIC_Key_PTT(bKeyPressed);
|
GENERIC_Key_PTT(bKeyPressed);
|
||||||
|
11
bitmaps.c
11
bitmaps.c
@@ -291,6 +291,17 @@ const uint8_t BITMAP_Ready[7] =
|
|||||||
0b00000010,
|
0b00000010,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const uint8_t BITMAP_NotReady[7] =
|
||||||
|
{
|
||||||
|
0b00000000,
|
||||||
|
0b01000010,
|
||||||
|
0b00100100,
|
||||||
|
0b00011000,
|
||||||
|
0b00100100,
|
||||||
|
0b01000010,
|
||||||
|
0b00000000,
|
||||||
|
};
|
||||||
|
|
||||||
const uint8_t BITMAP_PowerUser[3] =
|
const uint8_t BITMAP_PowerUser[3] =
|
||||||
{ // 'arrow' symbol
|
{ // 'arrow' symbol
|
||||||
0b00111110,
|
0b00111110,
|
||||||
|
@@ -22,6 +22,7 @@ extern const uint8_t BITMAP_BatteryLevel[2];
|
|||||||
extern const uint8_t BITMAP_BatteryLevel1[17];
|
extern const uint8_t BITMAP_BatteryLevel1[17];
|
||||||
extern const uint8_t BITMAP_USB_C[9];
|
extern const uint8_t BITMAP_USB_C[9];
|
||||||
extern const uint8_t BITMAP_Ready[7];
|
extern const uint8_t BITMAP_Ready[7];
|
||||||
|
extern const uint8_t BITMAP_NotReady[7];
|
||||||
|
|
||||||
#ifdef ENABLE_VOX
|
#ifdef ENABLE_VOX
|
||||||
extern const uint8_t gFontVox[2][6];
|
extern const uint8_t gFontVox[2][6];
|
||||||
|
@@ -7,6 +7,7 @@ docker build -t $IMAGE_NAME .
|
|||||||
custom() {
|
custom() {
|
||||||
echo "Custom compilation..."
|
echo "Custom compilation..."
|
||||||
docker run --rm -v "${PWD}/compiled-firmware/:/app/compiled-firmware" $IMAGE_NAME /bin/bash -c "rm ./compiled-firmware/*; cd /app && make -s \
|
docker run --rm -v "${PWD}/compiled-firmware/:/app/compiled-firmware" $IMAGE_NAME /bin/bash -c "rm ./compiled-firmware/*; cd /app && make -s \
|
||||||
|
EDITION_STRING=Custom \
|
||||||
TARGET=f4hwn.custom \
|
TARGET=f4hwn.custom \
|
||||||
&& cp f4hwn.custom* compiled-firmware/"
|
&& cp f4hwn.custom* compiled-firmware/"
|
||||||
}
|
}
|
||||||
@@ -18,6 +19,8 @@ bandscope() {
|
|||||||
ENABLE_FMRADIO=0 \
|
ENABLE_FMRADIO=0 \
|
||||||
ENABLE_AIRCOPY=1 \
|
ENABLE_AIRCOPY=1 \
|
||||||
ENABLE_NOAA=0 \
|
ENABLE_NOAA=0 \
|
||||||
|
ENABLE_FEAT_F4HWN_MENU_LOCK=0 \
|
||||||
|
EDITION_STRING=Bandscope \
|
||||||
TARGET=f4hwn.bandscope \
|
TARGET=f4hwn.bandscope \
|
||||||
&& cp f4hwn.bandscope* compiled-firmware/"
|
&& cp f4hwn.bandscope* compiled-firmware/"
|
||||||
}
|
}
|
||||||
@@ -29,6 +32,8 @@ broadcast() {
|
|||||||
ENABLE_FMRADIO=1 \
|
ENABLE_FMRADIO=1 \
|
||||||
ENABLE_AIRCOPY=1 \
|
ENABLE_AIRCOPY=1 \
|
||||||
ENABLE_NOAA=0 \
|
ENABLE_NOAA=0 \
|
||||||
|
EDITION_STRING=Broadcast \
|
||||||
|
ENABLE_FEAT_F4HWN_MENU_LOCK=0 \
|
||||||
TARGET=f4hwn.broadcast \
|
TARGET=f4hwn.broadcast \
|
||||||
&& cp f4hwn.broadcast* compiled-firmware/"
|
&& cp f4hwn.broadcast* compiled-firmware/"
|
||||||
}
|
}
|
||||||
@@ -46,19 +51,35 @@ voxless() {
|
|||||||
ENABLE_FEAT_F4HWN_RESTORE_SCAN=0 \
|
ENABLE_FEAT_F4HWN_RESTORE_SCAN=0 \
|
||||||
ENABLE_FEAT_F4HWN_CHARGING_C=0 \
|
ENABLE_FEAT_F4HWN_CHARGING_C=0 \
|
||||||
ENABLE_FEAT_F4HWN_NARROWER=0 \
|
ENABLE_FEAT_F4HWN_NARROWER=0 \
|
||||||
|
ENABLE_FEAT_F4HWN_MENU_LOCK=0 \
|
||||||
|
EDITION_STRING=Voxless \
|
||||||
TARGET=f4hwn.voxless \
|
TARGET=f4hwn.voxless \
|
||||||
&& cp f4hwn.voxless* compiled-firmware/"
|
&& cp f4hwn.voxless* compiled-firmware/"
|
||||||
}
|
}
|
||||||
|
|
||||||
light() {
|
standard() {
|
||||||
echo "Light compilation..."
|
echo "Standard compilation..."
|
||||||
docker run --rm -v "${PWD}/compiled-firmware:/app/compiled-firmware" $IMAGE_NAME /bin/bash -c "cd /app && make -s \
|
docker run --rm -v "${PWD}/compiled-firmware:/app/compiled-firmware" $IMAGE_NAME /bin/bash -c "cd /app && make -s \
|
||||||
ENABLE_SPECTRUM=0 \
|
ENABLE_SPECTRUM=0 \
|
||||||
ENABLE_FMRADIO=0 \
|
ENABLE_FMRADIO=0 \
|
||||||
ENABLE_AIRCOPY=0 \
|
ENABLE_AIRCOPY=0 \
|
||||||
|
ENABLE_NOAA=0 \
|
||||||
|
EDITION_STRING=Standard \
|
||||||
|
TARGET=f4hwn.standard \
|
||||||
|
&& cp f4hwn.standard* compiled-firmware/"
|
||||||
|
}
|
||||||
|
|
||||||
|
rescueops() {
|
||||||
|
echo "RescueOps compilation..."
|
||||||
|
docker run --rm -v "${PWD}/compiled-firmware:/app/compiled-firmware" $IMAGE_NAME /bin/bash -c "cd /app && make -s \
|
||||||
|
ENABLE_SPECTRUM=0 \
|
||||||
|
ENABLE_FMRADIO=0 \
|
||||||
|
ENABLE_AIRCOPY=1 \
|
||||||
ENABLE_NOAA=1 \
|
ENABLE_NOAA=1 \
|
||||||
TARGET=f4hwn.light \
|
ENABLE_FEAT_F4HWN_MENU_LOCK=2 \
|
||||||
&& cp f4hwn.light* compiled-firmware/"
|
EDITION_STRING=RescueOps \
|
||||||
|
TARGET=f4hwn.rescueops \
|
||||||
|
&& cp f4hwn.rescueops* compiled-firmware/"
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@@ -74,17 +95,21 @@ case "$1" in
|
|||||||
voxless)
|
voxless)
|
||||||
voxless
|
voxless
|
||||||
;;
|
;;
|
||||||
light)
|
standard)
|
||||||
light
|
standard
|
||||||
|
;;
|
||||||
|
rescueops)
|
||||||
|
rescueops
|
||||||
;;
|
;;
|
||||||
all)
|
all)
|
||||||
bandscope
|
bandscope
|
||||||
broadcast
|
broadcast
|
||||||
voxless
|
voxless
|
||||||
light
|
standard
|
||||||
|
rescueops
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 {custom|bandscope|broadcast|voxless|all}"
|
echo "Usage: $0 {custom|bandscope|broadcast|voxless|standard|all}"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
@@ -44,6 +44,13 @@ BOOT_Mode_t BOOT_GetMode(void)
|
|||||||
SYSTEM_DelayMs(20);
|
SYSTEM_DelayMs(20);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
if (Keys[0] == KEY_MENU)
|
||||||
|
{
|
||||||
|
return BOOT_MODE_MENU_LOCK; // Menu pressed
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (Keys[0] == Keys[1])
|
if (Keys[0] == Keys[1])
|
||||||
{
|
{
|
||||||
gKeyReading0 = Keys[0];
|
gKeyReading0 = Keys[0];
|
||||||
|
@@ -24,6 +24,9 @@ enum BOOT_Mode_t
|
|||||||
{
|
{
|
||||||
BOOT_MODE_NORMAL = 0,
|
BOOT_MODE_NORMAL = 0,
|
||||||
BOOT_MODE_F_LOCK,
|
BOOT_MODE_F_LOCK,
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
BOOT_MODE_MENU_LOCK,
|
||||||
|
#endif
|
||||||
#ifdef ENABLE_AIRCOPY
|
#ifdef ENABLE_AIRCOPY
|
||||||
BOOT_MODE_AIRCOPY
|
BOOT_MODE_AIRCOPY
|
||||||
#endif
|
#endif
|
||||||
|
25
main.c
25
main.c
@@ -129,7 +129,30 @@ void Main(void)
|
|||||||
AM_fix_init();
|
AM_fix_init();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const BOOT_Mode_t BootMode = BOOT_GetMode();
|
BOOT_Mode_t BootMode = BOOT_GetMode();
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
if (BootMode == BOOT_MODE_MENU_LOCK)
|
||||||
|
{
|
||||||
|
gEeprom.MENU_LOCK = !gEeprom.MENU_LOCK;
|
||||||
|
SETTINGS_SaveSettings();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(gEeprom.MENU_LOCK == true) // Force Main Only
|
||||||
|
{
|
||||||
|
gEeprom.DUAL_WATCH = 0;
|
||||||
|
gEeprom.CROSS_BAND_RX_TX = 0;
|
||||||
|
//gFlagReconfigureVfos = true;
|
||||||
|
//gUpdateStatus = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
if (BootMode == BOOT_MODE_F_LOCK && gEeprom.MENU_LOCK == true)
|
||||||
|
{
|
||||||
|
BootMode = BOOT_MODE_NORMAL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (BootMode == BOOT_MODE_F_LOCK)
|
if (BootMode == BOOT_MODE_F_LOCK)
|
||||||
{
|
{
|
||||||
|
15
settings.c
15
settings.c
@@ -51,7 +51,12 @@ void SETTINGS_InitEEPROM(void)
|
|||||||
#ifdef ENABLE_NOAA
|
#ifdef ENABLE_NOAA
|
||||||
gEeprom.NOAA_AUTO_SCAN = (Data[3] < 2) ? Data[3] : false;
|
gEeprom.NOAA_AUTO_SCAN = (Data[3] < 2) ? Data[3] : false;
|
||||||
#endif
|
#endif
|
||||||
gEeprom.KEY_LOCK = (Data[4] < 2) ? Data[4] : false;
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
gEeprom.KEY_LOCK = (Data[4] & 0x01) != 0;
|
||||||
|
gEeprom.MENU_LOCK = (Data[4] & 0x02) != 0;
|
||||||
|
#else
|
||||||
|
gEeprom.KEY_LOCK = (Data[4] < 2) ? Data[4] : false;
|
||||||
|
#endif
|
||||||
#ifdef ENABLE_VOX
|
#ifdef ENABLE_VOX
|
||||||
gEeprom.VOX_SWITCH = (Data[5] < 2) ? Data[5] : false;
|
gEeprom.VOX_SWITCH = (Data[5] < 2) ? Data[5] : false;
|
||||||
gEeprom.VOX_LEVEL = (Data[6] < 10) ? Data[6] : 1;
|
gEeprom.VOX_LEVEL = (Data[6] < 10) ? Data[6] : 1;
|
||||||
@@ -590,7 +595,13 @@ void SETTINGS_SaveSettings(void)
|
|||||||
#else
|
#else
|
||||||
State[3] = false;
|
State[3] = false;
|
||||||
#endif
|
#endif
|
||||||
State[4] = gEeprom.KEY_LOCK;
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
State[4] = (gEeprom.KEY_LOCK ? 0x01 : 0) | (gEeprom.MENU_LOCK ? 0x02 :0);
|
||||||
|
#else
|
||||||
|
State[4] = gEeprom.KEY_LOCK;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ENABLE_VOX
|
#ifdef ENABLE_VOX
|
||||||
State[5] = gEeprom.VOX_SWITCH;
|
State[5] = gEeprom.VOX_SWITCH;
|
||||||
State[6] = gEeprom.VOX_LEVEL;
|
State[6] = gEeprom.VOX_LEVEL;
|
||||||
|
@@ -185,6 +185,9 @@ typedef struct {
|
|||||||
bool KEY_LOCK;
|
bool KEY_LOCK;
|
||||||
#ifdef ENABLE_FEAT_F4HWN
|
#ifdef ENABLE_FEAT_F4HWN
|
||||||
bool KEY_LOCK_PTT;
|
bool KEY_LOCK_PTT;
|
||||||
|
#endif
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
bool MENU_LOCK;
|
||||||
#endif
|
#endif
|
||||||
bool VOX_SWITCH;
|
bool VOX_SWITCH;
|
||||||
uint8_t VOX_LEVEL;
|
uint8_t VOX_LEVEL;
|
||||||
|
52
ui/welcome.c
52
ui/welcome.c
@@ -128,6 +128,38 @@ void UI_DisplayWelcome(void)
|
|||||||
gFrameBuffer[4][i] ^= 0xFF;
|
gFrameBuffer[4][i] ^= 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
#if ENABLE_FEAT_F4HWN_MENU_LOCK > 1
|
||||||
|
UI_PrintStringSmallNormal(Edition, 18, 0, 6);
|
||||||
|
if(gEeprom.MENU_LOCK == true) {
|
||||||
|
memcpy(gFrameBuffer[6] + 103, BITMAP_Ready, sizeof(BITMAP_Ready));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memcpy(gFrameBuffer[6] + 103, BITMAP_NotReady, sizeof(BITMAP_NotReady));
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UI_PrintStringSmallNormal(Edition, 18, 0, 5);
|
||||||
|
memcpy(gFrameBuffer[5] + 103, BITMAP_Ready, sizeof(BITMAP_Ready));
|
||||||
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
UI_PrintStringSmallNormal("RescueOps", 18, 0, 6);
|
||||||
|
if(gEeprom.MENU_LOCK == true) {
|
||||||
|
memcpy(gFrameBuffer[6] + 103, BITMAP_Ready, sizeof(BITMAP_Ready));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memcpy(gFrameBuffer[6] + 103, BITMAP_NotReady, sizeof(BITMAP_NotReady));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
UI_PrintStringSmallNormal(Edition, 18, 0, 6);
|
||||||
|
memcpy(gFrameBuffer[6] + 103, BITMAP_Ready, sizeof(BITMAP_Ready));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
#ifdef ENABLE_SPECTRUM
|
#ifdef ENABLE_SPECTRUM
|
||||||
#ifdef ENABLE_FMRADIO
|
#ifdef ENABLE_FMRADIO
|
||||||
UI_PrintStringSmallNormal(Based, 0, 127, 5);
|
UI_PrintStringSmallNormal(Based, 0, 127, 5);
|
||||||
@@ -135,13 +167,29 @@ void UI_DisplayWelcome(void)
|
|||||||
#else
|
#else
|
||||||
UI_PrintStringSmallNormal("Bandscope ", 0, 127, 5);
|
UI_PrintStringSmallNormal("Bandscope ", 0, 127, 5);
|
||||||
memcpy(gFrameBuffer[5] + 95, BITMAP_Ready, sizeof(BITMAP_Ready));
|
memcpy(gFrameBuffer[5] + 95, BITMAP_Ready, sizeof(BITMAP_Ready));
|
||||||
UI_PrintStringSmallNormal("Broadcast ", 0, 127, 6);
|
|
||||||
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
UI_PrintStringSmallNormal("RescueOps ", 0, 127, 6);
|
||||||
|
if(gEeprom.MENU_LOCK == true) {
|
||||||
|
memcpy(gFrameBuffer[6] + 95, BITMAP_Ready, sizeof(BITMAP_Ready));
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UI_PrintStringSmallNormal("Broadcast ", 0, 127, 6);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
UI_PrintStringSmallNormal("Bandscope ", 0, 127, 5);
|
#ifdef ENABLE_FEAT_F4HWN_MENU_LOCK
|
||||||
|
UI_PrintStringSmallNormal("RescueOps ", 0, 127, 5);
|
||||||
|
if(gEeprom.MENU_LOCK == true) {
|
||||||
|
memcpy(gFrameBuffer[5] + 95, BITMAP_Ready, sizeof(BITMAP_Ready));
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
UI_PrintStringSmallNormal("Bandscope ", 0, 127, 5);
|
||||||
|
#endif
|
||||||
UI_PrintStringSmallNormal("Broadcast ", 0, 127, 6);
|
UI_PrintStringSmallNormal("Broadcast ", 0, 127, 6);
|
||||||
memcpy(gFrameBuffer[6] + 95, BITMAP_Ready, sizeof(BITMAP_Ready));
|
memcpy(gFrameBuffer[6] + 95, BITMAP_Ready, sizeof(BITMAP_Ready));
|
||||||
#endif
|
#endif
|
||||||
|
*/
|
||||||
#else
|
#else
|
||||||
UI_PrintStringSmallNormal(Version, 0, 127, 6);
|
UI_PrintStringSmallNormal(Version, 0, 127, 6);
|
||||||
#endif
|
#endif
|
||||||
|
@@ -7,8 +7,7 @@
|
|||||||
|
|
||||||
#ifdef ENABLE_FEAT_F4HWN
|
#ifdef ENABLE_FEAT_F4HWN
|
||||||
const char Version[] = AUTHOR_STRING_2 " " VERSION_STRING_2;
|
const char Version[] = AUTHOR_STRING_2 " " VERSION_STRING_2;
|
||||||
const char Based[] = "based on";
|
const char Edition[] = EDITION_STRING;
|
||||||
const char Credits[] = AUTHOR_STRING_1 " " VERSION_STRING_1;
|
|
||||||
#else
|
#else
|
||||||
const char Version[] = AUTHOR_STRING VER;
|
const char Version[] = AUTHOR_STRING VER;
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user