From 75d426382258512e30440a723b88f583662bbdb2 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Sun, 15 Feb 2026 16:39:58 +0300 Subject: [PATCH] fix endless tx state at receiver info --- applications/main/subghz/helpers/subghz_types.h | 1 + .../main/subghz/scenes/subghz_scene_receiver_info.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/applications/main/subghz/helpers/subghz_types.h b/applications/main/subghz/helpers/subghz_types.h index 6fbdc9e33..790d00557 100644 --- a/applications/main/subghz/helpers/subghz_types.h +++ b/applications/main/subghz/helpers/subghz_types.h @@ -10,6 +10,7 @@ typedef enum { SubGhzNotificationStateTx, SubGhzNotificationStateRx, SubGhzNotificationStateRxDone, + SubGhzNotificationStateTxWait, } SubGhzNotificationState; /** SubGhzTxRx state */ diff --git a/applications/main/subghz/scenes/subghz_scene_receiver_info.c b/applications/main/subghz/scenes/subghz_scene_receiver_info.c index 61502c16a..1d1f827f6 100644 --- a/applications/main/subghz/scenes/subghz_scene_receiver_info.c +++ b/applications/main/subghz/scenes/subghz_scene_receiver_info.c @@ -153,7 +153,7 @@ bool subghz_scene_receiver_info_on_event(void* context, SceneManagerEvent event) // user release OK // we switch off endless_tx - that mean protocols yield finish endless transmission, // send upload "repeat=xx" times, and after will be stoped by the tick event down in this code - subghz->state_notifications = SubGhzNotificationStateIDLE; + subghz->state_notifications = SubGhzNotificationStateTxWait; subghz_block_generic_global.endless_tx = false; return true; @@ -192,7 +192,7 @@ bool subghz_scene_receiver_info_on_event(void* context, SceneManagerEvent event) notification_message(subghz->notifications, &sequence_blink_green_100); subghz->state_notifications = SubGhzNotificationStateRx; break; - case SubGhzNotificationStateIDLE: + case SubGhzNotificationStateTxWait: // we wait until hardware TX finished and after stop TX and start RX, else just blink led if(!subghz_devices_is_async_complete_tx(subghz->txrx->radio_device)) { notification_message(subghz->notifications, &sequence_blink_magenta_10); @@ -202,6 +202,8 @@ bool subghz_scene_receiver_info_on_event(void* context, SceneManagerEvent event) widget_reset(subghz->widget); subghz_scene_receiver_info_draw_widget(subghz); + subghz->state_notifications = SubGhzNotificationStateIDLE; + if(!scene_manager_has_previous_scene(subghz->scene_manager, SubGhzSceneDecodeRAW)) { subghz_txrx_rx_start(subghz->txrx); subghz_txrx_hopper_unpause(subghz->txrx);