Skip to content

Commit cb6c614

Browse files
authored
Merge pull request #198 from armel/feature_update_v3
Feature update v3
2 parents 43e9bd3 + 4548949 commit cb6c614

27 files changed

+461
-305
lines changed

Makefile

+61-49
Original file line numberDiff line numberDiff line change
@@ -4,57 +4,60 @@
44
# 1 = enable
55

66
# ---- STOCK QUANSHENG FERATURES ----
7-
ENABLE_FMRADIO ?= 0
8-
ENABLE_UART ?= 1
9-
ENABLE_AIRCOPY ?= 0
10-
ENABLE_NOAA ?= 0
11-
ENABLE_VOICE ?= 0
12-
ENABLE_VOX ?= 1
13-
ENABLE_ALARM ?= 0
14-
ENABLE_TX1750 ?= 1
15-
ENABLE_PWRON_PASSWORD ?= 0
16-
ENABLE_DTMF_CALLING ?= 0
17-
ENABLE_FLASHLIGHT ?= 1
7+
ENABLE_FMRADIO ?= 0
8+
ENABLE_UART ?= 1
9+
ENABLE_AIRCOPY ?= 0
10+
ENABLE_NOAA ?= 0
11+
ENABLE_VOICE ?= 0
12+
ENABLE_VOX ?= 1
13+
ENABLE_ALARM ?= 0
14+
ENABLE_TX1750 ?= 1
15+
ENABLE_PWRON_PASSWORD ?= 0
16+
ENABLE_DTMF_CALLING ?= 0
17+
ENABLE_FLASHLIGHT ?= 1
1818

1919
# ---- CUSTOM MODS ----
20-
ENABLE_SPECTRUM ?= 1
21-
ENABLE_BIG_FREQ ?= 1
22-
ENABLE_SMALL_BOLD ?= 1
23-
ENABLE_CUSTOM_MENU_LAYOUT ?= 1
24-
ENABLE_KEEP_MEM_NAME ?= 1
25-
ENABLE_WIDE_RX ?= 1
26-
ENABLE_TX_WHEN_AM ?= 0
27-
ENABLE_F_CAL_MENU ?= 0
28-
ENABLE_CTCSS_TAIL_PHASE_SHIFT ?= 0
29-
ENABLE_BOOT_BEEPS ?= 0
30-
ENABLE_SHOW_CHARGE_LEVEL ?= 0
31-
ENABLE_REVERSE_BAT_SYMBOL ?= 0
32-
ENABLE_NO_CODE_SCAN_TIMEOUT ?= 1
33-
ENABLE_AM_FIX ?= 1
34-
ENABLE_SQUELCH_MORE_SENSITIVE ?= 1
35-
ENABLE_FASTER_CHANNEL_SCAN ?= 1
36-
ENABLE_RSSI_BAR ?= 1
37-
ENABLE_AUDIO_BAR ?= 1
38-
ENABLE_COPY_CHAN_TO_VFO ?= 1
39-
ENABLE_REDUCE_LOW_MID_TX_POWER?= 0
40-
ENABLE_BYP_RAW_DEMODULATORS ?= 0
41-
ENABLE_BLMIN_TMP_OFF ?= 0
42-
ENABLE_SCAN_RANGES ?= 1
43-
ENABLE_FEAT_F4HWN ?= 1
44-
ENABLE_FEAT_F4HWN_FIXED_PWR ?= 0
45-
ENABLE_FEAT_F4HWN_SCREENSHOT ?= 0
46-
ENABLE_FEAT_F4HWN_PMR ?= 1
20+
ENABLE_SPECTRUM ?= 1
21+
ENABLE_BIG_FREQ ?= 1
22+
ENABLE_SMALL_BOLD ?= 1
23+
ENABLE_CUSTOM_MENU_LAYOUT ?= 1
24+
ENABLE_KEEP_MEM_NAME ?= 1
25+
ENABLE_WIDE_RX ?= 1
26+
ENABLE_TX_WHEN_AM ?= 0
27+
ENABLE_F_CAL_MENU ?= 0
28+
ENABLE_CTCSS_TAIL_PHASE_SHIFT ?= 0
29+
ENABLE_BOOT_BEEPS ?= 0
30+
ENABLE_SHOW_CHARGE_LEVEL ?= 0
31+
ENABLE_REVERSE_BAT_SYMBOL ?= 0
32+
ENABLE_NO_CODE_SCAN_TIMEOUT ?= 1
33+
ENABLE_AM_FIX ?= 1
34+
ENABLE_SQUELCH_MORE_SENSITIVE ?= 1
35+
ENABLE_FASTER_CHANNEL_SCAN ?= 1
36+
ENABLE_RSSI_BAR ?= 1
37+
ENABLE_AUDIO_BAR ?= 1
38+
ENABLE_COPY_CHAN_TO_VFO ?= 1
39+
ENABLE_REDUCE_LOW_MID_TX_POWER ?= 0
40+
ENABLE_BYP_RAW_DEMODULATORS ?= 0
41+
ENABLE_BLMIN_TMP_OFF ?= 0
42+
ENABLE_SCAN_RANGES ?= 1
43+
ENABLE_FEAT_F4HWN ?= 1
44+
ENABLE_FEAT_F4HWN_SCREENSHOT ?= 0
45+
ENABLE_FEAT_F4HWN_SPECTRUM ?= 1
46+
ENABLE_FEAT_F4HWN_CHARGING_C ?= 1
47+
ENABLE_FEAT_F4HWN_PMR ?= 1
48+
ENABLE_FEAT_F4HWN_GMRS_FRS_MURS ?= 1
49+
ENABLE_FEAT_F4HWN_CA ?= 1
4750

