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

FLOW_TEST and make hci stop idempodent

Eric Betts 10 месяцев назад
Родитель
Сommit
55a70884e8
3 измененных файлов с 8 добавлено и 4 удалено
  1. 1 2
      scenes/seos_scene_start.c
  2. 1 0
      seos_common.h
  3. 6 2
      seos_hci.c

+ 1 - 2
scenes/seos_scene_start.c

@@ -61,8 +61,7 @@ void seos_scene_start_on_enter(void* context) {
     if(seos->has_ble == false) {
         ble_checks = 3;
         seos_hci = seos_hci_alloc(seos);
-        // mode/flow doesn't really matter, but these at least don't cause traffic
-        seos_hci_start(seos_hci, BLE_PERIPHERAL, FLOW_READER);
+        seos_hci_start(seos_hci, BLE_PERIPHERAL, FLOW_TEST);
     }
 
     seos_scene_start_on_update(context);

+ 1 - 0
seos_common.h

@@ -34,6 +34,7 @@ typedef enum {
 } BleMode;
 
 typedef enum {
+    FLOW_TEST,
     FLOW_READER,
     FLOW_CRED,
     FLOW_READER_SCANNER,

+ 6 - 2
seos_hci.c

@@ -124,9 +124,13 @@ void seos_hci_stop(SeosHci* seos_hci) {
     seos_hci->connection_handle = 0;
     seos_hci_h5_stop(seos_hci->seos_hci_h5);
     if(seos_hci->mode == BLE_PERIPHERAL) {
-        seos_hci_enable_advertising(seos_hci, false);
+        if(seos_hci->adv_status) {
+            seos_hci_enable_advertising(seos_hci, false);
+        }
     } else if(seos_hci->mode == BLE_CENTRAL) {
-        seos_hci_set_scan(seos_hci, false);
+        if(seos_hci->scan_status) {
+            seos_hci_set_scan(seos_hci, false);
+        }
     }
 }