From 9d902bc224b28e2785680293bdd0a298c40aad70 Mon Sep 17 00:00:00 2001 From: furrtek Date: Wed, 16 Aug 2017 10:02:57 +0100 Subject: [PATCH] ADSB RX now works \o/ Added tabs in RDS TX, multiple groups can be sent at once Bugfix: text not updating on UI after text prompt --- firmware/application/protocols/rds.cpp | 130 ++++++------ firmware/application/protocols/rds.hpp | 16 +- firmware/application/ui_adsb_rx.cpp | 258 +++++------------------ firmware/application/ui_adsb_rx.hpp | 63 +++--- firmware/application/ui_adsb_tx.cpp | 56 +++-- firmware/application/ui_adsb_tx.hpp | 53 ++--- firmware/application/ui_encoders.cpp | 2 - firmware/application/ui_navigation.cpp | 4 +- firmware/application/ui_rds.cpp | 260 +++++++++++++++++------- firmware/application/ui_rds.hpp | 214 ++++++++++++------- firmware/application/ui_transmitter.cpp | 2 +- firmware/baseband/proc_adsbrx.hpp | 2 + firmware/common/adsb.cpp | 72 +++++-- firmware/common/adsb.hpp | 7 + firmware/common/adsb_frame.hpp | 63 +++--- firmware/common/ui_widget.cpp | 29 +++ firmware/common/ui_widget.hpp | 23 +++ firmware/portapack-h1-havoc.bin | Bin 892008 -> 892760 bytes 18 files changed, 664 insertions(+), 590 deletions(-) diff --git a/firmware/application/protocols/rds.cpp b/firmware/application/protocols/rds.cpp index bad588e8..342f82e5 100644 --- a/firmware/application/protocols/rds.cpp +++ b/firmware/application/protocols/rds.cpp @@ -25,6 +25,7 @@ #include "portapack_shared_memory.hpp" // RDS infos: +// One frame = X groups (as necessary) // One group = 4 blocks = 4 * 26 bits // One block = 26 bits (16 bits data + 10 bits checkword) // Sent MSB first @@ -44,11 +45,6 @@ uint32_t make_block(uint32_t data, uint16_t offset) { return (data << 10) | (CRC ^ offset); } -// Todo: -// Make PI -// TA/TP flags -// Group selection - // Boolean to binary uint8_t b2b(const bool in) { if (in) @@ -58,27 +54,36 @@ uint8_t b2b(const bool in) { } // Type 0B groups are like 0A groups but without alternative frequency data -void make_0B_group(RDS_group * group, const uint16_t PI_code, const bool TP, const uint8_t PTY, const bool TA, +RDSGroup make_0B_group(const uint16_t PI_code, const bool TP, const uint8_t PTY, const bool TA, const bool MS, const bool DI, const uint8_t C, const std::string chars) { - group->block[0] = PI_code; - group->block[1] = (0x0 << 12) | (1 << 11) | (b2b(TP) << 10) | ((PTY & 0x1F) << 5) | (b2b(TA) << 4) | (b2b(MS) << 3) | (b2b(DI) << 2) | (C & 3); - group->block[2] = PI_code; - group->block[3] = (chars[0] << 8) | chars[1]; + RDSGroup group; + + group.block[0] = PI_code; + group.block[1] = (0x0 << 12) | (1 << 11) | (b2b(TP) << 10) | ((PTY & 0x1F) << 5) | (b2b(TA) << 4) | (b2b(MS) << 3) | (b2b(DI) << 2) | (C & 3); + group.block[2] = PI_code; + group.block[3] = (chars[0] << 8) | chars[1]; + + return group; } // For RadioText, up to 64 chars with 2A, 32 chars with 2B -void make_2A_group(RDS_group * group, const uint16_t PI_code, const bool TP, const uint8_t PTY, const bool AB, +RDSGroup make_2A_group(const uint16_t PI_code, const bool TP, const uint8_t PTY, const bool AB, const uint8_t segment, const std::string chars) { - group->block[0] = PI_code; - group->block[1] = (0x2 << 12) | (0 << 11) | (b2b(TP) << 10) | ((PTY & 0x1F) << 5) | (b2b(AB) << 4) | (segment & 15); - group->block[2] = (chars[0] << 8) | chars[1]; - group->block[3] = (chars[2] << 8) | chars[3]; + RDSGroup group; + + group.block[0] = PI_code; + group.block[1] = (0x2 << 12) | (0 << 11) | (b2b(TP) << 10) | ((PTY & 0x1F) << 5) | (b2b(AB) << 4) | (segment & 15); + group.block[2] = (chars[0] << 8) | chars[1]; + group.block[3] = (chars[2] << 8) | chars[3]; + + return group; } // Time and date - usually one message per minute - Month: 1~12 - Day: 1~31 - Hour/Minute: 0~59 - Local offset: -12/+12 from UTC -void make_4A_group(RDS_group * group, const uint16_t PI_code, const bool TP, const uint8_t PTY, +RDSGroup make_4A_group(const uint16_t PI_code, const bool TP, const uint8_t PTY, const uint16_t year, const uint8_t month, const uint8_t day, const uint8_t hour, const uint8_t minute, const int8_t local_offset) { + RDSGroup group; uint32_t L = 0; uint32_t day_code; @@ -86,80 +91,64 @@ void make_4A_group(RDS_group * group, const uint16_t PI_code, const bool TP, con day_code = 14956 + day + (uint32_t)((float)(year - 1900 - L) * 365.25) + uint16_t((float)((month + 1) + L * 12) * 30.6001); - group->block[0] = PI_code; - group->block[1] = (0x4 << 12) | (0 << 11) | (b2b(TP) << 10) | ((PTY & 0x1F) << 5) | ((day_code & 0x18000) >> 15); - group->block[2] = ((day_code & 0x7FFF) << 1) | (hour >> 4); - group->block[3] = ((hour & 15) << 12) | ((minute & 0x3F) << 6) | (local_offset & 0x3F); + group.block[0] = PI_code; + group.block[1] = (0x4 << 12) | (0 << 11) | (b2b(TP) << 10) | ((PTY & 0x1F) << 5) | ((day_code & 0x18000) >> 15); + group.block[2] = ((day_code & 0x7FFF) << 1) | (hour >> 4); + group.block[3] = ((hour & 15) << 12) | ((minute & 0x3F) << 6) | (local_offset & 0x3F); + + return group; } -uint16_t gen_PSN(const std::string & psname, const RDS_flags * rds_flags) { +void gen_PSN(std::vector& frame, const std::string& psname, const RDS_flags * rds_flags) { uint8_t c; - RDS_group groups[4] = { 0 }; + RDSGroup group; + + frame.clear(); // 4 groups with 2 PSN characters in each - for (c = 0; c < 4; c++) - make_0B_group(&groups[c], rds_flags->PI_code, rds_flags->TP, rds_flags->PTY, rds_flags->TA, rds_flags->MS, rds_flags->DI, c, psname.substr(c * 2, 2)); - - // Generate checkbits for each block of each group for (c = 0; c < 4; c++) { - groups[c].block[0] = make_block(groups[c].block[0], RDS_OFFSET_A); - groups[c].block[1] = make_block(groups[c].block[1], RDS_OFFSET_B); - groups[c].block[2] = make_block(groups[c].block[2], RDS_OFFSET_Cp); // C' ! - groups[c].block[3] = make_block(groups[c].block[3], RDS_OFFSET_D); + group = make_0B_group(rds_flags->PI_code, rds_flags->TP, rds_flags->PTY, rds_flags->TA, rds_flags->MS, rds_flags->DI, c, psname.substr(c * 2, 2)); + group.block[0] = make_block(group.block[0], RDS_OFFSET_A); + group.block[1] = make_block(group.block[1], RDS_OFFSET_B); + group.block[2] = make_block(group.block[2], RDS_OFFSET_Cp); // C' ! + group.block[3] = make_block(group.block[3], RDS_OFFSET_D); + frame.emplace_back(group); } - - uint32_t * tx_data_u32 = (uint32_t*)shared_memory.bb_data.data; - - // Copy to tx_data for baseband - for (c = 0; c < 4 * 4; c++) - tx_data_u32[c] = groups[c >> 2].block[c & 3]; - - return 4 * 4 * 26; } -uint16_t gen_RadioText(const std::string & text, const bool AB, const RDS_flags * rds_flags) { +void gen_RadioText(std::vector& frame, const std::string& text, const bool AB, const RDS_flags * rds_flags) { size_t c; - RDS_group * groups_ptr; + //RDSGroup * groups_ptr; std::string radiotext_buffer = text; - size_t rt_length, groups; + size_t rt_length, group_count; + RDSGroup group; radiotext_buffer += 0x0D; rt_length = radiotext_buffer.length(); rt_length = (rt_length + 3) & 0xFC; - groups = rt_length >> 2; // 4 characters per group + group_count = rt_length >> 2; // 4 characters per group - groups_ptr = (RDS_group*)chHeapAlloc(0, groups * sizeof(RDS_group)); + //groups_ptr = (RDSGroup*)chHeapAlloc(0, group_count * sizeof(RDSGroup)); - for (c = 0; c < groups; c++) - make_2A_group(&groups_ptr[c], rds_flags->PI_code, rds_flags->TP, rds_flags->PTY, AB, c, radiotext_buffer.substr(c * 4, 4)); - - // Generate checkbits for each block of each group - for (c = 0; c < groups; c++) { - groups_ptr[c].block[0] = make_block(groups_ptr[c].block[0], RDS_OFFSET_A); - groups_ptr[c].block[1] = make_block(groups_ptr[c].block[1], RDS_OFFSET_B); - groups_ptr[c].block[2] = make_block(groups_ptr[c].block[2], RDS_OFFSET_C); - groups_ptr[c].block[3] = make_block(groups_ptr[c].block[3], RDS_OFFSET_D); + frame.clear(); + + for (c = 0; c < group_count; c++) { + group = make_2A_group(rds_flags->PI_code, rds_flags->TP, rds_flags->PTY, AB, c, radiotext_buffer.substr(c * 4, 4)); + group.block[0] = make_block(group.block[0], RDS_OFFSET_A); + group.block[1] = make_block(group.block[1], RDS_OFFSET_B); + group.block[2] = make_block(group.block[2], RDS_OFFSET_C); + group.block[3] = make_block(group.block[3], RDS_OFFSET_D); + frame.emplace_back(group); } - - uint32_t * tx_data_u32 = (uint32_t*)shared_memory.bb_data.data; - - // Copy to tx_data for baseband - for (c = 0; c < groups * 4; c++) - tx_data_u32[c] = groups_ptr[c >> 2].block[c & 3]; - - chHeapFree(groups_ptr); - - return groups * 4 * 26; } -uint16_t gen_ClockTime(const RDS_flags * rds_flags, +void gen_ClockTime(std::vector& frame, const RDS_flags * rds_flags, const uint16_t year, const uint8_t month, const uint8_t day, const uint8_t hour, const uint8_t minute, const int8_t local_offset) { - uint8_t c; - RDS_group group = { 0 }; + RDSGroup group; - make_4A_group(&group, rds_flags->PI_code, rds_flags->TP, rds_flags->PTY, year, month, day, hour, minute, local_offset); + group = make_4A_group(rds_flags->PI_code, rds_flags->TP, rds_flags->PTY, year, month, day, hour, minute, local_offset); // Generate checkbits for each block group.block[0] = make_block(group.block[0], RDS_OFFSET_A); @@ -167,13 +156,8 @@ uint16_t gen_ClockTime(const RDS_flags * rds_flags, group.block[2] = make_block(group.block[2], RDS_OFFSET_C); group.block[3] = make_block(group.block[3], RDS_OFFSET_D); - uint32_t * tx_data_u32 = (uint32_t*)shared_memory.bb_data.data; - - // Copy to tx_data for baseband - for (c = 0; c < 4; c++) - tx_data_u32[c] = group.block[c]; - - return 4 * 26; + frame.clear(); + frame.emplace_back(group); } } /* namespace rds */ diff --git a/firmware/application/protocols/rds.hpp b/firmware/application/protocols/rds.hpp index 6b7f5b2f..f7657767 100644 --- a/firmware/application/protocols/rds.hpp +++ b/firmware/application/protocols/rds.hpp @@ -20,8 +20,8 @@ * Boston, MA 02110-1301, USA. */ -#include #include +#include #include "ch.h" #ifndef __RDS_H__ @@ -44,24 +44,24 @@ struct RDS_flags { bool MS; }; -struct RDS_group { +struct RDSGroup { uint32_t block[4]; }; uint32_t make_block(uint32_t blockdata, uint16_t offset); uint8_t b2b(const bool in); -void make_0B_group(RDS_group * group, const uint16_t PI_code, const bool TP, const uint8_t PTY, const bool TA, +RDSGroup make_0B_group(const uint16_t PI_code, const bool TP, const uint8_t PTY, const bool TA, const bool MS, const bool DI, const uint8_t C, const std::string chars); -void make_2A_group(RDS_group * group, const uint16_t PI_code, const bool TP, const uint8_t PTY, const bool AB, +RDSGroup make_2A_group(const uint16_t PI_code, const bool TP, const uint8_t PTY, const bool AB, const uint8_t segment, const std::string chars); -void make_4A_group(RDS_group * group, const uint16_t PI_code, const bool TP, const uint8_t PTY, +RDSGroup make_4A_group(const uint16_t PI_code, const bool TP, const uint8_t PTY, const uint16_t year, const uint8_t month, const uint8_t day, const uint8_t hour, const uint8_t minute, const int8_t local_offset); -uint16_t gen_PSN(const std::string & psname, const RDS_flags * rds_flags); -uint16_t gen_RadioText(const std::string & text, const bool AB, const RDS_flags * rds_flags); -uint16_t gen_ClockTime(const RDS_flags * rds_flags, +void gen_PSN(std::vector& frame, const std::string& psname, const RDS_flags * rds_flags); +void gen_RadioText(std::vector& frame, const std::string& text, const bool AB, const RDS_flags * rds_flags); +void gen_ClockTime(std::vector& frame, const RDS_flags * rds_flags, const uint16_t year, const uint8_t month, const uint8_t day, const uint8_t hour, const uint8_t minute, const int8_t local_offset); diff --git a/firmware/application/ui_adsb_rx.cpp b/firmware/application/ui_adsb_rx.cpp index d7f26c6b..4d5497ad 100644 --- a/firmware/application/ui_adsb_rx.cpp +++ b/firmware/application/ui_adsb_rx.cpp @@ -45,12 +45,16 @@ void RecentEntriesTable::draw( Painter& painter, const Style& style ) { - painter.draw_string(target_rect.location(), style, to_string_hex_array((uint8_t*)entry.raw_data, 10) + " " + entry.time); + painter.draw_string( + target_rect.location(), + style, + to_string_hex(entry.ICAO_address, 6) + " " + entry.callsign + " " + (entry.hits <= 9999 ? to_string_dec_uint(entry.hits, 5) : "9999+") + " " + entry.time + //to_string_hex_array((uint8_t*)entry.raw_data, 10) + " " + entry.time + ); } void ADSBRxView::focus() { - offset_field.focus(); - offset_field.set_value(13179); + field_lna.focus(); } ADSBRxView::~ADSBRxView() { @@ -58,205 +62,50 @@ ADSBRxView::~ADSBRxView() { baseband::shutdown(); } -/*bool ADSBRxView::analyze(uint64_t offset) { - Coord lcd_x = 0, lcd_y = 0; - int8_t re, im; - adsb_frame frame; - int16_t file_data[128]; // 256 bytes / 2 IQ / 16 bits = 64 samples - complex8_t iq_data[256]; // 256 samples - uint64_t file_offset = 0; - uint8_t data_put = 0, data_get = 0; - int16_t f_re, f_im; - uint32_t c; - uint8_t level, bit, byte; - Color mark_color; - size_t preamble_count = 0, null_count = 0, bit_count = 0, sample_count = 0; - bool decoding = false; - float prev_mag = 0, mag; - float threshold, threshold_low, threshold_high; - std::string bits; - std::string hex_str; - bool confidence, first_in_window, last_in_window; - std::pair shifter[ADSB_PREAMBLE_LENGTH]; - - iq_file.seek(offset * 2048); // 256 - - for (;;) { - if (data_put == data_get) { - auto result = iq_file.read(file_data, 256); - if (!result.is_error()) { - // Convert file's C16 to C8 - for (c = 0; c < (result.value() / 4); c++) { - f_re = file_data[(c * 2) + 0] >> 5; // >> 8 (<< 3 amp.) - f_im = file_data[(c * 2) + 1] >> 5; - iq_data[data_put] = { (int8_t)f_re, (int8_t)f_im }; - data_put++; - } - - file_offset += result.value(); - - if (file_offset >= 2048) { - //text_debug_e.set("Read @ " + to_string_dec_uint(offset * 256 / 2000 / 4) + "ms "); - break; - } - } else { - text_debug_a.set("Read error"); - return false; - } - } - - re = iq_data[data_get].real(); - im = iq_data[data_get].imag(); - mag = __builtin_sqrtf((re * re) + (im * im)) * k; - data_get++; - - // Only used for preamble detection and visualisation - level = (mag < 0.3) ? 0 : // Blank weak signals - (mag > prev_mag) ? 1 : 0; - - if (decoding) { - // Decode - mark_color = Color::grey(); - - // 1 bit lasts 2 samples - if (sample_count & 1) { - if ((prev_mag < threshold_low) && (mag < threshold_low)) { - // Both under window, silence. - mark_color = Color::black(); - if (null_count > 3) { - text_debug_b.set("Bits:" + bits.substr(0, 25)); - text_debug_c.set("Hex:" + hex_str.substr(0, 26)); - text_debug_d.set("DF=" + to_string_dec_uint(frame.get_DF()) + " ICAO=" + to_string_hex(frame.get_ICAO_address(), 6)); - if ((frame.get_DF() == 17) && (frame.get_msg_type() >= 1) && (frame.get_msg_type() <= 4)) { - text_debug_a.set("Callsign:" + frame.get_callsign()); - return true; - } else { - text_debug_a.set("No ID data"); - return false; - } - - decoding = false; - } else - null_count++; - - confidence = false; - if (prev_mag > mag) - bit = 1; - else - bit = 0; - - mark_color = bit ? Color::dark_red() : Color::dark_green(); - - } else { - - null_count = 0; - - first_in_window = ((prev_mag >= threshold_low) && (prev_mag <= threshold_high)); - last_in_window = ((mag >= threshold_low) && (mag <= threshold_high)); - - if ((first_in_window && !last_in_window) || (!first_in_window && last_in_window)) { - confidence = true; - if (prev_mag > mag) - bit = 1; - else - bit = 0; - } else { - confidence = false; - if (prev_mag > mag) - bit = 1; - else - bit = 0; - } - - mark_color = bit ? Color::red() : Color::green(); - } - - bits.append(bit ? "1" : "0"); // DEBUG - byte = bit | (byte << 1); - bit_count++; - if (!(bit_count & 7)) { - // Got one byte - hex_str += to_string_hex(byte, 2); // DEBUG - frame.push_byte(byte); - } - } - sample_count++; - } else { - // Look for preamble - mark_color = Color::white(); - - // Shift - for (c = 0; c < (ADSB_PREAMBLE_LENGTH - 1); c++) - shifter[c] = shifter[c + 1]; - shifter[15] = std::make_pair(mag, level); - - // Compare - for (c = 0; c < ADSB_PREAMBLE_LENGTH; c++) { - if (shifter[c].second != adsb_preamble[c]) - break; - } - - if (c == ADSB_PREAMBLE_LENGTH) { - preamble_count++; - if (preamble_count == 1) { - // Try decoding the first frame found - decoding = true; - sample_count = 0; - - // Compute preamble pulses power to set thresholds - threshold = (shifter[0].first + shifter[2].first + shifter[7].first + shifter[9].first) / 4; - threshold_high = threshold * 1.414; // +3dB - threshold_low = threshold * 0.707; // -3dB - } - } - } - - prev_mag = mag; - - if (preamble_count) { - if (lcd_y < 188) { - mag *= 16; - // Background - display.fill_rectangle({lcd_x, 100 + lcd_y, 2, 32 - (int)mag}, decoding ? mark_color : Color::grey()); - // Bar - display.fill_rectangle({lcd_x, 132 + lcd_y - (int)mag, 2, (int)mag}, Color::white()); - // Level - display.fill_rectangle({lcd_x, 132 + lcd_y, 2, 4}, decoding ? ((sample_count & 1) ? Color::white() : Color::light_grey()) : (level ? Color::white() : Color::dark_blue())); - if (lcd_x == 238) { - lcd_x = 0; - lcd_y += 40; - } else { - lcd_x += 2; - } - } - } - } - - return false; -}*/ - void ADSBRxView::on_frame(const ADSBFrameMessage * message) { rtc::RTC datetime; std::string str_timestamp; - auto frame = message->frame; - auto& entry = ::on_packet(recent, frame.get_ICAO_address()); + std::string callsign; - rtcGetTime(&RTCD1, &datetime); - str_timestamp = to_string_dec_uint(datetime.hour(), 2, '0') + ":" + - to_string_dec_uint(datetime.minute(), 2, '0') + ":" + - to_string_dec_uint(datetime.second(), 2, '0'); - entry.set_time(str_timestamp); - entry.set_raw(frame.get_raw_data()); - recent_entries_view.set_dirty(); + auto frame = message->frame; + + uint32_t ICAO_address = frame.get_ICAO_address(); + + + if (frame.check_CRC() && frame.get_ICAO_address()) { + auto& entry = ::on_packet(recent, ICAO_address); + + rtcGetTime(&RTCD1, &datetime); + str_timestamp = to_string_dec_uint(datetime.hour(), 2, '0') + ":" + + to_string_dec_uint(datetime.minute(), 2, '0') + ":" + + to_string_dec_uint(datetime.second(), 2, '0'); + + entry.set_time(str_timestamp); + entry.set_raw(frame.get_raw_data()); + entry.inc_hit(); + + if (frame.get_DF() == DF_ADSB) { + if (frame.get_msg_type() == TC_IDENT) { + callsign = decode_frame_id(frame); + entry.set_callsign(callsign); + } else if (frame.get_msg_type() == TC_AIRBORNE_POS) { + callsign = "Altitude: " + to_string_dec_uint(decode_frame_pos(frame)) + "ft"; + entry.set_pos(callsign); + } + } + + recent_entries_view.set_dirty(); + } } ADSBRxView::ADSBRxView(NavigationView& nav) { baseband::run_image(portapack::spi_flash::image_tag_adsb_rx); add_children({ - //&labels, - &offset_field, - //&button_ffw, + &labels, + &rssi, + &field_lna, + &field_vga, &text_debug_a, &text_debug_b, &text_debug_c, @@ -264,29 +113,16 @@ ADSBRxView::ADSBRxView(NavigationView& nav) { }); recent_entries_view.set_parent_rect({ 0, 64, 240, 224 }); - - // File must be 16bit complex @ 2Msps ! - /*auto result = iq_file.open("ADSB.C16"); - if (result.is_valid()) { - text_debug_a.set("Can't open file"); - }*/ - - /*offset_field.on_change = [this, &nav](int32_t value) { - // TODO - };*/ - - /*button_ffw.on_select = [this, &nav](Button&) { - //nav.push(GeoMapView::Mode::SHOW); - while (!analyze(f_offset)) { - f_offset++; - } - offset_field.set_value(f_offset); - f_offset++; - };*/ + recent_entries_view.on_select = [this](const ADSBRecentEntry& entry) { + text_debug_a.set(entry.geo_pos); + }; baseband::set_adsb(); receiver_model.set_tuning_frequency(1090000000); + receiver_model.set_rf_amp(true); + field_lna.set_value(40); + field_vga.set_value(40); receiver_model.set_modulation(ReceiverModel::Mode::SpectrumAnalysis); receiver_model.set_sampling_rate(2000000); receiver_model.set_baseband_bandwidth(2500000); diff --git a/firmware/application/ui_adsb_rx.hpp b/firmware/application/ui_adsb_rx.hpp index 5aabfb10..516a9999 100644 --- a/firmware/application/ui_adsb_rx.hpp +++ b/firmware/application/ui_adsb_rx.hpp @@ -22,14 +22,11 @@ #include "ui.hpp" #include "file.hpp" -//#include "ui_textentry.hpp" -//#include "ui_widget.hpp" -#include "ui_navigation.hpp" +#include "ui_receiver.hpp" #include "ui_font_fixed_8x16.hpp" #include "recent_entries.hpp" #include "message.hpp" -#include "portapack.hpp" namespace ui { @@ -38,9 +35,12 @@ struct ADSBRecentEntry { static constexpr Key invalid_key = 0xffffffff; - uint32_t ICAO_address; + uint32_t ICAO_address { }; + uint16_t hits { 0 }; uint8_t raw_data[14] { }; // 112 bits at most + std::string callsign { " " }; std::string time { "" }; + std::string geo_pos { "" }; ADSBRecentEntry( ) : ADSBRecentEntry { 0 } @@ -57,6 +57,18 @@ struct ADSBRecentEntry { return ICAO_address; } + void set_callsign(std::string& new_callsign) { + callsign = new_callsign; + } + + void inc_hit() { + hits++; + } + + void set_pos(std::string& new_pos) { + geo_pos = new_pos; + } + void set_time(std::string& new_time) { time = new_time; } @@ -75,34 +87,34 @@ public: void focus() override; - std::string title() const override { return "ADS-B debug"; }; + std::string title() const override { return "ADS-B receive"; }; private: - //static constexpr float k = 1.0f / 128.0f; - - //File iq_file { }; - //size_t f_offset { 0 }; - - //bool analyze(uint64_t offset); void on_frame(const ADSBFrameMessage * message); const RecentEntriesColumns columns { { - { "Raw", 21 }, - { "Time", 8 }, + { "ICAO", 6 }, + { "Callsign", 8 }, + { "Hits", 5 }, + { "Time", 8 } } }; ADSBRecentEntries recent { }; RecentEntriesView> recent_entries_view { columns, recent }; - /*Labels labels { - { { 0 * 8, 0 * 8 }, "Test", Color::light_grey() } - };*/ + RSSI rssi { + { 19 * 8, 4, 10 * 8, 8 }, + }; - NumberField offset_field { - { 0, 0 }, - 6, - { 0, 819200 }, // * 256 -> file offset - 1, - '0' + LNAGainField field_lna { + { 4 * 8, 0 * 16 } + }; + + VGAGainField field_vga { + { 11 * 8, 0 * 16 } + }; + + Labels labels { + { { 0 * 8, 0 * 8 }, "LNA: VGA: RSSI:", Color::light_grey() } }; Text text_debug_a { @@ -118,11 +130,6 @@ private: "-" }; - /*Button button_ffw { - { 184, 0 * 16, 56, 16 }, - "FFW" - };*/ - MessageHandlerRegistration message_handler_frame { Message::ID::ADSBFrame, [this](Message* const p) { diff --git a/firmware/application/ui_adsb_tx.cpp b/firmware/application/ui_adsb_tx.cpp index 53f51b1e..ada4d99c 100644 --- a/firmware/application/ui_adsb_tx.cpp +++ b/firmware/application/ui_adsb_tx.cpp @@ -73,28 +73,10 @@ void Compass::paint(Painter&) { set_value(value_); } -ADSBView::ADSBView() { - add_child(&check_enable); - hidden(true); - - check_enable.on_select = [this](Checkbox&, bool value) { - enabled = value; - }; -} - -void ADSBView::set_enabled(bool value) { - check_enable.set_value(value); -} - -void ADSBView::set_type(std::string type) { - check_enable.set_text("Transmit " + type); -} - -void ADSBView::focus() { - check_enable.focus(); -} - -ADSBPositionView::ADSBPositionView(NavigationView& nav) { +ADSBPositionView::ADSBPositionView( + NavigationView& nav, Rect parent_rect +) : OptionTabView(parent_rect) +{ set_type("position"); add_children({ @@ -133,7 +115,10 @@ void ADSBPositionView::collect_frames(const uint32_t ICAO_address, std::vector(receiver_model.tuning_frequency()); new_view->on_changed = [this](rf::Frequency f) { diff --git a/firmware/application/ui_adsb_tx.hpp b/firmware/application/ui_adsb_tx.hpp index 98011d7f..927d543f 100644 --- a/firmware/application/ui_adsb_tx.hpp +++ b/firmware/application/ui_adsb_tx.hpp @@ -22,14 +22,10 @@ #include "ui.hpp" #include "adsb.hpp" -#include "utility.hpp" #include "ui_textentry.hpp" -#include "ui_widget.hpp" #include "ui_geomap.hpp" #include "ui_tabview.hpp" -#include "ui_navigation.hpp" #include "ui_transmitter.hpp" - #include "message.hpp" #include "transmitter_model.hpp" #include "portapack.hpp" @@ -51,32 +47,9 @@ private: uint32_t value_ { 0 }; }; -class ADSBView : public View { +class ADSBPositionView : public OptionTabView { public: - ADSBView(); - - void focus() override; - - void set_type(std::string type); - void collect_frames(const uint32_t ICAO_address, std::vector& frame_list); - -protected: - bool enabled { false }; - - void set_enabled(bool value); - -private: - Checkbox check_enable { - { 2 * 8, 0 * 16 }, - 20, - "", - false - }; -}; - -class ADSBPositionView : public ADSBView { -public: - ADSBPositionView(NavigationView& nav); + ADSBPositionView(NavigationView& nav, Rect parent_rect); void collect_frames(const uint32_t ICAO_address, std::vector& frame_list); @@ -91,9 +64,9 @@ private: }; }; -class ADSBCallsignView : public ADSBView { +class ADSBCallsignView : public OptionTabView { public: - ADSBCallsignView(NavigationView& nav); + ADSBCallsignView(NavigationView& nav, Rect parent_rect); void collect_frames(const uint32_t ICAO_address, std::vector& frame_list); @@ -110,9 +83,9 @@ private: }; }; -class ADSBSpeedView : public ADSBView { +class ADSBSpeedView : public OptionTabView { public: - ADSBSpeedView(); + ADSBSpeedView(Rect parent_rect); void collect_frames(const uint32_t ICAO_address, std::vector& frame_list); @@ -134,9 +107,9 @@ private: }; }; -class ADSBSquawkView : public ADSBView { +class ADSBSquawkView : public OptionTabView { public: - ADSBSquawkView(); + ADSBSquawkView(Rect parent_rect); void collect_frames(const uint32_t ICAO_address, std::vector& frame_list); @@ -223,10 +196,12 @@ private: void start_tx(); void generate_frames(); - ADSBPositionView view_position { nav_ }; - ADSBCallsignView view_callsign { nav_ }; - ADSBSpeedView view_speed { }; - ADSBSquawkView view_squawk { }; + Rect view_rect = { 0, 7 * 8, 240, 192 }; + + ADSBPositionView view_position { nav_, view_rect }; + ADSBCallsignView view_callsign { nav_, view_rect }; + ADSBSpeedView view_speed { view_rect }; + ADSBSquawkView view_squawk { view_rect }; TabView tab_view { { "Position", Color::cyan(), &view_position }, diff --git a/firmware/application/ui_encoders.cpp b/firmware/application/ui_encoders.cpp index d0b30892..232bcad7 100644 --- a/firmware/application/ui_encoders.cpp +++ b/firmware/application/ui_encoders.cpp @@ -190,8 +190,6 @@ void EncodersView::start_tx(const bool scan) { transmitter_model.set_sampling_rate(2280000U); transmitter_model.set_rf_amp(true); - transmitter_model.set_lna(40); - transmitter_model.set_vga(40); transmitter_model.set_baseband_bandwidth(1750000); transmitter_model.enable(); diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 18d46e32..2b4666d2 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -282,7 +282,7 @@ void NavigationView::focus() { ReceiversMenuView::ReceiversMenuView(NavigationView& nav) { add_items({ - { "ADS-B: Planes", ui::Color::yellow(),&bitmap_icon_adsb, [&nav](){ nav.push(); }, }, + { "ADS-B: Planes", ui::Color::green(),&bitmap_icon_adsb, [&nav](){ nav.push(); }, }, { "AIS: Boats", ui::Color::green(), &bitmap_icon_ais, [&nav](){ nav.push(); } }, { "APRS", ui::Color::grey(), &bitmap_icon_aprs, [&nav](){ nav.push(); } }, { "Audio", ui::Color::green(), &bitmap_icon_speaker, [&nav](){ nav.push(false); } }, @@ -301,7 +301,7 @@ ReceiversMenuView::ReceiversMenuView(NavigationView& nav) { TransmittersMenuView::TransmittersMenuView(NavigationView& nav) { add_items({ - { "ADS-B Mode S", ui::Color::orange(), &bitmap_icon_adsb, [&nav](){ nav.push(); } }, + { "ADS-B Mode S", ui::Color::yellow(), &bitmap_icon_adsb, [&nav](){ nav.push(); } }, { "APRS", ui::Color::grey(), &bitmap_icon_aprs, [&nav](){ nav.push(); } }, { "BHT Xy/EP", ui::Color::green(), &bitmap_icon_bht, [&nav](){ nav.push(); } }, { "Jammer", ui::Color::yellow(), &bitmap_icon_jammer, [&nav](){ nav.push(); } }, diff --git a/firmware/application/ui_rds.cpp b/firmware/application/ui_rds.cpp index 55244d19..fc4a65c3 100644 --- a/firmware/application/ui_rds.cpp +++ b/firmware/application/ui_rds.cpp @@ -33,12 +33,145 @@ using namespace rds; namespace ui { -void RDSView::focus() { - button_editpsn.focus(); +RDSPSNView::RDSPSNView( + NavigationView& nav, + Rect parent_rect +) : OptionTabView(parent_rect) +{ + set_type("PSN"); + + add_children({ + &labels, + &text_psn, + &button_set, + &check_mono_stereo, + &check_TA, + &check_MS + }); + + set_enabled(true); + + check_TA.set_value(true); + + check_mono_stereo.on_select = [this](Checkbox&, bool value) { + mono_stereo = value; + }; + check_TA.on_select = [this](Checkbox&, bool value) { + TA = value; + }; + check_MS.on_select = [this](Checkbox&, bool value) { + MS = value; + }; + + button_set.on_select = [this, &nav](Button&) { + text_prompt( + nav, + &PSN, + 8, + [this](std::string* s) { + text_psn.set(*s); + } + ); + }; } -void RDSView::on_tuning_frequency_changed(rf::Frequency f) { - transmitter_model.set_tuning_frequency(f); +RDSRadioTextView::RDSRadioTextView( + NavigationView& nav, + Rect parent_rect +) : OptionTabView(parent_rect) +{ + set_type("Radiotext"); + + add_children({ + &labels, + &button_set, + &text_radiotext + }); + + button_set.on_select = [this, &nav](Button&){ + text_prompt( + nav, + &radiotext, + 28, + [this](std::string* s) { + text_radiotext.set(*s); + } + ); + }; +} + +RDSDateTimeView::RDSDateTimeView( + Rect parent_rect +) : OptionTabView(parent_rect) +{ + set_type("date & time"); + + add_children({ + &labels + }); +} + +RDSAudioView::RDSAudioView( + Rect parent_rect +) : OptionTabView(parent_rect) +{ + set_type("audio"); + + add_children({ + &labels + }); +} + +RDSThread::RDSThread( + std::vector** frames +) : frames_ { std::move(frames) } +{ + thread = chThdCreateFromHeap(NULL, 1024, NORMALPRIO + 10, RDSThread::static_fn, this); +} + +RDSThread::~RDSThread() { + if( thread ) { + chThdTerminate(thread); + chThdWait(thread); + thread = nullptr; + } +} + +msg_t RDSThread::static_fn(void* arg) { + auto obj = static_cast(arg); + obj->run(); + return 0; +} + +void RDSThread::run() { + std::vector* frame_ptr; + size_t block_count, c; + uint32_t * tx_data_u32 = (uint32_t*)shared_memory.bb_data.data; + uint32_t frame_index = 0; + + while( !chThdShouldTerminate() ) { + + do { + frame_ptr = frames_[frame_index]; + + if (frame_index == 2) { + frame_index = 0; + } else { + frame_index++; + } + } while(!(block_count = frame_ptr->size() * 4)); + + for (c = 0; c < block_count; c++) + tx_data_u32[c] = frame_ptr->at(c >> 2).block[c & 3]; + + baseband::set_rds_data(block_count * 26); + + chThdSleepMilliseconds(1000); + } +} + +void RDSView::focus() { + tab_view.focus(); } RDSView::~RDSView() { @@ -47,80 +180,58 @@ RDSView::~RDSView() { } void RDSView::start_tx() { + rds_flags.PI_code = sym_pi_code.value_hex_u64(); + rds_flags.PTY = options_pty.selected_index_value(); + rds_flags.DI = view_PSN.mono_stereo ? 1 : 0; + rds_flags.TP = check_TP.value(); + rds_flags.TA = view_PSN.TA; + rds_flags.MS = view_PSN.MS; + + if (view_PSN.is_enabled()) + gen_PSN(frame_psn, view_PSN.PSN, &rds_flags); + else + frame_psn.clear(); + + if (view_radiotext.is_enabled()) + gen_RadioText(frame_radiotext, view_radiotext.radiotext, 0, &rds_flags); + else + frame_radiotext.clear(); + + // DEBUG + if (view_datetime.is_enabled()) + gen_ClockTime(frame_datetime, &rds_flags, 2016, 12, 1, 9, 23, 2); + else + frame_datetime.clear(); + transmitter_model.set_sampling_rate(2280000U); transmitter_model.set_rf_amp(true); transmitter_model.set_baseband_bandwidth(1750000); transmitter_model.enable(); - baseband::set_rds_data(message_length); + tx_thread = std::make_unique(frames); } -void RDSView::paint(Painter&) { - text_psn.set(PSN); - text_radiotexta.set(RadioText.substr(0, 16)); - text_radiotextb.set(RadioText.substr(16, 16)); -} - -RDSView::RDSView(NavigationView& nav) { +RDSView::RDSView( + NavigationView& nav +) : nav_ { nav } +{ baseband::run_image(portapack::spi_flash::image_tag_rds); - PSN = "TEST1234"; - RadioText = "Radiotext test ABCD1234"; - add_children({ + &tab_view, &labels, - &options_pty, - &options_countrycode, - &options_coverage, - &options_tx, - &check_mono_stereo, - &check_TA, - &check_TP, - &check_MS, &sym_pi_code, - &button_editpsn, - &text_psn, - &button_editradiotext, - &text_radiotexta, - &text_radiotextb, + &check_TP, + &options_pty, + &view_PSN, + &view_radiotext, + &view_datetime, + &view_audio, + //&options_countrycode, + //&options_coverage, &tx_view, }); - tx_view.on_edit_frequency = [this, &nav]() { - auto new_view = nav.push(receiver_model.tuning_frequency()); - new_view->on_changed = [this](rf::Frequency f) { - receiver_model.set_tuning_frequency(f); - this->on_tuning_frequency_changed(f); - }; - }; - - tx_view.on_start = [this]() { - tx_view.set_transmitting(true); - rds_flags.PI_code = sym_pi_code.value_hex_u64(); - rds_flags.PTY = options_pty.selected_index_value(); - rds_flags.DI = check_mono_stereo.value() ? 1 : 0; - rds_flags.TP = check_TP.value(); - rds_flags.TA = check_TA.value(); - rds_flags.MS = check_MS.value(); - - if (options_tx.selected_index() == 0) - message_length = gen_PSN(PSN, &rds_flags); - else if (options_tx.selected_index() == 1) - message_length = gen_RadioText(RadioText, 0, &rds_flags); - else - message_length = gen_ClockTime(&rds_flags, 2016, 12, 1, 9, 23, 2); - - txing = true; - start_tx(); - }; - - tx_view.on_stop = [this]() { - tx_view.set_transmitting(false); - transmitter_model.disable(); - txing = false; - }; - - check_TA.set_value(true); check_TP.set_value(true); sym_pi_code.set_sym(0, 0xF); @@ -132,15 +243,26 @@ RDSView::RDSView(NavigationView& nav) { }; options_pty.set_selected_index(0); // None - options_countrycode.set_selected_index(18); // Baguette du fromage - options_coverage.set_selected_index(0); // Local + //options_countrycode.set_selected_index(18); // Baguette du fromage + //options_coverage.set_selected_index(0); // Local - button_editpsn.on_select = [this, &nav](Button&) { - text_prompt(nav, &PSN, 8); + tx_view.on_edit_frequency = [this, &nav]() { + auto new_view = nav.push(receiver_model.tuning_frequency()); + new_view->on_changed = [this](rf::Frequency f) { + receiver_model.set_tuning_frequency(f); + }; }; - button_editradiotext.on_select = [this, &nav](Button&){ - text_prompt(nav, &RadioText, 24); + tx_view.on_start = [this]() { + start_tx(); + tx_view.set_transmitting(true); + txing = true; + }; + + tx_view.on_stop = [this]() { + tx_view.set_transmitting(false); + transmitter_model.disable(); + txing = false; }; } diff --git a/firmware/application/ui_rds.hpp b/firmware/application/ui_rds.hpp index 85467bb8..6e6e0797 100644 --- a/firmware/application/ui_rds.hpp +++ b/firmware/application/ui_rds.hpp @@ -21,52 +21,169 @@ */ #include "ui.hpp" -#include "ui_menu.hpp" -#include "ui_navigation.hpp" -#include "ui_font_fixed_8x16.hpp" -#include "ui_receiver.hpp" #include "ui_transmitter.hpp" #include "ui_textentry.hpp" -#include "message.hpp" +#include "ui_tabview.hpp" + #include "rds.hpp" using namespace rds; namespace ui { +class RDSPSNView : public OptionTabView { +public: + RDSPSNView(NavigationView& nav, Rect parent_rect); + + std::string PSN { "TEST1234" }; + bool mono_stereo { false }; + bool TA { false }; + bool MS { false }; + +private: + Labels labels { + { { 1 * 8, 3 * 8 }, "Program Service Name", Color::light_grey() }, + { { 2 * 8, 7 * 8 }, "PSN:", Color::light_grey() } + }; + + Button button_set { + { 18 * 8, 3 * 16, 80, 32 }, + "Set" + }; + Text text_psn { + { 6 * 8, 3 * 16 + 8, 8 * 8, 16 }, + "" + }; + + Checkbox check_mono_stereo { + { 2 * 8, 12 * 8 }, + 6, + "Stereo" + }; + Checkbox check_MS { + { 14 * 8, 12 * 8 }, + 5, + "Music" + }; + Checkbox check_TA { + { 2 * 8, 16 * 8 }, + 20, + "Traffic announcement" + }; +}; + +class RDSRadioTextView : public OptionTabView { +public: + RDSRadioTextView(NavigationView& nav, Rect parent_rect); + + std::string radiotext { "Radiotext test ABCD1234" }; +private: + Labels labels { + { { 2 * 8, 3 * 8 }, "Radiotext", Color::light_grey() }, + { { 1 * 8, 6 * 8 }, "Text:", Color::light_grey() } + }; + + Text text_radiotext { + { 1 * 8, 4 * 16, 28 * 8, 16 }, + "-" + }; + Button button_set { + { 88, 6 * 16, 64, 32 }, + "Set" + }; +}; + +class RDSDateTimeView : public OptionTabView { +public: + RDSDateTimeView(Rect parent_rect); + +private: + Labels labels { + { { 44, 5 * 16 }, "Not yet implemented", Color::red() } + }; +}; + +class RDSAudioView : public OptionTabView { +public: + RDSAudioView(Rect parent_rect); + +private: + Labels labels { + { { 44, 5 * 16 }, "Not yet implemented", Color::red() } + }; +}; + +class RDSThread { +public: + RDSThread(std::vector** frames); + ~RDSThread(); + + RDSThread(const RDSThread&) = delete; + RDSThread(RDSThread&&) = delete; + RDSThread& operator=(const RDSThread&) = delete; + RDSThread& operator=(RDSThread&&) = delete; + +private: + std::vector** frames_ { }; + Thread* thread { nullptr }; + + static msg_t static_fn(void* arg); + + void run(); +}; + class RDSView : public View { public: RDSView(NavigationView& nav); ~RDSView(); + RDSView(const RDSView&) = delete; + RDSView(RDSView&&) = delete; + RDSView& operator=(const RDSView&) = delete; + RDSView& operator=(RDSView&&) = delete; + void focus() override; - void paint(Painter& painter) override; std::string title() const override { return "RDS transmit"; }; private: - std::string PSN { 0 }; - std::string RadioText { 0 }; - bool txing = false; + NavigationView& nav_; RDS_flags rds_flags { }; + std::vector frame_psn { }; + std::vector frame_radiotext { }; + std::vector frame_datetime { }; + std::vector* frames[3] { &frame_psn, &frame_radiotext, &frame_datetime }; + + bool txing = false; + uint16_t message_length { 0 }; void start_tx(); - void on_tuning_frequency_changed(rf::Frequency f); + Rect view_rect = { 0, 8 * 8, 240, 192 }; + + RDSPSNView view_PSN { nav_, view_rect }; + RDSRadioTextView view_radiotext { nav_, view_rect }; + RDSDateTimeView view_datetime { view_rect }; + RDSAudioView view_audio { view_rect }; + + TabView tab_view { + { "Name", Color::cyan(), &view_PSN }, + { "Text", Color::green(), &view_radiotext }, + { "Time", Color::yellow(), &view_datetime }, + { "Audio", Color::orange(), &view_audio } + }; + Labels labels { - { { 1 * 8, 16 + 8 }, "PTY:", Color::light_grey() }, - { { 14 * 8, 16 + 8 }, "CC:", Color::light_grey() }, - { { 1 * 8, 32 + 8 }, "PI:", Color::light_grey() }, - { { 13 * 8, 32 + 8 }, "Cov:", Color::light_grey() }, - { { 2 * 8, 13 * 8 }, "PSN:", Color::light_grey() }, - { { 2 * 8, 8 * 16 }, "RadioText:", Color::light_grey() }, - { { 2 * 8, 14 * 16 }, "TX group:", Color::light_grey() } + { { 0 * 8, 28 }, "Program type:", Color::light_grey() }, + //{ { 14 * 8, 16 + 8 }, "CC:", Color::light_grey() }, + { { 2 * 8, 28 + 16 }, "Program ID:", Color::light_grey() }, + //{ { 13 * 8, 32 + 8 }, "Cov:", Color::light_grey() }, }; OptionsField options_pty { - { 5 * 8, 16 + 8 }, + { 13 * 8, 28 }, 8, { { "None", 0 }, @@ -104,7 +221,7 @@ private: } }; - OptionsField options_countrycode { + /*OptionsField options_countrycode { { 17 * 8, 16 + 8 }, 11, { @@ -171,15 +288,15 @@ private: { "Vatican", 4 }, { "Yugoslavia", 13 } } - }; + };*/ SymField sym_pi_code { - { 4 * 8, 32 + 8 }, + { 13 * 8, 28 + 16 }, 4, SymField::SYMFIELD_HEX }; - OptionsField options_coverage { + /*OptionsField options_coverage { { 17 * 8, 32 + 8 }, 12, { @@ -200,66 +317,21 @@ private: { "R111", 14 }, { "R112", 15 } } - }; + };*/ - Checkbox check_mono_stereo { - { 1 * 8, 4 * 16 }, - 6, - "Stereo" - }; - Checkbox check_TA { - { 12 * 8, 4 * 16 }, - 2, - "TA" - }; Checkbox check_TP { - { 18 * 8, 4 * 16 }, + { 23 * 8, 4 * 8 }, 2, "TP" }; - Checkbox check_MS { - { 24 * 8, 4 * 16 }, - 2, - "MS" - }; - - Button button_editpsn { - { 22 * 8, 5 * 16 + 20, 48, 24 }, - "Set" - }; - Text text_psn { - { 6 * 8, 13 * 8, 4 * 8, 16 }, - "" - }; - - Text text_radiotexta { - { 2 * 8, 9 * 16, 19 * 8, 16 }, - "-" - }; - Text text_radiotextb { - { 2 * 8, 10 * 16, 19 * 8, 16 }, - "-" - }; - Button button_editradiotext { - { 22 * 8, 8 * 16 + 12, 48, 24 }, - "Set" - }; - - OptionsField options_tx { - { 11 * 8, 14 * 16 }, - 11, - { - { "PSN", 0 }, - { "RadioText", 1 }, - { "Date & time", 2 } - } - }; TransmitterView tx_view { 16 * 16, 50000, 9 }; + + std::unique_ptr tx_thread { }; }; } /* namespace ui */ diff --git a/firmware/application/ui_transmitter.cpp b/firmware/application/ui_transmitter.cpp index 3a7a861d..7509ca6a 100644 --- a/firmware/application/ui_transmitter.cpp +++ b/firmware/application/ui_transmitter.cpp @@ -141,7 +141,7 @@ TransmitterView::TransmitterView( on_edit_frequency(); }; field_frequency.on_change = [this](rf::Frequency f) { - transmitter_model.set_tuning_frequency(f); + receiver_model.set_tuning_frequency(f); }; button_start.on_select = [this](Button&){ diff --git a/firmware/baseband/proc_adsbrx.hpp b/firmware/baseband/proc_adsbrx.hpp index 3ab8b89f..e41d0599 100644 --- a/firmware/baseband/proc_adsbrx.hpp +++ b/firmware/baseband/proc_adsbrx.hpp @@ -25,6 +25,7 @@ #include "baseband_processor.hpp" #include "baseband_thread.hpp" +#include "rssi_thread.hpp" #include "adsb_frame.hpp" @@ -44,6 +45,7 @@ private: static constexpr size_t baseband_fs = 2000000; BasebandThread baseband_thread { baseband_fs, this, NORMALPRIO + 20, baseband::Direction::Receive }; + RSSIThread rssi_thread { NORMALPRIO + 10 }; ADSBFrame frame { }; bool configured { false }; diff --git a/firmware/common/adsb.cpp b/firmware/common/adsb.cpp index 388966a8..84343710 100644 --- a/firmware/common/adsb.cpp +++ b/firmware/common/adsb.cpp @@ -70,6 +70,27 @@ void encode_frame_id(ADSBFrame& frame, const uint32_t ICAO_address, const std::s frame.make_CRC(); } +std::string decode_frame_id(ADSBFrame& frame) { + std::string callsign = ""; + uint8_t * raw_data = frame.get_raw_data(); + uint64_t callsign_coded = 0; + uint32_t c; + + // Frame bytes to long + for (c = 5; c < 11; c++) { + callsign_coded <<= 8; + callsign_coded |= raw_data[c]; + } + + // Long to 6-bit characters + for (c = 0; c < 8; c++) { + callsign.append(1, icao_id_lut[(callsign_coded >> 42) & 0x3F]); + callsign_coded <<= 6; + } + + return callsign; +} + /*void generate_frame_emergency(ADSBFrame& frame, const uint32_t ICAO_address, const uint8_t code) { make_frame_mode_s(frame, ICAO_address); @@ -141,26 +162,6 @@ int cpr_N(float lat, int is_odd) { return nl; } -// Decoding method (from dump1090): -// index int j = floor(((59 * latcprE - 60 * latcprO) / 131072) + 0.50) -// latE = DlatE * (cpr_mod(j, 60) + (latcprE / 131072)) -// latO = DlatO * (cpr_mod(j, 59) + (latcprO / 131072)) -// if latE >= 270 -> latE -= 360 -// if latO >= 270 -> latO -= 360 -// if (cpr_NL(latE) != cpr_NL(latO)) return; - -// int ni = cpr_N(latE ,0); -// int m = floor((((loncprE * (cpr_NL(latE) - 1)) - (loncprO * cpr_NL(latE))) / 131072) + 0.5) -// lon = cpr_Dlon(latE, 0) * (cpr_mod(m, ni) + loncprE / 131072); -// lat = latE; -// ... or ... -// int ni = cpr_N(latO ,0); -// int m = floor((((loncprE * (cpr_NL(latO) - 1)) - (loncprO * cpr_NL(latO))) / 131072) + 0.5) -// lon = cpr_Dlon(latO, 0) * (cpr_mod(m, ni) + loncprO / 131072); -// lat = latO; -// ... and ... -// if (lon > 180) lon -= 360; - void encode_frame_pos(ADSBFrame& frame, const uint32_t ICAO_address, const int32_t altitude, const float latitude, const float longitude, const uint32_t time_parity) { @@ -202,6 +203,37 @@ void encode_frame_pos(ADSBFrame& frame, const uint32_t ICAO_address, const int32 frame.make_CRC(); } +// Decoding method (from dump1090): +// index int j = floor(((59 * latcprE - 60 * latcprO) / 131072) + 0.50) +// latE = DlatE * (cpr_mod(j, 60) + (latcprE / 131072)) +// latO = DlatO * (cpr_mod(j, 59) + (latcprO / 131072)) +// if latE >= 270 -> latE -= 360 +// if latO >= 270 -> latO -= 360 +// if (cpr_NL(latE) != cpr_NL(latO)) return; + +// int ni = cpr_N(latE ,0); +// int m = floor((((loncprE * (cpr_NL(latE) - 1)) - (loncprO * cpr_NL(latE))) / 131072) + 0.5) +// lon = cpr_Dlon(latE, 0) * (cpr_mod(m, ni) + loncprE / 131072); +// lat = latE; +// ... or ... +// int ni = cpr_N(latO ,0); +// int m = floor((((loncprE * (cpr_NL(latO) - 1)) - (loncprO * cpr_NL(latO))) / 131072) + 0.5) +// lon = cpr_Dlon(latO, 0) * (cpr_mod(m, ni) + loncprO / 131072); +// lat = latO; +// ... and ... +// if (lon > 180) lon -= 360; + +// Only altitude is decoded for now +uint32_t decode_frame_pos(ADSBFrame& frame) { + uint8_t * raw_data = frame.get_raw_data(); + + // Q-bit is present + if (raw_data[5] & 1) + return ((((raw_data[5] >> 1) << 4) | ((raw_data[6] & 0xF0) >> 4)) * 25) - 1000; + + return 0; +} + // speed is in knots // vertical rate is in ft/min void encode_frame_velo(ADSBFrame& frame, const uint32_t ICAO_address, const uint32_t speed, diff --git a/firmware/common/adsb.hpp b/firmware/common/adsb.hpp index 8e348bd2..8ba94289 100644 --- a/firmware/common/adsb.hpp +++ b/firmware/common/adsb.hpp @@ -68,12 +68,19 @@ const float adsb_lat_lut[58] = { }; void make_frame_adsb(ADSBFrame& frame, const uint32_t ICAO_address); + void encode_frame_id(ADSBFrame& frame, const uint32_t ICAO_address, const std::string& callsign); +std::string decode_frame_id(ADSBFrame& frame); + void encode_frame_pos(ADSBFrame& frame, const uint32_t ICAO_address, const int32_t altitude, const float latitude, const float longitude, const uint32_t time_parity); +uint32_t decode_frame_pos(ADSBFrame& frame); + void encode_frame_velo(ADSBFrame& frame, const uint32_t ICAO_address, const uint32_t speed, const float angle, const int32_t v_rate); + //void encode_frame_emergency(ADSBFrame& frame, const uint32_t ICAO_address, const uint8_t code); + void encode_frame_squawk(ADSBFrame& frame, const uint32_t squawk); } /* namespace adsb */ diff --git a/firmware/common/adsb_frame.hpp b/firmware/common/adsb_frame.hpp index c15204a1..3ed83daf 100644 --- a/firmware/common/adsb_frame.hpp +++ b/firmware/common/adsb_frame.hpp @@ -60,39 +60,41 @@ public: uint8_t * get_raw_data() { return raw_data; } - - std::string get_callsign() { - uint64_t callsign_coded = 0; - uint32_t c; - std::string callsign = ""; - - // Frame bytes to long - for (c = 5; c < 11; c++) { - callsign_coded <<= 8; - callsign_coded |= raw_data[c]; - } - - // Long to 6-bit characters - for (c = 0; c < 8; c++) { - callsign.append(1, icao_id_lut[(callsign_coded >> 42) & 0x3F]); - callsign_coded <<= 6; - } - - return callsign; - } void make_CRC() { - uint8_t adsb_crc[14]; // Temp buffer + uint32_t computed_CRC = compute_CRC(); + + // Insert CRC in frame + raw_data[11] = (computed_CRC >> 16) & 0xFF; + raw_data[12] = (computed_CRC >> 8) & 0xFF; + raw_data[13] = computed_CRC & 0xFF; + } + + bool check_CRC() { + uint32_t computed_CRC = compute_CRC(); + + if (raw_data[11] != ((computed_CRC >> 16) & 0xFF)) return false; + if (raw_data[12] != ((computed_CRC >> 8) & 0xFF)) return false; + if (raw_data[13] != (computed_CRC & 0xFF)) return false; + + return true; + } + +private: + static const uint8_t adsb_preamble[16]; + static const char icao_id_lut[65]; + alignas(4) uint8_t index { 0 }; + alignas(4) uint8_t raw_data[14] { }; // 112 bits at most + + uint32_t compute_CRC() { + uint8_t adsb_crc[14] = { 0 }; // Temp buffer uint8_t b, c, s, bitn; const uint32_t crc_poly = 0x1205FFF; - // Clear CRC - raw_data[11] = 0x00; - raw_data[12] = 0x00; - raw_data[13] = 0x00; + // Copy frame data + memcpy(adsb_crc, raw_data, 11); // Compute CRC - memcpy(adsb_crc, raw_data, 14); for (c = 0; c < 11; c++) { for (b = 0; b < 8; b++) { if ((adsb_crc[c] << b) & 0x80) { @@ -104,15 +106,8 @@ public: } } - // Insert CRC in frame - memcpy(&raw_data[11], &adsb_crc[11], 3); + return (adsb_crc[11] << 16) + (adsb_crc[12] << 8) + adsb_crc[13]; } - -private: - static const uint8_t adsb_preamble[16]; - static const char icao_id_lut[65]; - alignas(4) uint8_t index { 0 }; - alignas(4) uint8_t raw_data[14] { }; // 112 bits at most }; } /* namespace adsb */ diff --git a/firmware/common/ui_widget.cpp b/firmware/common/ui_widget.cpp index 122c0faa..3edc0496 100644 --- a/firmware/common/ui_widget.cpp +++ b/firmware/common/ui_widget.cpp @@ -276,6 +276,35 @@ std::string View::title() const { return ""; }; +/* OptionTabView *********************************************************/ + +OptionTabView::OptionTabView(Rect parent_rect) { + set_parent_rect(parent_rect); + + add_child(&check_enable); + hidden(true); + + check_enable.on_select = [this](Checkbox&, bool value) { + enabled = value; + }; +} + +void OptionTabView::set_enabled(bool value) { + check_enable.set_value(value); +} + +bool OptionTabView::is_enabled() { + return check_enable.value(); +} + +void OptionTabView::set_type(std::string type) { + check_enable.set_text("Transmit " + type); +} + +void OptionTabView::focus() { + check_enable.focus(); +} + /* Rectangle *************************************************************/ Rectangle::Rectangle( diff --git a/firmware/common/ui_widget.hpp b/firmware/common/ui_widget.hpp index 884242a0..3620cfbe 100644 --- a/firmware/common/ui_widget.hpp +++ b/firmware/common/ui_widget.hpp @@ -603,6 +603,29 @@ private: bool show_max_; }; +class OptionTabView : public View { +public: + OptionTabView(Rect parent_rect); + + void focus() override; + + bool is_enabled(); + void set_type(std::string type); + +protected: + bool enabled { false }; + + void set_enabled(bool value); + +private: + Checkbox check_enable { + { 2 * 8, 0 * 16 }, + 20, + "", + false + }; +}; + } /* namespace ui */ #endif/*__UI_WIDGET_H__*/ diff --git a/firmware/portapack-h1-havoc.bin b/firmware/portapack-h1-havoc.bin index 582c037b2c1cdbd91de671698c33e36786be3b91..5adf36d18683bb92313f69ea79d8aebe0c1a2f7e 100644 GIT binary patch delta 131648 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 delta 130711 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