4851
# ---- DEBUGGING ----
49-
ENABLE_AM_FIX_SHOW_DATA ?= 0
50-
ENABLE_AGC_SHOW_DATA ?= 0
51-
ENABLE_UART_RW_BK_REGS ?= 0
52+
ENABLE_AM_FIX_SHOW_DATA ?= 0
53+
ENABLE_AGC_SHOW_DATA ?= 0
54+
ENABLE_UART_RW_BK_REGS ?= 0
5255

5356
# ---- COMPILER/LINKER OPTIONS ----
54-
ENABLE_CLANG ?= 0
55-
ENABLE_SWD ?= 0
56-
ENABLE_OVERLAY ?= 0
57-
ENABLE_LTO ?= 1
57+
ENABLE_CLANG ?= 0
58+
ENABLE_SWD ?= 0
59+
ENABLE_OVERLAY ?= 0
60+
ENABLE_LTO ?= 1
5861

5962
#############################################################
6063

@@ -213,7 +216,7 @@ ifeq ($(ENABLE_FEAT_F4HWN),1)
213216
VERSION_STRING_1 ?= v0.22
214217

215218
AUTHOR_STRING_2 ?= F4HWN
216-
VERSION_STRING_2 ?= v3.0
219+
VERSION_STRING_2 ?= v3.1
217220

218221
AUTHOR_STRING ?= $(AUTHOR_STRING_1)+$(AUTHOR_STRING_2)
219222
VERSION_STRING ?= $(VERSION_STRING_2)
@@ -402,15 +405,24 @@ ifeq ($(ENABLE_FEAT_F4HWN),1)
402405
CFLAGS += -DAUTHOR_STRING_1=\"$(AUTHOR_STRING_1)\" -DVERSION_STRING_1=\"$(VERSION_STRING_1)\"
403406
CFLAGS += -DAUTHOR_STRING_2=\"$(AUTHOR_STRING_2)\" -DVERSION_STRING_2=\"$(VERSION_STRING_2)\"
404407
endif
405-
ifeq ($(ENABLE_FEAT_F4HWN_FIXED_PWR),1)
406-
CFLAGS += -DENABLE_FEAT_F4HWN_FIXED_PWR
407-
endif
408408
ifeq ($(ENABLE_FEAT_F4HWN_SCREENSHOT),1)
409409
CFLAGS += -DENABLE_FEAT_F4HWN_SCREENSHOT
410410
endif
411+
ifeq ($(ENABLE_FEAT_F4HWN_SPECTRUM),1)
412+
CFLAGS += -DENABLE_FEAT_F4HWN_SPECTRUM
413+
endif
414+
ifeq ($(ENABLE_FEAT_F4HWN_CHARGING_C),1)
415+
CFLAGS += -DENABLE_FEAT_F4HWN_CHARGING_C
416+
endif
411417
ifeq ($(ENABLE_FEAT_F4HWN_PMR),1)
412418
CFLAGS += -DENABLE_FEAT_F4HWN_PMR
413419
endif
420+
ifeq ($(ENABLE_FEAT_F4HWN_GMRS_FRS_MURS),1)
421+
CFLAGS += -DENABLE_FEAT_F4HWN_GMRS_FRS_MURS
422+
endif
423+
ifeq ($(ENABLE_FEAT_F4HWN_CA),1)
424+
CFLAGS += -DENABLE_FEAT_F4HWN_CA
425+
endif
414426

415427
LDFLAGS =
416428
LDFLAGS += -z noexecstack -mcpu=cortex-m0 -nostartfiles -Wl,-T,firmware.ld -Wl,--gc-sections

