Fix upload and serial (#661)

* get serial connection status from BE

* handle serial connect in the BE

* allow breakpoints on vscode (windows)

* Timeout on config change to prevent serial busy

* serial-service tests
This commit is contained in:
Francesco Stasi
2021-12-07 17:38:43 +01:00
committed by GitHub
parent 88397931c5
commit 767b09d2f1
19 changed files with 576 additions and 756 deletions

View File

@@ -11,6 +11,9 @@ export default class WebSocketServiceImpl implements WebSocketService {
protected readonly onMessage = new Emitter<string>();
public readonly onMessageReceived = this.onMessage.event;
protected readonly onConnectedClients = new Emitter<number>();
public readonly onClientsNumberChanged = this.onConnectedClients.event;
constructor() {
this.wsClients = [];
this.server = new WebSocket.Server({ port: 0 });
@@ -21,8 +24,11 @@ export default class WebSocketServiceImpl implements WebSocketService {
private addClient(ws: WebSocket): void {
this.wsClients.push(ws);
this.onConnectedClients.fire(this.wsClients.length);
ws.onclose = () => {
this.wsClients.splice(this.wsClients.indexOf(ws), 1);
this.onConnectedClients.fire(this.wsClients.length);
};
ws.onmessage = (res) => {
@@ -30,6 +36,10 @@ export default class WebSocketServiceImpl implements WebSocketService {
};
}
getConnectedClientsNumber(): number {
return this.wsClients.length;
}
getAddress(): WebSocket.AddressInfo {
return this.server.address() as WebSocket.AddressInfo;
}

View File

@@ -6,4 +6,6 @@ export interface WebSocketService {
getAddress(): WebSocket.AddressInfo;
sendMessage(message: string): void;
onMessageReceived: Event<string>;
onClientsNumberChanged: Event<number>;
getConnectedClientsNumber(): number;
}