Sfoglia il codice sorgente

Master mode remains active

It remains active even if the USB link is suspended or otherwise
temporarilly goes down.
Fred Sundvik 10 anni fa
parent
commit
59657355d2
1 ha cambiato i file con 3 aggiunte e 1 eliminazioni
  1. 3 1
      serial_link/system/system.c

+ 3 - 1
serial_link/system/system.c

@@ -88,11 +88,13 @@ static THD_FUNCTION(serialThread, arg) {
         EVENT_MASK(2),
         CHN_INPUT_AVAILABLE);
     bool need_wait = false;
+    bool is_master = false;
     while(true) {
         if (need_wait) {
             chEvtWaitAnyTimeout(ALL_EVENTS, MS2ST(1000));
         }
-        bool is_master = usbGetDriverStateI(&USBD1) == USB_ACTIVE;
+        // Always stay as master, even if the USB goes into sleep mode
+        is_master |= usbGetDriverStateI(&USBD1) == USB_ACTIVE;
         router_set_master(is_master);
 
         need_wait = true;