Просмотр исходного кода

Updates for interrupted transmission

David Lee 2 лет назад
Родитель
Сommit
6be3d602ae
3 измененных файлов с 22 добавлено и 8 удалено
  1. 10 0
      scenes/meal_pager_scene_menu.c
  2. 9 6
      scenes/meal_pager_scene_transmit.c
  3. 3 2
      views/meal_pager_transmit.c

+ 10 - 0
scenes/meal_pager_scene_menu.c

@@ -44,7 +44,17 @@ bool meal_pager_scene_menu_on_event(void* context, SceneManagerEvent event) {
                 app->scene_manager, Meal_PagerSceneMenu, SubmenuIndexSettings);
                 app->scene_manager, Meal_PagerSceneMenu, SubmenuIndexSettings);
             scene_manager_next_scene(app->scene_manager, Meal_PagerSceneSettings);
             scene_manager_next_scene(app->scene_manager, Meal_PagerSceneSettings);
             return true;
             return true;
+        } else if (event.event == Meal_PagerCustomEventViewTransmitterSendStop) {
+            app->state_notifications = SubGhzNotificationStateIDLE;
+            subghz_txrx_stop(app->subghz->txrx);
+            FURI_LOG_D(TAG, "Stop Event from Menu");
+            return true;
+        }
+    } else if(event.type == SceneManagerEventTypeTick) {
+        if(app->state_notifications == SubGhzNotificationStateTx) {
+            notification_message(app->notification, &sequence_blink_magenta_10);
         }
         }
+        return true;
     }
     }
     return false;
     return false;
 }
 }

+ 9 - 6
scenes/meal_pager_scene_transmit.c

@@ -33,8 +33,9 @@ void meal_pager_scene_transmit_on_enter(void* context) {
     FURI_LOG_D(TAG, "Generated tmp.sub");
     FURI_LOG_D(TAG, "Generated tmp.sub");
     //meal_pager_blink_start_subghz(app);
     //meal_pager_blink_start_subghz(app);
     FURI_LOG_D(TAG, "Start Transmitting");
     FURI_LOG_D(TAG, "Start Transmitting");
-    subghz_send(app);
-    
+    if (!app->stop_transmit) {
+        subghz_send(app);
+    }
     dolphin_deed(DolphinDeedSubGhzSend);
     dolphin_deed(DolphinDeedSubGhzSend);
     //FURI_LOG_D(TAG, "Finished Transmitting");
     //FURI_LOG_D(TAG, "Finished Transmitting");
     //meal_pager_blink_stop(app);
     //meal_pager_blink_stop(app);
@@ -54,10 +55,9 @@ bool meal_pager_scene_transmit_on_event(void* context, SceneManagerEvent event)
             case Meal_PagerCustomEventTransmitDown:
             case Meal_PagerCustomEventTransmitDown:
                 break;
                 break;
             case Meal_PagerCustomEventTransmitBack:
             case Meal_PagerCustomEventTransmitBack:
-                notification_message(app->notification, &sequence_reset_red);
-                notification_message(app->notification, &sequence_reset_green);
-                notification_message(app->notification, &sequence_reset_blue);
                 app->stop_transmit = true;
                 app->stop_transmit = true;
+                app->state_notifications = SubGhzNotificationStateIDLE;
+                meal_pager_blink_stop(app);
                 if(!scene_manager_search_and_switch_to_previous_scene(
                 if(!scene_manager_search_and_switch_to_previous_scene(
                     app->scene_manager, Meal_PagerSceneMenu)) {
                     app->scene_manager, Meal_PagerSceneMenu)) {
                         scene_manager_stop(app->scene_manager);
                         scene_manager_stop(app->scene_manager);
@@ -75,7 +75,10 @@ bool meal_pager_scene_transmit_on_event(void* context, SceneManagerEvent event)
         }
         }
     } else if(event.type == SceneManagerEventTypeTick) {
     } else if(event.type == SceneManagerEventTypeTick) {
         if(app->state_notifications == SubGhzNotificationStateTx) {
         if(app->state_notifications == SubGhzNotificationStateTx) {
-            notification_message(app->notification, &sequence_blink_magenta_10);
+            app->state_notifications = SubGhzNotificationStateIDLE;
+            subghz_txrx_stop(app->subghz->txrx);
+            meal_pager_blink_stop(app);
+            //notification_message(app->notification, &sequence_blink_magenta_10);
         }
         }
         return true;
         return true;
     }
     }

+ 3 - 2
views/meal_pager_transmit.c

@@ -48,8 +48,9 @@ void meal_pager_transmit_draw(Canvas* canvas, Meal_PagerTransmitModel* model) {
     snprintf(pagerText, 20, "Pager: %lu", model->pager);
     snprintf(pagerText, 20, "Pager: %lu", model->pager);
     canvas_draw_str_aligned(canvas, 0, 10, AlignLeft, AlignTop, pager_type_text_long[model->pager_type]); 
     canvas_draw_str_aligned(canvas, 0, 10, AlignLeft, AlignTop, pager_type_text_long[model->pager_type]); 
     canvas_set_font(canvas, FontSecondary);
     canvas_set_font(canvas, FontSecondary);
-    canvas_draw_str_aligned(canvas, 0, 22, AlignLeft, AlignTop, stationText); 
-    canvas_draw_str_aligned(canvas, 0, 32, AlignLeft, AlignTop, pagerText); 
+    canvas_draw_str_aligned(canvas, 0, 22, AlignLeft, AlignTop, "Generating Data");
+    canvas_draw_str_aligned(canvas, 0, 32, AlignLeft, AlignTop, stationText); 
+    canvas_draw_str_aligned(canvas, 0, 42, AlignLeft, AlignTop, pagerText); 
 }
 }
 
 
 static void meal_pager_transmit_model_init(Meal_PagerTransmitModel* const model) {
 static void meal_pager_transmit_model_init(Meal_PagerTransmitModel* const model) {