@@ -11,7 +11,6 @@ import MSPCodes from "./msp/MSPCodes";
1111import PortUsage from "./port_usage" ;
1212import PortHandler from "./port_handler" ;
1313import CONFIGURATOR , { API_VERSION_1_45 , API_VERSION_1_46 } from "./data_storage" ;
14- import serial from "./serial" ;
1514import UI_PHONES from "./phones_ui" ;
1615import { bit_check } from './bit.js' ;
1716import { sensor_status , have_sensor } from "./sensor_helpers" ;
@@ -25,6 +24,11 @@ import CryptoES from "crypto-es";
2524import $ from 'jquery' ;
2625import BuildApi from "./BuildApi" ;
2726
27+ import serialNWJS from "./serial.js" ;
28+ import serialWeb from "./webSerial.js" ;
29+
30+ const serial = import . meta. env ? serialWeb : serialNWJS ;
31+
2832let mspHelper ;
2933let connectionTimestamp ;
3034let clicks = false ;
@@ -64,10 +68,21 @@ export function initializeSerialBackend() {
6468 GUI . updateManualPortVisibility ( ) ;
6569 } ) ;
6670
67- $ ( 'div.connect_controls a.connect' ) . click ( function ( ) {
68- if ( ! GUI . connect_lock ) { // GUI control overrides the user control
6971
70- const toggleStatus = function ( ) {
72+ $ ( "div.connect_controls a.connect" ) . on ( 'click' , function ( ) {
73+
74+ const selectedPort = $ ( 'div#port-picker #port option:selected' ) ;
75+ let portName ;
76+ if ( selectedPort . data ( ) . isManual ) {
77+ portName = $ ( '#port-override' ) . val ( ) ;
78+ } else {
79+ portName = String ( $ ( 'div#port-picker #port' ) . val ( ) ) ;
80+ }
81+
82+ if ( ! GUI . connect_lock ) {
83+ // GUI control overrides the user control
84+
85+ const toggleStatus = function ( ) {
7186 clicks = ! clicks ;
7287 } ;
7388
@@ -76,13 +91,6 @@ export function initializeSerialBackend() {
7691 const selected_baud = parseInt ( $ ( 'div#port-picker #baud' ) . val ( ) ) ;
7792 const selectedPort = $ ( 'div#port-picker #port option:selected' ) ;
7893
79- let portName ;
80- if ( selectedPort . data ( ) . isManual ) {
81- portName = $ ( '#port-override' ) . val ( ) ;
82- } else {
83- portName = String ( $ ( 'div#port-picker #port' ) . val ( ) ) ;
84- }
85-
8694 if ( selectedPort . data ( ) . isDFU ) {
8795 $ ( 'select#baud' ) . hide ( ) ;
8896 } else if ( portName !== '0' ) {
@@ -94,16 +102,27 @@ export function initializeSerialBackend() {
94102 $ ( 'div#port-picker #port, div#port-picker #baud, div#port-picker #delay' ) . prop ( 'disabled' , true ) ;
95103 $ ( 'div.connect_controls div.connect_state' ) . text ( i18n . getMessage ( 'connecting' ) ) ;
96104
105+ const baudRate = parseInt ( $ ( 'div#port-picker #baud' ) . val ( ) ) ;
97106 if ( selectedPort . data ( ) . isVirtual ) {
98107 CONFIGURATOR . virtualMode = true ;
99108 CONFIGURATOR . virtualApiVersion = $ ( '#firmware-version-dropdown :selected' ) . val ( ) ;
100109
101110 serial . connect ( 'virtual' , { } , onOpenVirtual ) ;
111+ } else if ( import . meta. env ) {
112+ serial . addEventListener ( 'connect' , ( event ) => {
113+ onOpen ( event . detail ) ;
114+ toggleStatus ( ) ;
115+ } ) ;
116+ serial . connect ( { baudRate } ) ;
102117 } else {
103- serial . connect ( portName , { bitrate : selected_baud } , onOpen ) ;
118+ serial . connect (
119+ portName ,
120+ { bitrate : selected_baud } ,
121+ onOpen ,
122+ ) ;
123+ toggleStatus ( ) ;
104124 }
105125
106- toggleStatus ( ) ;
107126 } else {
108127 if ( $ ( 'div#flashbutton a.flash_state' ) . hasClass ( 'active' ) && $ ( 'div#flashbutton a.flash' ) . hasClass ( 'active' ) ) {
109128 $ ( 'div#flashbutton a.flash_state' ) . removeClass ( 'active' ) ;
@@ -287,7 +306,11 @@ function onOpen(openInfo) {
287306 result = getConfig ( 'expertMode' ) ?. expertMode ?? false ;
288307 $ ( 'input[name="expertModeCheckbox"]' ) . prop ( 'checked' , result ) . trigger ( 'change' ) ;
289308
290- serial . onReceive . addListener ( read_serial ) ;
309+ if ( import . meta. env ) {
310+ serial . addEventListener ( 'receive' , ( e ) => read_serial ( e . detail . buffer ) ) ;
311+ } else {
312+ serial . onReceive . addListener ( read_serial ) ;
313+ }
291314 setConnectionTimeout ( ) ;
292315 FC . resetState ( ) ;
293316 mspHelper = new MspHelper ( ) ;
0 commit comments