Explorar el Código

Master mode remains active

It remains active even if the USB link is suspended or otherwise
temporarilly goes down.
Fred Sundvik hace 10 años
padre
commit
59657355d2
Se han modificado 1 ficheros con 3 adiciones y 1 borrados
  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;