#g8*!%EIS3&qQHw(FmT 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 _V9{h6#H0fbulzNuD= z+GhqkeQ7C)dgKyXa5lhfYZ2#TC~N|MJO}YNh?5aF*l!`Y1c{fiQkHJw&(HhSKc@^n zV|*g1l+FX((g}KXDVY^9S0XNaV=A{;1lgk7M9-%LJ%BO%wf*)n-1Tn+hF0AF4`;qw zvCe*L40kk0D^Ku^UEdJpMqThKZ~3{Nj^oQ;v|Ha+vg#ciWRn9xveyGS#t@*=}M+>|%0%gXGzK4}I9p8$@A> zz~g=eGBnTsc-eToMz1 zXG;w--xVXJi}CFIT~- zTWtL5{We}_*&Z8j5x8%~f1@o1|J!U4`2Phg1Fg6fn9AT&U>~oAL+HCen}rwL2~OFg zSf|c`*K%j=G1x!dSu+_^iXe>36>=Bk3K#(#O+Uj zi&Offu>viqf+hV0I9~^r6$x5Qn`P411l!JlsoIMXq z%Q7clTKIzvats+Js}#)F*mcnAgCwY}TwHxry1F;?9dLEbYi_t2tPWWcT9J*s3x!$M zi&B2Hi}rjEns?KHWWsaPq}=Y1k8|aYlluM4>s)Bof!ySb$uMZY>ioL0VT+)8glQUz zUZ6qlMjJza2<R5z!8noCaVK=M}5LP2S5$R^cTM&PNa1x>YXYj8rZ{P(uJ$jVg zW4msSyGeQyG2U}nA}yOG(vpago+md;Csz7TgrJ|Mqn{qZj-xARy2`B0aBIBPodkx* z5%!=rC%at%l!!LBt?d?N8U%+qe4*iAqJ5F^(PLkER~b1u8YFt@7w?lEQAgPupi+*q zxlZ+G0fGiXGVW1(DZTMN>2}9ed*JfdjvgvQ9fT3BkuO1gU$Dd^dX z2j;(y%q9Z8zE1%D&k60J5Bq3aUBdx(KQ?@;$zu6^PI`DX>6deWU4*z4n}2kMHm_XR z8WkR0GKfRnA7l$$rG8GERJ}x;MhiOO0EP`6{sH98Q0gfC09&l9F8baF*!$0S(TyKK z-wAM`Ej)&IXd92`x~P5)iH~?uvS;MANxZwM5SO{=ur(x4{RYT-i-9g%Lwd&V#BnKr zgnZ?;PL=0xMrSrjwg!b}dTI@sDjx;G)rX{?+-aw8eMlYy+~AcDNoV;iFIBH41C$2< zYe)0el1%w4PWs|nVv619{m5@uzmI)u=XUjhq6dUUAcV=^tR>y`D(^w|rJrcvPsiVM zKO6y5*ILkAN1@B`5#HpYgXSQXU8e^>KtsV*1|oSQD6)^BrMJUDzx@c?X}N=5{D|Dy zd%UZ4VsYL+SitXxc``TW)tNc6`(>8pN!TRhhURKaKxtSFN*RHp9dFRS6;vu$5V46a zs3n~rIKqCqsl34VFha31{RYfBe7X+=>FDQfU<>R^`|?k-(b9XgmxtMhv}xjo{IbPI zVBSs-*8&votP{_0^Y;dH365aQIhjdnrP2oOdsr=SpTo+0FFWY86n7UkT1>(w z>qw0G8cK57(YL$uvW{tP=?oWt^o4bp?ibVV))Aw85CHMkk;Jm;w~1(j#AAOG(Gu~U ze~4&<#G(!&+WGaxc|?@k6N@zkYAjDXy;JklV0(xx7kIisz;Y|j3ljHuwJ;7@h?%J4 zkI^}GB-WS$E5ShV7uUa!E&|T}raICqcplbNuKT{xa*cgQ?R6v}>>Aebq5%`ZqQ*<= zu^p!=pTPL=1$QmxtxHfWz0RKW>}SNONXu>+3BH-EE~az`JMEPB&KWSsG{QK(bb0CF zQd#AGcF3VfQ#6+uWApdJ_f70QT;6c#;~!|eMb6~{pp&q$%q+~JLJ}i#9=T5!ihM* zx~#(T>NjOoN1>gPE}RB&p-b`20Q>=FG=NeRlG8ONewAqd3RjK5RY4>IQ^SK{SQlp^qjpv5@@v!GNT-S!ztmml^}*Jt1e#iD70U{lxYb8>gt7%b>5 ztiT(M-t&t)9RFMKA%eusZVniHgiQm`6!$eiU|nbtrWRsnx#Sp@Q60v{XVCAKVHY_X zuo=Ntg8iS?Iy;^3=}xk8Jjq@d!Qtazq2-@-AsVLwp%P&w0v|zFBR|4Y`Jrzq6k%)r zaeY9=pKLTG^-SM^f23&`RAnUvD7Z zkH4>oa09`C;6>o?Ec+PL0A4u^@f`oF3uX&usn_a_`LYTRz)5KR7bLlh)gi+eZviTp z#ov24d75kc1pQzoz3~Mx2Bz6o7;-V5-=qoau@LA|DAv&1wP=Aid55;9ez&!U^xLgDNfR7Np3`Z|?^Lm(_UG~WF0WQGhJ13R+vvVqR z3z}>Tp1Z6=?<8Wq_Y>(sw06TivZ@U9PI!-mvQB)y2j(n%r}hzyLJ`+BP{TuJad%a2m3Yy==9EzWgQ8 z$4#?yry#tO^T%6VgGXD7%{)Hs$+dL-m!vUyAL|7{<6ahrUazX|Eksnzv6_t63g=jh zEngPygFXb$4R+9vz9Qp;_Q4RGr;pfaPy-pAxep9}p8gc(XdB_zI@vs{Jfl1UK8XK> zr&qI(0%eJyirN0NL6z5-=%fo9NQA5lUE4q&ObBy?L2XFwNGyvh?@gA*~7Ny ztr6>@DxQayb!5eJ)`%so`n@0|BhdOk*yzv=r04MI_NjT9Mzb(lUpyjwb|zfECkr0% z=XuNWkCBaeq+|Llc=nH4_oYWwOt41OL{>zgrRM_CaW9)=qd#nbN^B2UVC-ej*o?yc zus)8e7~?N@0`~npXEJg|TIV2VBnFzVjuR|g%6kxbR_i(BSv%w@rMv>@se9PFE;R;h z0EYG;*AUbkRWTUv6=pfL#zH8Tjt`+DPK&#u`ia64nyI} zx0D`c9QXJ)vjK)}=On|nJuo5nx#Tzu2oQs?#2kaXIsQD0wD@`P_7)GvoL%8B!{ShpZWAAd{NwXR z@Ihd~P71@04?{jY`Oo+6uyVt@Z^OIyk%$PMv*G-=L?@H|NuA#T7TiD+z9)8hX$p%dbV!l)`xTn($NK=D2IrZ!&HVDC3=u`2V#g>C%ibj!Tw zZQcaoG8`qm{4)LPzp(s!m8NVaUBe7^p<0>sQZ#3~>+zvVH$1u-B#CSwUGyW_D|?Mj z-b#!)+gTAv2|1cfmbn*>15{~p_;KUh706y8$xEfcMTtm=?y}*w7!g z64Sk6gV6Pj`k!a0X5KYZ)?dcG>d z)yhxA7`DX8)e<-+nE^IgUiKn={3mk9!0jy2t{J#xJwNrJw?Awn|AaA^7vN<4%U^bI z-Gt5f1irfqi7FukcUP7g1%Cgp>3u(wwWIgCg2d+xr^%wXr_X?Hs87eF!EJ!6gh z71nyVnwzMPHg1Dij>kL*z^u`^p=N!qEJHs;HblM%d(A-jsqm1>M)m-<+62lg4;D1C zjle|b$M+ZPVCP+ptOXcsvW3ZUUiP+EwtPD)#JOj^uYiYqMAZlmvS6}Wcfdzokl4x9 zSjM)XkOIZGv*CEfKV7Og1#U0_!)A!J5fp?PPAWr%Ms~k+OU^ys!9K=W8Q^gn*)T6> zMscY~BfD;EWI(^cjUV-r>Q@Ip3@ttW7_+^N>}!c~5e#W~$VxoW>nN8J7gRai%ldj# zaPttHOuYG&u&Ohe@RT#~lv|vkfV5T%+f<55FEe?!Gm)EzOSdfYE;Mdad07QK9Zw{4LJtSKkcw~L2A=`v#f8GSQyc)GheSfT5kh;ql)Q=v#;gM}5N;Y=q{{=<8 z1q*IR3yIrN)LYnRe?w8X;PU~^V{r@nz)KsqL!$Slci9dSk$i|nbYLZng-~64GyN(y z|JB(1A7XMF9k7FBm)&#Q7F{E5`r8&g5RPMRmvd^wAsx2p9c3iBJ$=Jd8l(8*%Y_dv zy_wCEB%qt~G~g1q|8yZJ;KNVPGzLIz&bxzj4W5jW&FmSe{8-w&iF6`f#387^K3xC2k(d99&KAe?Q;Yc!ZNQ>4m= zfn_~CZ+M1!mwKzbW;5I48X3$k3Pj>NNbV&T&$m6UtEO9jKIRaC_L}NNG)LCeM^E=NA;>@<3C$l-7GE zWg5z>+kDm8A$z^`h$T{WeZ2Q#H{4!ZE^1pd`PH@na~^Ve{a!Q@R|(XB2g6@?fu~P| zxzwL|6`X$FIzLNUuXv~_!aN$PJ^Vrr`692)#D!l=xijdvUC_lnhn1Mu^O9GC|M6JJ zja@iUIXq;g^HpGrU1_Sj1=U`&O&8reP@E3G-RCEyNLcOT%jLCv#h&ZX)P)0Oo$u+B zpwg!iGqAhUh!zi*Ui-urzHTTs#0gQDsOHrR)VYgv>R;#x!G&^InjB$r>7r1~N^2&_ zjguxMXTZf*O-A`M<$>aGhrEuL@Db+H^E*3dTyhez;Lnqap8;e)MB+a8j1md;z5u(YCKhmM`6Uo#@g%=1=}F` zvcN81ZBmPGczt&H2eByu>WMKNW$(uz;az_eEb%pBPhbLI7(fS4BPL@Xsu8k5oyM3p$qntfuY6HsRl>dXT10q^w@rq z5q!6F?Go?-G~y!K)V5w`6CW<@>DnJW{J|x zj1Jzd;vGHOip}1P<%4C%bOpoO1aleyFx0S>>nvTr4A=8=snYcUj-dnE)CKitc!PR* zz=qX>pu{TL2|9Yrksna!l+)^x6uR_^}Pnei^ zXx%}w)H)Do?{yR4eG|a>bpXz9VcA|EaQXf zc_=G?V+%aS5&II3B`T#qU6B0bmwIQKsx zN@)R}{%@WT;OS2Vp8gT`ft?OGL=4F?OoqTI*!F6n7SmyGaJ%?4nTX>w={Pfe0FIN~ zbnYQ?r|fmQ^$^L3oe2{rFCh7OC;1xoU>Zy5rkRGW#cJ_m8g`hB>Xz-k<#l4)O|KIH zs2`05jo{0eLDb?5I`1&)9=8(j#kEhoSbm`kgqkC;u^x&kwa`tQ4iii0ZdfSxs^Aiw zbnqq(H1r6GmcQVjsYgh8SwE}?0phP%<7FnSU`r1JgUkp_6?u)SBHX$;o!iGXLpjDQ zD64*xl!4$R2g*S5n(>9IMNKg1$Nm89O&D3A_1cFtZ+YIz9A58>U%}V-1t&WEIMnCI z^)1XPgOS)#*g%b;cONBL1J2nK@H7)Jbp?nIVaqf$Lyv~$o~_S73;Bh|`U@{+JeH{! z?wIn@luc7!dR$rIVgZ<%Ti922x)BxSuY?ObC}CE}&5FtxVP;`ig>Knlw%wzsRxQ_8 zG(oH3TH$VM_$OZ$HZ$t#4;81)(p&jdoVW|iSiIGFH;p?6NPQ!QQGoatz3&*wNWBPv zS`}P8VuM?;rZ9XVW>-ulUp^6MshhaY3X^xp$r5TcqRvU{kCBKTcVW`de|muRwegqw z8XY=7{L;f^{DQfp9H+XI=!bW;pf>yYMk|yBrqm`uGI5*vRoJ>o)fro2ir(9#KdU~O7j5WYmSIAH{Rp4dM zO1XO>#ymmdm3!Fpb~^0@co5G3&{7Gn;*n1J;R%wMywzrz1t=o+tF2Uuci5EK^)of5 zNa))JiVxdEc7<2&W#t|!o`4c)XXkvNTmkG90RKMRDxZsmTp%!vME~GR!zzTa2%K(C z-v_=H`o=mOe~QrZ*2jTgAWpugCh#qEnRgNXjg$HV&i{zek)t~CpyEkEhRQ6sQS#;Y z0y*zT{4z#pZUj>e=Xt|+b=mL<>|<4xhgkx)bGg#T$+b>{CSo1BM1v!y`uV3`c%19U zefw0h@ZICFi<@AU*jE5V7d~SjIGXmAT;-r*E75np=6u^wj^WtN;X|tcuprjcE+ z-0YzJPLiI%C9X)}N?T!EE{fftvrdv8WoPXW?=u{TQwG{bBVUrp>a{OkO~(#Pfc-8q59?*)eWDdTVv_AL5bmpi@L+(pY%?2gJ8906(iSN_+IG=ja)j+y zb1x}}W8pWkEGO@+tuPL2aerz~?U0k~{M4Vb!_7NR`V}Dcd3xFfi+c&QPVv%G)0Jb5h z)sCCjk>KbF^tCf23uf@k?ezE#5~t2FszivV;MU6&1QZV}6_~@}E2)vhs}>@!hW0v3 zuFAc3YHB07f!UsPc)$!0pP?mfkje#vaL^+;4hw%g;!6$-j35KVbfgmzpK+K9cwB&V zD&k{~Y`BjN5RFKy5$}g5-2idDotOC>E@uP8PvCMkK&*w!*#Pk)SjYs3YwSkUB@^#; ztLqX$<)+ps#by`3dRZ@+$OMQL_G}~;+Aa8h$3B1)?|FRxQw!~#O$ZASni1f%aPS`_ zx#&+9H^d1LUw2F_4hQjk-V?q~i|K1WTk7Js9WUMXLCD_+|YFFn7JhXZYT>1e9Nd>E9$&h4fOKtNy7Lbb)nl^1NP)kIuX>YIB*DJAINQ2>@UTPK z*vkZn8)(=$5R60omvr-AGDE6WkS=lCI_?dN^Z4E{K#Xzv_J&&c@fu(LL>_-8i#xn7 zzDkR|;bAD2^D`%G{3b_j+|_-gbi-#|)ol^d(bKMaP;%NDg-KN=c5=4ApvUQZ!BckM z3-**A~l9Ae4dPt*yiSxS#*=o zE2>F>)e^vaHd=q4m{e+ScJWTSK&S1YI|x6AKI%-3i5+HS5f`9C6YHkKEIV`j1OKQ6XWV! ze6Nichek_7{fJ_?-Y{vP5dad;Nyl6SL>2UIUc5+NmM^wb*F|E`*j;foyV+ScO}s?L zC;cX+8UR|^J=X3hn|N}(2uJpF}z8DJJe-*7VQ=HixXDz7jdU2vInPJIbf*HTF)y3n5)gv@m~ z>z2&QxvM5cg+>f>&|R0w6vI2VJP9*fEef8vx)p@$J?|OAY;^t=I2G)L9zvj)psX|(PA=@cIAX~m_J~_q4GOyA5vz9j>B2{>k)N(9 zY+|WSdh`mEnO=li))is^!Wzft79k<&;-+~b1l==i$us-rJK2A1#WVXLegQsfYi7pO z@}>#4hwO~3+{4m6eTClEIC{FUHID9>9mf?(cq3 z9y-+hZktmPK-6p(TdY-%xdPETqADQ6JIg7k?+%t@dq#JjQ78U$O? zCf+vf^g%nl;G>Axb~FzJ8u~vLckJ^1*W!Nb zezfEU=@$5agEzBMJVmQ-kPKZD*An9braWJ>(&INs??f*Y>Uj5Qf6&r~E<%J5hE3yn z@O3#Ya2ztnzeqn>D}CxO(qsHQEZjQG98WrX6!5qi=}5$royOw08W)@6j9V93YpU7D zW`Z;@A!jp60EJu} zUK=blmAA@~vy!T8#MpJ8I}P@|2cZnbFM7@1SE_8A|LlGbKl?nj+DMPU3s}h`kSwEf zY^3wl`K~$O$f(5@oaVQh26c+0n*4MS-#EjsD{`c*OYg#YfbUB6^p_qf$Ih?H0+^;6 zfWy4PUiJ|Dr`ao8eRqe~T_LUZAbUZ&%3xn+hi2kC?nj5ENH@y$SD)xe1K(IJ<~sPz z+)$oZiw@h<#Yt$jY{wXX=@ftIV1MaxE?)YqRQj~7J2s0GOOil(@_`+6L(ge?xr%Pnrg{F`;4fu&_ zEYIEi&1HA<^m|m{fMtFN?#(~U2XG6V3i!+%^!J|}{RD1(u#bK2i~>_qEjs6l~q0{m}EX5B}nTvGN|7`0obj6BHDi-=P z2{K`7mF6PTllw`Rck|>3^6E{NP8HvRQ*fd18;~1bOI_h^fUofCqdfFS7nu@!4Kxny zVBP(NbEq+`d>U@W*Y8X0G9BV317j|O^Pv{TWat*EE5a){ZVC6qrv@!bSGb8Gx&XY5 zeQ;Q5tWk;Id1COt5fimaY@qwy@I|=Z#S`ySnFom#QeqzM;Q<#4>r}o62nJbBI>iIU z>=R(X-W+2Vw2hMY=KvoQgus zt?3L3e&YYfV%|ZILx<}k5ZXJDe(1K?T%@HLx3#ChnGs*0k<(G{M5c%l(yu}V2#Ese zali0CZjAFw{&@Onu7T1c`FsI##U%bRGUw8s+L#{qxnxEa_%sRV2Pt@m0K5ZyU`ZGB zlB)a3f5CCbFTA=tEv_bPWz|CBaLyY3g+1%gR0ctM)xz$BaFL&Bp_U~k%*z?bE4ff$Xh%wbu8{NpJVOiYuZuiom}gvV`#zI=w46JGqNr#+F4lFzcc4F2F2Ba_n|FG-oZ*nH3g zU6HvTKHIsSh2HvoR%c6hcxm6oUItHWKZB2Ds1jY0EQbm$Fh@gm`4*K(T_HEEft6wn zcFv`ncu(Q2%U`;3Ib3=pPDAjK8L)3?r#o(8l1%fSH$r%Y54>Q*M7fs8l)o^&ot7%J zAK_@LZ9|MwJBFW(ve9Q$+VS#pa3`wLULU)kt+oGeHpPCn%>I94Q|t$nIG=9XSAHLx zVn2JqPGbVJ1IhrB<2^wI8_T}U zPEjSUg;Td%KnN>IHO)Ay6oq$2t!2!eDGN%l$YL)g-Ip;3d=T?_!BJK zR8Z`zEjEIG(Djh90K9o|Tt^?@nfmD7a>$NV;sJ*ouD^S~DaVRvf{n3CyyQx%>s@7l z=}rq+5PZCC^wkYp9U=Bq^I&T#bPy;FFgp&h!n{-NxcMw0Nom-?UpI` zwmY)X^o9Z>TK=jW{DvTC_I3Die@2;*-F{xbpUrX5c%qGz9iv%9J0g0DqZ_E0BM_D< z#TMwwD`9Doj4`-}RuipRHkqPq&QX6|Go zJQJ+pfHi(Z;=OYdXHjo5?t(%+&%M(#)*8O-Lg83zAh_-GrQB5Xz`;^(FVB5G4;8y1 zPo|$}wehmUbca?OeMgo<`-x%Jz^kgW)#6S^NTU|8mRG%e zZdQn00gbE##9Lo1!fn(Ttj!9Z>51|)nK3|VQLwg0*%h<`_b0`-di{im0=4+E<1BQ* z7UCQ74JY4tj>IwFaLVO^phoyNZu?cD6q@n9OHsD`-2K^n#^XL=3z6=)X>6C(DaB!) zt;LlzG(`KIY#7}UqK)o;11q;ubl_hh4us!7&U{gby`2K2HLt=4-_}CGte7}tq7o=8 zp`qF+%~7eS(MfxTY6qJ`VGGfrrT@W!QH!tBicoF$q5D}Gpo6%8u$}X?ABN-|IZylG z%N3rrZ(}^|V@EKCm6boE*HXDoJ38W$!_Ro?>0>+{WQlHCtkat0sV+KSr|lgqINNzn z2N@btr!|&+;oi*-!T~&Aw{}5`%>#D$Ltv?M7CMY_?Qi*W+_vrhRm-;_-U%En--dV} zd&9HLzi9b3#5>sm|Au%UytMEQ@kJo7a~U5%dYo%Z&X)N0-%9cPln#7zh3K>wN*r|f z0duUHY6h)SiH*9dSRq~p-Sijs*6Pvc;Ir+T{KdxUtyHpVzOeb)8j7>qjX@Yeca+ z|4bA&)v~b@Zf>Ym4nwVrER4R?S$kJm(rsI2rMUEOTV|zr*FUz*N-?&>mYLgIDaCJ{ ziMQEXontnD7AeJd07b79-*Wt$y_K%NpP~LGW*;5CQPB0j&o{aTZg9AZZT0M8wH}#S zG3=qi<@#}hnqbIAUyRh|_Ws5VfZ~QB#c$NhDwHVsoJTE0VvisfhkD!h2$ukp<}=)A zgKogGeSwj^gCy~5kX2c+lP&Q66HgMo#l{zNZp{(a3D$98G&@TBUeZd;X*=0lAm?z6 z5MJ>!2>uI&KU>Fw=-&w_Rh|ns@s23%0|OtGQp0WKeK^4%4yB)q>=8$XAZDm5MoL?X zaG)?;#Nw1848pcR0|Y_73ke6e@Dk@1>M>!yFRr}-p5S#hiCUwzv7EtI9IZ_neGrViU97X4 zE12@<%6C0FA{kxedr9S#pJBkgcnDMN>B5IV?5+SaZzpUMGlYn$4<%+^=c))lGq3Za zMo7kKYqT~pHBKt=)xVT@3SYwpyI6=RDi5$?CpE-qBc61_0bK+<1ucJ~Y9g=k&=YV! zHIdgi(z^>zu4LxE{wB|{hA-^2Xbt3p$--$&W#)-CHr;8M#cO@WSt!NNI{B0yS<9`# zRAPWDq%j;*dUtz3Wop4Cwt%jV(MHL?bJK5Qv@vDD;NNhl9HEEM9MxtLf(lgP5odUt zF5~}gThiKbUPgI7U(3)(8-#V+Lqf3BgF9(B+{XqZZxD_yvX^iqB9?)(U2b{wcQy;7PHTP9a(ePk+z=*h=*DX% z?F6*DK^SA%$=*TS2;b3sZ1S(tK6ACR_&UCUZw6c8U0~#-w;YNV>2captqpXCP1R5DK049#ftngyW6KMX6I9u?}`*Uq6?<1J8!cLP>7%Y z%`!kCKJpLC00mU}Hs`hb593po0_unVoU(K_b&Wz?3v(-l_<`qNr>u!~U67#d7B|cFaiit3pAhaJ(~H{{E~nr5hFRmYSD zqU3M1mqFV_3B)kK+ZeQQV*=fQKwZ5Itgu~djl_fCQ_%t2fO{+$=EEfPjU3?uyz4=y z&+pM|xTG$y6JU@r)svnqn#>goK6nzcrOC028yOVyHXF2&{XXHj(~G7^xzmw5h3Cp( zF==CwQ1Fpg?q?3{7tB(v@G>QQ4=jb9Y@vhdj9Pu!X(!|;)laAEVg1Ol7NTHO#q<9I z`ylS>?9fw(AOFD|TlJ7|%ad3m`^{N|=B-E5et;$}N6dk67b4~}#v-&uvmUcWEMgq5 zMhHU~6oXj=G5_&#rL$_rV{X_D5_lKpZD<%^JYQzdU>u9E;CUGXbQNMw!du`e_*vI2 zh%vR=rfKbo{d0|rQy zrqf`vwwtVhW|_5*_PBIYwcPh|5r9>_AZ;IgY3_boA#!a{Fw*Hnjka?j-*xIxtcjj5 zYt19nx54r^oHAjpaL+cv-XAl3Xdi@Z1(b8Quz&S-JgM(<73Mt3{nP)P2!;-*`CO2?UA4pIYvFRIt9DsPX(q=a<1Tr2unTTF zK1qAL>^jb^M|c;Z9N|?2uD7`g@j8TE2;U<7im)HycZ8fQ_>e=8BZMHNAfzKakC2b> zFv47f=?L#2@E>b{nF+Q#!r~|LWb5?BJJ>R>I$qzcnR|JEWM0b?Ps*=ErNY!*p7Rr6 zq*4V#;l#rJV92BkKLL)P9`B}oR~`t&lVokGe2tq{C2LKxQFK$X_WtN8o*{ASioj}8 zV~PKRq)Fmywzg3ZZy}47J_PwwQp+~po?r5HS zZTecc7ZGFKq(*`LdwfkZ>jKMWg}9y8rD%I~9&b}sKdcK{5}FopNH7J}h9T=sdL>1h zZVGVn#C%)Q5+c>{v3-4;*Q*os_(*&uSd~Qwr)q!F|DV>b2d=H^-rsxq(-zOA1TCet z(uCGpv8@RLZD~t^RxH>effjA+A1;srN(l*}|DG;Q_qyk*t59uEwVQ3MR*JecI-BiH zC#kc~x4kLZn}4SJDDh9-oKtXHBM{(yPi{hzO8~pQ%jd^0=iGC?=lA=a|M#AI&V0-q z`A0{v%iuz8$ICpn9e%+7tpZKEj+D>v`i@|2`XM}=jqUyU;1%lF!+h^w>Hh1;%_%#F zI&dm6`&uIt`7J+bUYA8LTt_l^D^)EbH}kvc9gE1!`P+TmG48sA?(6D3vx>RRsR_rp z$9hupIc@6KIND<&K3#ZnkRDw`*7|oiWWu~S+~OC-E`QMW^&+xzDvpAO`kMx6&SIiX z`a9M*3fM#xE9~Km$GbZgla+iaePJ=VI=%}T`&KsnU@=ki>_~ZX<fbR|cVpKrdT9-IAGVay+{DP9PZyiQ+P zLRzee_zsIHd;n|L-QHVJN!ebc+##F{lFt0M4S$LDE(u4ay#)z+U;N3L1)W@bEVsQl z0pY*$C7kB)vfzOc?wYh8$3L^6lW(glj(rY;>4)R!^)|Qn10Vlr3VXUUl+uYOANcha zUaz~ov#|u&?VZUF(C4owTH&mZesVooH2<^ym}9Xt9?#2TvBoRO|H<*;z`}Rc5VO|X z{WMEU)WU21v=SUIwqNL{d+;mqbG$Kgdyiw9=Jx)upLS@;BHaD=e)_JKq%U%NP5lWS zzx`}kM*JW7%!Iuur`7m2`zHf^pIyc+&-jx&aWCt)t5B3`v*-dHQ5U+sH}~`DOEl$$ zY?p!kz8J1>&NMgMd*EyD_b>-?dsm<}WJ3xry`hNhOmX=z+n3^NbRo?4i*Ss9jw~zs z5c?IdkwHvc23nrQV}|J@v}sSG}A2e~N+QUs6p~++qGaLGB zccs4SUEeQ=SJwWIYgb;K2n94!!NgIh9-loW$eOKJHGq8*D>64&v|bmQuw$=%`F1*H)x*c zfdBoQ6Ag4vHp;bXm@ZjLN`$`+(LGDa2?0k#&sl~veAo(f8Br(vX1E7&hhNrY(duR7 ziK|Y8o$esU)-_zITuqG-W;1g>#7+Y+tA6)^<7;Yi{&jT$X@K()Rc>g8Rw%%a!IwI zwa|fF)ZXXml`F{dTb{!311II^5WHi`kr=$l#&9G(RW}V$DSngmIl9X_5)Q@mw)yWY z)FtB1fx&z%r%39U4*zGdgn(8QG_W%`fMOz~~%`tKI< z-5lNs-msEfL(&H?qNE32ac^5m$}az8U~S>rf=`}L!VK7GArIc;}A1RG9RhFfa2C?qLDjxs70%m4H{+LT~jqe3k$?zw~|b{1>0$TQM|^ zT}AA@C%fpv0;0BFIWn(4zGGJ0wCP%G1cx?YB)+quh+qZN@Q9{fJ5QIN+`;^(jIb4S zsqp`Lq^3TtV;0fn%P|Iq(>haeM8TWhPjN?`Gb@4J$?(VeVmPC7{%I}ly)z>D(Q^F$ zJ;OPjTFCfjjQ2Mq^w$Ms%eqZCO(8a&$CqZ<-f4ISR-W;_A7f!yJQUbDREun4AB4g< zgVRg6dFQ;V2DS54Xn zm`?`ep^>=@*a4m>14FW&X@1FyMzzt6(BVRoMs&m4&WzJJh&yM5E?h&>vt|z$cCI|V z4nA=xSnGhHhoGh4pZa7iH~O*Shc|YXGA*$oJN?cYQk}rgpJeZrHyx*+uYq_k(J5=m z+=b7g36!l#YR_i5wuyK&lJSaTtqYKN?ratPUrRB(o13ubVPG)02EfGD;qa(|>;g_bq zB%DdTiNz=hFh zd~=W{Z${hN`w-4BB$c>94{j#=gm*@0@)q)j(ESkoXbWP#mF>*fN)iyWjpp1*J{Q{B zX!>2GNjTF+58Xxbgzh%y@9rXr{G8@Cxo-F?2>!8ikJ#6euX?Mo#a$ICLr_{Oku>32 zG>;NFnADAFRP$)4_Xa7chSuGwG^3iBh4w-Ecr_^%8V2c?)rhqj8=%*aZ3623jv5F6 zexZgG3OFV+qZUKeu54Oai*RM_&Kr1t zL(ZZ`G8JKlXxVmhh4A7K-L{={BrHT@!_9jIV;7p*L{=_{!x(5m$sj=bB=Et>uQ)}qp)<7<{-$=UBdn^iIkVQvY8L9g;_BWasDfRBt{ z!Gk1P-AooG_u%{KuRlvDe#QH~-~a7FdZL+ZncC@hJvB%L6G=}#><=X(RGZ)bfk9`E ziF{8;`aaI#NjStG%|(K*c=rv^|7k&wd+&fV)k5k8YcDDvmauYMTPzkQk&}2D#wR$PMCgzmIX}Yx~JDA*Bt~txX>){%xD!Had6QPfC(#_fb-HLo{?( zbqJlmS4P)>dw>jd>i&?QvBI$hNrIvQsJ4dyRGSfI7sB4A0FWT72AY^34~YZ}EHy?7pvOIjQiDFIuL%RNhXLre zMFO~Czjh^n4XK&N(SWau1c+t=s}1>Y2aT%0>=aO8(lP?+m6r-}RpSU0UMiR{ATl;n z_}h^wprAy$e+x;}cXvo7JNy}n9^3;yTCOCB)jm$Sk|wcNm4y6eZ$-PFQ!b`vB;7$!BNG38N%n|&Y~ZaTmnEKq>k?+U3tE`T0(GlkhM9Kao> zdix$(0tdJUiHzFLj>6~xMU%i5Rws3+lhSt(QCT2$5SJgv2A(@6S0UF9fP!%V>=Obw zh2vxaZ`B=!r9n)Ef*(X0ak3KaKzQY)qsUcI&?N5Tp-j;~9@0qnL)i3qloGwcgxGeF zbVSZp9e6NXHTWH^T=BR1bA{tkkb_sbv=ig=O?JFpt~FG*)&>3j+=T?%j|S9c2~~y? znM`dJ;wmrO3%~#|wOuC^c-CP!quH|4)DnuMgU4e)_Eh zEE%o8(KIeIwlr88j7{7csj;!8p{|LmXf_yXxe8OOwDTUWcum1AnOV6kNnCXCN%Gxk z8_iNv%k~C~nw~yMR$KKDgU6(b*U2#@aBQo*&JI*J z=wHn}>R2q!rjI>IzLRHq2?@U}LwfdLFXgZjYlHF=RSVl$TKNM zJ$(9!fCuwT#b2+&o&S_Gz5|b|t@=Np9)bL213X;i$tt?zwJ0jTgLd*=8BhAvqA_`JlKOymV^9d;q^|IP6Z4dh~YWV(}v?Yk_BanBAgx| z9t7?SOkP&0&{?1ag(FNVk#p0FOh^i$L#I-ZJF@m~yEFpsj4XwXl;7p)zX`9H7!t}scKo!7r-ySeROMMhP_kRdn zA4nF^if-)^a!(fpupMBIQNT;XE;NGinpHR5F6z-luS~Q4f;hc}YJxG?& zPx?ucknf`@KD?N!^3ft6DZP9zw&D+7EYTCbSo*Y&Y`DBjaia$}rVNqAG2BorT{=Xz z$Eb&5olg&u;uveNdVSkEuSXRRpCtwbuwB4t1jO*#e-K&yCul>g{_Z6jpzaw|Ek*z| zv6{geo zh2tP5I#jbDzMW@(9)K^%fGz-sYdo2Nw&&>gV#Lfo8O+)M$~+ z+)ZYK0fE-FHX-fZTyYI#Lfm4rWWv9Iqs1&48o6SN)VP}~F`8?oCT_iC*?}b28=x_! z?duz=cS}|)0z&0D09NY$D zW36!q<4sbH5zK6?0WURJ>J4TlQ43dUH1Cvlb7fMap~ceBWZ=q-eo@PeW=m_G)X0@v zjZhRqmAAIEfK^CM>J2btlaZ@v1o%D74?henOhvQQfQJk_4YdZw8Z3L{bhwJ$EDJWa zHZ?GejjiT;47<5a_m~mfz-?M`^AfHSc~S!tY;LVHwlqq9GZNV8I0V<0I=?DOo(kC2Vqi)=%xhmw@aI9QcO&OzTlzj1IO#7kKszFYmy}7Z5caG!m^GSg>|6H*#+6^t zLLwHXcTHm*gnY3sz9-C`3OAQPPZ4q7D$iFiU9T*M2JtUR4r&m^xyfe|B9rP)phrZp z+^UMfnU)|{R8#|(2pvU52e8}$JmsWGAB&HlF$E2qhK_wWxWY6I5`lt+*OU&#z{tQf zBZQ!tj?bOhJxCr=b{&Z90hy-YF(4vJ;6Z=_{8oq%F%#gOGp394_&X&vFf_6ddWM5U zMltYw*~2hFF8DKILIj5=dZZn^x5(KcEx8B&!Hea7QX)N{BrXxO ziS%NUSe|Q#at=_?5aBX-<{^FDD*z9d!2>z^D(OCzxWlTu25}iNzxiWzn8*%pgjZg! zYhe>mP@YL9L}MoI$>Kx2pjFY7E5vH6W)%bnF)#_B;mZ9pRm-#z-;0A7Ui;*Dk@LxD zZKwyr739f)w#fk_NT%aS4uVvJ!c>I~P(O`) zNbF%%J=lj!ccDsvOaNi+pi+cB`180Q5FxSz(-~KZCrkS*h~6q|p{b9w3g0ksQ);gZ zS!F8TL8z~!@o8e_ih>=`9Aty6O0jJ44>n8s-LhyV@Nm7XuAPv3S3oF42-k}>9d<-e z8Yb8_N2{4CygJf@m_W)Wr%{@s=@Ev)yQ7r3;&+m}aK?P_VwEBPD(9)WVluy~02_|F zK@6SWH&)u9x-Q&jR+T^LUVWU!^m7o_KzW)pHu5I-?^*$-PMXhP8r0iBxA%JVDVUih`%;<*4C0@z^Hz zm~JkQZaen9 z4O+~E-#T^=I3B;j4atxzB?mV*7uE09^130z?&p?!R8#5L+s3H#ptbizPf& z>%@gt`v;KuL!<{NJ1AVQzSky()Ib#Fr3apk5#+Wh@NB;wgLiwRp`v7}<|FhTprFxs zwyR9QXwrocpyto01z$xmnuN&hAU7<^jArtL09^2!*l4Yp;>UTmFOl)U)*-456mBH_ zBoH1CJ#vG1&T1cmp@)$icE{0x!ZD&0&Ir4>5MFtiVzJ!?C}jTp>-tTxoC(|pvg5ZNJpA&^g@Op*2jUr@>nvG{Nx)@nfMUmd z(Ul$RU*VX*CXW)xmQ9~nE^bTIl)??NZ-A&9oGH2Df8J_+y&dz5gQ2d7C8d2RN?t6#jr*ywfJAuK%(#Ajo|y>K($gESbw4e6c0{VF-kWqyxtIJ6JZEr-Md3(D}@ z1HF0JV|<&?gonk82@FgP+S^VO9uaeMlJHw2!JeS@8ktn!QZ)(;$PRxA#4Z-M4TS9> z_aJWNUi@|-j2onk+Xue_;Ml?0#f-*5vEWrF;;g0S#+boNnkTf(~i^37fQ>4BqShVZBR z>Di;=7UAgq&g4f$bL>nt*6%mY!Y~3?&m)lRFtYWLII5wdo__Hou_woFg8WS~%o&7c Q2OY4lE+!@_92YD959*^axc~qF