Update: win7支持同时使用Serial和HID

This commit is contained in:
王立帮
2025-03-06 18:20:50 +08:00
parent 1590712159
commit fa3b4781e1
13 changed files with 277 additions and 127 deletions

View File

@@ -14,9 +14,7 @@ const {
class USBMini extends Serial {
static {
this.type = 'usb';
this.portToNameRegistry = new Registry();
this.serialNumberToNameRegistry = new Registry();
this.nameToPortRegistry = new Registry();
this.getConfig = function () {
return Serial.getConfig();
@@ -31,11 +29,7 @@ class USBMini extends Serial {
}
this.refreshPorts = function () {
let portsName = [];
for (let name of this.nameToPortRegistry.keys()) {
portsName.push({ name });
}
Serial.renderSelectBox(portsName);
Serial.refreshPorts();;
}
this.requestPort = async function () {
@@ -47,11 +41,11 @@ class USBMini extends Serial {
}
this.getPort = function (name) {
return this.nameToPortRegistry.getItem(name);
return Serial.nameToPortRegistry.getItem(name);
}
this.addPort = function (device) {
if (this.portToNameRegistry.hasKey(device)) {
if (Serial.portToNameRegistry.hasKey(device)) {
return;
}
const { serialNumber } = device;
@@ -59,27 +53,27 @@ class USBMini extends Serial {
if (!name) {
for (let i = 1; i <= 20; i++) {
name = `usb${i}`;
if (this.nameToPortRegistry.hasKey(name)) {
if (Serial.nameToPortRegistry.hasKey(name)) {
continue;
}
break;
}
this.serialNumberToNameRegistry.register(serialNumber, name);
}
this.portToNameRegistry.register(device, name);
this.nameToPortRegistry.register(name, device);
Serial.portToNameRegistry.register(device, name);
Serial.nameToPortRegistry.register(name, device);
}
this.removePort = function (device) {
if (!this.portToNameRegistry.hasKey(device)) {
if (!Serial.portToNameRegistry.hasKey(device)) {
return;
}
const name = this.portToNameRegistry.getItem(device);
const name = Serial.portToNameRegistry.getItem(device);
if (!name) {
return;
}
this.portToNameRegistry.unregister(device);
this.nameToPortRegistry.unregister(name);
Serial.portToNameRegistry.unregister(device);
Serial.nameToPortRegistry.unregister(name);
}
this.addEventsListener = function () {