mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
Merge branch 'UNLEASHED' into 420
This commit is contained in:
30
.drone.yml
30
.drone.yml
@@ -98,17 +98,6 @@ steps:
|
||||
from_secret: dep_target_noanim
|
||||
source: flipper-z-f7-update-${DRONE_TAG}n.tgz
|
||||
|
||||
- name: "Trigger update server reindex"
|
||||
image: hfdj/fztools
|
||||
pull: never
|
||||
environment:
|
||||
UPD_KEY:
|
||||
from_secret: git_update_serv_token
|
||||
UPD_URL:
|
||||
from_secret: git_update_server_url
|
||||
commands:
|
||||
- curl -X POST -F 'key='$UPD_KEY'' $UPD_URL
|
||||
|
||||
- name: "Do Github release"
|
||||
image: ddplugins/github-release
|
||||
pull: never
|
||||
@@ -129,6 +118,17 @@ steps:
|
||||
- sha1
|
||||
- crc32
|
||||
|
||||
- name: "Trigger update server reindex"
|
||||
image: hfdj/fztools
|
||||
pull: never
|
||||
environment:
|
||||
UPD_KEY:
|
||||
from_secret: git_update_serv_token
|
||||
UPD_URL:
|
||||
from_secret: git_update_server_url
|
||||
commands:
|
||||
- curl -X POST -F 'key='$UPD_KEY'' $UPD_URL
|
||||
|
||||
- name: "Send files to telegram"
|
||||
image: appleboy/drone-telegram
|
||||
settings:
|
||||
@@ -149,6 +149,9 @@ steps:
|
||||
[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)
|
||||
|
||||
|
||||
[-Download latest extra apps pack-](https://download-directory.github.io/?url=https://github.com/xMasterX/unleashed-extra-pack/tree/main/apps)
|
||||
|
||||
|
||||
[-Version without custom animations - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-${DRONE_TAG}n.tgz&channel=release-cfw&version=${DRONE_TAG}n)
|
||||
|
||||
|
||||
@@ -175,14 +178,15 @@ steps:
|
||||
[-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)
|
||||
|
||||
|
||||
[-Download latest extra apps pack-](https://download-directory.github.io/?url=https://github.com/xMasterX/unleashed-extra-pack/tree/main/apps)
|
||||
|
||||
|
||||
[-Version without custom animations - Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw_no_anim/flipper-z-f7-update-${DRONE_TAG}n.tgz&channel=release-cfw&version=${DRONE_TAG}n)
|
||||
|
||||
|
||||
[-Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/fw/${DRONE_TAG}/flipper-z-f7-update-${DRONE_TAG}.tgz&channel=release-cfw&version=${DRONE_TAG})"
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- release
|
||||
event:
|
||||
- tag
|
||||
|
||||
|
||||
71
CHANGELOG.md
71
CHANGELOG.md
@@ -1,49 +1,30 @@
|
||||
### New changes
|
||||
* API now 99% compatible with official firmware, that means all apps built on OFW can be used on unleashed!
|
||||
* Also extra apps pack was updated, download latest by using link below
|
||||
* Archive: Show loading popup on delete
|
||||
* Docs -> PR: Fix link to "TOTP (Authenticator) config description" (by @pbek | PR #157)
|
||||
* Reorder main menu - Applications now first item, clock moved 2 items up
|
||||
* API: Add `value_index` to API symbols
|
||||
* API: Furi Region Mocks, fix protocol dict funcs was disabled in API
|
||||
* New animation L3_FlipperMustache_128x64 by @Svaarich
|
||||
* Fix FlipperCity animation by @Svaarich
|
||||
* CI/CD: Builds without custom animations now included in releases
|
||||
* SubGHz: Fix magellan display issue
|
||||
* SubGHz: Fix wrong error message in history
|
||||
* SubGHz: Add frequencies 434.075, 434.390
|
||||
* SubGHz: Frequency analyzer: Add counter, GUI fixes, allow Ok button - When signal is present (when frequency window shows black background)
|
||||
* SubGHz: Frequency analyzer: move -+ in freq analyzer, swap up & down button
|
||||
* SubGHz Remote: Cleanup code in unirf, fix issue #153
|
||||
* Plugins: Remove `srand` calls
|
||||
* Plugins: Fix DHT Monitor icon
|
||||
* Plugins: RFID Fuzzer - Fix random crashes and improve stability
|
||||
* Plugins: RFID Fuzzer - allow holding left right to change delay faster (hold TD button to add +10 or -10 to time delay)
|
||||
* Plugins: Morse code cleanup text by pressing back
|
||||
* Plugins: TOTP Update - "BadUSB" type key into pc mode [(by akopachov)](https://github.com/akopachov/flipper-zero_authenticator)
|
||||
* Plugins: Update i2c Tools [(by NaejEL)](https://github.com/NaejEL/flipperzero-i2ctools)
|
||||
* Plugins -> PR: Barcode generator: refactoring, ux improvements, implement EAN-8. (by @msvsergey | PR #154)
|
||||
* Plugins -> PR: Fix HC-SR04 plugin naming (by @krolchonok | PR #161)
|
||||
* Plugins: Added BH1750 - Lightmeter [(by oleksiikutuzov)](https://github.com/oleksiikutuzov/flipperzero-lightmeter)
|
||||
* Plugins: Added iButton Fuzzer [(by xMasterX)](https://github.com/xMasterX/ibutton-fuzzer)
|
||||
* OFW: BadUSB and Archive fixes
|
||||
* OFW: iButton: Fix header "Saved!" message stays on other screens + proper popups reset
|
||||
* OFW: Bug fixes and improvements: Furi, Input, CLI
|
||||
* OFW: SubGhz: properly handle storage loss
|
||||
* OFW: NFC - Force card types in extra actions
|
||||
* OFW: (docs): bad path for furi core
|
||||
* OFW: RPC: increase stack size, fix stack overflow
|
||||
* OFW: fbt: 'target' field for apps; lib debugging support
|
||||
* OFW: NFC: fix crash on MFC read
|
||||
* OFW: Furi: show thread allocation balance for child threads
|
||||
* OFW: Add Acurite 609TXC protocol to weather station
|
||||
* OFW: DAP-Link: show error if usb is locked
|
||||
* OFW: fbt: compile_db fixes
|
||||
* OFW: Infrared: add Kaseikyo IR protocol
|
||||
* OFW: WS: fix show negative temperature
|
||||
* OFW: fbt: fix for launch_app
|
||||
* OFW: Code cleanup: srand, PVS warnings
|
||||
* OFW: fbt: fixes for ufbt pt3
|
||||
* Plugins: SubGHz Bruteforcer -> Add support for Ansonic 12bit protocol (FM238)
|
||||
* Plugins: Fix DTMF Dolphin -> Add forgotten scene and menu item
|
||||
* Plugins: Update DTMF Dolphin [(by litui)](https://github.com/litui/dtmf_dolphin)
|
||||
* Plugins: Update TOTP [(by akopachov)](https://github.com/akopachov/flipper-zero_authenticator)
|
||||
* Plugins: iButton Fuzzer and RFID Fuzzer improvements
|
||||
* Plugins: i2c tools fix name display
|
||||
* Plugins: Add 3 new plugins BlackJack, Solitaire [(by teeebor)](https://github.com/teeebor/flipper_games) and HEX Viewer [(by QtRoS)](https://github.com/QtRoS/flipperzero-firmware)
|
||||
* Plugins -> PR: Wifi marauder BT menus option (by @rf-bandit | PR #164)
|
||||
* Plugins -> PR: Update i2c tools (New UI) (by @NaejEL | PR #171)
|
||||
* Plugins -> PR: Fix htu21d falsely reading temp as humidity (by @GottZ | PR #175)
|
||||
* SubGHz -> PR: GUI Fix - Allow setting RSSI trigger to beggining (by @TQMatvey | PR #180)
|
||||
* SubGHz: Remove not widely used frequency from hopper
|
||||
* SubGHz: Fix starline encoder
|
||||
* SubGHz: Frequency Analyzer -> Save last trigger level
|
||||
* SubGHz: Speedup subghz launch from favourites
|
||||
* SubGHz: Add new freqs and modulation to user config
|
||||
* Infrared: Update universal remote assets (by @Amec0e)
|
||||
* CI/CD: Improvements, dev builds (can be found in this telegram channel -> https://t.me/kotnehleb)
|
||||
* Power -> PR: Show battery percentile while charging (by @TQMatvey | PR #178)
|
||||
* Docs -> PR: Some updates (by @lucemans | PR #169 and #170)
|
||||
* CLI -> PR: Update cli_commands.c To add `src` / `source` command for people exploring cli (by @PharoahCoder | PR #176)
|
||||
* OFW: Fix U2F HID vulnerability
|
||||
* OFW: Core: thread allocation shortcut
|
||||
* OFW: WS: add protocol GT-WT02
|
||||
* OFW: SubGhz: add protocol "Ansonic"
|
||||
* OFW: SubGhz: add protocol Nice_Flo 20bit
|
||||
|
||||
#### [🎲 Download latest extra apps pack](https://download-directory.github.io/?url=https://github.com/xMasterX/unleashed-extra-pack/tree/main/apps)
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
|
||||
#define TAG "SubghzFrequencyAnalyzerWorker"
|
||||
|
||||
#define SUBGHZ_FREQUENCY_ANALYZER_THRESHOLD -97.0f
|
||||
|
||||
static const uint8_t subghz_preset_ook_58khz[][2] = {
|
||||
{CC1101_MDMCFG4, 0b11110111}, // Rx BW filter is 58.035714kHz
|
||||
/* End */
|
||||
@@ -70,7 +72,7 @@ static int32_t subghz_frequency_analyzer_worker_thread(void* context) {
|
||||
.frequency_coarse = 0, .rssi_coarse = 0, .frequency_fine = 0, .rssi_fine = 0};
|
||||
float rssi = 0;
|
||||
uint32_t frequency = 0;
|
||||
float rssi_temp = -127.0f;
|
||||
float rssi_temp = 0;
|
||||
uint32_t frequency_temp = 0;
|
||||
CC1101Status status;
|
||||
|
||||
@@ -195,7 +197,7 @@ static int32_t subghz_frequency_analyzer_worker_thread(void* context) {
|
||||
TAG, "=:%lu:%f", frequency_rssi.frequency_fine, (double)frequency_rssi.rssi_fine);
|
||||
|
||||
instance->sample_hold_counter = 20;
|
||||
rssi_temp = (rssi_temp + frequency_rssi.rssi_fine) / 2;
|
||||
rssi_temp = frequency_rssi.rssi_fine;
|
||||
frequency_temp = frequency_rssi.frequency_fine;
|
||||
|
||||
if(instance->filVal) {
|
||||
@@ -206,7 +208,10 @@ static int32_t subghz_frequency_analyzer_worker_thread(void* context) {
|
||||
// Deliver callback
|
||||
if(instance->pair_callback) {
|
||||
instance->pair_callback(
|
||||
instance->context, frequency_rssi.frequency_fine, rssi_temp, true);
|
||||
instance->context,
|
||||
frequency_rssi.frequency_fine,
|
||||
frequency_rssi.rssi_fine,
|
||||
true);
|
||||
}
|
||||
} else if( // Deliver results coarse
|
||||
(frequency_rssi.rssi_coarse > instance->trigger_level) &&
|
||||
@@ -218,7 +223,7 @@ static int32_t subghz_frequency_analyzer_worker_thread(void* context) {
|
||||
(double)frequency_rssi.rssi_coarse);
|
||||
|
||||
instance->sample_hold_counter = 20;
|
||||
rssi_temp = (rssi_temp + frequency_rssi.rssi_coarse) / 2;
|
||||
rssi_temp = frequency_rssi.rssi_coarse;
|
||||
frequency_temp = frequency_rssi.frequency_coarse;
|
||||
if(instance->filVal) {
|
||||
frequency_rssi.frequency_coarse =
|
||||
@@ -228,12 +233,15 @@ static int32_t subghz_frequency_analyzer_worker_thread(void* context) {
|
||||
// Deliver callback
|
||||
if(instance->pair_callback) {
|
||||
instance->pair_callback(
|
||||
instance->context, frequency_rssi.frequency_coarse, rssi_temp, true);
|
||||
instance->context,
|
||||
frequency_rssi.frequency_coarse,
|
||||
frequency_rssi.rssi_coarse,
|
||||
true);
|
||||
}
|
||||
} else {
|
||||
if(instance->sample_hold_counter > 0) {
|
||||
instance->sample_hold_counter--;
|
||||
if(instance->sample_hold_counter == 15) {
|
||||
if(instance->sample_hold_counter == 18) {
|
||||
if(instance->pair_callback) {
|
||||
instance->pair_callback(
|
||||
instance->context, frequency_temp, rssi_temp, false);
|
||||
@@ -241,8 +249,8 @@ static int32_t subghz_frequency_analyzer_worker_thread(void* context) {
|
||||
}
|
||||
} else {
|
||||
instance->filVal = 0;
|
||||
rssi_temp = -127.0f;
|
||||
instance->pair_callback(instance->context, 0, 0, false);
|
||||
if(instance->pair_callback)
|
||||
instance->pair_callback(instance->context, 0, 0, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -258,8 +266,12 @@ SubGhzFrequencyAnalyzerWorker* subghz_frequency_analyzer_worker_alloc(void* cont
|
||||
furi_assert(context);
|
||||
SubGhzFrequencyAnalyzerWorker* instance = malloc(sizeof(SubGhzFrequencyAnalyzerWorker));
|
||||
|
||||
instance->thread = furi_thread_alloc_ex(
|
||||
"SubGhzFAWorker", 2048, subghz_frequency_analyzer_worker_thread, instance);
|
||||
instance->thread = furi_thread_alloc();
|
||||
furi_thread_set_name(instance->thread, "SubGhzFAWorker");
|
||||
furi_thread_set_stack_size(instance->thread, 2048);
|
||||
furi_thread_set_context(instance->thread, instance);
|
||||
furi_thread_set_callback(instance->thread, subghz_frequency_analyzer_worker_thread);
|
||||
|
||||
SubGhz* subghz = context;
|
||||
instance->setting = subghz->setting;
|
||||
instance->trigger_level = subghz->last_settings->frequency_analyzer_trigger;
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
#include <furi_hal.h>
|
||||
#include "../subghz_i.h"
|
||||
|
||||
#define SUBGHZ_FREQUENCY_ANALYZER_THRESHOLD -97.0f
|
||||
|
||||
typedef struct SubGhzFrequencyAnalyzerWorker SubGhzFrequencyAnalyzerWorker;
|
||||
|
||||
typedef void (*SubGhzFrequencyAnalyzerWorkerPairCallback)(
|
||||
|
||||
@@ -169,7 +169,7 @@ void subghz_frequency_analyzer_draw(Canvas* canvas, SubGhzFrequencyAnalyzerModel
|
||||
// RSSI
|
||||
canvas_draw_str(canvas, 33, 62, "RSSI");
|
||||
subghz_frequency_analyzer_draw_rssi(
|
||||
canvas, model->rssi, model->rssi_last, model->trigger, 57, 58);
|
||||
canvas, model->rssi, model->rssi_last, model->trigger, 56, 57);
|
||||
|
||||
// Last detected frequency
|
||||
subghz_frequency_analyzer_history_frequency_draw(canvas, model);
|
||||
|
||||
@@ -609,7 +609,7 @@ int32_t blackjack_app(void* p) {
|
||||
processing = localstate->processing;
|
||||
}
|
||||
} else {
|
||||
FURI_LOG_D(APP_NAME, "osMessageQueue: event timeout");
|
||||
//FURI_LOG_D(APP_NAME, "osMessageQueue: event timeout");
|
||||
// event timeout
|
||||
}
|
||||
view_port_update(view_port);
|
||||
|
||||
@@ -81,7 +81,7 @@ void draw_score(Canvas* const canvas, bool top, uint8_t amount) {
|
||||
|
||||
void draw_money(Canvas* const canvas, uint32_t score) {
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
char drawChar[10];
|
||||
char drawChar[11];
|
||||
uint32_t currAmount = score;
|
||||
if(currAmount < 1000) {
|
||||
snprintf(drawChar, sizeof(drawChar), "$%lu", currAmount);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
App(
|
||||
appid="hex_viewer",
|
||||
name="Hex Viewer",
|
||||
name="HEX Viewer",
|
||||
apptype=FlipperAppType.EXTERNAL,
|
||||
entry_point="hex_viewer_app",
|
||||
cdefines=["APP_HEX_VIEWER"],
|
||||
|
||||
@@ -6,12 +6,8 @@
|
||||
#include <gui/elements.h>
|
||||
#include <dialogs/dialogs.h>
|
||||
#include <storage/storage.h>
|
||||
|
||||
#include <stream/stream.h>
|
||||
#include <stream/buffered_file_stream.h>
|
||||
|
||||
#include <lib/flipper_format/flipper_format.h>
|
||||
|
||||
#include <toolbox/stream/file_stream.h>
|
||||
|
||||
#define TAG "HexViewer"
|
||||
@@ -54,7 +50,7 @@ static void render_callback(Canvas* canvas, void* ctx) {
|
||||
elements_button_right(canvas, "Info");
|
||||
|
||||
int ROW_HEIGHT = 12;
|
||||
int TOP_OFFSET = 10; // 24
|
||||
int TOP_OFFSET = 10;
|
||||
int LEFT_OFFSET = 3;
|
||||
|
||||
uint32_t line_count = hex_viewer->model->file_size / HEX_VIEWER_BYTES_PER_ROW;
|
||||
@@ -113,7 +109,7 @@ static void input_callback(InputEvent* input_event, void* ctx) {
|
||||
}
|
||||
}
|
||||
|
||||
HexViewer* hex_viewer_alloc() {
|
||||
static HexViewer* hex_viewer_alloc() {
|
||||
HexViewer* instance = malloc(sizeof(HexViewer));
|
||||
|
||||
instance->model = malloc(sizeof(HexViewerModel));
|
||||
@@ -135,7 +131,7 @@ HexViewer* hex_viewer_alloc() {
|
||||
return instance;
|
||||
}
|
||||
|
||||
void hex_viewer_free(HexViewer* instance) {
|
||||
static void hex_viewer_free(HexViewer* instance) {
|
||||
furi_record_close(RECORD_STORAGE);
|
||||
|
||||
gui_remove_view_port(instance->gui, instance->view_port);
|
||||
@@ -152,44 +148,7 @@ void hex_viewer_free(HexViewer* instance) {
|
||||
free(instance);
|
||||
}
|
||||
|
||||
// bool hex_viewer_read_file2(HexViewer* hex_viewer, const char* file_path) {
|
||||
// furi_assert(hex_viewer);
|
||||
// furi_assert(file_path);
|
||||
|
||||
// memset(hex_viewer->model->file_bytes, 0x0, HEX_VIEWER_BUF_SIZE);
|
||||
|
||||
// Storage* storage = furi_record_open(RECORD_STORAGE);
|
||||
// File* file = storage_file_alloc(storage);
|
||||
|
||||
// bool isOk = true;
|
||||
|
||||
// do {
|
||||
// if(!storage_file_open(file, file_path, FSAM_READ, FSOM_OPEN_EXISTING)) {
|
||||
// FURI_LOG_E(TAG, "Unable to open file: %s", file_path);
|
||||
// isOk = false;
|
||||
// break;
|
||||
// };
|
||||
|
||||
// hex_viewer->model->file_size = storage_file_size(file);
|
||||
|
||||
// uint32_t offset = hex_viewer->model->line * HEX_VIEWER_BYTES_PER_ROW;
|
||||
// if(!storage_file_seek(file, offset, true)) {
|
||||
// FURI_LOG_E(TAG, "Unable to seek file: %s", file_path);
|
||||
// isOk = false;
|
||||
// break;
|
||||
// }
|
||||
|
||||
// hex_viewer->model->read_bytes =
|
||||
// storage_file_read(file, hex_viewer->model->file_bytes, HEX_VIEWER_BUF_SIZE);
|
||||
// } while(false);
|
||||
|
||||
// storage_file_free(file);
|
||||
// furi_record_close(RECORD_STORAGE);
|
||||
|
||||
// return isOk;
|
||||
// }
|
||||
|
||||
bool hex_viewer_open_file(HexViewer* hex_viewer, const char* file_path) {
|
||||
static bool hex_viewer_open_file(HexViewer* hex_viewer, const char* file_path) {
|
||||
furi_assert(hex_viewer);
|
||||
furi_assert(file_path);
|
||||
|
||||
@@ -210,9 +169,9 @@ bool hex_viewer_open_file(HexViewer* hex_viewer, const char* file_path) {
|
||||
return isOk;
|
||||
}
|
||||
|
||||
bool hex_viewer_read_file(HexViewer* hex_viewer) {
|
||||
static bool hex_viewer_read_file(HexViewer* hex_viewer) {
|
||||
furi_assert(hex_viewer);
|
||||
// furi_assert(file_path);
|
||||
furi_assert(hex_viewer->model->stream);
|
||||
|
||||
memset(hex_viewer->model->file_bytes, 0x0, HEX_VIEWER_BUF_SIZE);
|
||||
bool isOk = true;
|
||||
|
||||
@@ -540,7 +540,7 @@ int32_t solitaire_app(void* p) {
|
||||
localstate->input = InputKeyMAX;
|
||||
}
|
||||
} else {
|
||||
FURI_LOG_W(APP_NAME, "osMessageQueue: event timeout");
|
||||
//FURI_LOG_W(APP_NAME, "osMessageQueue: event timeout");
|
||||
// event timeout
|
||||
}
|
||||
if(hadChange || game_state->state == GameStateAnimate) view_port_update(view_port);
|
||||
|
||||
@@ -365,8 +365,6 @@ int32_t esp8266_deauth_app(void* p) {
|
||||
|
||||
DEAUTH_APP_LOG_I("Mutex created");
|
||||
|
||||
app->m_rx_stream = furi_stream_buffer_alloc(1 * 1024, 1);
|
||||
|
||||
//app->m_notification = furi_record_open("notification");
|
||||
|
||||
ViewPort* view_port = view_port_alloc();
|
||||
@@ -379,13 +377,7 @@ int32_t esp8266_deauth_app(void* p) {
|
||||
|
||||
//notification_message(app->notification, &sequence_set_only_blue_255);
|
||||
|
||||
// Enable uart listener
|
||||
#if DISABLE_CONSOLE
|
||||
furi_hal_console_disable();
|
||||
#endif
|
||||
furi_hal_uart_set_br(FuriHalUartIdUSART1, FLIPPERZERO_SERIAL_BAUD);
|
||||
furi_hal_uart_set_irq_cb(FuriHalUartIdUSART1, uart_on_irq_cb, app);
|
||||
DEAUTH_APP_LOG_I("UART Listener created");
|
||||
app->m_rx_stream = furi_stream_buffer_alloc(1 * 1024, 1);
|
||||
|
||||
app->m_worker_thread = furi_thread_alloc();
|
||||
furi_thread_set_name(app->m_worker_thread, "WiFiDeauthModuleUARTWorker");
|
||||
@@ -395,6 +387,14 @@ int32_t esp8266_deauth_app(void* p) {
|
||||
furi_thread_start(app->m_worker_thread);
|
||||
DEAUTH_APP_LOG_I("UART thread allocated");
|
||||
|
||||
// Enable uart listener
|
||||
#if DISABLE_CONSOLE
|
||||
furi_hal_console_disable();
|
||||
#endif
|
||||
furi_hal_uart_set_br(FuriHalUartIdUSART1, FLIPPERZERO_SERIAL_BAUD);
|
||||
furi_hal_uart_set_irq_cb(FuriHalUartIdUSART1, uart_on_irq_cb, app);
|
||||
DEAUTH_APP_LOG_I("UART Listener created");
|
||||
|
||||
SPluginEvent event;
|
||||
for(bool processing = true; processing;) {
|
||||
FuriStatus event_status = furi_message_queue_get(event_queue, &event, 100);
|
||||
|
||||
@@ -674,8 +674,6 @@ int32_t wifi_scanner_app(void* p) {
|
||||
|
||||
WIFI_APP_LOG_I("Mutex created");
|
||||
|
||||
app->m_rx_stream = furi_stream_buffer_alloc(1 * 1024, 1);
|
||||
|
||||
app->m_notification = furi_record_open("notification");
|
||||
|
||||
ViewPort* view_port = view_port_alloc();
|
||||
@@ -688,13 +686,7 @@ int32_t wifi_scanner_app(void* p) {
|
||||
|
||||
//notification_message(app->notification, &sequence_set_only_blue_255);
|
||||
|
||||
// Enable uart listener
|
||||
#if DISABLE_CONSOLE
|
||||
furi_hal_console_disable();
|
||||
#endif
|
||||
furi_hal_uart_set_br(FuriHalUartIdUSART1, FLIPPERZERO_SERIAL_BAUD);
|
||||
furi_hal_uart_set_irq_cb(FuriHalUartIdUSART1, uart_on_irq_cb, app);
|
||||
WIFI_APP_LOG_I("UART Listener created");
|
||||
app->m_rx_stream = furi_stream_buffer_alloc(1 * 1024, 1);
|
||||
|
||||
app->m_worker_thread = furi_thread_alloc();
|
||||
furi_thread_set_name(app->m_worker_thread, "WiFiModuleUARTWorker");
|
||||
@@ -704,6 +696,14 @@ int32_t wifi_scanner_app(void* p) {
|
||||
furi_thread_start(app->m_worker_thread);
|
||||
WIFI_APP_LOG_I("UART thread allocated");
|
||||
|
||||
// Enable uart listener
|
||||
#if DISABLE_CONSOLE
|
||||
furi_hal_console_disable();
|
||||
#endif
|
||||
furi_hal_uart_set_br(FuriHalUartIdUSART1, FLIPPERZERO_SERIAL_BAUD);
|
||||
furi_hal_uart_set_irq_cb(FuriHalUartIdUSART1, uart_on_irq_cb, app);
|
||||
WIFI_APP_LOG_I("UART Listener created");
|
||||
|
||||
// Because we assume that module was on before we launched the app. We need to ensure that module will be in initial state on app start
|
||||
send_serial_command(ESerialCommand_Restart);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user