README.md

+22-15
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Anyway, have fun.
2626
2727
# Donations
2828

29-
Special thanks to Jean-Cyrille F6IWW, Fabrice 14RC123, David F4BPP, Olivier 14RC206, Frédéric F4ESO, Stéphane F5LGW, Jorge Ornelas, Laurent F4AXK, Christophe Morel, Clayton W0LED, Pierre Antoine F6FWB, Jean-Claude 14FRS3306, Thierry F4GVO, Eric F1NOU, PricelessToolkit, Ady M6NYJ, Tom McGovern, Joseph Roth, Pierre-Yves Colin, Frank DJ7FG, Marcel Testaz and Brian Frobisher for their [donations](https://www.paypal.com/paypalme/F4HWN). That’s so kind of them. Thanks so much 🙏🏻
29+
Special thanks to Jean-Cyrille F6IWW, Fabrice 14RC123, David F4BPP, Olivier 14RC206, Frédéric F4ESO, Stéphane F5LGW, Jorge Ornelas, Laurent F4AXK, Christophe Morel, Clayton W0LED, Pierre Antoine F6FWB, Jean-Claude 14FRS3306, Thierry F4GVO, Eric F1NOU, PricelessToolkit, Ady M6NYJ, Tom McGovern, Joseph Roth, Pierre-Yves Colin, Frank DJ7FG, Marcel Testaz, Brian Frobisher, Yannick F4JFO and Paolo Bussola for their [donations](https://www.paypal.com/paypalme/F4HWN). That’s so kind of them. Thanks so much 🙏🏻
3030

3131
## Table of Contents
3232

@@ -43,9 +43,15 @@ Special thanks to Jean-Cyrille F6IWW, Fabrice 14RC123, David F4BPP, Olivier 14RC
4343

4444
## Main features:
4545

46-
* improve default power settings level (Low ~125mW, Mid ~2W and High ~5W),
46+
* improve default power settings level:
47+
* Low1 to Low5 (<~20mW, ~125mW, ~250mW, ~500mW, ~1W),
48+
* Mid ~2W,
49+
* High ~5W,
50+
* User (see SetPwr),
4751
* improve s-meter (IARU recommandations),
48-
* improve bandscope (Spectrum Analyser) and add channel name,
52+
* improve bandscope (Spectrum Analyser):
53+
* add channel name,
54+
* add save of some spectrum parameters,
4955
* improve UI:
5056
* menu index is always visible, even if a menu is selected,
5157
* s-meter new design (Classic or Tiny),
@@ -64,7 +70,7 @@ Special thanks to Jean-Cyrille F6IWW, Fabrice 14RC123, David F4BPP, Olivier 14RC
6470
* improve memory channel input,
6571
* and more...
6672
* new menu entries and changes:
67-
* add SetLow menu to set low power (<20mW, 125mW, 250mW, 500mW and 1W),
73+
* add SetPwr menu to set User power (<20mW, 125mW, 250mW, 500mW, 1W, 2W or 5W),
6874
* add SetPtt menu to set PTT mode (Classic or OnePush),
6975
* add SetTot menu to set TOT alert (Off, Sound, Visual, All),
7076
* add SetCtr menu to set contrast (0 to 15),
@@ -81,23 +87,24 @@ Special thanks to Jean-Cyrille F6IWW, Fabrice 14RC123, David F4BPP, Olivier 14RC
8187
* add HAM CA F Lock band (for Canadian zone),
8288
* add GMRS/FRS/MURS F Lock (for North America zone),
8389
* remove blink and SOS functionality,
84-
* remove AM Fix menu (AM Fix is ENABLED by default).
90+
* remove AM Fix menu (AM Fix is ENABLED by default),
91+
* add support of 3500mAh battery,
8592
* improve status bar:
8693
* add SetPtt mode in status bar,
8794
* change font and bitmaps,
8895
* move USB icon to left of battery information,
8996
* add RX and TX timers,
9097
* improve lists and scan lists options:
91-
* add new list 3
92-
* add new list 0 (channel without list...)
93-
* add new scan lists options
94-
* scan list 0 (all channels without list)
95-
* scan list 1
96-
* scan list 2
97-
* scan list 3
98-
* scan lists [1, 2, 3]
99-
* scan all (all channels with ou without list)
100-
* add scan list shortcuts
98+
* add new list 3,
99+
* add new list 0 (channel without list...),
100+
* add new scan lists options,
101+
* scan list 0 (all channels without list),
102+
* scan list 1,
103+
* scan list 2,
104+
* scan list 3,
105+
* scan lists [1, 2, 3],
106+
* scan all (all channels with ou without list),
107+
* add scan list shortcuts,
101108
* new actions:
102109
* RX MODE,
103110
* MAIN ONLY,

app/action.c

+19-7
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ static_assert(ARRAY_SIZE(action_opt_table) == ACTION_OPT_LEN);
121121
void ACTION_Power(void)
122122
{
123123
if (++gTxVfo->OUTPUT_POWER > OUTPUT_POWER_HIGH)
124-
gTxVfo->OUTPUT_POWER = OUTPUT_POWER_LOW;
124+
gTxVfo->OUTPUT_POWER = OUTPUT_POWER_LOW1;
125125

126126
gRequestSaveChannel = 1;
127127

@@ -522,12 +522,24 @@ void ACTION_Ptt(void)
522522

523523
void ACTION_Wn(void)
524524
{
525-
gTxVfo->CHANNEL_BANDWIDTH = (gTxVfo->CHANNEL_BANDWIDTH == 0) ? 1: 0;
526-
#ifdef ENABLE_AM_FIX
527-
BK4819_SetFilterBandwidth(gTxVfo->CHANNEL_BANDWIDTH, true);
528-
#else
529-
BK4819_SetFilterBandwidth(gTxVfo->CHANNEL_BANDWIDTH, false);
530-
#endif
525+
if (FUNCTION_IsRx())
526+
{
527+
gRxVfo->CHANNEL_BANDWIDTH = (gRxVfo->CHANNEL_BANDWIDTH == 0) ? 1: 0;
528+
#ifdef ENABLE_AM_FIX
529+
BK4819_SetFilterBandwidth(gRxVfo->CHANNEL_BANDWIDTH, true);
530+
#else
531+
BK4819_SetFilterBandwidth(gRxVfo->CHANNEL_BANDWIDTH, false);
532+
#endif
533+
}
534+
else
535+
{
536+
gTxVfo->CHANNEL_BANDWIDTH = (gTxVfo->CHANNEL_BANDWIDTH == 0) ? 1: 0;
537+
#ifdef ENABLE_AM_FIX
538+
BK4819_SetFilterBandwidth(gTxVfo->CHANNEL_BANDWIDTH, true);
539+
#else
540+
BK4819_SetFilterBandwidth(gTxVfo->CHANNEL_BANDWIDTH, false);
541+
#endif
542+
}
531543
}
532544

533545
void ACTION_BackLight(void)

app/app.c

+8-21
Original file line numberDiff line numberDiff line change
@@ -1469,30 +1469,16 @@ void APP_TimeSlice500ms(void)
14691469

14701470
if (IS_MR_CHANNEL(gTxVfo->CHANNEL_SAVE) && (gInputBoxIndex == 1 || gInputBoxIndex == 2))
14711471
{
1472+
channelMoveSwitch();
1473+
1474+
if (gBeepToPlay == BEEP_500HZ_60MS_DOUBLE_BEEP_OPTIONAL) {
1475+
AUDIO_PlayBeep(gBeepToPlay);
1476+
}
1477+
14721478
SETTINGS_SaveVfoIndices();
14731479
}
14741480

14751481
cancelUserInputModes();
1476-
1477-
if (gBeepToPlay != BEEP_NONE)
1478-
{
1479-
AUDIO_PlayBeep(gBeepToPlay);
1480-
gBeepToPlay = BEEP_NONE;
1481-
}
1482-
}
1483-
else
1484-
{
1485-
if (IS_MR_CHANNEL(gTxVfo->CHANNEL_SAVE)) { // user is entering channel number
1486-
switch (gInputBoxIndex)
1487-
{
1488-
case 1:
1489-
channelMove(gInputBox[0] - 1, false);
1490-
break;
1491-
case 2:
1492-
channelMove(((gInputBox[0] * 10) + gInputBox[1]) - 1, false);
1493-
break;
1494-
}
1495-
}
14961482
}
14971483
}
14981484

@@ -2046,7 +2032,8 @@ static void ProcessKey(KEY_Code_t Key, bool bKeyPressed, bool bKeyHeld)
20462032
}
20472033

20482034
if (gRequestSaveChannel > 0) { // TODO: remove the gRequestSaveChannel, why use global variable for that??
2049-
if (!bKeyHeld) {
2035+
if ((!bKeyHeld && !bKeyPressed) || UI_MENU_GetCurrentMenuId())
2036+
{
20502037
SETTINGS_SaveChannel(gTxVfo->CHANNEL_SAVE, gEeprom.TX_VFO, gTxVfo, gRequestSaveChannel);
20512038

20522039
if (!SCANNER_IsScanning() && gVfoConfigureMode == VFO_CONFIGURE_NONE)

0 commit comments

Comments
 (0)