mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-15 07:16:38 +00:00
close websocket connection after closing serial plotter
This commit is contained in:
parent
fe3fbb189c
commit
f84c15bea0
@ -46,6 +46,7 @@ export class MonitorManagerProxyClientImpl
|
|||||||
private wsPort?: number;
|
private wsPort?: number;
|
||||||
private lastConnectedBoard: BoardsConfig.Config;
|
private lastConnectedBoard: BoardsConfig.Config;
|
||||||
private onBoardsConfigChanged: Disposable | undefined;
|
private onBoardsConfigChanged: Disposable | undefined;
|
||||||
|
private isMonitorWidgetOpen = false;
|
||||||
|
|
||||||
getWebSocketPort(): number | undefined {
|
getWebSocketPort(): number | undefined {
|
||||||
return this.wsPort;
|
return this.wsPort;
|
||||||
@ -174,6 +175,14 @@ export class MonitorManagerProxyClientImpl
|
|||||||
return this.server().getCurrentSettings(board, port);
|
return this.server().getCurrentSettings(board, port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setMonitorWidgetStatus(value: boolean): void {
|
||||||
|
this.isMonitorWidgetOpen = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
getMonitorWidgetStatus(): boolean {
|
||||||
|
return this.isMonitorWidgetOpen;
|
||||||
|
}
|
||||||
|
|
||||||
send(message: string): void {
|
send(message: string): void {
|
||||||
if (!this.webSocket) {
|
if (!this.webSocket) {
|
||||||
return;
|
return;
|
||||||
|
@ -74,6 +74,10 @@ export class MonitorWidget extends ReactWidget {
|
|||||||
this.monitorManagerProxy.startMonitor();
|
this.monitorManagerProxy.startMonitor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override onAfterAttach(msg: Message): void {
|
||||||
|
this.monitorManagerProxy.setMonitorWidgetStatus(this.isAttached);
|
||||||
|
}
|
||||||
|
|
||||||
onMonitorSettingsDidChange(settings: MonitorSettings): void {
|
onMonitorSettingsDidChange(settings: MonitorSettings): void {
|
||||||
this.settings = {
|
this.settings = {
|
||||||
...this.settings,
|
...this.settings,
|
||||||
@ -91,6 +95,7 @@ export class MonitorWidget extends ReactWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override dispose(): void {
|
override dispose(): void {
|
||||||
|
this.monitorManagerProxy.setMonitorWidgetStatus(this.isAttached);
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,6 +65,9 @@ export class PlotterFrontendContribution extends Contribution {
|
|||||||
|
|
||||||
ipcRenderer.on(CLOSE_PLOTTER_WINDOW, async () => {
|
ipcRenderer.on(CLOSE_PLOTTER_WINDOW, async () => {
|
||||||
if (!!this.window) {
|
if (!!this.window) {
|
||||||
|
if (!this.monitorManagerProxy.getMonitorWidgetStatus()) {
|
||||||
|
this.monitorManagerProxy.disconnect();
|
||||||
|
}
|
||||||
this.window = null;
|
this.window = null;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -37,6 +37,8 @@ export interface MonitorManagerProxyClient {
|
|||||||
isWSConnected(): Promise<boolean>;
|
isWSConnected(): Promise<boolean>;
|
||||||
startMonitor(settings?: PluggableMonitorSettings): Promise<void>;
|
startMonitor(settings?: PluggableMonitorSettings): Promise<void>;
|
||||||
getCurrentSettings(board: Board, port: Port): Promise<MonitorSettings>;
|
getCurrentSettings(board: Board, port: Port): Promise<MonitorSettings>;
|
||||||
|
setMonitorWidgetStatus(value: boolean): void;
|
||||||
|
getMonitorWidgetStatus(): boolean;
|
||||||
send(message: string): void;
|
send(message: string): void;
|
||||||
changeSettings(settings: MonitorSettings): void;
|
changeSettings(settings: MonitorSettings): void;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user