Remove redundant 1750(rely on button when TX)
All checks were successful
Build Firmware / build (push) Successful in 20s
All checks were successful
Build Firmware / build (push) Successful in 20s
This commit is contained in:
4
Makefile
4
Makefile
@@ -4,14 +4,14 @@
|
|||||||
# 1 = enable
|
# 1 = enable
|
||||||
|
|
||||||
# ---- STOCK QUANSHENG FEATURES ----
|
# ---- STOCK QUANSHENG FEATURES ----
|
||||||
ENABLE_FMRADIO ?= 0
|
ENABLE_FMRADIO ?= 1
|
||||||
ENABLE_UART ?= 1
|
ENABLE_UART ?= 1
|
||||||
ENABLE_AIRCOPY ?= 0
|
ENABLE_AIRCOPY ?= 0
|
||||||
ENABLE_NOAA ?= 0
|
ENABLE_NOAA ?= 0
|
||||||
ENABLE_VOICE ?= 0
|
ENABLE_VOICE ?= 0
|
||||||
ENABLE_VOX ?= 0
|
ENABLE_VOX ?= 0
|
||||||
ENABLE_ALARM ?= 0
|
ENABLE_ALARM ?= 0
|
||||||
ENABLE_TX1750 ?= 1
|
ENABLE_TX1750 ?= 0
|
||||||
ENABLE_PWRON_PASSWORD ?= 0
|
ENABLE_PWRON_PASSWORD ?= 0
|
||||||
ENABLE_DTMF_CALLING ?= 0
|
ENABLE_DTMF_CALLING ?= 0
|
||||||
ENABLE_FLASHLIGHT ?= 1
|
ENABLE_FLASHLIGHT ?= 1
|
||||||
|
@@ -61,11 +61,6 @@ static void ACTION_Scan_FM(bool bRestart);
|
|||||||
static void ACTION_AlarmOr1750(bool b1750);
|
static void ACTION_AlarmOr1750(bool b1750);
|
||||||
inline static void ACTION_Alarm() { ACTION_AlarmOr1750(false); }
|
inline static void ACTION_Alarm() { ACTION_AlarmOr1750(false); }
|
||||||
inline static void ACTION_1750() { ACTION_AlarmOr1750(true); };
|
inline static void ACTION_1750() { ACTION_AlarmOr1750(true); };
|
||||||
|
|
||||||
inline static void ACTION_SSTV() {
|
|
||||||
gFlagPrepareTX = gAlarmState != ALARM_STATE_OFF;
|
|
||||||
gAlarmState = ALARM_STATE_SSTV;
|
|
||||||
};
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
inline static void ACTION_ScanRestart() { ACTION_Scan(true); };
|
inline static void ACTION_ScanRestart() { ACTION_Scan(true); };
|
||||||
@@ -110,8 +105,6 @@ void (*action_opt_table[])(void) = {
|
|||||||
[ACTION_OPT_1750] = &FUNCTION_NOP,
|
[ACTION_OPT_1750] = &FUNCTION_NOP,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
[ACTION_REQ_SSTV] = &ACTION_SSTV,
|
|
||||||
|
|
||||||
#ifdef ENABLE_BLMIN_TMP_OFF
|
#ifdef ENABLE_BLMIN_TMP_OFF
|
||||||
[ACTION_OPT_BLMIN_TMP_OFF] = &ACTION_BlminTmpOff,
|
[ACTION_OPT_BLMIN_TMP_OFF] = &ACTION_BlminTmpOff,
|
||||||
#else
|
#else
|
||||||
|
@@ -35,19 +35,16 @@ void FSKModem_TimeSlice500ms(void) {
|
|||||||
switch (gSMSResponseState) {
|
switch (gSMSResponseState) {
|
||||||
case SMS_RESPONSE_ACK:
|
case SMS_RESPONSE_ACK:
|
||||||
MSG_FSKSendData(&inBoundPacket);
|
MSG_FSKSendData(&inBoundPacket);
|
||||||
UART_String("Acking");
|
|
||||||
gSMSResponseState = SMS_RESPONSE_IDLE;
|
gSMSResponseState = SMS_RESPONSE_IDLE;
|
||||||
SMSResponseCounter = 0;
|
SMSResponseCounter = 0;
|
||||||
break;
|
break;
|
||||||
case SMS_RESPONSE_RETRANSMIT:
|
case SMS_RESPONSE_RETRANSMIT:
|
||||||
MSG_FSKSendData(&inBoundPacket);
|
MSG_FSKSendData(&inBoundPacket);
|
||||||
UART_String("ReTX");
|
|
||||||
gSMSResponseState = SMS_RESPONSE_IDLE;
|
gSMSResponseState = SMS_RESPONSE_IDLE;
|
||||||
SMSResponseCounter = 0;
|
SMSResponseCounter = 0;
|
||||||
break;
|
break;
|
||||||
case SMS_RESPONSE_RESEND:
|
case SMS_RESPONSE_RESEND:
|
||||||
MSG_FSKSendData(&dataPacket);
|
MSG_FSKSendData(&dataPacket);
|
||||||
UART_String("ReSend");
|
|
||||||
gSMSResponseState = SMS_RESPONSE_IDLE;
|
gSMSResponseState = SMS_RESPONSE_IDLE;
|
||||||
SMSResponseCounter = 0;
|
SMSResponseCounter = 0;
|
||||||
break;
|
break;
|
||||||
@@ -175,7 +172,6 @@ void processReceivedPacket(DataPacket *packet) {
|
|||||||
uint16_t crcGot = inBoundPacket.data[0] | (inBoundPacket.data[1] << 8);
|
uint16_t crcGot = inBoundPacket.data[0] | (inBoundPacket.data[1] << 8);
|
||||||
if (crcSent == crcGot) {
|
if (crcSent == crcGot) {
|
||||||
gGotACK = true;
|
gGotACK = true;
|
||||||
UART_String("GOT ACK");
|
|
||||||
BK4819_ToggleGpioOut(BK4819_GPIO5_PIN1_RED, true);
|
BK4819_ToggleGpioOut(BK4819_GPIO5_PIN1_RED, true);
|
||||||
BK4819_ToggleGpioOut(BK4819_GPIO6_PIN2_GREEN, true);
|
BK4819_ToggleGpioOut(BK4819_GPIO6_PIN2_GREEN, true);
|
||||||
SMSResponseCounter = 1;
|
SMSResponseCounter = 1;
|
||||||
@@ -386,7 +382,6 @@ void FSK_HANDLE_IRQ(unsigned short irq) {
|
|||||||
gFSKWriteIndex = 0;
|
gFSKWriteIndex = 0;
|
||||||
memset(&inBoundPacket, 0, sizeof(DataPacket));
|
memset(&inBoundPacket, 0, sizeof(DataPacket));
|
||||||
rxState = Receiving;
|
rxState = Receiving;
|
||||||
UART_String("Sync\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rx_fifo_almost_full && rxState == Receiving) {
|
if (rx_fifo_almost_full && rxState == Receiving) {
|
||||||
@@ -407,7 +402,6 @@ void FSK_HANDLE_IRQ(unsigned short irq) {
|
|||||||
BK4819_FskClearFifo();
|
BK4819_FskClearFifo();
|
||||||
|
|
||||||
rxState = Ready;
|
rxState = Ready;
|
||||||
UART_String("FSK end\n");
|
|
||||||
|
|
||||||
if (gFSKWriteIndex > 2) {
|
if (gFSKWriteIndex > 2) {
|
||||||
// Validate checksum (assuming last 2 bytes are CRC-16)
|
// Validate checksum (assuming last 2 bytes are CRC-16)
|
||||||
|
50
functions.c
50
functions.c
@@ -151,52 +151,6 @@ void FUNCTION_PowerSave() {
|
|||||||
GUI_SelectNextDisplay(DISPLAY_MAIN);
|
GUI_SelectNextDisplay(DISPLAY_MAIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SSTV_MULT 1
|
|
||||||
|
|
||||||
#define SCALE_FREQ(freq) ((((uint32_t)(freq) * 1353245u) + (1u << 16)) >> 17)
|
|
||||||
|
|
||||||
void BK4819_PlaySSTV_Robot8() {
|
|
||||||
|
|
||||||
|
|
||||||
BK4819_EnterTxMute();
|
|
||||||
BK4819_SetAF(gEeprom.DTMF_SIDE_TONE);
|
|
||||||
BK4819_TransmitTone(true, 1000);
|
|
||||||
SYSTEM_DelayMs(100);
|
|
||||||
BK4819_WriteRegister(BK4819_REG_70,
|
|
||||||
BK4819_REG_70_MASK_ENABLE_TONE1 | (66u << BK4819_REG_70_SHIFT_TONE1_TUNING_GAIN));
|
|
||||||
BK4819_EnableTXLink();
|
|
||||||
|
|
||||||
SYSTEM_DelayMs(50);
|
|
||||||
// **Send 9x Vertical Sync Pulses (1,900 Hz, 50ms each)**
|
|
||||||
|
|
||||||
// **Send 3x Vertical Sync Pulses (1,900 Hz, 30ms each)**
|
|
||||||
for (int i = 0; i < 3; i++) {
|
|
||||||
BK4819_WriteRegister(BK4819_REG_71, SCALE_FREQ(1900));
|
|
||||||
SYSTEM_DelayMs(30);
|
|
||||||
}
|
|
||||||
|
|
||||||
// **Transmit Image Data**
|
|
||||||
for (uint8_t y = 0; y < 8; y++) {
|
|
||||||
for (uint8_t rep = 0; rep < 2; rep++) {
|
|
||||||
BK4819_WriteRegister(BK4819_REG_71, SCALE_FREQ(1200));
|
|
||||||
SYSTEM_DelayMs(5);
|
|
||||||
for (uint8_t bit = 0; bit < 8; bit++) {
|
|
||||||
for (uint8_t x = 0; x < 128; x++) {
|
|
||||||
uint8_t byte = gFrameBuffer[y][x];
|
|
||||||
uint8_t bitV = byte & (1 << bit);
|
|
||||||
uint16_t freq = (bitV) ? 2300 : 1200;
|
|
||||||
BK4819_WriteRegister(BK4819_REG_71, SCALE_FREQ(freq));
|
|
||||||
SYSTICK_DelayUs(432); // Pixel time = ~0.432ms
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BK4819_WriteRegister(BK4819_REG_70, 0x0000);
|
|
||||||
// **End Transmission: Mute Transmitter**
|
|
||||||
BK4819_ExitTxMute();
|
|
||||||
}
|
|
||||||
|
|
||||||
void FUNCTION_Transmit() {
|
void FUNCTION_Transmit() {
|
||||||
// if DTMF is enabled when TX'ing, it changes the TX audio filtering !! .. 1of11
|
// if DTMF is enabled when TX'ing, it changes the TX audio filtering !! .. 1of11
|
||||||
|
|
||||||
@@ -264,10 +218,6 @@ void FUNCTION_Transmit() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (gAlarmState == ALARM_STATE_SSTV) {
|
|
||||||
BK4819_PlaySSTV_Robot8();
|
|
||||||
gAlarmState = ALARM_STATE_OFF;
|
|
||||||
}
|
|
||||||
#ifdef ENABLE_ALARM
|
#ifdef ENABLE_ALARM
|
||||||
if (gAlarmState == ALARM_STATE_TXALARM)
|
if (gAlarmState == ALARM_STATE_TXALARM)
|
||||||
BK4819_TransmitTone(true, 500);
|
BK4819_TransmitTone(true, 500);
|
||||||
|
3
misc.h
3
misc.h
@@ -61,8 +61,7 @@ enum AlarmState_t {
|
|||||||
ALARM_STATE_OFF = 0,
|
ALARM_STATE_OFF = 0,
|
||||||
ALARM_STATE_TXALARM,
|
ALARM_STATE_TXALARM,
|
||||||
ALARM_STATE_SITE_ALARM,
|
ALARM_STATE_SITE_ALARM,
|
||||||
ALARM_STATE_TX1750,
|
ALARM_STATE_TX1750
|
||||||
ALARM_STATE_SSTV
|
|
||||||
};
|
};
|
||||||
typedef enum AlarmState_t AlarmState_t;
|
typedef enum AlarmState_t AlarmState_t;
|
||||||
|
|
||||||
|
@@ -136,7 +136,6 @@ enum ACTION_OPT_t {
|
|||||||
ACTION_OPT_REGA_ALARM,
|
ACTION_OPT_REGA_ALARM,
|
||||||
ACTION_OPT_REGA_TEST,
|
ACTION_OPT_REGA_TEST,
|
||||||
#endif
|
#endif
|
||||||
ACTION_REQ_SSTV,
|
|
||||||
ACTION_OPT_LEN
|
ACTION_OPT_LEN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -362,7 +362,6 @@ const t_sidefunction gSubMenu_SIDEFUNCTIONS[] =
|
|||||||
{"POWER\nHIGH", ACTION_OPT_POWER_HIGH},
|
{"POWER\nHIGH", ACTION_OPT_POWER_HIGH},
|
||||||
{"REMOVE\nOFFSET", ACTION_OPT_REMOVE_OFFSET},
|
{"REMOVE\nOFFSET", ACTION_OPT_REMOVE_OFFSET},
|
||||||
#endif
|
#endif
|
||||||
{"SSTV", ACTION_REQ_SSTV},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint8_t gSubMenu_SIDEFUNCTIONS_size = ARRAY_SIZE(gSubMenu_SIDEFUNCTIONS);
|
const uint8_t gSubMenu_SIDEFUNCTIONS_size = ARRAY_SIZE(gSubMenu_SIDEFUNCTIONS);
|
||||||
|
Reference in New Issue
Block a user