@@ -508,7 +508,7 @@ const Connection: React.FC<ConnectionProps> = ({
508508
509509 let baudRate ;
510510 let serialTimeout ;
511-
511+ let initialSelectedChannels
512512 // If no saved port is found, request a new port and save it
513513 if ( ! port ) {
514514 port = await navigator . serial . requestPort ( ) ;
@@ -545,6 +545,16 @@ const Connection: React.FC<ConnectionProps> = ({
545545 saved . usbVendorId === ( info . usbVendorId ?? 0 ) &&
546546 saved . usbProductId === ( info . usbProductId ?? 0 )
547547 ) ;
548+ const deviceIndex = savedPorts . findIndex (
549+ ( saved : SavedDevice ) =>
550+ saved . usbVendorId === ( info . usbVendorId ?? 0 ) &&
551+ saved . usbProductId === ( info . usbProductId ?? 0 )
552+ ) ;
553+
554+ if ( deviceIndex !== - 1 ) {
555+ const savedChannels = savedPorts [ deviceIndex ] . selectedChannels ;
556+ initialSelectedChannels = savedChannels . length > 0 ? savedChannels : [ 1 ] ; // Load saved channels or default to [1]
557+ }
548558
549559 baudRate = savedDevice ?. baudRate || 230400 ; // Default to 230400 if no saved baud rate
550560 serialTimeout = savedDevice ?. serialTimeout || 2000 ; // Default timeout if not saved
@@ -568,7 +578,6 @@ const Connection: React.FC<ConnectionProps> = ({
568578 // Query the device for its name
569579 const whoAreYouMessage = new TextEncoder ( ) . encode ( "WHORU\n" ) ;
570580 setTimeout ( ( ) => writer . write ( whoAreYouMessage ) , serialTimeout ) ;
571-
572581 let buffer = "" ;
573582 while ( true ) {
574583 const { value, done } = await reader . read ( ) ;
@@ -596,7 +605,8 @@ const Connection: React.FC<ConnectionProps> = ({
596605 baudRate : extractedBaudRate ,
597606 serialTimeout : extractedSerialTimeout ,
598607 } = formatPortInfo ( currentPortInfo , extractedName , usbProductId ) ;
599-
608+ const allSelected = initialSelectedChannels . length === channelCount ;
609+ setIsAllEnabledSelected ( allSelected ) ;
600610 // Update baudRate and serialTimeout with extracted values
601611 baudRate = extractedBaudRate ?? baudRate ;
602612 serialTimeout = extractedSerialTimeout ?? serialTimeout ;
0 commit comments