mirror of
https://github.com/betaflight/betaflight-configurator.git
synced 2025-07-24 00:35:26 +03:00
Make port_handler work with PWA (#3958)
* Make port_handler work with PWA * Modify the port_handler more the Vue way * Fixes after review * Fix request permission option not being deselected * Hide baud selection in port picker if virtual port * Added port override option for manual * Fix virtual port state when loading the page * Fix request permission adds the same device several times * Fix automatic selection of device under Linux
This commit is contained in:
parent
b91698d0f4
commit
fce0c8305b
12 changed files with 246 additions and 166 deletions
|
@ -26,6 +26,7 @@ import BuildApi from "./BuildApi";
|
|||
|
||||
import { isWeb } from "./utils/isWeb";
|
||||
import { serialShim } from "./serial_shim.js";
|
||||
import { EventBus } from "../components/eventBus";
|
||||
|
||||
let serial = serialShim();
|
||||
|
||||
|
@ -73,19 +74,16 @@ export function initializeSerialBackend() {
|
|||
$('#port-override').val(data.portOverride);
|
||||
}
|
||||
|
||||
$('div#port-picker #port').change(function (target) {
|
||||
GUI.updateManualPortVisibility();
|
||||
});
|
||||
|
||||
EventBus.$on('ports-input:change', () => GUI.updateManualPortVisibility());
|
||||
|
||||
$("div.connect_controls a.connect").on('click', function () {
|
||||
|
||||
const selectedPort = $('#port').val();
|
||||
const selectedPort = PortHandler.portPicker.selectedPort;
|
||||
let portName;
|
||||
if (selectedPort === 'manual') {
|
||||
portName = $('#port-override').val();
|
||||
} else {
|
||||
portName = String($('div#port-picker #port').val());
|
||||
portName = selectedPort;
|
||||
}
|
||||
|
||||
if (!GUI.connect_lock && selectedPort !== 'none') {
|
||||
|
@ -93,8 +91,8 @@ export function initializeSerialBackend() {
|
|||
|
||||
GUI.configuration_loaded = false;
|
||||
|
||||
const selected_baud = parseInt($('div#port-picker #baud').val());
|
||||
const selectedPort = $('#port').val();
|
||||
const selected_baud = PortHandler.portPicker.selectedBauds;
|
||||
const selectedPort = portName;
|
||||
|
||||
if (selectedPort === 'DFU') {
|
||||
$('select#baud').hide();
|
||||
|
@ -106,10 +104,10 @@ export function initializeSerialBackend() {
|
|||
GUI.connecting_to = portName;
|
||||
|
||||
// lock port select & baud while we are connecting / connected
|
||||
$('div#port-picker #port, div#port-picker #baud, div#port-picker #delay').prop('disabled', true);
|
||||
PortHandler.portPickerDisabled = true;
|
||||
$('div.connect_controls div.connect_state').text(i18n.getMessage('connecting'));
|
||||
|
||||
const baudRate = parseInt($('#baud').val());
|
||||
const baudRate = selected_baud;
|
||||
if (selectedPort === 'virtual') {
|
||||
CONFIGURATOR.virtualMode = true;
|
||||
CONFIGURATOR.virtualApiVersion = $('#firmware-version-dropdown').val();
|
||||
|
@ -117,7 +115,7 @@ export function initializeSerialBackend() {
|
|||
// Hack to get virtual working on the web
|
||||
serial = serialShim();
|
||||
serial.connect('virtual', {}, onOpenVirtual);
|
||||
} else if (isWeb()) {
|
||||
} else {
|
||||
CONFIGURATOR.virtualMode = false;
|
||||
serial = serialShim();
|
||||
// Explicitly disconnect the event listeners before attaching the new ones.
|
||||
|
@ -127,10 +125,7 @@ export function initializeSerialBackend() {
|
|||
serial.removeEventListener('disconnect', disconnectHandler);
|
||||
serial.addEventListener('disconnect', disconnectHandler);
|
||||
|
||||
serial.connect({ baudRate });
|
||||
} else {
|
||||
serial.connect(portName, { bitrate: selected_baud }, onOpen);
|
||||
toggleStatus();
|
||||
serial.connect(portName, { baudRate });
|
||||
}
|
||||
|
||||
} else {
|
||||
|
@ -230,8 +225,7 @@ function finishClose(finishedCallback) {
|
|||
$('#dialogReportProblems-closebtn').click();
|
||||
|
||||
// unlock port select & baud
|
||||
$('div#port-picker #port').prop('disabled', false);
|
||||
if (!GUI.auto_connect) $('div#port-picker #baud').prop('disabled', false);
|
||||
PortHandler.portPickerDisabled = false;
|
||||
|
||||
// reset connect / disconnect button
|
||||
$('div.connect_controls a.connect').removeClass('active');
|
||||
|
@ -275,7 +269,7 @@ function abortConnection() {
|
|||
$('div#connectbutton a.connect').removeClass('active');
|
||||
|
||||
// unlock port select & baud
|
||||
$('div#port-picker #port, div#port-picker #baud, div#port-picker #delay').prop('disabled', false);
|
||||
PortHandler.portPickerDisabled = false;
|
||||
|
||||
// reset data
|
||||
isConnected = false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue