From ab0c37290f255457f3b426da6acd1663d3f52646 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Fri, 27 Oct 2023 10:52:32 +0100 Subject: [PATCH] updates --- Makefile | 2 +- app/action.c | 4 +- app/aircopy.c | 4 +- app/app.c | 116 +++++++++--- app/fm.c | 4 +- app/generic.c | 4 +- app/main.c | 4 +- app/menu.c | 4 +- app/search.c | 4 +- app/uart.c | 4 +- audio.c | 4 +- driver/bk4819.c | 142 +++++++------- driver/bk4819.h | 2 +- firmware.bin | Bin 61272 -> 59408 bytes firmware.packed.bin | Bin 61290 -> 59426 bytes frequencies.c | 4 +- functions.c | 4 +- main.c | 11 +- mdc1200.c | 448 ++++++++++++++++++++++++-------------------- mdc1200.h | 18 +- settings.c | 4 +- ui/menu.c | 4 +- ui/status.c | 7 +- 23 files changed, 480 insertions(+), 318 deletions(-) diff --git a/Makefile b/Makefile index 590c4c5..ad594ec 100644 --- a/Makefile +++ b/Makefile @@ -14,7 +14,7 @@ ENABLE_LTO := 1 ENABLE_UART := 1 ENABLE_UART_DEBUG := 1 # AirCopy 2.5 kB -ENABLE_AIRCOPY := 1 +ENABLE_AIRCOPY := 0 ENABLE_AIRCOPY_REMEMBER_FREQ := 1 ENABLE_AIRCOPY_RX_REBOOT := 0 # FM Radio 4.2 kB diff --git a/app/action.c b/app/action.c index ae40b2e..d8aba30 100644 --- a/app/action.c +++ b/app/action.c @@ -30,7 +30,9 @@ #endif #include "driver/bk4819.h" #include "driver/gpio.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "functions.h" #include "misc.h" #include "settings.h" diff --git a/app/aircopy.c b/app/aircopy.c index b02032d..76a7e07 100644 --- a/app/aircopy.c +++ b/app/aircopy.c @@ -28,7 +28,9 @@ #include "driver/eeprom.h" #include "driver/gpio.h" #include "driver/system.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "frequencies.h" #include "misc.h" #include "radio.h" diff --git a/app/app.c b/app/app.c index a836818..860e675 100644 --- a/app/app.c +++ b/app/app.c @@ -44,7 +44,9 @@ #include "driver/keyboard.h" #include "driver/st7565.h" #include "driver/system.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "am_fix.h" #include "dtmf.h" #include "external/printf/printf.h" @@ -492,7 +494,7 @@ bool APP_start_listening(function_type_t Function, const bool reset_am_fix) #endif #ifdef ENABLE_MDC1200 - MDC1200_reset_rx(); +// MDC1200_reset_rx(); #endif // clear the other vfo's rssi level (to hide the antenna symbol) @@ -586,7 +588,7 @@ bool APP_start_listening(function_type_t Function, const bool reset_am_fix) (g_eeprom.volume_gain << 4) | // AF Rx Gain-2 (g_eeprom.dac_gain << 0)); // AF DAC Gain (after Gain-1 and Gain-2) } - + #ifdef ENABLE_VOICE #ifdef MUTE_AUDIO_FOR_VOICE if (g_voice_write_index == 0) @@ -920,8 +922,10 @@ void APP_process_radio_interrupts(void) while (BK4819_ReadRegister(0x0C) & (1u << 0)) { // BK chip interrupt request + uint16_t interrupt_bits; + BK4819_WriteRegister(0x02, 0); - const uint16_t interrupt_bits = BK4819_ReadRegister(0x02); + interrupt_bits = BK4819_ReadRegister(0x02); if (interrupt_bits & BK4819_REG_02_DTMF_5TONE_FOUND) { // save the RX'ed DTMF character @@ -1016,8 +1020,8 @@ void APP_process_radio_interrupts(void) if (interrupt_bits & BK4819_REG_02_SQUELCH_CLOSED) { - BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, false); // LED off g_squelch_open = false; + BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, false); // LED off #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) UART_printf("squelch closed\r\n"); @@ -1026,7 +1030,6 @@ void APP_process_radio_interrupts(void) if (interrupt_bits & BK4819_REG_02_SQUELCH_OPENED) { -// BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, true); // LED on g_squelch_open = true; #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) @@ -1036,48 +1039,119 @@ void APP_process_radio_interrupts(void) #ifdef ENABLE_MDC1200 { - const uint16_t sync_flags = BK4819_ReadRegister(0x0B); - -// if (sync_flags & ((1u << 7) | (1u << 6))) -// { // RX sync found (pos or neg version) -// #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) -// UART_printf("fsk rx sync\r\n"); -// #endif -// } + const uint16_t rx_sync_flags = BK4819_ReadRegister(0x0B); + const bool rx_sync_neg = (rx_sync_flags & (1u << 7)) ? true : false; + const bool rx_sync_pos = (rx_sync_flags & (1u << 6)) ? true : false; + const bool rx_sync = (interrupt_bits & BK4819_REG_02_FSK_RX_SYNC) ? true : false; + const bool rx_finished = (interrupt_bits & BK4819_REG_02_FSK_RX_FINISHED) ? true : false; + const bool rx_fifo_almost_full = (interrupt_bits & BK4819_REG_02_FSK_FIFO_ALMOST_FULL) ? true : false; - if (sync_flags & (1u << 7)) + BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, true); // LED on + + if (rx_sync_neg) { // RX sync neg found #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) UART_printf("fsk rx sync neg\r\n"); #endif } - - if (sync_flags & (1u << 6)) + + if (rx_sync_pos) { // RX sync pos found #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) UART_printf("fsk rx sync pos\r\n"); #endif } - if (interrupt_bits & BK4819_REG_02_FSK_RX_SYNC) + if (rx_sync) { #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) UART_printf("fsk rx sync\r\n"); #endif } + + if (rx_fifo_almost_full) + { + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("fsk rx almost full\r\n"); + #endif + } - if (interrupt_bits & BK4819_REG_02_FSK_RX_FINISHED) + if (rx_finished) { #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) UART_printf("fsk rx finished\r\n"); #endif } - if (interrupt_bits & BK4819_REG_02_FSK_FIFO_ALMOST_FULL) + if (rx_fifo_almost_full) { + uint8_t buffer[sizeof(mdc1200_sync_suc_xor) + 14]; + unsigned int i; + uint8_t op; + uint8_t arg; + uint16_t unit_id; + const uint16_t fsk_reg59 = BK4819_ReadRegister(0x59) & ~((1u << 15) | (1u << 14) | (1u << 12) | (1u << 11)); + const unsigned int sync_size = (fsk_reg59 & (1u << 3)) ? 4 : 2; +// const unsigned int size = 1 + ((BK4819_ReadRegister(0x5D) >> 8) & 0xffff); + const unsigned int size = sizeof(buffer) - sync_size; + + // 40 C4 B0 32 BA F9 33 18 35 08 83 F6 0C C9 + // 0100000011000100101100000011001010111010111110010011001100011000001101010000100010000011111101100000110011001001 + + // 0100000011000100101100000011001010111010111110010011001100011000001101010000100010000011111101100000000011110101 + // 1011111100111011010011111100110101000101000001101100110011100111110010101111011101111100000010011111111100001010 + + // BF 3B 4F CD 45 06 CC E7 CA F7 7C 09 FF 0A + + { // fetch RX'ed data .. 16-bits at a time + + unsigned int k = 0; + + // precede the data with the missing sync pattern + for (i = 0; i < sync_size; i++) + buffer[k++] = mdc1200_sync_suc_xor[i] ^ (rx_sync_neg ? 0xff : 0); + + for (i = 0; i < (size / 2); i++) + { + const uint16_t word = BK4819_ReadRegister(0x5F); + buffer[k++] = (word >> 8) & 0xff; + buffer[k++] = (word >> 0) & 0xff; + } + } + + // clear FIFO's then enable RX + BK4819_WriteRegister(0x59, (1u << 15) | (1u << 14) | fsk_reg59); + BK4819_WriteRegister(0x59, (1u << 12) | fsk_reg59); + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) - UART_printf("fsk rx almost full\r\n"); + UART_SendText("fsk rx "); + for (i = 0; i < sizeof(buffer); i++) + UART_printf(" %02X", buffer[i]); + UART_SendText("\r\n"); #endif + + if (!g_squelch_open) + BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, false); // LED off + + if (MDC1200_process_rx( + buffer, + sizeof(buffer), +// (sync_flags & (1u << 7)) ? true : false, // true if the sync pattern is bit inverted + &op, + &arg, + &unit_id)) + { + g_beep_to_play = BEEP_880HZ_60MS_TRIPLE_BEEP; + + // TODO: display the packet + + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("MDC1200 op %02X arg %02X id %04X\r\n", op, arg, unit_id); + #endif + + + } } } #endif diff --git a/app/fm.c b/app/fm.c index b068014..15b55be 100644 --- a/app/fm.c +++ b/app/fm.c @@ -24,7 +24,9 @@ #include "driver/bk1080.h" #include "driver/eeprom.h" #include "driver/gpio.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "frequencies.h" #include "functions.h" #include "misc.h" diff --git a/app/generic.c b/app/generic.c index 9fe6082..e77ff1e 100644 --- a/app/generic.c +++ b/app/generic.c @@ -25,7 +25,9 @@ #include "app/search.h" #include "audio.h" #include "driver/keyboard.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "dtmf.h" #include "external/printf/printf.h" #include "functions.h" diff --git a/app/main.c b/app/main.c index b86967b..c6941b9 100644 --- a/app/main.c +++ b/app/main.c @@ -32,7 +32,9 @@ #include "bsp/dp32g030/gpio.h" #include "driver/bk4819.h" #include "driver/gpio.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "dtmf.h" #include "frequencies.h" #include "misc.h" diff --git a/app/menu.c b/app/menu.c index e5dde9c..f2fe243 100644 --- a/app/menu.c +++ b/app/menu.c @@ -32,7 +32,9 @@ #include "driver/gpio.h" #include "driver/keyboard.h" #include "driver/st7565.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "frequencies.h" #include "helper/battery.h" #include "misc.h" diff --git a/app/search.c b/app/search.c index 5bb3d47..5cb375c 100644 --- a/app/search.c +++ b/app/search.c @@ -20,7 +20,9 @@ #include "audio.h" #include "board.h" #include "driver/bk4819.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "frequencies.h" #include "misc.h" #include "radio.h" diff --git a/app/uart.c b/app/uart.c index 3903fee..53e9d58 100644 --- a/app/uart.c +++ b/app/uart.c @@ -33,7 +33,9 @@ #include "driver/crc.h" #include "driver/eeprom.h" #include "driver/gpio.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) + #include "driver/uart.h" +#endif #include "functions.h" #include "misc.h" #include "settings.h" diff --git a/audio.c b/audio.c index e0cacdd..ffe2288 100644 --- a/audio.c +++ b/audio.c @@ -29,7 +29,9 @@ #include "driver/gpio.h" #include "driver/system.h" #include "driver/systick.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "functions.h" #include "misc.h" #include "settings.h" diff --git a/driver/bk4819.c b/driver/bk4819.c index 8d10a6e..ec109b3 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -356,13 +356,13 @@ void BK4819_EnableAGC(void) BK4819_WriteRegister(0x11, 0x027B); BK4819_WriteRegister(0x10, 0x007A); BK4819_WriteRegister(0x14, 0x0018); - +/* // undocumented ? BK4819_WriteRegister(0x49, 0x2A38); BK4819_WriteRegister(0x7B, 0x318C); BK4819_WriteRegister(0x7C, 0x595E); BK4819_WriteRegister(0x20, 0x8DEF); - +*/ // fagci had the answer to why we weren't as sensitive! for (unsigned int i = 0; i < 8; i++) BK4819_WriteRegister(0x06, ((i & 7u) << 13) | (0x4A << 7) | (0x36 << 0)); @@ -567,7 +567,7 @@ void BK4819_set_TX_deviation(unsigned int level) { if (level > 4095) level = 4095; - + // REG_40 // // <15:13> 0 ??? @@ -1064,7 +1064,7 @@ void BK4819_StartTone1(const uint16_t frequency, const unsigned int level, const BK4819_WriteRegister(0x71, scale_freq(frequency)); BK4819_ExitTxMute(); - + // SYSTEM_DelayMs(2); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); // enable speaker SYSTEM_DelayMs(2); @@ -1149,7 +1149,7 @@ void BK4819_Idle(void) { BK4819_WriteRegister(0x30, 0); } - +/* void BK4819_ExitBypass(void) { BK4819_SetAF(BK4819_AF_MUTE); @@ -1186,10 +1186,10 @@ void BK4819_ExitBypass(void) (5u << 3) | // 5 DC Filter band width for Tx (MIC In) (6u << 0)); // 6 DC Filter band width for Rx (I.F In) } - +*/ void BK4819_PrepareTransmit(void) { - BK4819_ExitBypass(); +// BK4819_ExitBypass(); BK4819_ExitTxMute(); BK4819_TxOn_Beep(); } @@ -1325,8 +1325,8 @@ void BK4819_PlayDTMF(char Code) BK4819_WriteRegister(0x71, (((uint32_t)tone1 * 103244) + 5000) / 10000); // with rounding if (tone2 > 0) BK4819_WriteRegister(0x72, (((uint32_t)tone2 * 103244) + 5000) / 10000); // with rounding -*/ - +*/ + uint32_t index = ((Code >= 65) ? (Code - 55) : ((Code <= 35) ? 15 :((Code <= 42) ? 14 : (Code - '0')))); const uint16_t tones[2][16] = @@ -1373,7 +1373,7 @@ void BK4819_PlayDTMF(char Code) { BK4819_WriteRegister(0x71, (((uint32_t)tones[0][index] * 103244u) + 5000u) / 10000u); // with rounding BK4819_WriteRegister(0x72, (((uint32_t)tones[1][index] * 103244u) + 5000u) / 10000u); // with rounding - } + } } void BK4819_PlayDTMFString(const char *pString, bool bDelayFirst, uint16_t FirstCodePersistTime, uint16_t HashCodePersistTime, uint16_t CodePersistTime, uint16_t CodeInternalTime) @@ -1800,7 +1800,7 @@ void BK4819_reset_fsk(void) (6u << 4) | // 0 ~ 15 preamble Length Selection (1u << 3) | // 0 or 1 sync length selection (0u << 0); // 0 ~ 7 ??? - + BK4819_WriteRegister(0x3F, 0); // disable interrupts BK4819_WriteRegister(0x59, (1u << 15) | (1u << 14) | fsk_reg59); // clear FIFO's BK4819_WriteRegister(0x59, (0u << 15) | (0u << 14) | fsk_reg59); @@ -1925,19 +1925,19 @@ void BK4819_reset_fsk(void) void BK4819_start_aircopy_fsk_rx(const unsigned int packet_size) { uint16_t fsk_reg59; - + BK4819_reset_fsk(); - + BK4819_WriteRegister(0x02, 0); // clear interrupt flags - + // set the packet size BK4819_WriteRegister(0x5D, ((packet_size - 1) << 8)); - + BK4819_RX_TurnOn(); - + // BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_RX_SYNC | BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); - + // REG_59 // // <15> 0 TX FIFO @@ -1987,7 +1987,7 @@ void BK4819_reset_fsk(void) (4u << 4) | // 0 ~ 15 preamble Length Selection .. 1of11 .. a little shorter than the TX length (1u << 3) | // 0 or 1 sync length selection (0u << 0); // 0 ~ 7 ??? - + BK4819_WriteRegister(0x59, (1u << 15) | (1u << 14) | fsk_reg59); // clear FIFO's BK4819_WriteRegister(0x59, (1u << 13) | (1u << 12) | fsk_reg59); // enable scrambler, enable RX } @@ -2001,18 +2001,18 @@ void BK4819_reset_fsk(void) // <15> 0 TONE-1 // 1 = enable // 0 = disable - // + // // <14:8> 0 TONE-1 gain - // + // // <7> 0 TONE-2 // 1 = enable // 0 = disable - // + // // <6:0> 0 TONE-2 / FSK gain // 0 ~ 127 // // enable tone-2, set gain - + // REG_72 // // <15:0> 0x2854 TONE-2 / FSK frequency control word @@ -2020,7 +2020,7 @@ void BK4819_reset_fsk(void) // = freq(Hz) * 10.48576 for XTAL 12.8M / 19.2M / 25.6M / 38.4M // // tone-2 = 1200Hz - + // REG_58 // // <15:13> 1 FSK TX mode selection @@ -2068,23 +2068,23 @@ void BK4819_reset_fsk(void) // <0> 1 FSK enable // 0 = disable // 1 = enable - + // REG_5C // // <15:7> ??? - // + // // <6> 1 CRC option enable // 0 = disable // 1 = enable - // + // // <5:0> ??? // // disable CRC - + // REG_5D // // set the packet size - + if (enable) { const uint16_t fsk_reg59 = @@ -2099,15 +2099,15 @@ void BK4819_reset_fsk(void) (0u << 4) | // 0 ~ 15 preamble length selection .. mdc1200 does not send bit reversals :( (1u << 3) | // 0/1 sync length selection (0u << 0); // 0 ~ 7 ??? - + BK4819_WriteRegister(0x70, ( 0u << 15) | // 0 ( 0u << 8) | // 0 ( 1u << 7) | // 1 (96u << 0)); // 96 - + BK4819_WriteRegister(0x72, ((1200u * 103244) + 5000) / 10000); // with rounding - + BK4819_WriteRegister(0x58, (1u << 13) | // 1 FSK TX mode selection // 0 = FSK 1.2K and FSK 2.4K TX .. no tones, direct FM @@ -2155,33 +2155,33 @@ void BK4819_reset_fsk(void) // 0 = disable // 1 = enable - // 0000 0100 1000 1101 1011 1111 0110 0110 0101 1000 - // 0 4 8 D B F 6 6 5 8 - // - // REG_5A + // REG_5A .. bytes 0 & 1 sync pattern // // <15:8> sync byte 0 // < 7:0> sync byte 1 - BK4819_WriteRegister(0x5A, 0x8DBF); + BK4819_WriteRegister(0x5A, ((uint16_t)mdc1200_sync_suc_xor[0] << 8) | (mdc1200_sync_suc_xor[1] << 0)); + + // REG_5B .. bytes 2 & 3 sync pattern + // // <15:8> sync byte 2 // < 7:0> sync byte 3 - BK4819_WriteRegister(0x5B, 0x6658); - + BK4819_WriteRegister(0x5B, ((uint16_t)mdc1200_sync_suc_xor[2] << 8) | (mdc1200_sync_suc_xor[3] << 0)); + // disable CRC BK4819_WriteRegister(0x5C, 0x5625 | (0u << 6)); - // packet size (14 bytes) - BK4819_WriteRegister(0x5D, ((14u - 1) << 8)); + // packet size .. 14 bytes - size of a single mdc1200 packet + BK4819_WriteRegister(0x5D, (((sizeof(mdc1200_sync_suc_xor) - 4 + 14) - 1) << 8)); // clear FIFO's then enable RX BK4819_WriteRegister(0x59, (1u << 15) | (1u << 14) | fsk_reg59); BK4819_WriteRegister(0x59, (1u << 12) | fsk_reg59); // clear interrupt flags - BK4819_WriteRegister(0x02, 0); - + BK4819_WriteRegister(0x02, 0); + BK4819_RX_TurnOn(); - + // enable interrupts BK4819_WriteRegister(0x3F, BK4819_ReadRegister(0x3F) | BK4819_REG_3F_FSK_RX_SYNC | BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); } @@ -2196,7 +2196,7 @@ void BK4819_reset_fsk(void) { uint16_t fsk_reg59; uint8_t packet[42]; - + // create the MDC1200 packet const unsigned int size = MDC1200_encode_single_packet(packet, op, arg, id); @@ -2210,10 +2210,10 @@ void BK4819_reset_fsk(void) BK4819_SetAF(BK4819_AF_BEEP); GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); #endif - + // ******************* // need to turn off CTCSS/CDCSS during FFSK - + // REG_51 // // <15> 1 = Enable TxCTCSS/CDCSS @@ -2223,7 +2223,7 @@ void BK4819_reset_fsk(void) BK4819_WriteRegister(0x51, 0); // ******************************************* - + // REG_40 // // <15:13> 0 ??? @@ -2235,11 +2235,11 @@ void BK4819_reset_fsk(void) // // <11:0> 0x04D0 RF TX deviation tuning (both in-band signal and sub-audio) // 0 ~ 4095 - + const uint16_t tx_dev = BK4819_ReadRegister(0x40); // BK4819_WriteRegister(0x40, (0u << 12) | (1232 << 0)); // 000 0 010011010000 BK4819_WriteRegister(0x40, (tx_dev & 0xf000) | (1050 << 0)); // reduce the deviation a little - + // REG_2B 0 // // <10> 0 AF RX HPF 300Hz filter @@ -2283,10 +2283,10 @@ void BK4819_reset_fsk(void) (0u << 0)); // disable RX DSP SYSTEM_DelayMs(20); - + // ******************************************* - // MDC1200 uses 1200/1800 Hz FSK tone frequencies 1200 bits/s + // MDC1200 uses 1200/1800 Hz FSK tone frequencies 1200 bits/s // BK4819_WriteRegister(0x58, // 0x37C3); // 001 101 11 11 00 001 1 (1u << 13) | // 1 FSK TX mode selection @@ -2334,7 +2334,7 @@ void BK4819_reset_fsk(void) (1u << 0)); // 1 FSK enable // 0 = disable // 1 = enable - + // REG_72 // // <15:0> 0x2854 TONE-2 / FSK frequency control word @@ -2344,7 +2344,7 @@ void BK4819_reset_fsk(void) // tone-2 = 1200Hz // BK4819_WriteRegister(0x72, ((1200u * 103244) + 5000) / 10000); // with rounding - + // REG_70 // // <15> 0 TONE-1 @@ -2368,7 +2368,7 @@ void BK4819_reset_fsk(void) ( 1u << 7) | // 1 (96u << 0)); // 96 // (127u << 0)); - + // REG_59 // // <15> 0 TX FIFO @@ -2417,27 +2417,27 @@ void BK4819_reset_fsk(void) (0u << 4) | // 0 ~ 15 preamble length (0u << 3) | // 0 ~ 1 sync length (0u << 0); // 0 ~ 7 ??? - + // Set entire packet length (not including the pre-amble and sync bytes we can't seem to disable) BK4819_WriteRegister(0x5D, ((size - 1) << 8)); - + BK4819_WriteRegister(0x59, (1u << 15) | (1u << 14) | fsk_reg59); // clear FIFO's BK4819_WriteRegister(0x59, fsk_reg59); // release the FIFO reset - + // REG_5A // // <15:8> 0x55 FSK Sync Byte 0 (Sync Byte 0 first, then 1,2,3) // <7:0> 0x55 FSK Sync Byte 1 // BK4819_WriteRegister(0x5A, 0x0000); // bytes 1 & 2 - + // REG_5B // // <15:8> 0x55 FSK Sync Byte 2 (Sync Byte 0 first, then 1,2,3) // <7:0> 0xAA FSK Sync Byte 3 // BK4819_WriteRegister(0x5B, 0x0000); // bytes 2 & 3 - + // CRC setting (plus other stuff we don't know what) // // REG_5C @@ -2454,28 +2454,28 @@ void BK4819_reset_fsk(void) // // BK4819_WriteRegister(0x5C, 0xAA30); // 101010100 0 110000 BK4819_WriteRegister(0x5C, 0); // setting to '0' doesn't make any difference ! - + { // load the entire packet data into the TX FIFO buffer unsigned int i; const uint16_t *p = (const uint16_t *)packet; for (i = 0; i < (size / sizeof(p[0])); i++) BK4819_WriteRegister(0x5F, p[i]); // load 16-bits at a time } - + // enable tx interrupt BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_TX_FINISHED); - + // enable TX BK4819_WriteRegister(0x59, (1u << 11) | fsk_reg59); - + { // packet time is .. // 173ms for PTT ID, acks, emergency // 266ms for call alert and sel-calls - + // allow up to 350ms for the TX to complete // if it takes any longer then somethings gone wrong, we shut the TX down - unsigned int timeout = 350 / 5; - + unsigned int timeout = 350 / 5; + while (timeout-- > 0) { SYSTEM_DelayMs(5); @@ -2487,12 +2487,12 @@ void BK4819_reset_fsk(void) } } } - + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); // don't need the speaker enabled during TX // disable FSK BK4819_WriteRegister(0x59, fsk_reg59); - + BK4819_WriteRegister(0x3F, 0); // disable interrupts BK4819_WriteRegister(0x70, 0); BK4819_WriteRegister(0x58, 0); @@ -2507,11 +2507,11 @@ void BK4819_reset_fsk(void) BK4819_WriteRegister(0x51, css_val); // **************** - + BK4819_EnterTxMute(); BK4819_SetAF(BK4819_AF_MUTE); - + BK4819_WriteRegister(0x30, (1u << 15) | // enable VCO calibration (1u << 14) | // enable something or other @@ -2523,7 +2523,7 @@ void BK4819_reset_fsk(void) (1u << 2) | // enable MIC ADC (1u << 1) | // enable TX DSP (0u << 0)); // disable RX DSP - + BK4819_ExitTxMute(); } #endif diff --git a/driver/bk4819.h b/driver/bk4819.h index 9ad31ef..404d7f0 100644 --- a/driver/bk4819.h +++ b/driver/bk4819.h @@ -118,7 +118,7 @@ void BK4819_TurnsOffTones_TurnsOnRX(void); void BK4819_reset_fsk(void); void BK4819_Idle(void); -void BK4819_ExitBypass(void); +//void BK4819_ExitBypass(void); void BK4819_PrepareTransmit(void); void BK4819_TxOn_Beep(void); void BK4819_ExitSubAu(void); diff --git a/firmware.bin b/firmware.bin index a286182a99e0b1991de8562bfe4c70463e245c19..72c4a3df8f6f43b3285ef19ae873248d83b3d223 100644 GIT binary patch delta 37478 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 delta 39476 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 B65s#; diff --git a/firmware.packed.bin b/firmware.packed.bin index d09f32a5a8dcf00132a9b3a4d60ab4e2715b2df5..099621c8e8816c82e2a9f8dd80efd6acb52a2602 100644 GIT binary patch delta 56990 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
    NdYJTMSYbjtxyfU)KF}jx;rK`LLH5 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 Urf%u9STU7(@73aEdN9L(0NQyV(EtDd delta 58869 zcmXuKg#|Eg=$0cXuq^DYbM93vcQM1e931K^keKyAe=8x};O2JA9VU z_xJn<^SWl{TxZUlDVRV#SVfH&Md3G35MM;8Wv-`0E=ML9bFRr9BzpUzuRC#Wsj7Yo zg$5a=X#;+S3MLZ{tt$t~{}pb6w&yfrv`~(Yj2HWo!nx7NP?DtKifH^~89qADC}LxM z`=pNeJr=vo_ps?!urE9bO%SEvJNyTl4&L|VykBD-Wt1EHx2A9|bQYA;0Jt8yI*LkS zeKC3jGD>_IoC{MAgGW=bp{%Yx8WRH5aeQ@Tj(?9cHz?J(r-9|`1FsD&=o&R7tY=S+MVA& zVNfPu(~*%US92)*7fzzpS@)`JspC~_Z}UuPrJ6V0R3)1e2O~MFaL=pDD7I?O?g1#W ziXJq-g&=PSii*rE zDP>G~IzQ5oFWZKoWIY*y59V7|eSIP66YtmYdf;suN!8J4w&r-qtiGkM59gaa^5 zF<-{N^cFua@x2m5RWD`*4_5YsqV-ezA$Y#hE9$A?%=Ue9?^rwdy@~f`u}yM9TZ%WN7JpHyuk+Dey0J!=Fy$eXlV?%99M6i&YNw1|sDrSBo>K1EWPzGW zTX=GgOpEu&r!x_>rHqt&x$<9ve?1DJj`jDtfzC_Y%LyCVQiPPG4D#=>CTlP>9q3cGVN2^ zXZ@FOjtAL3^IFhT7%7+aOi3%fgoB&0sT^BvrrPqY`HmdV^bkV*vf${nB+r4g;d-8pJgd6o6m2HF;R0 zGF6dA9rD+&u zid)R(jc|nW3vPBp)HcW)YS?l)V`)r!Zcb-o=nTEP)#4E~KqK2cf}9G?(?GAyuRhIJ zeyQ_O4x?PjE(mDE5x1tKy`YbN?!>O4ev>s`uEl*ksYBR2w7B9Y zRU36ZSAK9@pXM_Tq|`{`v#THJ@lPH`R?BirH~Jn(G+qVwdB!iDp7(sU-KqKA&{fp- zCqV9)WPZD_?{i&)ztL1m(B(2JI~F`q4k#xPL3X#bmdwwaAfEmGpG}rP2FwbJn5*ga zS?w2@`yLlxKuImcz-B419M7xa zh7VB#QqZh8&KiIPnUs%(poq@1P2;`MY1FWw<%DsSN>2~ls@VZr2#Sk~F_>Z)Xf^d( ze~N&!X^O>O#DHCii}0T6LRDW(&*f!;L;3YnyFIOZo2-+vh3=u{^)a_io#hT=i?6hp z{zWZ-WSc|o5Gg=(f%*{^f48H;aPwq`lzjnLQu+Qjenbt__otnZ=PEZMkkD&rQ!vwI zyU;jxuYpnvpFZ%3S2Du|4ji_ca$-D1jDFPwp*GUaR&ZbASs?<@n48O^XAACir#mHn z?c2kGzyVg*A4*^6p*x5a+=J@5RD&hD%~k6JufQLC0+(*c5I9iYOrt^wNzMkamjy;% z{~>yR#?_yuPB}5>c00%%H&D_U&H9XlQuJFA*RvrkC29t3K&D&%%+lcF%P0Z$B+o?G zAS9&XumbcJ|UwouE;phCb9t zdS0m|-`p3^zkDG)Ww8n~1I=9R({61| zs(j->v|*lO<3Axt+<@Gs<$Q))MgPYobc*3lv^t(nz}YrYB}7cWYIyA1gp7%#wMS>w z%UvhZDep9~RJ?Z8-HSkFr)i#j6Y-3yO+WK8p2} zRx4s4S<-+VAlC`wAKChn4;QV^X43P&VzXWX!rbYESNg#2m&olKic zUwuq^tzPMi@TWEN3`W|{zKXMno(9xrCj6xWqnlv}n?Iq~Q)RG%rF9MxK z*H%tPB7NjWXPEkeq+5_gMp6Nz!P0XI77!_TRm`+%o-PPXZTh~ajk3>DNLp8_eJeyR zsvy3?8q_>FEvAIg`1MFZN91VjyN7q-RlG>W;=%_ag;$l1nN zh#Dx#++O~hnDxQLQ0f&%74DlH-}D$qaXh(~4E(t=u*CT*P z2-4RtjKBfAuSQxkN#e%5Hb8LI3J&L7?NT$$nO`vw2F=*ej?r>@6S|QgiAnY-!uC!1 zUe6i!ds)(>Adek7X_4m;Px>P4y!R;vs>j-6XNVogO^ zWw#PqR()9Wz;|!3zG)LB$0x;tEl#sS5B4%cnV~Akdx92$b2&LF)XW)0XP~@e0%i4F zUxQowO zz}W5vR7!Sn!w78a(i)JobyE`7Vj!Zg5jGcV@Sm&Aso5z=$>Ke7C;6m~)h4e=uTld7 z2N=|1)OM9`<|xXmn7Gv*P;xtG^}z=RDLOS$8|>wGTZi>8A$hG+<5jjnm?`*^UX35k zE+7uJSH%U6wXFTSUWfWLo^04b2Kh~Z7cIxtqw_DuQF9C}oHD;m9*=;$3w=Ff)Mp&< zBGg^nL9`*Rz%mpvuD~$(V&Ff;B=xvlCR)8QLk7o{A?hQHsIdhO(X2284)iskHZh^q z|34fcN>7)4@&~bBVTlt3LNn>Ho@>B7TSIc^&`sEXESJ@B$IKP@I4?1LcTwQ@vS9>T z*Crg~RK*+-{M#4-M4`#Cnsc&pH+J`GI3lFTjftf;GMgf%Fcn!IY4v!qbv@98!^I|J z^)nJS2WQ0uY25iY;MT}sb7%{L#A_-n^5rn<)CYi5%dEE#h1-)K>oYXchzC;1as?qT zhG+yWCgiFBKug0~dfW2~xC}s&!*b>PlV@{ypjX{qb;$69oufI#G;Np|rs_2H6E^62$AZRhM(8}NV zSt3yj8Qw;%p}R@jha_wf?Ag2__7~-f_DT?S37NS9B#WEzXdiK=Or|-W-wMHFXV+Do zv*l;62Va>s%N(%t2zBRY=>q$p+l_h;LW*4!5 z9R@v(V7N*ZX?o_}R0@r?Qr$x~B!`jn4&VO4)83g*FCdwhl*-od$;YwQ$YOES3U2OE zF>GHzBMe6Eym95P55E?Ne!)O{6Wszy zIBAI;>H__X2Y&01dD5K~s!Hjb`h=Jb3sH~K@gk7sH$%6FoW5d1En@u5)f3>>y}O8! zT;)&GP)5?};_ckd@xCA$Cn0XG|4uDlSXP9cp5gHyjFqqhiGnuV>*XCk7p;|dzEp~B zH!h85G@{C+N}=wpHh7zg6~!nlwj8ukJ-^7PSChU0X^4BT?w*IGOuvJK50#B!zJ28a^LVsDm77F zyBP-}fR}~W258|LuCy&FiDo+$8IE$>MYP!Y7RMyWN?i`fvsA;HF&^fKY2h~hNUha& z`z3G=gX(R1&_lAzP`QlxA78|xX>q{}2@|U^9GqB>(v{7yUf48~T7il^@|wIZ6`TwqMF@1N?c? zpAFCw@)j8TqB-O$E;<*N{Y7~=J>@4mV(NtkRm9sIGhs@pA;z&UI zrVjHRaZdd=CjEOWln)96pygAaUkhlD)EaYJ2NtwIjFd0IL zv?GjDf;=;mHD2k z1E4|tP`K_%AW-ge)s=atADxr{nX~AP(WO=N%C`{Pi?hGc8aAF8k}_N9_8C)BKdRyv4>A)Ht=F~H;M7Q&o9x0l zDLJmv-0}H(>miV(@v1_Y!zlYHjM%WWV}<7CaMnId1!jzU2^^=tj@3YRU$xZ|cT>bI z{{88#qibDYW(gbEmjO`&9L(Jw0y>IGi`EuPw0h>;^Y)i9&c7w%T^FoX3o~UE{r!^L zxYhLUDKn|Xx67(6nWQqnI|nF_eKf)X9+z7KZDwx<&)G~gJ?Z#n&ro(vbn9R_{C4W^dGs>7Jv7Oe3i9k-@@4E2 z_~uMWe_;@gf?s;1rR^xuifM8 z*14U$b5OTwj=mdrcK(kP$DiYDT2H6ha8nhAgFV+J`c=F`y=+Nzrbus_jN@^;9vfp~-igLQ#0u)JrZ`@fl@4o{i?@Z2waIP~bOw~rZF$I6!x1Cuk+PKxn zsC`=!;nvzNHe5ymSb22N-4QRKuq4~~jZ&$;J5WK8mssJGtrwxXCz~;Xb1l_N%?R(SSYg@o)MF z31qd%jgo;p2NMNitW}#tBdClL0-&U^8G#*KI!#~hAi1;Hq3e60;#5>qojwNT1VNVt zIA9Efc+ghlc+m0dh3HZS3!EEN6VqhO$IZ5Cf?%a{v?{!89j?6thpZL2Tzw4-Nc^s{ z(AaiTIol>uY5D8OaaLH>nv=158gW39axO;E=kbKi&uH8tR6+%F@BHxSfudXX$-tA^ zrJBl2k=>8Q9o{4^G^DdyL!6V6cVVjRQ?q&d9Ql1MGZSTB@**6<9GShv_L0Sw#kf<+1~gLe4@$yi-qW^xPfjDoOjXXE z4XF{9J@#5z^K_$dPwFsU02+bI9!w+b^?TWJDzT^HKxp;ar;8YlYT|ypk8-$@U<-2J zW%@O@4iqE^A^?{t3*!3(QkKZ?$kELlNz9|_*c`9EaOkO!8#B8>%1iq4Mk=H{GWQ4tf|j&TV?08{>7A+K2V99= z8FRVqj4Y1eADC@Y)zA+EH~OQk6CRDu)uawY`)`ZcS=KfB(}Zc@FMN{*VQv)mI_<3N zmWs%|e_jE6XN1A@$RGDLGf!H>-*0E1xo^uL`LYocR*=kc8V0+J60p&EZ|69}{1@xl z&0vaZwKAwx%bDu>^YGbH?TooJ^8qy7E@4d;W!1tLb#izNH9|dIb#EklTftJv;cV^4 zwEJRRQZ{vjX_U#i362N(x?64{b;5y=?Lv)@p?`ouL;$Mv$e+qIl@I}xZD(JdY^4f# zE)rkHN)74Oqz76_;Ha=9R7J%AL@(Bi5nTY2>8k)`=)u;y5t9Qr&p@AB_o2ml>9GTLkIJ<4jz-YWN{OPb67sm6-8J9 z(Dma&c6$c)-%xPEqHKA!(D>6rXrHO3k5yF()y1V(f_d9ZDiPL%s*F5^`yO{d-@3Sf z2>!)xShZ-`;UWgK${!EpVd-=U>#&Rpw;Fz-0Yd9}Hi){tZE~=qWIl;eo6NnOK0ekR#1>_Bg*L&kFWpc|CS7BB2dHZ*FO5v&%I<+BUt=xFd_I}AN zv&=J@b$6ThBkv{q6zQr{Tm!{Zu7`U)Wf!LS*)>FO_&5@~hQhJ1rc6HR?-t4dahXjt z+-DeP{z#9CSU3A^Fuc&Ct01WKh9({HQ}vpHj&9v6L;y=~=n(khX?SK(AuPsnV(KQjjfM`7~LFg{z^hIWZWG zcL#^JdTJC*c>ayjWazdAZ{HRRvkYJiq_vWls>FARK&FP;Fw(Bs0c~yV_#{^F4a=W@ z?9>W&>9?V#F8qN3ZCNV1AI|^dkR*B_(5nkXZU692c!y-OAjF%pj%N9DZOy9!j1B%#l`EyKk(J?j3P_q(gng zvT)_R`l8VJP#GqtDS_nWQDsbY`Rerv*Ilex^c$`3iVsCbeCm;O(4%+@%e8m;v|=1$ z4QF8||5E?v@mal3(m`7%cgV_&e-qY(=z<<^zv7TE`X9D7y3>VG3RgE~Yu=Wx-<432 z!v}|Q*!}hmf%m!}*pXcsW@v>+iWmY!9zWU#XO>Y@f0Mhk*j55r$?O$f2|hWg4cfI= zvTy`4V8UycIa*m@`jU-l;H7Fr4TRkDKIQSeWg1mQ#xVJ`Ss~D>YC~2dhtH0ZIH~l? zCu%gKS-Q#C{M3@{?axBO7pG2?uC}{o*^bhK5#)pkfIS*(Gp>VA{&hYI7=LBj z>ORxdW(di>!O8(-se-?&H8eQo8}D?YPsz(l#}99o!Db56*==S6A?AW2#9TlpI~(&K zVlK!+%mqzBe(Y!p5J2qT$bTf#RY`xt?-zS9H7| zIRGbLWkCQzY(f&5@Y3uIFBso_x^}4!P#Y|0{OIJpri;omn~Cv2U{*&F^KRi?1^dO9 z7$-;ZB9?M{L>Fi+Y5$Us{oZ&LBlv@K4Qn4KuAbIiiG;Ed+O7)zeoBR?fr|G9W`vDyi=yGa^y}(FcD6fU@0zai0>F*3U^Iu7 zLffRjwqb(riQqFMQ&W^zW@fvu70pg0DwmG9NBJ>*-1ud~hyN#qa%L~ZeDafYm)G;7 zxAwDHI_@)vO+%Ll-Hw9RG%}H@r@!cm?vuE-+B@OYlo_2x_xj5VcD7Pp=_3{bw3MRZ zr(B3O%%#{dPyX2@4iNFWmkWidQu?~NpRV$9991PcGCfX0L)*g1-8-*LlZSfhi=>oyqoH6c=jE|LHByNgG&Vo*1z{~3;YLcV`5nH%q|S#-FJs4& z)XL#=JpTm?dMz|?EVkcvL9d>$#e-pP8n-M1Y3ww4%Ib;$nJEEfmX`H|_Sd3_S!XuE z*<9GAB?=Z+U7|v{vCvaVeS77h;sgCv+z0F>Ni|r80NZRHAJ^U)r%Jz{VWd@38pQ33 zPmEgDyyMT!A5`Y#YB%WSQlvVM`=ptzOPHjgHN5*2GK%tjU2If8(@LEku*Jz>F9vB_ z3{xyH?nv5!i=?7M1_rpr1bxMqv9e?u!Lz|g>1RTc4sSJu4L%iDBKC4H8sb?x-V4r; zo`G$wcVPV)>y%`fn==YIG5_B@mX;!BrDK7MuDb&@W_WA=%ujB+enNiF3(qM27uckrPku!?#27@=@eDo9g8~izT8gF_)R3!Li)W0rJL^StPBwS> z$;OP^LzdclOd?hn3AePkNMzEBtB~zn!mKIMIjq=xZ*-kuHY;VCCN52teu_h|~DQ!awTe}(zr-BztMjD))viIH(l!~5?db|yV*tTbG! zO@VB2DIUajxBx+m=WdMMpHg>Bip8Qk9VS^?}S?R?r7kJ#(4)f2g z{wWc49b!6mv)3dth-34LWY#40 zq*&ZB&2D$%3RTk=#FbAOHs?8kaZ1%d9Ls)*-LCJ(zEut$OPC7IS#*Tq`QPRZtOj?R z;XW!_P1@<7^WpxwH&UVmRYa_MZ_f0M$*qxSntvo#j9YBS1W+4!rLxH+xc1H3K(Iz3 zq{T?3b3Hh@dF6Q^^u)A_nI~b0FJ%`u)X=T^cl>$1wWw5b<@F+Sk^AL=D~7 zYtxR8Y*yLI=>=-D-y94>Zk23u!EAF`HVASep))zALLU-m(8#?Gvfu z{(rJ8jq~XYDT=)4;ZXQJDm^2h`ibvlP|{SOmT)@xCK(9_t90oWmUdZ12pcD-3b^Q? zp4sO3pMLzM%6lzT=dE_h>oJ`=Sh@@XikIp2eBLv3yE7sPNgF%u@dMlyPv!f-J!6hf z{O{6V1b-5SeD|>1$-DobFX$PH84z0RKLikMhDn6u!vAwA1zszNXJ|4$_P{i8HjM8u zNWOG@?)trow8bB%SleZKT6Mn)6aDYn$G|$7DOQA%U+BdJ-ge#JTcMLFAF`eA!#@~C z3gS!kzvi#xWlOE8!VVhQy!QVxuc_Xje2=QuLdU5W*w7;#+f0l{YC~3Mvi{f>TD7Y& zPvsThjGdJdga-(BSPV2qv+^45y6<&~#0@178rL1S?i=%LLDBKjHF9HY+rj=0VD`^cdPxSaz4d)V& z#~49gY>?cXov?bPc4^;u7PVbk@_!3T?6d@d7>NQQLl|?u39EvF>GKDzbBPt^jQ^*U zD$O`8z3&gPTvwim5dvA#`Yy+2{d!GE z=N%!io=f3sH&Y`e?=lz%9F&XZpitRUy4H5R8sLs*ltP&^zcr3b^0g%snF=lWaxc^Q z0%4PR;H*hEvSzo~!hL;RKPrX09&HLZ$kr-b;kt~-eH|#T6QcXWJf@3E@b2%wH2(vv z+?W$p&ij0$tC$}V>R&jHK95*C6E?Cm<_>~@D>fZJ_ootz`8xB#|J)Ya1V3kd)-u*w zK~S>w*@PyBX@i@D^Y&OdmZz#LH7zliQcuZ~^u5K*I4ptV<~#W0M^CEk8K$3kv|?jz zaLMhbq~#y;_Cqm0sXo(c++)1$oNMqnS5A(pQ^l`2wEsV!4#SCbiXFl#6$uk4241nO zyNbIykzFME!j}Tw$SKR?ShovjKi9Tn4P$QPqk?~Xf{7hu%X=lBiX6J#SUA~82&zz@ zFypKP(`N$NoC3bb8&?Ib1r$XJvdPc*EV*qe!iZewD1UadaK~Jt6n72jY;)06LPK1> zB2=<4{+=Ky!8S*km@tJyrt7UaKz9qJM}1%_Mf(eCLzm1;dx*ku%Ibl)p<%7!k$A#) z!$6&fu6GIN4Y4SncJ9I&jK(KuNAkHys$EF=!_v0EF~3$WKRmGZu0x<2en~abQU?j7 z)c@@%U&qibGxd%^nbf67sUH@E8=>)L_zOIx-8T~X7(~&h){XkE1P#6c0L8cM$@wN+ zSB0H5quOlwSK7F;$JMLs+WzkAg|x!cyT~=mIG&RpL#;nrTW*R@v*bY;FqPyr?r~1= z>2XD{5S5DIO`@JC^6FZp%JiDN|zO`&*%05r|=szdmkmMj< zhKCI9M4u>xMilfm5L&;bh)~JCte@hWfA>=PGyU2Jr}*w%eTtykz=v*&g4|8SW!SXR zlXo|UJV`lCO&L2bh~_m@>Mh`-eIOKHkBg-2i9>U>-SK4i;}?F~CsI zX+v2Zg039JKKzZ0;eXBt&IP~C@rCHN zkx^r@vf5hlKMR#|h}CG%jLnkerXg(J>cZIT2Xl|&K6YFx2!>8N{t*s$!C&|$GJdzf zA~%&6LOv*MGYhQ$3pU?wEuwLKY0{nWAI{6)8~qN-p8UC2c?pq_U zr3(u2a+K*k8s~d2C@Kl;Yx)wW4}FNL<}4Us#ynY^GbLXekk!O3hCBXi$T?Hk%*!n0OF?5&kT9|fkotYPXRWxzE18E{#_5^SnqaDFK zs)8kq(K(_s^KFUqP%Zrn=KlTWVYhRZaZm8%6=2Hcu*@`BNVqfk{+sV-^jH<@TeG5{ zOU4hkk81q36!95JFpq`pOplMD1~_GVmd92{Pv)V;R?e>L9_?A^gX5(0CD>4_P`dl- z5xA-L2E^RUqBxY;v%(C;6*g&qRq_5eEQ92PvbuJ2O8)7App9WADjUouZJ? z8feroM{g*&!EJakOIiPc2_yCcNk-Q|gx7bTts4@YI#kq}YFdUjXz#ZrQ!TA=D{a~_ zz7CBW9z;J9JAkv_$uf-lCV(b!t!rP>;Yyv!6H~3J(;It*aG=!2PmtlzR^0S3CXxP1 zg<|V;iKK3|N*5bIm(eF`d(FWGqNKTPQvg$_>>JT-S+MzEDM1fH3TAIOe$3R&&R_J! zd5;h$B&NssUr(sorC%5~u^)Y@;zbfnl`pgYlxHbBEx}&0c#O_+`XoFnBrxlA{?m18 zQEd`c>ZNtz5Vv^zkMA|c%jdfx5xBqf%Kkv&KqALdM`2K{s~3E zb)HalA(MunyPoG8u^F|(D3I72p@se~VWqNz;Ju&fWB?Iu8gUQ&*8Iy)P2qU*aiQQB zW5TuH(3~b`lj-Ds@RCPW)FbqPr;0FDp8L-iT(3{(W;sdckw1#R5Mf20J^tUu#56*| zyH@f&2NSKD`K_{9-`gL>N$LkOxII&P@7BKOqyo`lEJO+{G(J_dV)XdaK?!!$&`x2)3euUz`Ub2bEz_ z_a)n{ZZ=~R84sn})XttH&Chk>VlSc@=#>&+@vg8%`=@61EcfZp64o!bABSYWyY-Xf zM*UwA0_&ipj8DYfDGNc4556Pc!ad*bbtWYTmeZ&Zi8%asBFsmAWkd4iF^2HlQ`Te- z7K(DG_B;W7#(e&cWC?240*Fe|OS`z+YF4jqMSKAJEeK=RodAMvIadG;T6qUetl#9@bW3bF-H>=hf6%W`{shvwI(pr z7iWIMGMPdo*>#|2#fIcl-Fa<1bWiZ#Slvx7=L_1D>^X;l zQC@&?R1FE;q{Gb>eG*%Bq2W<>kpj?S-ud~NrF?zgxbgi^Udg`}rf_9Cji57&(HRfx z+MmlamW!RiX@sOP!n_BunB=CrA3cO0ak)hI>~(?~@2FpYO(*g2B$3;Fk>a{>yYnTV zQh;^)HdR{=uRFA%$t{^@3M!(%36@P$o=xOFDuSqAqgJ>1LAdre)nf8gaUg)|5&gT5 zzH0mPb^VW)L&=}d@BeIq+HEmfUfW9KDNa6QckE&3`K877uo-JY=VEEkF(}d7&R$?8 zE-lbd$G*V z5b1$iVUSBe8)Ldy@%IDoBVh>L8)_q*7~}E|E9dQpx+cv5PddZvAD+c;&k*|p;SmcT zndF{skg%Mk0xMEu(a;|7LJLf- zoH!qNzDiTAz$YJ4!U|>4A|kcbvZtaXq%t?jtY?ly<_Su+Wp8Cro?tHF4o_kU8EEIbLQ(Y zQEN{Q8bBl`vi7Ny?Y4M?PO?+VIyR9`&UcArKLj%d#ATe6RJbScmUHpxR{Z4HkA;w+ zMX&q-lAp)#+F)TRX;G%Cf0fzW%~bT`W+;=b*}T0%UHuvxtJRcA;8j5T z90(NV6+XR7mgu@(piXKZjNAZ05nogTqyC*xtA-0>n+p0 zGP*bRXJ8X-AP&EMQ9CK6t}rT(;i#rBfk%KVUJB53^drTZJpQXutjSp|axbgjOITTf znUsA@Is~81#n3U@EM_=yt`u`_XAiiAD}j8{+jdJ7VKf8fcA*uNV1N!YfkZ>Pr%qo$ zg`ffne1n(QWz(x{)xwa({9Of`0_f`b_jXempfX6+$B3zLT-OrM|4h{BD4T5&$(n*A z?hk0Aci`juOiaX6wh{6pBpPAPfq8TiU-#$H>@sT##xQGsvv31tdh=h>tTUv$2hG?%LYDdeUHj{5pJX8fG+XE0oxnraGXNBZBfP>i( zhK|Pa>`yi2FonUVFEq1rUwz&GMiXhWtD<$KIf)jIM4m z@i66|qlG25-T(DGL@m<@p;@2eneWpnX~bPhJAS}VWl}OrMeMJR!@^%-P`C8L zt#^{ygCBdm-Kd%cttPY)a=n^$^A-wEDGK#U@$U&1K{AS+$!{538WN5&3E7RFSWA)` zW>aKr{1Pu_U0|!rCx{}na(n@6E0o_c!#p(N|e}IY; z?`^Nr-+IgUiWVW2HCU77SlpXr{uE!%-0UJrLhK8W$N?FEl;wWN9gnzH4wpmiNJc;` zf8&+#lwp%Uh`{3jZ+Y9aB(lo;1Qr z74AXVzNfxSRc{<(>qt?Gf-sQ?Bc$4d(RS(wgj5?dtqFSe;Ts?h?clvD1!yfY*+ddKiz?OB;^_o(ldsuk)NvazoBPj~|b?efN z?_CK~B4KR91W@U>Lb6W$=GlLxhW;~9kvk?|p!6`*YO+b(Jm3$Z$Bxy<_4w54V@Wnv z7&TY@1{^4ztXg}C7bQn12hygaWOz(4Zk_S}YT~8nHASIPL2DK(+^sxY0shO}O}7dl znRg*vEa`DEtR$rP-8DSFh_*OQOInw$ZG%V&>yJh(8wvF8)j2fWs|O8=B*w-$u?3CW zbV;FF#04v;_Js5=?+R8Gt)dqy-nssFv=iDXsjubcyR9ts*F?J4$C%gZ9m@)Ryth1x zM3GO~H|xP1%bVy#0I&3#Y#jWDxmy)L7z&?lH2drc9H&lr_q8v!J{lr~!h&<@6jm7d z@-FN(;)vq_AB;HSs7TVtY5XsCoM-b7CN5=31i$NVq4KN1%X|zBtXxD9Qi-{hthT39 z$6Y{QYY(+f`NDlqgs^$&II?jM+h#sjz4UFc-paALhms724kH5K-eSxHo^!DHO$Yti z$5ZNrwXt>{ZL!-L~t3S3N=c#GGCBUB>q1|eh zr)?35H?M5R)=;cBB3o?ZOd+KPLh`;fy|b_6uhqZ~H71EaSqry0F4hZc#2EKyyf1+a zp-e@|G0Kuyv3Ykke!ij7GNI>JPTH)Oi8YW-vY=T7L>~z85c-EFHXUzLmJZj>L8{cp zF6#RxVH$D2%8Imv}Z4E}17p~6P zP2?1K)tJoA;hRHrlj*M%m?g-Y@rYh<^bs$;FIY7eaY!V@_V&~PYDQHLR?Wi{P7jzUxnx=SBRY?AHUvIeTP@#WEH2{6e z%#&(#Vdk_UZs`^?CAT*;`lh-rvXB=nv@%$$)LJCxWA}>mIJ8)s3$hgOJy3%WBhWE4 z9(?EFbmrlB z08|hp15%oM%P}SVCc^YSLs3Q$Z=wd_YLzT&rujq|rKcm1wEy#Nm!BFRDWyM+h$0c? z*VTTiwRF98E@{s?!b&Aa$#;qo$wtRygqtAJ73ACauduBoriw_<`zM}crJZ+3$(Ws0 zs|L>YM`-g*N~Hvwa#PK-RNJktw~z^ZdlbRL%uzc>uIlL4-998rX@!#$P}RKo_mPQJ ze)PO`evpgQq3EbZv{>8Os;WOtlS1ZIO_Gtf41~^36F)Sj84D7-fbb7c`m0k*YbD&Y z!GZ>n-0>`{-`@Um4;!1nU2;Th&9JP_RL=7g%giKjm_^ytO6*^uRPv%qnR5W3**tDh zP0S{);?M(B3uk4y|6if_$kp>fL1>ChHp}j_qdT7X;0G##^<3j9xt&nQ?AWChGpshD z&*qdtX8E=4w8KZmksExU%!U)r+dg?VKG|mcaR>c^yt zkP{8jEHSsf$ zjSse#918&?EPiGDiNXGp45{N{3+o!yoEdai1Z6Q##pd2^Lb~582~9RhC;gkFNx>Fp z_M;-$%@I}`xc8^7WwPpks}!+lXl2-BYU$$2dl3eZj&lB0r1kBeb4F$s0T5n*Qw3`)U&z$fO zkpkg=Mp$tRt%1**(*QPekPqr#dfV?81QrkPukoa7!BXE<9=0SXnc10EX1~?s-T8EE`>u4jeXelF`4UHshyQCmIMp8$4)1T%; zk*FjiJ{SSlNa5_z-$0PkGK8P+xdxsnpYM3qi7f{g9>VG=$0k0!e5_tKAM^PLiZQ(ZIM^Yq4W5_RrtF=BOas&BMi0b^f zE3aG_A?xU2#6%i*LoVMi#vWqf}? zYa9pm8hLP&OTr%etlXqG@$Bz8H{w1kkA>TrzA6Y8t zkP6B>c!km~RwAgoRVAVVNj1-wmHF}4Nm&hXUyq`VXhXzk=7^XJl+TU8cZmCXte&T0 zs%%YBPgLTouKzBvV0R&^adV6`Y&jHXGFm;BL9ZZ5fG{!mMl^3sBMdUL$Bk&iN;(|V zwo-zy+erP_(g+jDv$y;Cxcixq#2@g?kAxH4ajX4C5s}juXmt$vG`-@1)W-YmpO7}A zbon1v{jAF*>5mU9ieVhsoyu?Pc2G8D0m1he6u}#mi;<5}N z`BO!Ca^ah}EP(hfzcTZGK?s%oAIu_v|BtD!{EMppx~7o^L0UQnK~hi#q`SMjyGsEN zZJ=~_N(s!+Fw&CJ-QA$l9nazV-7lX1V1Lfp-<@l%tyP-`v0`tbRW@R3-u0mR_~El| z4w4pv?*i-#k`Pr{F6eORbCIMW{F%r~##a?W&+r)GM@RWVi~j=n(9L=2N; zW@mC=+t~gl+tEb#Nyo*5K#`kGbE$B*nGTutqv{zR5)EXr+JMm8dilByc4$dm zoJz)w`IJEku1_gSf+osgxfbWuUXs#1vtd+)eP7?1wPC6>#tW5{VpsdFJ?|k_V%}jA z+AWMP4&k5^x)G-J)v~ghiDAK`X&I~g!^d)44Ua?So0@IA9}1dFA}jPgLx)JDyN%3J zpE;sgoUk$6of}}H0vF^elkQ7-Pxey+LJ2djEm94kuXuXpke}+F3z@uJ-D`;~bs-x+ z>+fL$A(idd^p-lx&z|2~NXY#4wU*W)WIiq^sDs6K0R}!xs98N2n(po~2?A>P^v?GR ze>@?v9aZI>B1v5zGt{Z|QF*g8dq_rbMhp$#hO*ty(zm$F0@y2|Mnl~92r~<@?OfHO zIR%wIZXVHeIGgnSq5#H$5O75E7zf5hKqmxSv(I2Uer(PDrGs$*hb&2L1ewiO^HWRP5JZ<( zBrXzY0G*(G?QXW#Y$$g_a|3_TYSe)L7aey!Ct6Tz+k@wye(`v?ywhfu{nqNQsQsd5 z@{}D=LQez&OQ#+8V1^bTsMIx66-m0yXz6u| z=bi>o7_Yh!=;4^L7l$_!;;sfG`5KI=i~X>1h;u=&+R+Gm~1+PNWz8^w>ntt zv&&ia%w)l>S*;5eJ#agVO+F2qPczQuVesGC)OhVVwk8nGeYjwz5NFtIK9Pg_0*EQ; zcJ}8SB9U*chI`#4kW7E9#5g&#ZKE zGP~h=H9pnl=+vm3;*hvnto#Mpi|A`kKS#H1-(oz0T9s3b50 zL`kE7o(ng-mLAc@-B*|>L0J|_Sx!UN3gew%maB_TmrUZNic()OX!o+u3v0Ct59H!V zioRyO{baS4#jd0kRm~QIUb;wa9xkHu(;-N{F?=IhxQxvu-mh^9q;3W762J;UIuOu>Fffrd2e4#cTf_&*^z8CswA@t)?AVX6Ii%tQ@-(rvNkY zBUnAZ*IjpGguL6ao$HzfsF|t{?n<)#zep%5aHSmKy<~yXTaazrZL+Js?C_2 z-CV3G8KufiMLxF2qadsn8%+ycb}`uz9b~ys-mUeu%ZQiQUP{zGLMX2HIe3Je{mF%- zWnZ__t#x!qzuzlRPhb@=SHyzx2LG;o@jpoeTyTjKZnQURB!S{j4B z3QR_O#bS93pIXE{3h--AL;UKIb&gILL0s<}5Z}L4^uN8~+Locl z#7-`A11K<1sB~lF0U^R59Vs=_suKDHFsVZV=rQ8T8YbI*=+xI+7Gwy<$c*Tq&6qJ5 zLWj{-Xwzg>YT~sREAfjQlW6d93RXVDIzg5TBhk~lcU-AH*ZWChZlbN(G~& zAWC%5(V8LCOqENnr3RM4QB0$3vVuHtV};A~8x^Y*y`@iWVjeo8pGS&2deFbJ))@if zc$)OOyBMAJF4je~sql8Qk)mw|3lX8M(MgUHO?*Et-mwbewYDI&9iP$DWX5JW+-ACJ zEz~-Ok$VJ7==N%xtB3xwFGe>sT#z1l9fRM5LOB$imV9^@u3oVmQI=7!do|V(LxJ}^@+$*F5=tToQz)zb)q2KPtf2P?sQ(h;ozRH~`x2_p z5*n-f*Y}QD1+f|&Br;v2@bNCzxU}?~Z&c_=*+H^dvuTfr8xgEG*9l3JR5Is)hUXkJ zh>mViOh17=pg^kop~%nibXya3k3Q{pF)&~or+EBIyo`jcuBZ(V$^dsZ_6d2Q$U__n zESS|I&9J`0mAfcs&$cq|r}_?gGhLPO)Ymk1x6xf|r+@jNd;G4&SN+^Vd6Ze0k76%uU}xk2LORFf##1uq z%Z;sd{#1NXR^xXYCpy;xdNL;hGy-D9%+2aXyv3`XZ`zlyXq?la<@t*KHa*yZm zzGVhQpI(JZx9zBUK*M$=NpMFH{p%W|&e9zX5XqMgUQcB&_J+?XpN+kRo;nWJAz(3M z-fpBRy<85wntb9_2Q+*)7>RTY3&t~KEKMJ*H&UyM57v=Oy#CMw9(`v6zFBULN@_0x z=rJow*6gFqWvBlvr)a*(uwMrwsfD5dXw|x(P z*0dyPV^axtINNRWRG43B35h@Xv9Fi^Up;^bj>4x1F*L4{#ERj`@|K4AS-{g@61J~%)4F83KYQ&p zz0SU%%769ghZnwJP{xr0Pa+06WlG6gv$~}SKS$K<=kfqba~SG@mTwy1=%fKgLQMOB znVI%HoC^6L?qlg3zbTZzeyWD`5FZ$i>*gY9)$>WQe0J+&%*9aq-K2k1(&jCd+R@c0 zzE;To7i)t>du0@-rbvafyTndW4#)T@6Q_Q+i=$^wgpbqnH?aw+60_K}V-6f&zQ2w_ zch9ma+b;&L2w9^0l6m(}B9tD+$8&Z$V#^rKR-S&(dFOJ?MhF%pTVagNLvFqWOJwr& z5I~B=>i+4VZY(?t3;Y6cun}jO4g{N|%taAS%Q@j&uhpfkmZe0?Eql9h1T_DYH_{>t zA3M}wFSnJr_u=l#7{i$1WemGYVun2XNLEL8wCOyCr~*kT=i5r3f|DuwVLP zzxq9xp3%C*AZF(?XBy8N{}3mDZ^M)8DMkhHM-v|jI>`Y|NB}cNJaOZsU!{>(>sAP{ zIs03X3(fxDm`({ZECG32D@`Y9zkfEyipCo#!jC#5%%^V*Xy*L`Ix_l>5VcQ&c{Z@e6PKJ``Eg(0yu-- zI+4wD1+3?Yy@xy5@QFJj^sr_pe_RR9wjcYD{0GZ_`wTxLGkaPndimhW6UBnPKO*WO=i;gVDnW^r0r|({1 zD;UTBC}s3#8f~*(D8w+X(r9s1NVULxqiz?9qB2p2fJm{JwSHW5jTAA8asH_-6unyZ z{h^L^t82tS{2#+Sl{+i+V~zkQ!&B|~=9|HcAXAgOHQ7DjLujeS=Q~DtuG!Nu?JKb& zC5k=A*^m%p_`;5lQH52mUgD|wj!}%tHrN{)reQ1ns4RF?KsZ{*m2}SFPsAOE{|@BJ z!wKq$W5Z6wr9O!I(-&WdWda1EYS(CWh?WjBPDBl^u9m7oHFF~b>_o^3=shkO7YmjT z7^3)pRRHMj2WILbta7Yt<)8q;hgkf+udkl45*Etc%8n(M#|OwO!(;fESld`dg*7Bv ziNoH0s^`=RMXblaTwhPTNOQrRBPym9S^Xi~-as!IQt5dud%P!7V5hs*(x2qjl`9v0 z>^!3E9?c%6I|gXy#w6&eVbME3&@CI_+%!OEvt5ljLa$xJ zSq)aLzeU}cP?T$~V5~WBPQ}_F0KE+h@!)h7HR@`Wkx8MMQ;vUNMKq-5$E)M?&5v)B>R*;iKBGoDS z_TXael{OXjO14lo5&0v_1y9edzjrGOhcZ+r`DgtfmE*ghF$O%oDa%~oGr!frKV9H#uyooDg?x?{)mAC%sr0UzS%C zOVy(gnVmZEDXA@{Px*^HWgbw*LW-_^UIgqC?KZ*0-ChW)U)8h+$_O?gH!H4@Ozd5( z@oT3z{|uxfvl+~7f~oTAow#pVX7!N!8fd|Asdtb$Z{mTGHxYUYxM`I*&0<7cW9+&-Y`;RUemt2o0-9iY4si|dBP8zzzuW0wZrX8+1N_TZF z$<1GuyQLH2jNSDBcYr;@-HmJt%*U`bPj*7g$~MPQt}Dn9gMqZJ?=TcSJ71_!p`2o2 zQq8K&m3T4ux9zkBH+AuIq*x2prg*J0^PXfmxWdEdOZBOyMHU&4ra5sND=%!B3qjd; zo1>%kpbt=Ou+IM~+@z8h|0g|5>2Ht=xANSiG<|>8hX$CNo$a^0v=T`7k8WLe_T(bO zsB9}6_00@$6rJ@fWjrsA^sqms4O-8Io4+nI-yRUs~+?inch;T3-+pZhfG?K03M9SLv6csjVM+5x^;$Y z;{=k|A>5rW16rR!%9JIol=9iQ_# zg`fxHK)!<8#pYXWswurHD5yGBo&;0%(08L?)=<{OVo{6bS|WL~J{1HAUa4wRSd@BT zS^c@t38~i_@SyvY@l)({VOOQ1O%!E0g5k{ky1GlKFsY=`6L#YU&WMPz+7$G=1*lDF zjAw~}igju9OK5~+uFLbA9Lkfvech0qz{9Wg9>(?wz;EF)s`KO@LXtMG$3MZdr2itz z(OZARMG0XNVtAn8+rk4ru`$pI_a7u9x_FL<>MVP4&{oW-?#foTIaq>TexlPCWTiXX zZr9RCfSG#AE{-fc&0WeZfXa_XakWyQs-b6qA z#M*V?np`6~GZHr%;JVuE=0_He7_Cgqk-eUP89pdjHD#M!+P|lL#V+(R;DMC!-SgO+ zPhJ$1D*ti@v8uoFjFHwl#4mB+@^_ue!VuE{HbUcZ6!0^LKE(SRao5yf$Na zY?Y>1k#w{y^By>Q2%hVrmhFq1FSfDy^I)1%BRv@O9^`)SKtO19R6n-GF^9}qd#{(> zD5tJB%Jd6A_1L%B(^j+YL^-yve2^48(WhicK3(rVO+dhu{XR=LGC+EU9rAuo&Y#+a zGA^E<6?PL|Q#nI5@3sUXAjUD3n7Hv*HWl%E!*W>hAHck{Hz<~2Ngt^WHJ8jnAjm&B zMgK{TACEvGF_Z4ABj+CGJ|*9y^3h&h6Dbm1-<}GN)XxAQ_*X79|kGu+B$8{ZnlFcfma-qX{*U8(zE0V<=NhAt5Q*SNyy)EP< zc`6Fk@=e0Qf~gAXSrYB{y;Y+0b1ZWMmYK*)em0;my70JQY08wEy}7RlQC2(1x-U(u zD9I()tqN8$n|`9p#6sdtj?@W?*NC@PH-tpHjMSx1C`^@D&j_r@93kh|j;PZ1F=&gX zxO`99U_aT9w-Kj!Lm(kjk%!TIP9p3zJiii{g6s5OE_kP>2BlDsMpw1K5(nz7fUS|K zJQR;%9IA-2CT|-uvw?&IlUpZGB9>=^y_i0hfr_6epiXpm@tU$@?v;3!OUv zDe{cjq#^eZkf?mkhuhj#%CEs7jb4csOA+ElB7H|^W8qR}3B_2vR08UE^p)WWZ(Cv{JBs2eHcQ-~U4Lo)c8 zIu;+BQ%WE|_Zz%{w(pq5_nvNv%^;RtE?57X^-WB@?BI+Y(H&y{6xGKfP;q7w;?IZ~ z=U=eY?#9I|-U@3rW3QqGxO@CUTgMuh#f?Y`FQ~(&FH)B>zfrplxtSK5oTM2O5?xoWycqP&40PP+<)&^diO-Qa7A>r(l*jFOYR+Cqt7_VZ)OFLD$O^LG z`?D&FO<4KGPvj0>qQYbx8*AH~^N;G9^!r~???-9+-xO0m&@}!{Hrh%B!R=6u)$T^k zY=ESLNgwLGUUhX0ZZ01I1PhPb>tEpJ5}egOg2^i196R}D1v(b=Li`voupOKj^8cHb z*T5CKYciB{$J5yY(n(l59*5OUypMRoWHETl2`=H<`d$^&Sss0qWF{mUuQ`W8xRUBT zwUW@IDK$qX#ii`G9#rxlkTff(X{?{GRIdrC%tK+E);%m)y)vrt63GhZ))Ub{jkVJ5 zDI1&kZ670g$l(=|aown;VMdOjoBs9X9@4nVID<2taMu!UL)AVYX z(!|#sN(=wDxq8poo5pW#oTgXL_bN{)yVsp^$*q2I(vO1(3QvkxfW|jnayvVe4DUbY z$9KVFIMfRk@jGlU4!%Cr#vJ$~7Y8u6ROFvxI$IhevUDT_m*`1-oES>}`vUba#d&ma zdtMEkT~j5<#JbKh0QDof!+TdNbTh_ep%%`^Y@NQceX^1!U)nR6pYTRAa@n&HG0f&5EZ-2CnS3pLc8k zJ+7WSwfJUSuGmSJnJlY3!QU7AKb+c3aTiLbN?v5VE9MiXKP#kLf(T?OG6oO1)^&UPHjxkIa zTnY&7i~VRs4F9emcW`Ia%>F61@SN|``!|xAD67vlU6PmjZ-ywk1uqE-vqLLB8KYTu zJVDW=vzpdoRHN_`S#JYY6>9z{+?fzH_m&H4tyIMLQCTy@)8}GSMw<#NH5;mAJw8ru z*jpN*-!?#n(j%xS^`{&7sq8@K`S|K#2=ZIVa0it2}oI|L@$C$#eQct>n*cbTkndH z>4edVB?NNu`JC^woD!oSqrJd%F0955GwlXG`cdWB#X4gNjqv83@?PT5%UU@={rM^~6!!lOQ*>xqK!jP;BGcQ+eP zYt99JYp?bs>ENe0xKaZwn(eZ&)B7~PB$#)=))!X>SEK@Pv4x}*H} zV#)K+wZN5$vSr%F>{JjP^^lle>}Bdpx$e5EoDH?t{^LOxnS_BHQPMb4T}#Oo3}^70 z15g=F{i7VB8g9;RK&6^-qA*=z3<{GeU6&EGjM(~oa6i#2BgGwQ?qA#L{3uJIk1wvH zWQt#t3NkFH(A?2YjRKNzd>nzcM+2H(XPi^!mq%53@sppN{^bD&1lZ6XvlqIp_vKki zYJ34>2^k;cyQQ`V0~EiE7;@6zg&20*@0iPi`+_F8`K~RhZNRMEcaY^`RHl=QuHC|` z#d@Lu;s^3c0+VDA%{JmI%YC&06K~!x3MX&<^&;BK?4xQGNG1)4R zkD6IVGrPDA8fRD*(<_}v04Qf0=ZzU^qK05HO61M~lhFr5eM&wqhP!AGR2o!f|); z+$_t1^kg;zIRK*Hr2C_TLM%CpftH!AWEqJ8_c6iIIuoAK=*0Y;F=w|~#99U)H8raJ z6g#&Q$3ayc;+ic{_urIS^V6k40js*oA z4P9<;mZ-k)M89e)>L*xR2Y--LHYW&=M}6SeRoe5hO@ z8(`{7Fk%H2i67PR9u*QFFKVzouI;#$0`?j3PSopMTTM&QH6Mn zUJJs*^UOZYRs^sN`N)M7T^DwnqK7jB%_;LwU>Vbck`34Y$>aTt#Q`<&B?JWI1w)Yp zP|}E+N4_D~h6b$bLIP_9X#D@FPihPvn)iLA7Azrf+_O*T>Z$j?9SYK{wnyE1E%{p7 zF{KE1JW8bKRqV+Anuax^Fs zNi!0(f5nulzZvDOMAQ`J04p`$WGj459oIrcfA^CK-zO==7RyWu2hi9dv>6;|qR;A% zkf7uvS61U;$cs3)-~MO87I+3nLA5D_r5Zb(Jv`G}ccXTXsWSeNKP^2qXgl7y#97X$ z97807Ldk40uurC(+{+|&pM-j%P}{)W{fb-phLYgxCl#kvtWeZ67qd(U>yEw>@EJ;C z=*Y>Mo|{7i_^pt2fE8!6mv}+?nK1Fwa8*yqe+hFd1>#@fbxfMQ-&0VG!ARIN-{c~ylL@`wc6QL+Q{wt;|J5Hp1$BdWB=eR$&);8Ne%Hm34uqeCy zdtiSAG67Va+xUzw{}YD`Epmf4{aH;8NsyiI5w+HS|Mt@WKP4iCe zq5jkIP4#!susGphxQj8AeKH+tS})g94EGemC?-Q+FrPIfJg^^8%|%wSQrGp~C#tK8 zcj4}>cKDf@7|6RfQxWlB(kxMl%P3A#H~e2u-ca`heYCMP|J>e`!GDLoiL8IHH) zC+9I9kUJZy&twCV~uqUR#ialr-$N^&ym9t^v4yV4ioV zVA4OIYxH7t?6OG2fGuvXv6!l!|dW1CT#SjOmyjS=^ z+=r@adeKJ(U#++Q3|Zce3Ta`4qg9K{4JGNJn`eQO!2}!xt6#G>`i{%s1XoQF@Ba z7c=wIdKY-HD9~HuH0Ft9?1#{oB-cni`>|n|rN)h`WLYKB*8BN&^tt#17O`q4C0)a| z`DL-PTz=1Jfb&1OjDr-`H=M6A{eIM7-%gKp-D*_$>8j%JiM>JGQXAl7q|5Oo>NN&c zHx77LT$9C~YDb;WKWQoS{Hx>}3lRNrZzo`sBJYzt`DLyg&>{^NGZS*@R2!Ue?Vd-$TQ&fkADAs#f= zgQ7)?GfgS|d~;(fgZU=#L+IRFR4uSO8-_50?hC>zHKWO-iIwRf_HI70W>-8{tQ74_ z@?UD8Jzhq?) z5J8Yc)h}GIAJ4DavW#+{cNKa*08(C-kPxgCZ7I$$Omff(kzX@78&pN)H}v?1Kj?;5 ziw)S*sU$|cyTX4`DutkBds);1DT`D<+R;$6QMO_QNhXe{s#`N=(}n^gjEl~*FMw8m z{Z~8K$v3bgJjF?2o8_-!<#Ik4v>XpFF0-J0pr@OP<~~{=Q&K{Zu`zpdZ72IbUuf$y zGLz2vsXd<>!7D!i0e`{5KjyYOOe8>6M+|+JHdYBP_gS$ja>tBPS0%Q=ToPcm{#7us zM<_}w=D%t!*kUvM9Z_IXR-B6F zbHWSB;y$A&(f0dKF?nb*uI$rYn?~uHbV8At6(~d^|CPDkuMf)q^1Wz>gmBBuFl`lY z0%G5{wGrO&&Mnc98sS})iWq-S0;;I0s;|FV}kj~IEiZ8V$q}s)u4@a z|B(8p!j6ZK93e?DRZf;0QxOVb+6T$^6v`E7IIq%5vyFN|$>v7`RNC4!3fE*3zMEOk zdx8d7*W2|$MHo5>(%zfDy!`l|0g^uPjqtwPz8?4d9co}l?pj@jG0HHKSBuxA-S=?u z&EWT{zT3{fKIC7>bwz3O_rBKU(Y~bSdDl90Z}7wft;smU^D-i|QAbFWmVTxoOiLxQG=c^8GDw_SptpEdgpjk5gm2dGmoC{`PafdmZeh^zd8ekE>kp}2wb z{G(|1b{GK48iV#!OwoUyQ{dM1Cm>NmjjRW?!C%ld=|+s`O`mS8C@`v(79qdR4m)l| z(&){dZ!Lc<^iUl!*;JuPwL@Rk8y0H^u58G`l57n`QV9<|o=nnPYBKWx@dNVZQ>fDo zgi8x#()1+Rw{5!K2UrtSO-xK}ybee3EMH}y13~W*-tuQ?s{n5Kod|Cw3&-fERvuLj z$}FgW032qqz6IxWImLI91kZ7Kib8?-H`|ILQe*=V&hz=H`fo9V!zh8f5y2lc>&3J3|x2L+@ z{k17zXQVmClvyKpis@(}e<+Om*cW^?c%?W4{hkALfy?<}8%+WrxP8*_d67tp+%ZmN zeDULqC<{?5jn4SRVts81_$Y_fI3c5B^B&LV>_FJ+IclHE#5oX6>Qo zHY#2Xau%p$9eAR%rLRk`4(!K`^(leYHd*g0w;xpbG}Q1s2TCvCaeaOaCWC*v1a+<8 z-cA&3jjlj2*++11mkxr-Qowqk5d@VYfhZOUa70rK5)8<}5e*a^(JW-C34f47wye>s zly>?Z5cB%#g%jglh^C5ToJTjf!%i{0Eo~8=RD!Jb*(oQoPdY<%x#TM>#~jMM zqn7;V(x*#oz~&Syo*1*WS9kJSB1z40fj06)4LE|g2TBQ+e3tz7^AGh_ZwM>s1AE!% zEKV*tV&7c{Ub-VeN)w7G-znxqEZ-%GNcjr4LNHrAO;ck<5$i7G%iU8|Ezt{Ma00J9rmLti$A2!#T2;u5ae@omhQ z-?|}6HcE?+9qIBw49R1Aj$%@Q%s`sWr5!9g z1N4Dx&<7rQKFOdDn1ViF2l@csTvOnE&;55Fa7-5t5)5=fbh|Ye2cBfGc`3&DR8pI@ zx9d_%F6{5#Xjoff-qJU}@O_huylM^ZjATgUE?4nm=|~pPfT5RqWaQ`I>9VPF&ZHX*2q4|$XJD)t6zkx##k~i6 z!~2((v;gk4+#d~o5qFNtk$U59GzOcIf=1KpI2R9*6e24{Ps;fA$%%NWUHi8NpBWl( zEjG9RIlkDJLJq2a5>l3GtO8ES_U2HX)KHtb4(P4rh2Im7u-{FxCMDs6HSRD7) zh(f_ZOdbyS7r0_iI(QN2A`E0bxn)|16m;oXu$Udh!t16JR3^HMB#u}KXg+MDBi-D ztJx#xDJ9HK(H&(!v^6<5U*gy8ph25aS@*OgeH9bmT9ss11rto4zANK?T>_TnVVkL6 zAPc55DvYC4!gY%gyK`(@cK&`b!eTX6QPRG$+OCQa#hBom4dXjXd{*{P4zwp_UqPZ1 z4wV0tF*D*e`MV~5#(ngA5k)kBQa<$_3HIi5bUaC>{Ybsr-4Peb-;GARVI-3(5gew# zEKkay)5S$g#YD|;Q+Wn2Xz4+@!3icn5C7_G`6VCZ{gNfN1-JaRUJ>(;5f)#xeT4J9 zy_6tY*c87ux1WDu9H1;c$6|3+leR2cg^PY|P|DWs95;qhkiI120R=MH^I!7K<{8|E z^80AVj@OUWdr@11hr9lrt&Pgo@_|I7UXEJT2~)}dX^uO6&u1!vc^jY)ybP-v1FPak z^?d4H5Lg_iMm>*5G?fp&g36yD^O*&rivmJAZ9x7%05UA%zyXCKh%3HRoGK#)flQ7w zNT$haTFfBgFg6d-8B1X;!d8Og#^6ZEP$rWfBM6`N(EQMA8v z&-{*S<`NSggLLOX8JZ6@HrHB+fK^CXy+jUv^!fWrNRB)|qEUaxf`UoXWBo`h@dGU`-rp~R zv_UM#_zWCofq8mmEq9yt@0vr=Sx^c6H6YU@)%%5?QeRjhLqgK)ZCxV%bbS^;byY*9 z*z{7p!P{szMHum;T3?j}oft9pKUE=-5V0V(5h@;%E9kXjD}_qY5q_ty8;l0lO@6H6 zx@52={FHC5rV`QmVY3@|)GVHn+l$yC5-v=(TFw4t;`6JbqgIu~*p0NV&++MNjq}db z1VZ@ry5E^8=5boEhh*t<;d7h33vbqA7>mF{Y$}Dd1Vcx@8Y9`GQeD*1@eAd z!w)%tD*rg>5l2xhr1gij$drUGcssXB!Y9suT>k5qs`E&`A)XTBU34J&gvtwjk35{A z#RLoIVy&aE!%H^@-YzS{TEvxfy3adEOuEs6oNWE;2jfUyr?zxQE3}1`kkTYL*opG; z;xw2M<<4|wnz3}H6vX#yc&Skr?GsJ;fjFXa5Z}Mn4$?dCe&JpHGkG0Ge+BQX>nf|_(BE?bbSEW41j6P;R-AvO z$WTW)E_sLzNpq>nBe=gPyb52QO6}l+uU;5V%yjc zrcxhmvV*<>1kW6PfNqZ>JBd7X6>{i*_)NR=dqz`w|L2KJjjJ(gLP(GR2kn$HoTtZv zv@@}ZWT_d&y;nUIxzdJ3WW9JBD2RfY*1X8-( zIMYYfLXPdq8SP8SWkl~2_RMaAF-yn-BniLthE=cvye_jg0%mB|=zY-m^phA4@SN>< zU)T2slKBR)Iwezd5dx84fkaVMjmoiaDr>&fXD0l8>6z;mO)5_qXO9r3+$m=ZKHfw| zHBa|!DSs;9H#wm(HE zF+8Ei+pV8}L$GMA0Oc#(3cOeMA^i9Z)sUQt=Q~IEsz05}X=VNi8L>w5-S`WL?^iGxJq340gxYd7f_7#%?4n8mllfDTz*jIE z8FC{5`Pf?MfuqTeS93b8G@ttAp8u{8v4tB@mqymG?N9 zKheqG7E#qC1z@Q-shDO~$PPsikT*sCz?h>lQ8@OdfGTH-D+(ssQFNpzA?Bh_IX^mK zta;IwWfrFFNDW=lUILVGRTh?VZ(01_=sjx91Gu6Uj?40oA-ZPZwObm&B3U*=Q3hVA zN%^1t^2Btkq@pB7n|7Ir5UBO7-XDO^y1|GGKDmyZSAYEaLgafQN#s7Yg=@jha%aG zCuD`(#igT-@{a*)WBxo(!9c*)5W-X3qjap%Z@})-wT^&akD9?obM#0j9$Z^fmyg&= z2Wh)~F$JR!D|5cEoDbl6^_y-cqo#)|u;4CrS zk>fjX|ZFS4&nBCbFK_@5k=S`Rocp7cGoW@}l749ZbC z;(68sPxPRnZdN0^m2M!0!$qWfx$jJy2AZv5sW1PH~n=blU10!*=qO ze+s5bC%mcxKcl+4qW0f70QKO~^%sYTf%zQ2{PXuA(O#!!=m4?-yZ^@Y+( zQVe3-*IAp&FW;H}_WUuMi~b0y%x{W5T^w{HLUfcvDXSq)jddJ?$5N4{+QS9QV$6=M z&Kqlk`JfM=@k%5jP5!YFyK)-m$FU&6*u;td*VE%BPwl^0`h+iq1VH(~KlbPYMEqp| zG1O$Rv3hhmhRn{ItZhuVz#2t%jk0(P@?QmI68!on*EZKQ=!f`j98Rjm9?9nk_Ooku^kYnB^V{x!G+wlhFcqWOa3E_ z7P$oE&t~&LIkr-OEf@%H(3w}#!8l+9#sN%FFw-ak_eSe@t*@{_c2|Kyq7ENCAfT)I zHf$G+13qAHcnJ1}>;-O=;zwDmyG@4f#u7B-1YjIcd0_x~tcqPY?jv4J8r1lngui$U z#lkARhm7Kx)W}ImCeldl_5{xir(v4b!1cESOwoSL1%@}LzK3fuNhz@Q2NfyLuc*nU zrVV)y3Ly@(#=%YV61MhDh0822Q--TtZ&;wxHbUQ{$y1VQ9nBq`vd?^r1|u6 z1}$cF`F=flE4NCdn<%7q_NlE(qD+=~AqDgI$`0Vt7Qg3M^4^z5W}l7V2j2O1+*4U! zfmn%V*VS+D_KGhH2?#@N^qZxKFE7s`*94X{dZRCYHY;sj+rV2jZdK`s1WJjgl}>Ja ziG^la$}n0=ip1{wul0+*xFUex67z(mT2?I;B^?=03`%6&(V`{D9|I9%%q+88Rhh@m zUivd-iM(Ah4H{B(krTl&z|T1q3`FMB{th{&-~VEG=D5vtN|AHEDZiz8b&P$c2+=l~ zQJ|~+fEgY$Tu`2hcCsy#`Rm<3DfH0q2(7^YYG})7q8!%mFPXOW1whS!*&NXB9H4i} z86ZN0l;X63oZZqbD7#D3Cl}{Z)HrS!8j?e+ES?iABQsUtx?Hj$Y%JOFm<>^$7xp~X z1AgT3rW>NHCZr}EA_IVxuq^c zgoOm7liSrJ4P{^DzNAdJxpwJ&GVv>OJ{u!C`VXq9@*h9z|!Gz)E&~e>Y zn}ZwE{AP_hda7R`l~4Z-=q3OpLENLLuLP=oNPiVjG_nR7+Zq*IQ7ng*e{5S!7$6tU zkrgq}nKa8|Jm1F(5sj9<0&hHSvE6^D6RcY-x3MziOnS@tW*F*v&7yB|w`B@~b*EL` zpcoWcm{gjEN9Ev2r7YxN6k8GlNIg%Ju?F}Ge)yg8~EtRj^hE@EKx*28=Ztx}&Sokl&&QquhcAh1Fy7_$~gnntXKn zvEhqGHQ&m(#_{_mL`h>T0la8@>2~WVS_nXYoGhv&qtQ)*x78crP94Kk{#0k+dHW6W zKPm!MtaKF^HLxJcYw^Zsk`&5VJ!q&OSd&f!hXMdh>sw-13)1m;eevr3uh~HM~r<`7nZmaLgp0TX;pQ4Fc1ZIff5rNzEkwgQ7egH6u zIG%zvn*Z~OS5};T=hFA`qWa!3vZ_S^A=mDx9snQtA%pwL4xX2 z1L0!P^ZiXrAFIF|@mkljLIUznf@UL1sxBPr4k$3Ok<-JJqspQx)); zBV5;=u5h6TjP#sNV+eMflM7v-ai7r{n_Jrh0s?PYA2akAmV90$~ zkTk38Yi!6b`age40B_X(>wHio@|c}5*(+UMcGi4R(-)jpD;={|*0-^2hAcC6f|0Hdhu=0Hd4ZGAcHiZiYY3?E1J7`97XYQc&)AV>RnhC=sR?KZ_MjpHem z6B^v^y4v%&Ialc#MK$Tl=oQ4J=QR%<|0Azh~wea5_MexS+D<( zr>|fOs%yHYI|Zb>L!>*TyStH;?oi@Tl8TgcBaL)-H!5AyAqXm+0^i2_dB1e8p*1%-g>n>V_)I{q3n7lcYVb+k@Y`6p1nS2gq28rY4e730c1lj5QhGHxO0)q zXKV@v0d4lZOnP#nP(lpXNVn!ofYFcxjD}`I*;p%YE~Xfneti>QG!Qxn!>JU9#|?)P zAPk*4wMQQibg)us8fZS(+l<_5KssKm4B}&5yS9%< zE|S&GIGLDUQx~fvg_$eILtA!L@I1!X5PHr6u~QM{}d-gFNSZBecx8+-KI?rxR6&ijMG|lX0~Gqg$$doaxB; zk}v))WD?EcR&z^!EQ#fkEb6a^v_7DWLz4by+#A5wC)|?EF`fHMRW)IAIeQ+nwu^_!{K?T#;12 z<_lt`VuODs$(id$RMqYOSRRfpFUlggo8^d9FNzY$jd54uZ zG3Fg7^kZ?$T(nbmH=VXIYvrRZddr^Eg4;7A!zO7lqM@AkRPYnP0f|*B-{}3$eQ1;J zxE4HhPU(|HGPTe^rHwf}BGuE)6u$ zOfi8MUmAO{7^LAkvb1V&&Ri#Dt%r|GA>pSF6|ypHcE-l*?y@e-WDoIqj3(~pw5M*k z3Dk+~|H)trEu+R9pHIHIrNI22lO4=cc@TNSQdvcM@>j3co8nGm$ z=3yo4>w*TId)%n>a=)NmSG$!}&DqjBFBtgP-JqONYlplc z__kDbG%eJwz5m(Ah9^*)NM3-p2W%;|=xzpDefH^qSAxo)=9P3;7`Ny%aiXEdDmb`U zLz?3fN_MN=^S{BFPggI~bj{0E7 zPfE;4yS|xMdD`t3pr?~mEo)Kms#oRr!YjoIP9OF>D9uu+o!b)8=FMj&i|?4dlEWO) z-Ig+GZ9UoeUEp0*KTyR~9Ru z*RH59@NFk{-lnfDR(io}T<8xe&$%b+W(==pezwZVFRz|;Eg_=pvTRQmxMeMCi*c*| zRPIqYMYvD9Zu+&a;6%P#T=AEx%#G}?KyFwcijlh028p9W2)n6rf6OED`-aO)wRqg; zan;#bZzCo+H?xssJu1TaoUMsIUzqFDj(%Rlp{{XHBn&KWZ#SR_J9A)rj{6xSur69z zaoWX$X+N<^4(nTp7dU`_n&WLMzG?V63XKuhIDJnWyVctcaDeshBp0JLvc+`w%{@&5 z$EdBz1_=(R5F4yX8uO3`2T%eB_yZ1*4GwU;S;c4w4shX2A-H(qef|>JsHXc?rOZeK z)ospPT_o(R;#m&PjdhTWlEm<;e>o~xOi_N*t(nvgn6m2T84lCRA`6D!##n&)Xd?*> zl=E2|@h4J>!>lRBtsv^=hp6-R+`&|Ia1cahK+m0a#2?WHR&Kh3{Ra!MoS-#4=Sx=XXojUQFWHG~+^*2?cVe zv(sg4aMN{i>>kPQs5N{ri&Vx4@R$n;SiNsMPQ2#D` z<7XIQ@24>OiKCw|FwM?Vu$E>>;bVUFJE6gzifZ}#rX$588!qYU)kU2V9zMoC-E^ew z?L5uot@0G5)^j9_GK(F9KLM5kLQ_y$V*nW<=EarmUwDQ|Z!S4Iu`&g=>xmUnhJ2z* zN<2S>(#a{};JS}B!moEs+M1V@T2+5t=*6h(eJFYHRLzs|m!m7K4~-}h)pNVi`vTRI z{%BrET6$UD1Kk;(PkStVC58^eDV6FNs}kz|ig>uRhPNP#$;v7GlNr{_q>K~#C8zr% zFg*E!xxG-6;Q*6?&~~=$dN^UwpKy7ZH}ye0&?tA>OP2QpX?07D%$@0UtHR5Qve-7r zvHOP=eDYi~N5!+}b@Z*aOyYWP=0~F`X;ZZjbISNDfPs>`W3KYwCJl@ z%Pq{bf3O%mC56HA_x9wc5rM=MH2q!92HqV*_L7;cm=M_k)85{eJ5NdIuWZ=0P`Umk z8fmDwak2~r=Lyn>9V*V~XIWTXUu|@*$mA0>J~ZPKNZT--HnN`tGK)7qZ*>2bX!;?p zuU1FTB%!9^m7Tqt>Yvqb1Yw-e?xnm^w{7!l44I!LDYufb7*jQ)2+y~bQlP^+Iyt(R z1DJ@XM#2;%O`G3|kZruGqvPk33*7#Alw}T~=@@+yU?7V*IS-4Yvo&h_sL(NFrFVy4 zlj%VACY@N-U?_IVsMfD7=qrmSXL2@?4D1q)afCuuRgmT~(2tp~Evm$oR@ zzA;Xf2mo@WsPT?C(#?@QJxFf9b!z#{<^w|V#fcEbFR?8rVHsP#I{TV;J$%4&Z@PjJ zw_9^B8f?MlvWm(~Xw|KYKdO4KI(SX=7J19`&64D3LBR}$a;+x~e?ue=?RqwD!@%IM z;TQQPVH$H3k?TCG>A9;I2{fQgc!F`*>}!?;+}41YS+Auv^!ErFq-qo2x*%cGPmU#f zao2B&({ZG_=CwQEXJ7g-#$)f>GMv^Pj%!r%If+boBl$x-)#?lTFtkXMp_MC2qOcKD zKX8ED|2sf^5Y97YOGi1_mpCS2QXi_dllwewUi(i^s>Hpjp&vFy#oX>1Hl7J#=y2$| zL$HY^IZ%h}aOFLBr)s9(zsG1RSHYvFx)%+~B)3H^MaO?ANM(KDWJ=oqJ6Hf)?mI`xu zlPw?r$>~+RLDKi+ii^L~#~*CKJUITU<&yulB|;I39U3mch&=v#=KRhp@`#zN7}omO zD#wzZk}d z_^qxF+GNi6^307pR?t;3!)~y;6*PNF^23F6#ro-dTwT{;p^3+o>8o%2pSk&Kn<#{i zF8$AIVBC2sf42omz2C(OVrPBszQ~`|)ZBoL5fXq3kK&3?%^>Oi8mZgWpTa0+JMc8k zmU~8QHDxZBi$6AB8Gf9#^IPubFO+Esvo3<_8c5)FB*_LlI(_zns z(`yea(LBSWrniM2M9fCvj7F~N^bMa(IZ)Aq*?>@bErEVuT@uv#c>sWR2BZW^Q0bC3 z1!U}iTK^X)Nb*6cZ`&-N^!|hS^1v?em9S$FyDe&0H!B_Et;$e;wzrj%F%yT44s~z+ z7;)4Y_$7XRQkPGF-L&2Ey=cwZLscNhgWQt3e25I}1}Ps-hR5;v9FA&7DeMjgQJD>f z?T&2rdA2)&pF%qhwLMaB89shlXPdZw%`DKGKt?UY(tT!6qZPz1fmGmYt>Beq?Z03? zZ4_4IG-a9xqtnGb;r}ZSi@CZh10sdh_*>&ft{>mJCT%f5-ZGChPv;Hpqr$S$wO-1)W*enidFBePF74N^s_5#RVVa%Y&` zY5%HGm<+k$d{2ZBC$?90Fcpa;%DyOT0@GuZW%H>cGOLksf($m;9U2FU(v>N^I37Hx z^Wk%lvL>TD6B!m=U_YA;X|(dEc~UQy0MtZ7&B-ehNL41(+)DUq$)ok>lu=DlVX2(k zMPxIDHsc0qPInoY%4t18+SDI%X{AWSluClbC)mwr6`%~a+RTw+aPHqX>M|?%%_`l> z9e3$WqNTN7NPKmna;ntTWpoX;!gcUoUVI8i&^pw+h5$Y59NF5E@yHrL4m8NvCvvdE zJqF{mbEP#>%Pu{VCY^As{>V6VebS29IUPN^VjCq0%us8iWOYN(>uODWNrALu$t1f# zja4);B44tOFimR0yzz+I1JG=^;&u)%IZ})Up$N?p4WDjnR5NQAtcB3D`dKpkDT?9O z5~Eg}{8G_PFzcP9+a`|A;_Z~};xD^8>7nx=@vd3Y@)qMk`6qpcrmHvx-@50|<%yPI z)0IjObx5Oa@CJipcVwi;Q)alvpi3g?6Ya{W*6XI>H$PT{rQP^y`a`;oezTzpPLuDX zr7qN!{l)Y>Q;A@vp_3m$U9JtZ(z*YXo2e#xYIsP^F!p!CmD#Ef*W!_&7G$JMbM-QO zN42ZH*(=WBbqb;q%Bmrs4`Pq9A|roicViR&1Y{I%7K?4(NqwESCT5VI7bTU&9E-T} zxk;qb;PMUsn-4{~S-@;;8Bp~80&dWSx{<~qFdf_z3WgKK{SW_j`Ep-`o}@0)2f`2$ zgy9`n&l1PXngB6w`_U_Q{7SCFOXy;6? zzQHxySpT{10h$kFJZ<$)v!yky3jKbBhqs-qFRFM(-_$fFFHM82Kx(_v$1*xyDTzZuMTsfS_2um*zUeh9Pf67RN*#B;#P}^{=eXil$#xtgr zbZeg$iokcluuB73(`S8?H$xhkyNJ6o<6w1WxVZYnnT|!F!0W-y9o+)?R*C6&;_n(IYjo)?Wm6l6w7v;aJQC#_ z_#G%S5h-vF=VR-gF?-CE{bLvg|J!8!q7WRQL8OY}VpLUFrDSM}Mn!(v%p)()G8+Rg zlmw8ID7Y_?%7FiCHELC&T$zK&HF-p{#&gfOCx8%s+2z6PA18Xv?8zYG=;G>l%wiHK zFP$B#8|RrZXR&0yq=oPgdBcRN3QEkq+@%Vs51f+y8R4sT1<^et+ z3-EzLfDdqjcOU}b13us#paJhd0>GW70av)gOTK~DJTK7+k2ZA1ZjOipi~@C_#ZG=n ze4D@8-t~CZGUTk78hd+`Yd-tUuz~V=W^l=Odt#ntU{jW$%VbqeudF=3vE&lAR)iVJ z8^b)r74fUhv$!%UO!9f!xJUT)r{42PQtE0=FkXET*!@Y=)Jm~}ovjxUfZdcITp30@ z=UuHuRHWPy=#w5PJi)1)HYez}&ts#6U`r=dM4;#PRGBpp`?wRNE zIFi6iSSp7BUPAwz+L)TznR3%6f|Yo43)Y|H(q;>Vk`U@#4PVF{l@(C@LG3<#IL>j+e@v%A?0uHaI0(Y95>RzFkAvY50Yy)iztw~i z(6yTZT|4;??%Xuj8OA)1f7|!~lOBz5LX6(mZcX`C`J{yR=F7hU0B$G`&6U@I^(ddv zV4!zc+K4N_ZtW-(;}#j%t*HU7@EJ(Qf`Av27WDW9RO)o8os=T&gNMX4WryOyFTe}o z6k1+EGzWtAX{CC1rh)?5vM#~-@B(lLZtw9ftDYQ>B$xZdjTEN6no1h_D_c;2Q%_H|#NE{8j^v4twu?y=*ki5VNW!hFwCyhrM2Z!hBQ;r`)7MrjZCv(DD7%7Dj`Qv;F@0W3}KH z)T?T872-b2#pYQWop*36;xqS1#KV3_%*v-krg1#^BBY|5*q6_XVL!#%#Cg%tTRY3~ zIT4|N4wC*Q#&;w3VkEZrk+p>_cYHkRp|Uoq+LMYzmM>lBGV%M-mp1JZiRcAtT^G^t z$pv)YgRDOscU|x_u<@br-JFzT7?{pHdJ~(}1!PcyBxyO55F^Jj_+-{hzMl7gN`E#m zoFM?kvL*0BOasNTH25($ju_DLM^G$Bf#;#}QQ8NX{3GDc6w+^~CVscs?EuyKE%-B| zpVJx5l>AWTEWdA^+=njGjy%}gppC9SN{V7L)dk#H2#||8;Fcv7RL0mwq!ef`3KN#i zha*dJ!|iKcB(up9smQMjaS8UIeQ@~*XbKA;b_?BS@>w7sCw=Y6;iwM4pos|MLoo@1Qae2HVgZJ-4 zn=}VExZ1Sm{t)n9%pd6PkgM9j(zBU|N5b(P5A0sJ$NOff zMu50ct>EY_5ItBd>|vu(T^)DDep) z>iuH0&^Ed11C}T@K}j53C7MM+9}=?t^e-$ zuIf)I@1ItqKk8^Vg?o-6fk%kjc-_tBv?^ptsC!n0V)oZ8SDUOFZgz{diXlkr28ob5 zSJV2PdprbR^b9Sd$=yGCh>xx~I_>6MPuywsW4O@aTk9X}qR6g=MQAT_nkSBgqm6du zEQC+Fel6PgW_GS9KIufVxo#WfwSD`3_vj2wd;Nt)<8!=KX~$~kt1fhSe$TA#7!%24 z;(RxaGfpYVy0af<;pF z{?QinygvhhTa}4TCcFUd=KTAPkXxxymK@fV#P#(Wg0K5|jQ#6}7Y-S1e+j)R&j;fE zYKZa6OC>d^SKC-E?KXXSCd|*#8B!vL(jBtagtBUZyv9W3c>1Afpxi;=kUn>81;)Ax zUVG;$^eWDwIuwI63q(QBZ;8_0W629!?&+jA8X{q&d>dH8fi^`IQ;iQJWv)W+akG&r zq>MOQ!YK4Hn}XpA#R})0ms|6#2G0lm6V(rW;7OA2InJ1&TJKwKW?I5$i%v0mG-FRp zbfsog3v%dOHsnMW6jsJK_SkbhN*{vSHqB(9Ujmt|*hZ%a4aECV1DeXEz=u=8#S~%g zVT`{YkNzhXw}Vqru6^Uf;AihQHwoE{kJi97JOuhDyTOtS6Nayx>14`CIbdJ=yHst3 z7Lb6A6KC7D)t&7hqG$={ywk>%LdKrxTuRL}1e*)@mYR|2+s$mT?(-GM-@;Q8l;}Y8 zN18}XrC0=sZ3b7R{CPP~$eLdy$CubS`uu!)*yVhq%*3V=UT-KXk7Y3BuKdSnImyjP zeJiO`{fGhOwxdQHt^Fq5#D*^b3hkWGn{<6KcW!Y`VUZePFOJT+)|R~-qu{%!X>6^8 zbia3zLb&C~@Cs$xfZa;S9L|8^a%2lSG5wkU(Xhr8+u;)zHc_9oR-XY?lSF@h=%U|S zgfJn7p1|=`Z!*2CAQ?{0=)q>eY~;;PsPF0;C+hKjY%j1m%UEp3H6Q%<5Dv@}IpL&>vpqh9I!xHGxX^Mp?_r>87Bj(*!e zS^etHc3esp>}mZ=2n&0auZ;Mi4!pWMRH7`EYPIa!ea&@2>Pp#Bp=rq!PC{%Lbg|Sx zBE*-D!m3=Axqp@Ajm%uh)c#m}7xMfZF5rT7g+Psd#X0-_I{wn-9n-&&@{4ipE!?9W zU)W`HRke>}*Mww(ouwnSCwzrWpN-mI)V%zagMh-{$2FHrD@p}~bv#f|d`YZdDRI0+ zT_ZyxtHE$-U!zlSX|3IyO#pz7Zgx*E1|JWgSDBwqE5{JwO8QY9gOR9UE-HTQDeLpn zkmuBFg($Xcy+!v7_vLStCB!^vNI}06HDePOkj@dzQf$Z`S}F%Wb7NL4>{zG5iKbX4 zJG0cP?SWq`^vZJ)x{P!u=b-x|ROL{Ut%?vu;^J56BTI~lZP&Q->&e=s88_SSNy7Tq z06NNzsW$6H^m}tllFjHHZR9rf29TzJ7hxP2DQf{)*)Z7b8}kuBM_{Ck4q8SJz*P_z zWG946O^C?_wJHkWFt1pe--fO$8`Blf#qhw-MEMIUK%U9Q9f<%i_cJOGl396^9oaPAGq@2J>VqT?XH} zKg}D-hCf#IIU(Qdb;;JESBUk!w~ndv@mH=ya>KCl^>l?7-Kl$VMCi~Pt(-9jC*GA6 zdC)n#P-fiJVCkQIn{ZYthd+ikUn=~r3o6$wh1F-M`l2){nf#)pOZ@hZ`T9}YD8TlQ zMh+v}KO$132Ud)i(7jGJ$O@PG`Zj!m`$szR?kCb1HA~5D|E#xQftDeBJUUM2FK`J> z+12?yrW<%a$R8v4ID9q~TU;+=o(qnNq+Qiq)Kdkv>i@aIl9p?OrWtyyRXej~@fU71 zmp>|ep(hNbG1%Jd2|q=toNSVCDeUt3@DH~*&XEEQ6JTvQ55A3>c)7FZh)8=KCub?U zHCY+VOv5%fVkt8GG_dm>pb*PjxxX+>x^NTECc5?P6Nh;gLHifD!Xkere!(b}w8Csx z;4&&(Q3ta+`MGX}f8Ck5)tZ#82{OvQjM(o$EzF`5M74?Xygu4=0`5vj#)XNRD~Q&>Br1aU+{d&0LHin!O=PN1Yy%@JKpI{V@Yf7r4_Fj9m*91;c2_kN+@#nTDHA(kg?yzm#HTO)QCameA7-8qDRuFt^ z1fK|384%AI54F!LSb4DEB0v8&@=w<$ezns?bKc+Kso4XWgjaahshFch!droN;5{S= zoOwCx1fTE}X6iiOKd_0ZmBwI|y&)CruB=1N{&xrZWtT$)tPq`U_=Kek_@e)PftrI> z;V?iMk^_{X{HsUmAS|9CQz!3#>!aeqAO!-*%@2U!ii4t5oSB_)MbOF95-^4!fZ#q# z3AjMZ82;EY3hdB#2ZElJ0dSW3Kp66ap7k9_$2vetkOO+w2T+vS0keg7j2q6?pj{9L z(2)ZuO3?s>YzjEcw*W%^4X7o}zy+=eKu1cTXQc+v(G++Gu)#a9c5O5LNq5(u2K%Su z22l1H`x{Buwpgq?4{H`SL7%<4S>qlrp?xaFKb3V#>ueOp;&YAl!(|3WEXFp?FE<3( zofpK<&dz&|_=IKO^VgBgWSRZ8S2TV=c7$Q=6{_hZ9k$O*d_y~LbRAjV-Vq3V>Vs6& z9Dm4rZ8yB|{ogNmQq6v0>%Y3(t+%4D&|XtxaqrSI!VmQdT{&VNq9QAw!BoW~*dlhJ zz6015220vqPKY7vx%fwDb9bbo#kDt^-Y(0W(g~icK$T^FC^r&k#5UDaMdW1^m z?D1q#LgHmG1Lz!I^uRmd&iM{p!o#1tR1GHcVUO<22u)V;txGR#IwY{#2XNKDpqg%4 z5p-cz)IQn79Q$fTP%z3eOKetj#ndt%5tZ1 zEdjiV1*DMHl}+&R_bxY|YAZP13<^uX;6M0x2{jL*0BnF5LM|S1NY1^FG@*dVPiSr~(yJON<9J4B&K6@#DES|J zr;M_g6a2qBU={m3w1IPz2)9vos%=Tqxx9;DkV!CJb>W3F$TAEj2%hzcoCem zEz8(0;^R~N8W&N|?lDHldv;e$LRBOl@W;9p_VEt*y64t(VvHzdCWK@(%IGu2tut61 zKIj<`pk-N76=hc9>`40`J1<9D@H4{lG4?7OPQO9g&9)yX+3 zgBoE>Q2GH;xDJ!Ku>*^=hGT=6r>2HN4P8d}3qE%J@0y&inn{8~6RG-SsrD-J<)*Gg z6k1_=ofMC14&h;qtn@cDb1K)|{}9|?dNg3B?ZHHWEac~+>67N|kY~|EE?60Ks{PWG zNbR}NJR8K~Uf`cAUqSOq5kN=c=Bk2-X0rIZ5BtRJq)b%ep*5VJh&S0Kd#|ZxZnyC0 z0DY82`}d?)6A`Y>L}{z=+0x1#fDc2gh(q$jMI7U_eiwP4Vbp)p1Be=&VxGI10$L*;YZd~ z{#F;iEu+>9rqXPbkceK*Q@;s2)crLxDY3wUk5q{?<=B5D;2=`BTHQ8*F(PxErkZcl z1AP#fvOTdER@Pm}XtL8N7PfvOY{B*Q!BeK+#!$Al6Z<89i6DEAzpUVTn>KeU6!R_d zLu@LsO*6cMhip+KAKBJmvFB?cfsDE*wxn*nbLicdis5{fU52OSg3F{fXJ>=qi2X1S ziECVe>xx@>hOfPui-Hnu^6mT`dT$63Ib?*J62jR#ktbECZ}&c?!LUv0w!O*k0$N7u zX-Sk(q>}45{%46Wugq@8uB76Fk#tdqb zJgiaVM|bIwGF+K9O{uN)j1l&006212*WbK;B7@owfzkYvXuaKB?iK99)zJCNJioy85MwRxCQjBA^<>L0!8Wn z%`qPNvycji!vjE|H34B52Eemd06goTgfVOS2{!w(rm#lXVl0Q_Z0^r$$?dm+Y-r7g zos3E<5*BX1Jxl8H_Wu4!1Km+^qD@zDkk#)`5AXQrD2CthpVo)13aQr>w3>Oor4J`v zb^o#m@*-AdM)v}*Lnyc-G;YE*5?$1%U&DAC1uTdv=IboOjm8OAuf z6EFYHO=#R6(OK{2Cuz$tk}la^?9ss8139*AE7OPv(LxwM(Nm@EBBjrNt-l{pl)n;U z=)yJ1kM+vtKEZ~imfan+kB2KVvHE$h*BCGZ`T~T&%I>H+m}@%%jMA7LMw#Sh7aC~p z7Sa>OM_8XJOUKWOSef395m>3v6cDsP%1oC6N)<6<`G<69cWb`QjSeD>R5&6IV`is|5hCn+Az_Vn*ao6)>hS$SqNZ_>)@h#?YJ z)lK{+w0h>b{1Ap!QIr!S)v`Weu~4b_qs*tYJJeVcG1x9AE2GA!-*a17-ESZ@_;tMq zh{cJJ2gl)`(t7s?+owlQVVX*|?LAxNAXQsXwA9@^xp$d{zf(ke>(TakTzuh63NH#< zT}a(1vcCroRM8W`~jRK`Jh(l_0K2I1PN?nslj9;`vLG2z*#n%=rMhbnlw_8hFBgWuKFiPX z6htRrn#T{K;KORG3FG*Ek(OiC)&cN3c*}dn2DJrbAkZ@TV9i4b<*c{enjV_+Nj_j( zgVz?1>bTH&O!_KkobF;D-}6Zs>r){e8aiY0jB=8I+gS#Qu_E`?p?OEVr-~sAXGNeW z6_d8&53-k+Cp8>%D|$r_`hw5l!;b!yO6mC^7Z_aGvuWpA?W|nze)9mi;0coU(8ZKb zyy@6GYhc0#fi>^#vu~3r~Y0Ys}{m)$M}e+CSHoS27F$AaEJR`m72w@Q7h^ zE`p)<@UYqUU⪻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 sKYeFi)5%s=+b_GF4`Ni@?FZaXX*>15A;$82|tP diff --git a/frequencies.c b/frequencies.c index 6583324..9976f1c 100644 --- a/frequencies.c +++ b/frequencies.c @@ -14,7 +14,9 @@ * limitations under the License. */ -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "frequencies.h" #include "misc.h" #include "settings.h" diff --git a/functions.c b/functions.c index cec6e25..d8e87c1 100644 --- a/functions.c +++ b/functions.c @@ -29,7 +29,9 @@ #include "driver/bk4819.h" #include "driver/gpio.h" #include "driver/system.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "frequencies.h" #include "functions.h" #include "helper/battery.h" diff --git a/main.c b/main.c index 2a4c193..bf7e903 100644 --- a/main.c +++ b/main.c @@ -32,9 +32,14 @@ #include "driver/st7565.h" #include "driver/system.h" #include "driver/systick.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "helper/battery.h" #include "helper/boot.h" +#ifdef ENABLE_MDC1200 + #include "mdc1200.h" +#endif #include "misc.h" #include "radio.h" #include "settings.h" @@ -90,6 +95,10 @@ void Main(void) BK4819_Init(); +#ifdef ENABLE_MDC1200 + mdc1200_init(); +#endif + BOARD_ADC_GetBatteryInfo(&g_usb_current_voltage, &g_usb_current); BOARD_EEPROM_load(); diff --git a/mdc1200.c b/mdc1200.c index 8dbbede..ececba1 100644 --- a/mdc1200.c +++ b/mdc1200.c @@ -2,7 +2,9 @@ #include #include "driver/crc.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "mdc1200.h" #include "misc.h" @@ -15,9 +17,18 @@ // >= 24-bit pre-amble // 40-bit sync // -//static const uint8_t pre_amble[] = {0x00, 0x00, 0x00, 0xCC}; / add some bit reversals just before the sync pattern -static const uint8_t pre_amble[] = {0x00, 0x00, 0x00}; -static const uint8_t sync[] = {0x07, 0x09, 0x2a, 0x44, 0x6f}; +const uint8_t mdc1200_pre_amble[] = {0x00, 0x00, 0x00}; +const uint8_t mdc1200_sync[5] = {0x07, 0x09, 0x2a, 0x44, 0x6f}; +// +// before successive bit xorring: +// 0x07092A446F +// 0000 0111 0000 1001 0010 1010 0100 0100 0110 1111 +// +// after successive bit xorring: +// 0000 0100 1000 1101 1011 1111 0110 0110 0101 1000 +// 0x048DBF6658 +// +uint8_t mdc1200_sync_suc_xor[sizeof(mdc1200_sync)]; /* uint8_t bit_reverse_8(uint8_t n) @@ -52,7 +63,7 @@ uint32_t bit_reverse_32(uint32_t n) #if 1 - uint16_t compute_crc(const uint8_t *data, const unsigned int data_len) + uint16_t compute_crc(const void *data, const unsigned int data_len) { // let the CPU's hardware do some work :) uint16_t crc; CRC_InitReverse(); @@ -63,14 +74,15 @@ uint32_t bit_reverse_32(uint32_t n) #elif 1 - uint16_t compute_crc(const uint8_t *data, const unsigned int data_len) + uint16_t compute_crc(const void *data, const unsigned int data_len) { // using the reverse computation and polynominal avoids having to reverse the bit order during and after - unsigned int i; - uint16_t crc = 0; + unsigned int i; + const uint8_t *data8 = (const uint8_t *)data; + uint16_t crc = 0; for (i = 0; i < data_len; i++) { unsigned int k; - crc ^= data[i]; + crc ^= data8[i]; for (k = 8; k > 0; k--) crc = (crc & 1u) ? (crc >> 1) ^ 0x8408 : crc >> 1; } @@ -79,17 +91,18 @@ uint32_t bit_reverse_32(uint32_t n) #else - uint16_t compute_crc(const uint8_t *data, const unsigned int data_len) + uint16_t compute_crc(const void *data, const unsigned int data_len) { - unsigned int i; - uint16_t crc = 0; + unsigned int i; + const uint8_t *data8 = (const uint8_t *)data; + uint16_t crc = 0; for (i = 0; i < data_len; i++) { uint8_t mask; // bit reverse each data byte - const uint8_t bits = bit_reverse_8(*data++); + const uint8_t bits = bit_reverse_8(*data8++); for (mask = 0x0080; mask != 0; mask >>= 1) { @@ -111,16 +124,17 @@ uint32_t bit_reverse_32(uint32_t n) // ************************************ // RX -void error_correction(uint8_t *data) +void error_correction(void *data) { // can correct up to 3 or 4 corrupted bits (I think) int i; uint8_t shift_reg; uint8_t syn; + uint8_t *data8 = (uint8_t *)data; for (i = 0, shift_reg = 0, syn = 0; i < FEC_K; i++) { - const uint8_t bi = data[i]; + const uint8_t bi = data8[i]; int bit_num; for (bit_num = 0; bit_num < 8; bit_num++) { @@ -129,7 +143,7 @@ void error_correction(uint8_t *data) shift_reg = (shift_reg << 1) | ((bi >> bit_num) & 1u); b = ((shift_reg >> 6) ^ (shift_reg >> 5) ^ (shift_reg >> 2) ^ (shift_reg >> 0)) & 1u; - syn = (syn << 1) | (((b ^ (data[i + FEC_K] >> bit_num)) & 1u) ? 1u : 0u); + syn = (syn << 1) | (((b ^ (data8[i + FEC_K] >> bit_num)) & 1u) ? 1u : 0u); if (syn & 0x80) k++; if (syn & 0x20) k++; @@ -146,21 +160,22 @@ void error_correction(uint8_t *data) ii--; } if (ii >= 0) - data[ii] ^= 1u << bn; // fix a bit + data8[ii] ^= 1u << bn; // fix a bit syn ^= 0xA6; // 10100110 } } } } /* -void xor_demodulation(uint8_t *data, const unsigned int size, const bool sync_inverted) +void xor_demodulation(void *data, const unsigned int size, const bool sync_inverted) { unsigned int i; + uint8_t *data8 = (uint8_t *)data; uint8_t prev_bit = 0; for (i = 0; i < size; i++) { int bit_num; - uint8_t in = data[i]; + uint8_t in = data8[i]; uint8_t out = 0; for (bit_num = 7; bit_num >= 0; bit_num--) { @@ -171,14 +186,15 @@ void xor_demodulation(uint8_t *data, const unsigned int size, const bool sync_in prev_bit = new_bit; out |= bit << bit_num; } - data[i] = out; + data8[i] = out; } } */ -bool decode_data(uint8_t *data) +bool decode_data(void *data) { uint16_t crc1; uint16_t crc2; + uint8_t *data8 = (uint8_t *)data; { // de-interleave @@ -211,7 +227,7 @@ bool decode_data(uint8_t *data) for (m = 0; m < FEC_K; m++) { const unsigned int n = (m * 16) + i; - deinterleaved[k++] = (data[n >> 3] >> ((7 - n) & 7u)) & 1u; + deinterleaved[k++] = (data8[n >> 3] >> ((7 - n) & 7u)) & 1u; } } @@ -223,7 +239,7 @@ bool decode_data(uint8_t *data) for (k = 0; k < 8; k++) if (deinterleaved[m++]) b |= 1u << k; - data[i] = b; + data8[i] = b; } } @@ -236,7 +252,7 @@ bool decode_data(uint8_t *data) // 01 80 1234 2E3E 00 6580A862DD8808 crc1 = compute_crc(data, 4); - crc2 = ((uint16_t)data[5] << 8) | (data[4] << 0); + crc2 = ((uint16_t)data8[5] << 8) | (data8[4] << 0); return (crc1 == crc2) ? true : false; } @@ -244,14 +260,15 @@ bool decode_data(uint8_t *data) // ********************************************************** // TX -void xor_modulation(uint8_t *data, const unsigned int size) +void xor_modulation(void *data, const unsigned int size) { // exclusive-or succesive bits - the entire packet unsigned int i; + uint8_t *data8 = (uint8_t *)data; uint8_t prev_bit = 0; for (i = 0; i < size; i++) { int bit_num; - uint8_t in = data[i]; + uint8_t in = data8[i]; uint8_t out = 0; for (bit_num = 7; bit_num >= 0; bit_num--) { @@ -260,11 +277,11 @@ void xor_modulation(uint8_t *data, const unsigned int size) out |= 1u << bit_num; // previous bit and new bit are different - send a '1' prev_bit = new_bit; } - data[i] = out ^ 0xff; + data8[i] = out ^ 0xff; } } -uint8_t * encode_data(uint8_t *data) +uint8_t * encode_data(void *data) { // R=1/2 K=7 convolutional coder // @@ -276,20 +293,22 @@ uint8_t * encode_data(uint8_t *data) // 3. for each bit, calculate the modulo-2 sum: bit(n-0) + bit(n-2) + bit(n-5) + bit(n-6) // 4. then for each byte of resulting output, again reverse those bits to generate the values shown above + uint8_t *data8 = (uint8_t *)data; + { // add the FEC bits to the end of the data unsigned int i; uint8_t shift_reg = 0; for (i = 0; i < FEC_K; i++) { unsigned int bit_num; - const uint8_t bi = data[i]; + const uint8_t bi = data8[i]; uint8_t bo = 0; for (bit_num = 0; bit_num < 8; bit_num++) { shift_reg = (shift_reg << 1) | ((bi >> bit_num) & 1u); bo |= (((shift_reg >> 6) ^ (shift_reg >> 5) ^ (shift_reg >> 2) ^ (shift_reg >> 0)) & 1u) << bit_num; } - data[FEC_K + i] = bo; + data8[FEC_K + i] = bo; } } @@ -301,7 +320,7 @@ uint8_t * encode_data(uint8_t *data) unsigned int i; UART_printf("mdc1200 tx1 %u ", size); for (i = 0; i < size; i++) - UART_printf(" %02X", data[i]); + UART_printf(" %02X", data8[i]); UART_SendText("\r\n"); } #endif @@ -310,7 +329,7 @@ uint8_t * encode_data(uint8_t *data) unsigned int i; unsigned int k; - uint8_t interleaved[(FEC_K * 2) * 8]; + uint8_t interleaved[(FEC_K * 2) * 8]; // temp individual bit storage // interleave order // 0, 16, 32, 48, 64, 80, 96, @@ -334,7 +353,7 @@ uint8_t * encode_data(uint8_t *data) for (i = 0, k = 0; i < (FEC_K * 2); i++) { unsigned int bit_num; - const uint8_t b = data[i]; + const uint8_t b = data8[i]; for (bit_num = 0; bit_num < 8; bit_num++) { interleaved[k] = (b >> bit_num) & 1u; @@ -352,23 +371,23 @@ uint8_t * encode_data(uint8_t *data) for (bit_num = 7; bit_num >= 0; bit_num--) if (interleaved[k++]) b |= 1u << bit_num; - data[i] = b; + data8[i] = b; } } - return data + (FEC_K * 2); + return data8 + (FEC_K * 2); } -unsigned int MDC1200_encode_single_packet(uint8_t *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id) +unsigned int MDC1200_encode_single_packet(void *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id) { unsigned int size; uint16_t crc; - uint8_t *p = data; + uint8_t *p = (uint8_t *)data; - memcpy(p, pre_amble, sizeof(pre_amble)); - p += sizeof(pre_amble); - memcpy(p, sync, sizeof(sync)); - p += sizeof(sync); + memcpy(p, mdc1200_pre_amble, sizeof(mdc1200_pre_amble)); + p += sizeof(mdc1200_pre_amble); + memcpy(p, mdc1200_sync, sizeof(mdc1200_sync)); + p += sizeof(mdc1200_sync); p[0] = op; p[1] = arg; @@ -381,14 +400,15 @@ unsigned int MDC1200_encode_single_packet(uint8_t *data, const uint8_t op, const p = encode_data(p); - size = (unsigned int)(p - data); + size = (unsigned int)(p - (uint8_t *)data); /* #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) { unsigned int i; + const uint8_t *data8 = (const uint8_t *)data; UART_printf("mdc1200 tx2 %u ", size); for (i = 0; i < size; i++) - UART_printf(" %02X", data[i]); + UART_printf(" %02X", data8[i]); UART_SendText("\r\n"); } #endif @@ -398,16 +418,16 @@ unsigned int MDC1200_encode_single_packet(uint8_t *data, const uint8_t op, const return size; } /* -unsigned int MDC1200_encode_double_packet(uint8_t *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id, const uint8_t b0, const uint8_t b1, const uint8_t b2, const uint8_t b3) +unsigned int MDC1200_encode_double_packet(void *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id, const uint8_t b0, const uint8_t b1, const uint8_t b2, const uint8_t b3) { unsigned int size; uint16_t crc; - uint8_t *p = data; + uint8_t *p = (uint8_t *)data; - memcpy(p, pre_amble, sizeof(pre_amble)); - p += sizeof(pre_amble); - memcpy(p, sync, sizeof(sync)); - p += sizeof(sync); + memcpy(p, mdc1200_pre_amble, sizeof(mdc1200_pre_amble)); + p += sizeof(mdc1200_pre_amble); + memcpy(p, mdc1200_sync, sizeof(mdc1200_sync)); + p += sizeof(mdc1200_sync); p[0] = op; p[1] = arg; @@ -431,7 +451,7 @@ unsigned int MDC1200_encode_double_packet(uint8_t *data, const uint8_t op, const p = encode_data(p); - size = (unsigned int)(p - data); + size = (unsigned int)(p - (uint8_t *)data); xor_modulation(data, size); @@ -459,172 +479,188 @@ void MDC1200_reset_rx(void) memset(&rx, 0, sizeof(rx)); } -bool MDC1200_process_rx(const uint8_t rx_byte, uint8_t *op, uint8_t *arg, uint16_t *unit_id) +bool MDC1200_process_rx( + const void *buffer, + const unsigned int size, + //const bool inverted, + uint8_t *op, + uint8_t *arg, + uint16_t *unit_id) { - unsigned int i; - int k; + const uint8_t *buffer8 = (const uint8_t *)buffer; + unsigned int index; - for (k = 7; k >= 0; k--) + memset(&rx, 0, sizeof(rx)); + + for (index = 0; index < size; index++) { - rx.prev_bit = rx.bit; + unsigned int i; + int bit; - rx.bit = (rx_byte >> k) & 1u; - - if (rx.stage == 0) - { // scanning for the pre-amble - rx.xor_bit = rx.bit & 1u; - } - else + const uint8_t rx_byte = buffer8[index]; + + for (bit = 7; bit >= 0; bit--) { - rx.xor_bit = (rx.xor_bit ^ rx.bit) & 1u; - if (rx.inverted_sync) - rx.xor_bit ^= 1u; - } - - rx.shift_reg = (rx.shift_reg << 1) | (rx.xor_bit & 1u); - rx.bit_count++; - - // ********* - - if (rx.stage == 0) - { // looking for pre-amble - if (rx.bit_count < 20 || (rx.shift_reg & 0xfffff) != 1u) + rx.prev_bit = rx.bit; + + rx.bit = (rx_byte >> bit) & 1u; + + if (rx.stage == 0) + { // scanning for the pre-amble + rx.xor_bit = rx.bit & 1u; + } + else + { + rx.xor_bit = (rx.xor_bit ^ rx.bit) & 1u; + if (rx.inverted_sync) + rx.xor_bit ^= 1u; + } + + rx.shift_reg = (rx.shift_reg << 1) | (rx.xor_bit & 1u); + rx.bit_count++; + + // ********* + + if (rx.stage == 0) + { // looking for pre-amble + if (rx.bit_count < 20 || (rx.shift_reg & 0xfffff) != 1u) + continue; + + rx.xor_bit = 1; + rx.stage = 1; + rx.bit_count = 1; + + //s.printf("%5u %2u %u pre-amble found", index, rx_bit_count, rx_packet_stage); + //Memo1->Lines->Add(s); + } + + if (rx.stage < 2) + { + //s.printf("%5u %3u %u ", index, rx_bit_count, rx_packet_stage); + //for (uint64_t mask = 1ull << ((sizeof(rx_shift_reg) * 8) - 1); mask != 0; mask >>= 1) + // s += (rx_shift_reg & mask) ? '#' : '.'; + //s += " "; + //for (int i = sizeof(rx_shift_reg) - 1; i >= 0; i--) + //{ + // String s2; + // s2.printf(" %02X", (uint8_t)(rx_shift_reg >> (i * 8))); + // s += s2; + //} + //Memo1->Lines->Add(s); + } + + if (rx.stage == 1) + { // looking for the 40-bit sync pattern, it follows the 24-bit pre-amble + + const unsigned int sync_bit_ok_threshold = 32; + + if (rx.bit_count >= sync_bit_ok_threshold) + { + // 40-bit sync pattern + uint64_t sync_nor = 0x07092a446fu; // normal + uint64_t sync_inv = 0xffffffffffu ^ sync_nor; // bit inverted + + sync_nor ^= rx.shift_reg; + sync_inv ^= rx.shift_reg; + + unsigned int nor_count = 0; + unsigned int inv_count = 0; + for (i = 40; i > 0; i--, sync_nor >>= 1, sync_inv >>= 1) + { + nor_count += sync_nor & 1u; + inv_count += sync_inv & 1u; + } + nor_count = 40 - nor_count; + inv_count = 40 - inv_count; + + if (nor_count >= sync_bit_ok_threshold || inv_count >= sync_bit_ok_threshold) + { // good enough + + rx.inverted_sync = (inv_count > nor_count) ? true : false; + + //String s; + //s.printf("%5u %2u %u sync found %s %u bits ", + // index, + // rx_bit_count, + // rx_packet_stage, + // rx_inverted_sync ? "inv" : "nor", + // rx_inverted_sync ? inv_count : nor_count); + + //for (int i = 4; i >= 0; i--) + //{ + // String s2; + // uint8_t b = rx_shift_reg >> (8 * i); + // if (rx_inverted_sync) + // b ^= 0xff; + // s2.printf(" %02X", b); + // s += s2; + //} + //Memo1->Lines->Add(s); + + rx.data_index = 0; + rx.bit_count = 0; + rx.stage++; + } + } + continue; - - rx.xor_bit = 1; - rx.stage = 1; - rx.bit_count = 1; - - //s.printf("%5u %2u %u pre-amble found", index, rx_bit_count, rx_packet_stage); - //Memo1->Lines->Add(s); - } - - if (rx.stage < 2) - { - //s.printf("%5u %3u %u ", index, rx_bit_count, rx_packet_stage); - //for (uint64_t mask = 1ull << ((sizeof(rx_shift_reg) * 8) - 1); mask != 0; mask >>= 1) - // s += (rx_shift_reg & mask) ? '#' : '.'; - //s += " "; - //for (int i = sizeof(rx_shift_reg) - 1; i >= 0; i--) + } + + // ********* + + if (rx.stage < 2) + continue; + + if (rx.bit_count < 8) + continue; + + rx.bit_count = 0; + + // 55 55 55 55 55 55 55 07 09 2A 44 6F 94 9C 22 20 32 A4 1A 37 1E 3A 00 98 2C 84 + + rx.data[rx.data_index++] = rx.shift_reg & 0xff; // save the last 8 bits + + if (rx.data_index < (FEC_K * 2)) + continue; + + // s.printf("%5u %3u %u %2u ", index, rx_bit_count, rx_packet_stage, rx_buffer.size()); + // for (i = 0; i < rx_data_index; i++) + // { + // String s2; + // const uint8_t b = rx_buffer[i]; + // s2.printf(" %02X", b); + // s += s2; + // } + // Memo1->Lines->Add(s); + + if (!decode_data(rx.data)) + { + MDC1200_reset_rx(); + continue; + } + + // extract the info from the packet + *op = rx.data[0]; + *arg = rx.data[1]; + *unit_id = ((uint16_t)rx.data[3] << 8) | (rx.data[2] << 0); + + //s.printf("%5u %3u %u %2u decoded ", index, rx_bit_count, rx_packet_stage, rx_buffer.size()); + //for (i = 0; i < 14; i++) //{ // String s2; - // s2.printf(" %02X", (uint8_t)(rx_shift_reg >> (i * 8))); + // const uint8_t b = data[i]; + // s2.printf(" %02X", b); // s += s2; //} //Memo1->Lines->Add(s); - } - - if (rx.stage == 1) - { // looking for the 40-bit sync pattern, it follows the 24-bit pre-amble - - const unsigned int sync_bit_ok_threshold = 32; - - if (rx.bit_count >= sync_bit_ok_threshold) - { - // 40-bit sync pattern - uint64_t sync_nor = 0x07092a446fu; // normal - uint64_t sync_inv = 0xffffffffffu ^ sync_nor; // bit inverted - - sync_nor ^= rx.shift_reg; - sync_inv ^= rx.shift_reg; - - unsigned int nor_count = 0; - unsigned int inv_count = 0; - for (i = 40; i > 0; i--, sync_nor >>= 1, sync_inv >>= 1) - { - nor_count += sync_nor & 1u; - inv_count += sync_inv & 1u; - } - nor_count = 40 - nor_count; - inv_count = 40 - inv_count; - - if (nor_count >= sync_bit_ok_threshold || inv_count >= sync_bit_ok_threshold) - { // good enough - - rx.inverted_sync = (inv_count > nor_count) ? true : false; - - //String s; - //s.printf("%5u %2u %u sync found %s %u bits ", - // index, - // rx_bit_count, - // rx_packet_stage, - // rx_inverted_sync ? "inv" : "nor", - // rx_inverted_sync ? inv_count : nor_count); - - //for (int i = 4; i >= 0; i--) - //{ - // String s2; - // uint8_t b = rx_shift_reg >> (8 * i); - // if (rx_inverted_sync) - // b ^= 0xff; - // s2.printf(" %02X", b); - // s += s2; - //} - //Memo1->Lines->Add(s); - - rx.data_index = 0; - rx.bit_count = 0; - rx.stage++; - } - } - - continue; - } - - // ********* - - if (rx.stage < 2) - continue; - - if (rx.bit_count < 8) - continue; - - rx.bit_count = 0; - - // 55 55 55 55 55 55 55 07 09 2A 44 6F 94 9C 22 20 32 A4 1A 37 1E 3A 00 98 2C 84 - - rx.data[rx.data_index++] = rx.shift_reg & 0xff; // save the last 8 bits - - if (rx.data_index < (FEC_K * 2)) - continue; - - // s.printf("%5u %3u %u %2u ", index, rx_bit_count, rx_packet_stage, rx_buffer.size()); - // for (i = 0; i < rx_data_index; i++) - // { - // String s2; - // const uint8_t b = rx_buffer[i]; - // s2.printf(" %02X", b); - // s += s2; - // } - // Memo1->Lines->Add(s); - - if (!decode_data(rx.data)) - { + + // reset the detector MDC1200_reset_rx(); - continue; + + return true; } - - // extract the info from the packet - *op = rx.data[0]; - *arg = rx.data[1]; - *unit_id = ((uint16_t)rx.data[3] << 8) | (rx.data[2] << 0); - - //s.printf("%5u %3u %u %2u decoded ", index, rx_bit_count, rx_packet_stage, rx_buffer.size()); - //for (i = 0; i < 14; i++) - //{ - // String s2; - // const uint8_t b = data[i]; - // s2.printf(" %02X", b); - // s += s2; - //} - //Memo1->Lines->Add(s); - - // reset the detector - MDC1200_reset_rx(); - - return true; } - + return false; } @@ -637,4 +673,10 @@ void test(void) const int size = MDC1200_encode_single_packet(data, 0x12, 0x34, 0x5678); // const int size = MDC1200_encode_double_packet(data, 0x55, 0x34, 0x5678, 0x0a, 0x0b, 0x0c, 0x0d); } -*/ \ No newline at end of file +*/ + +void mdc1200_init(void) +{ + memcpy(mdc1200_sync_suc_xor, mdc1200_sync, sizeof(mdc1200_sync)); + xor_modulation(mdc1200_sync_suc_xor, sizeof(mdc1200_sync_suc_xor)); +} diff --git a/mdc1200.h b/mdc1200.h index 942077c..db44afe 100644 --- a/mdc1200.h +++ b/mdc1200.h @@ -85,11 +85,23 @@ enum mdc1200_op_code_e { MDC1200_OP_CODE_MSG_XX = 0x47, MDC1200_OP_CODE_RADIO_CHECK = 0x63 }; +typedef enum mdc1200_op_code_e mdc1200_op_code_t; -unsigned int MDC1200_encode_single_packet(uint8_t *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id); -//unsigned int MDC1200_encode_double_packet(uint8_t *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id, const uint8_t b0, const uint8_t b1, const uint8_t b2, const uint8_t b3); +extern const uint8_t mdc1200_sync[5]; +extern uint8_t mdc1200_sync_suc_xor[sizeof(mdc1200_sync)]; + +unsigned int MDC1200_encode_single_packet(void *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id); +//unsigned int MDC1200_encode_double_packet(void *data, const uint8_t op, const uint8_t arg, const uint16_t unit_id, const uint8_t b0, const uint8_t b1, const uint8_t b2, const uint8_t b3); void MDC1200_reset_rx(void); -bool MDC1200_process_rx(const uint8_t rx_byte, uint8_t *op, uint8_t *arg, uint16_t *unit_id); +bool MDC1200_process_rx( + const void *buffer, + const unsigned int size, + //const bool inverted, + uint8_t *op, + uint8_t *arg, + uint16_t *unit_id); + +void mdc1200_init(void); #endif diff --git a/settings.c b/settings.c index 6e7bfaa..1c1b027 100644 --- a/settings.c +++ b/settings.c @@ -20,7 +20,9 @@ #include "app/fm.h" #endif #include "driver/eeprom.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "misc.h" #include "settings.h" diff --git a/ui/menu.c b/ui/menu.c index 5fd35ec..b69357b 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -26,7 +26,9 @@ #include "driver/bk4819.h" #include "driver/eeprom.h" // EEPROM_ReadBuffer() #include "driver/st7565.h" -#include "driver/uart.h" +#if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + #include "driver/uart.h" +#endif #include "external/printf/printf.h" #include "frequencies.h" #include "helper/battery.h" diff --git a/ui/status.c b/ui/status.c index 776d05f..cbdda10 100644 --- a/ui/status.c +++ b/ui/status.c @@ -99,11 +99,10 @@ void UI_DisplayStatus(const bool test_display) else #endif // SCAN indicator - if (g_scan_state_dir != SCAN_STATE_DIR_OFF || - g_screen_to_display == DISPLAY_SEARCH || - test_display) + if (g_scan_state_dir != SCAN_STATE_DIR_OFF || test_display) { - if (g_search_css_state == SEARCH_CSS_STATE_OFF) // don't display this if in search mode + // don't display this if in search mode + if (g_screen_to_display != DISPLAY_SEARCH) { if (g_scan_next_channel <= USER_CHANNEL_LAST) { // channel mode