From 1e71a1034684b128b84bccaa8a90374cdc374547 Mon Sep 17 00:00:00 2001 From: furrtek Date: Thu, 7 Jan 2016 14:17:39 +0100 Subject: [PATCH] UI options: backlight auto-off, splash screen toggle --- firmware/application/Makefile | 1 + firmware/application/m4_startup.cpp | 47 +++++++----- firmware/application/main.cpp | 28 ++++++- firmware/application/portapack.cpp | 2 + firmware/application/portapack.hpp | 2 + firmware/application/ui_about.cpp | 71 +++++++++++++++++ firmware/application/ui_about.hpp | 72 ++++++++++++++++++ firmware/application/ui_navigation.cpp | 4 + firmware/application/ui_setup.cpp | 55 ++++++++----- firmware/application/ui_setup.hpp | 68 +++++++++-------- .../common/portapack_persistent_memory.cpp | 31 ++++++++ .../common/portapack_persistent_memory.hpp | 4 + firmware/portapack-h1-firmware.bin | Bin 409480 -> 411240 bytes 13 files changed, 311 insertions(+), 74 deletions(-) create mode 100644 firmware/application/ui_about.cpp create mode 100644 firmware/application/ui_about.hpp diff --git a/firmware/application/Makefile b/firmware/application/Makefile index cb5693f6f..f896b1f72 100755 --- a/firmware/application/Makefile +++ b/firmware/application/Makefile @@ -156,6 +156,7 @@ CPPSRC = main.cpp \ ui_focus.cpp \ ui_navigation.cpp \ ui_menu.cpp \ + ui_about.cpp \ ui_rssi.cpp \ ui_channel.cpp \ ui_audio.cpp \ diff --git a/firmware/application/m4_startup.cpp b/firmware/application/m4_startup.cpp index 0e493f1b7..693454142 100644 --- a/firmware/application/m4_startup.cpp +++ b/firmware/application/m4_startup.cpp @@ -52,7 +52,8 @@ void m4_init(const portapack::spi_flash::region_t from, const portapack::memory: } int m4_load_image(void) { - uint32_t mod_size; + const char magic[6] = {'P', 'P', 'M', ' ', 0x01, 0x00}; + //uint32_t mod_size; UINT bw; uint8_t i; uint16_t cnt; @@ -62,28 +63,36 @@ int m4_load_image(void) { DIR rootdir; FRESULT res; - // Scan SD card root directory for files with the right md5 fingerprint at the right location + // Scan SD card root directory for files with the right MD5 fingerprint at the right location f_opendir(&rootdir, "/"); for (;;) { res = f_readdir(&rootdir, &modinfo); - if (res != FR_OK || modinfo.fname[0] == 0) break; - if (!(modinfo.fattrib & AM_DIR)) { + if (res != FR_OK || modinfo.fname[0] == 0) break; // Reached last file, abort + // Only care about files with .bin extension + if ((!(modinfo.fattrib & AM_DIR)) && (modinfo.fname[9] == 'B') && (modinfo.fname[10] == 'I') && (modinfo.fname[11] == 'N')) { f_open(&modfile, modinfo.fname, FA_OPEN_EXISTING | FA_READ); - f_lseek(&modfile, 26); - f_read(&modfile, &md5sum, 16, &bw); - for (i = 0; i < 16; i++) { - if (md5sum[i] != modhash[i]) break; + // Magic bytes and version check + f_read(&modfile, &md5sum, 6, &bw); + for (i = 0; i < 6; i++) { + if (md5sum[i] != magic[i]) break; } - if (i == 16) { - f_lseek(&modfile, 6); - f_read(&modfile, &mod_size, 4, &bw); - f_lseek(&modfile, 256); - // For some reason, f_read > 512 bytes at once crashes everything... :/ - for (cnt=0;cnt<256;cnt++) - f_read(&modfile, reinterpret_cast(portapack::memory::map::m4_code.base()+(cnt*256)), 256, &bw); - f_close(&modfile); - LPC_RGU->RESET_CTRL[0] = (1 << 13); - return 1; + if (i == 6) { + f_lseek(&modfile, 26); + f_read(&modfile, &md5sum, 16, &bw); + for (i = 0; i < 16; i++) { + if (md5sum[i] != modhash[i]) break; + } + if (i == 16) { + //f_lseek(&modfile, 6); + //f_read(&modfile, &mod_size, 4, &bw); + f_lseek(&modfile, 256); + // For some reason, f_read > 512 bytes at once crashes everything... :/ + for (cnt=0;cnt<256;cnt++) + f_read(&modfile, reinterpret_cast(portapack::memory::map::m4_code.base()+(cnt*256)), 256, &bw); + f_close(&modfile); + LPC_RGU->RESET_CTRL[0] = (1 << 13); + return 1; + } } f_close(&modfile); } @@ -95,7 +104,7 @@ int m4_load_image(void) { void m4_switch(const char * hash) { modhash = const_cast(hash); - // Ask M4 to enter loop in RAM + // Ask M4 to enter wait loop in RAM BasebandConfiguration baseband_switch { .mode = SWITCH, .sampling_rate = 0, diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index ab6d387f6..37e65745c 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -19,11 +19,13 @@ * Boston, MA 02110-1301, USA. */ -//TODO: Enum modulation modes (baseband) +//TODO: Playdead amnesia and login +//TODO: Touch screen calibration +//TODO: Display module info (name, desc) somewhere +//TODO: Show MD5 mismatches for modules not found, etc... //TODO: More gfx, cute icons :) //TODO: check jammer bandwidths //TODO: GSM channel detector -//TODO: wait_for_switch() in baseband-tx ! //TODO: AFSK receiver //TODO: SIGFOX RX/TX //TODO: Reset baseband if module not found (instead of lockup in RAM loop) @@ -32,7 +34,6 @@ //TODO: BUG: Crash after TX stop (unregister message !) //TODO: Check bw setting in LCR TX //TODO: BUG: Crash after PSN entry in RDS TX -//TODO: Dynamically load baseband code depending on mode (disable M4 & interrupts, load, reset) //TODO: Bodet :) //TODO: Whistler //TODO: Setup: Play dead by default ? Enable/disable ? @@ -51,7 +52,10 @@ using namespace lpc43xx; #include "portapack.hpp" +#include "portapack_io.hpp" #include "portapack_shared_memory.hpp" +#include "portapack_persistent_memory.hpp" +using namespace portapack; #include "cpld_update.hpp" @@ -160,7 +164,17 @@ private: } void handle_rtc_tick() { + uint16_t bloff_time; const auto sd_card_present_now = sdc_lld_is_card_inserted(&SDCD1); + + bloff_time = portapack::persistent_memory::ui_config_bloff(); + if (bloff_time) { + if (portapack::bl_tick_counter >= bloff_time) + io.lcd_backlight(0); + else + portapack::bl_tick_counter++; + } + if( sd_card_present_now != sd_card_present ) { sd_card_present = sd_card_present_now; @@ -234,6 +248,10 @@ private: void handle_switches() { const auto switches_state = get_switches_state(); + + io.lcd_backlight(1); + portapack::bl_tick_counter = 0; + for(size_t i=0; i(encoder_now - encoder_last); + + io.lcd_backlight(1); + portapack::bl_tick_counter = 0; + encoder_last = encoder_now; const auto event = static_cast(delta); event_bubble_encoder(event); diff --git a/firmware/application/portapack.cpp b/firmware/application/portapack.cpp index 99d23e449..73c905cf1 100644 --- a/firmware/application/portapack.cpp +++ b/firmware/application/portapack.cpp @@ -70,6 +70,8 @@ TransmitterModel transmitter_model { clock_manager }; +uint8_t bl_tick_counter = 0; + class Power { public: void init() { diff --git a/firmware/application/portapack.hpp b/firmware/application/portapack.hpp index 38593afc1..676b86b26 100644 --- a/firmware/application/portapack.hpp +++ b/firmware/application/portapack.hpp @@ -44,6 +44,8 @@ extern wolfson::wm8731::WM8731 audio_codec; extern ReceiverModel receiver_model; extern TransmitterModel transmitter_model; +extern uint8_t bl_tick_counter; + void init(); void shutdown(); diff --git a/firmware/application/ui_about.cpp b/firmware/application/ui_about.cpp new file mode 100644 index 000000000..9d637c097 --- /dev/null +++ b/firmware/application/ui_about.cpp @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ui_about.hpp" +#include "touch.hpp" + +#include "portapack_persistent_memory.hpp" +#include "lpc43xx_cpp.hpp" + +#include +#include + +using namespace lpc43xx; +using namespace portapack; + +namespace ui { + +/*static AboutView::update() { + uint8_t c; + uint16_t raster_color; + + for (c=0; c<=200; c++) { + raster_color = copper_buffer[c]; + if (raster_color) painter.fill_rectangle({ { 0, (c+32) }, { 240, 1 } }, { (raster_color >> 4) & 0xF0, raster_color & 0xF0, (raster_color << 4) & 0xF0 }); + } + + for (c=0; c<=200; c++) + copper_buffer[c] = 0; + + for (c=0; c<=200; c++) { + copper_buffer[c] = (c | (c << 4)) + phase; + } + + phase++; +}*/ + +AboutView::AboutView(NavigationView& nav) { + add_children({ { + &text_title, + &text_firmware, + &text_cpld_hackrf, + &text_cpld_portapack, + &button_ok, + } }); + + button_ok.on_select = [this,&nav](Button&){ nav.pop(); }; +} + +void AboutView::focus() { + button_ok.focus(); +} + +} /* namespace ui */ diff --git a/firmware/application/ui_about.hpp b/firmware/application/ui_about.hpp new file mode 100644 index 000000000..24927217d --- /dev/null +++ b/firmware/application/ui_about.hpp @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#ifndef __UI_ABOUT_H__ +#define __UI_ABOUT_H__ + +#include "ui_widget.hpp" +#include "ui_menu.hpp" +#include "ui_navigation.hpp" + +#include + +namespace ui { + +class AboutView : public View { +public: + AboutView(NavigationView& nav); + void focus() override; + +private: + /*bool drawn; + uint16_t phase = 0; + uint16_t copper_buffer[256]; + void update(void);*/ + + Text text_title { + { 100, 96, 40, 16 }, + "About", + }; + + Text text_firmware { + { 0, 128, 240, 16 }, + "Git Commit hash " GIT_REVISION, + }; + + Text text_cpld_hackrf { + { 0, 144, 240, 16 }, + "HackRF CPLD CRC 0x????????", + }; + + Text text_cpld_portapack { + { 0, 160, 240, 16 }, + "PortaPack CPLD CRC 0x????????", + }; + + Button button_ok { + { 72, 192, 96, 24 }, + "OK" + }; +}; + +} /* namespace ui */ + +#endif/*__UI_ABOUT_H__*/ diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 35021536c..73b3dccb4 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -28,6 +28,7 @@ #include "splash.hpp" +#include "ui_about.hpp" #include "ui_setup.hpp" #include "ui_debug.hpp" #include "ui_receiver.hpp" @@ -169,7 +170,10 @@ SystemView::SystemView( //else // navigation_view.push(new BMPView { navigation_view }); + if (portapack::persistent_memory::ui_config() & 1) navigation_view.push(new BMPView { navigation_view }); + else + navigation_view.push(new SystemMenuView { navigation_view }); } Context& SystemView::context() const { diff --git a/firmware/application/ui_setup.cpp b/firmware/application/ui_setup.cpp index bddb04f81..91cd1fb36 100644 --- a/firmware/application/ui_setup.cpp +++ b/firmware/application/ui_setup.cpp @@ -147,22 +147,6 @@ SetFrequencyCorrectionModel SetFrequencyCorrectionView::form_collect() { }; } -AboutView::AboutView(NavigationView& nav) { - add_children({ { - &text_title, - &text_firmware, - &text_cpld_hackrf, - &text_cpld_portapack, - &button_ok, - } }); - - button_ok.on_select = [&nav](Button&){ nav.pop(); }; -} - -void AboutView::focus() { - button_ok.focus(); -} - SetTouchCalibView::SetTouchCalibView(NavigationView& nav) { add_children({{ &text_title, @@ -230,12 +214,45 @@ void SetPlayDeadView::focus() { button_enter.focus(); } +SetUIView::SetUIView(NavigationView& nav) { + uint32_t ui_config; + + add_children({{ + &checkbox_showsplash, + &checkbox_bloff, + &options_bloff, + &button_ok + }}); + + ui_config = portapack::persistent_memory::ui_config(); + + if (ui_config & 1) checkbox_showsplash.set_value(true); + if (ui_config & 2) checkbox_bloff.set_value(true); + options_bloff.set_selected_index((ui_config >> 5) & 7); + + button_ok.on_select = [&nav,this](Button&){ + uint32_t ui_config = 0; + if (checkbox_showsplash.value() == true) ui_config |= 1; + if (checkbox_bloff.value() == true) ui_config |= 2; + + ui_config |= (options_bloff.selected_index() << 5); + + portapack::persistent_memory::set_ui_config(ui_config); + nav.pop(); + }; +} + +void SetUIView::focus() { + button_ok.focus(); +} + SetupMenuView::SetupMenuView(NavigationView& nav) { - add_items<4>({ { + add_items<5>({ { { "Date/Time", ui::Color::white(), [&nav](){ nav.push(new SetDateTimeView { nav }); } }, { "Frequency correction", ui::Color::white(), [&nav](){ nav.push(new SetFrequencyCorrectionView { nav }); } }, - { "Touch", ui::Color::white(), [&nav](){ nav.push(new SetTouchCalibView { nav }); } }, - { "Play dead", ui::Color::white(), [&nav](){ nav.push(new SetPlayDeadView { nav }); } }, + { "Touch screen", ui::Color::white(), [&nav](){ nav.push(new SetTouchCalibView { nav }); } }, + { "Play dead", ui::Color::red(), [&nav](){ nav.push(new SetPlayDeadView { nav }); } }, + { "UI", ui::Color::white(), [&nav](){ nav.push(new SetUIView { nav }); } }, } }); on_left = [&nav](){ nav.pop(); }; } diff --git a/firmware/application/ui_setup.hpp b/firmware/application/ui_setup.hpp index 4c4828247..b5647b8cd 100644 --- a/firmware/application/ui_setup.hpp +++ b/firmware/application/ui_setup.hpp @@ -176,44 +176,12 @@ private: SetFrequencyCorrectionModel form_collect(); }; -class AboutView : public View { -public: - AboutView(NavigationView& nav); - - void focus() override; - -private: - Text text_title { - { 100, 96, 40, 16 }, - "About", - }; - - Text text_firmware { - { 0, 128, 240, 16 }, - "Git Commit Hash " GIT_REVISION, - }; - - Text text_cpld_hackrf { - { 0, 144, 240, 16 }, - "HackRF CPLD CRC 0x????????", - }; - - Text text_cpld_portapack { - { 0, 160, 240, 16 }, - "PortaPack CPLD CRC 0x????????", - }; - - Button button_ok { - { 72, 192, 96, 24 }, - "OK" - }; -}; - class SetTouchCalibView : public View { public: SetTouchCalibView(NavigationView& nav); void focus() override; bool on_touch(const TouchEvent event) override; + private: Text text_title { @@ -237,6 +205,40 @@ private: }; }; +class SetUIView : public View { +public: + SetUIView(NavigationView& nav); + void focus() override; + +private: + Checkbox checkbox_showsplash { + { 3 * 8, 2 * 16}, + "Show splash" + }; + + Checkbox checkbox_bloff { + { 3 * 8, 4 * 16}, + "Backlight off after:" + }; + + OptionsField options_bloff { + { 10 * 8, 5 * 16 + 4 }, + 5, + { + { "5 seconds ", 0 }, + { "15 seconds", 1 }, + { "1 minute ", 2 }, + { "5 minutes ", 3 }, + { "10 minutes", 4 } + } + }; + + Button button_ok { + { 4 * 8, 272, 64, 24 }, + "Ok" + }; +}; + class SetPlayDeadView : public View { public: SetPlayDeadView(NavigationView& nav); diff --git a/firmware/common/portapack_persistent_memory.cpp b/firmware/common/portapack_persistent_memory.cpp index 554894c1d..772538fcc 100644 --- a/firmware/common/portapack_persistent_memory.cpp +++ b/firmware/common/portapack_persistent_memory.cpp @@ -84,6 +84,8 @@ struct data_t { // Play dead unlock uint32_t playing_dead; uint32_t playdead_sequence; + + int32_t ui_config; }; static_assert(sizeof(data_t) <= 0x100, "Persistent memory structure too large for VBAT-maintained region"); @@ -168,5 +170,34 @@ void set_playdead_sequence(const uint32_t new_value) { data->playdead_sequence = new_value; } +uint32_t ui_config() { + uint8_t bloff_value; + + // Cap value + bloff_value = (data->ui_config >> 5) & 7; + if (bloff_value > 4) bloff_value = 1; + + data->ui_config = (data->ui_config & 0x1F) | (bloff_value << 5); + + return data->ui_config; +} + +uint16_t ui_config_bloff() { + uint8_t bloff_value; + uint16_t bloff_seconds[5] = { 5, 15, 60, 300, 600 }; + + if (!(data->ui_config & 2)) return 0; + + // Cap value + bloff_value = (data->ui_config >> 5) & 7; + if (bloff_value > 4) bloff_value = 1; + + return bloff_seconds[bloff_value]; +} + +void set_ui_config(const uint32_t new_value) { + data->ui_config = new_value; +} + } /* namespace persistent_memory */ } /* namespace portapack */ diff --git a/firmware/common/portapack_persistent_memory.hpp b/firmware/common/portapack_persistent_memory.hpp index 8b8da9661..294d9ebe4 100644 --- a/firmware/common/portapack_persistent_memory.hpp +++ b/firmware/common/portapack_persistent_memory.hpp @@ -58,6 +58,10 @@ void set_playing_dead(const uint32_t new_value); uint32_t playdead_sequence(); void set_playdead_sequence(const uint32_t new_value); +uint32_t ui_config(); +void set_ui_config(const uint32_t new_value); +uint16_t ui_config_bloff(); + } /* namespace persistent_memory */ } /* namespace portapack */ diff --git a/firmware/portapack-h1-firmware.bin b/firmware/portapack-h1-firmware.bin index 69c06fdf2ed951371a6cf8d63d5171a5016308e3..0b14b8070390ae0121b66714f13aba7f8b8b69e5 100644 GIT binary patch delta 41078 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