1
1
// Copyright (c) Microsoft Corporation. All rights reserved.
2
2
// Licensed under the MIT license.
3
+ import { getSerialMonitorApi , LineEnding , Parity , SerialMonitorApi , StopBits , Version } from "@microsoft/vscode-serial-monitor-api" ;
3
4
import * as vscode from "vscode" ;
4
- import { SerialMonitorApi , Version , getSerialMonitorApi , LineEnding , Parity , StopBits } from '@microsoft/vscode-serial-monitor-api' ;
5
- import { SerialPortCtrl } from "./serialportctrl" ;
6
5
import { ISerialPortDetail } from "./serialMonitor" ;
6
+ import { SerialPortCtrl } from "./serialportctrl" ;
7
7
8
8
export class SerialMonitorReplacement implements vscode . Disposable {
9
- private static _serialMonitor : SerialMonitorReplacement = null ;
10
- private serialMonitorApi : SerialMonitorApi | undefined ;
11
- private extensionContext : vscode . ExtensionContext ;
12
- private currentPort : string ;
13
-
14
9
public static listBaudRates ( ) : number [ ] {
15
10
return [ 300 , 1200 , 2400 , 4800 , 9600 , 19200 , 38400 , 57600 , 74880 , 115200 , 230400 , 250000 , 500000 , 1000000 , 2000000 ] ;
16
11
}
@@ -22,9 +17,23 @@ export class SerialMonitorReplacement implements vscode.Disposable {
22
17
return SerialMonitorReplacement . _serialMonitor ;
23
18
}
24
19
20
+ private static _serialMonitor : SerialMonitorReplacement = null ;
21
+
22
+ private serialMonitorApi : SerialMonitorApi | undefined ;
23
+ private extensionContext : vscode . ExtensionContext ;
24
+ private currentPort : string ;
25
+
26
+ private _openPortStatusBar : vscode . StatusBarItem ;
27
+
25
28
public async initialize ( extensionContext : vscode . ExtensionContext ) {
26
29
this . extensionContext = extensionContext ;
27
- this . serialMonitorApi = await getSerialMonitorApi ( Version . latest , extensionContext ) ;
30
+ this . serialMonitorApi = await getSerialMonitorApi ( Version . latest , extensionContext ) ;
31
+
32
+ this . _openPortStatusBar = vscode . window . createStatusBarItem ( vscode . StatusBarAlignment . Right , constants . statusBarPriority . OPEN_PORT ) ;
33
+ this . _openPortStatusBar . command = "arduino.openSerialMonitor" ;
34
+ this . _openPortStatusBar . text = `$(plug)` ;
35
+ this . _openPortStatusBar . tooltip = "Open Serial Monitor" ;
36
+ this . _openPortStatusBar . show ( ) ;
28
37
}
29
38
30
39
public get initialized ( ) : boolean {
@@ -47,15 +56,14 @@ export class SerialMonitorReplacement implements vscode.Disposable {
47
56
return a . label === b . label ? 0 : ( a . label > b . label ? 1 : - 1 ) ;
48
57
} ) , { placeHolder : "Select a serial port" } ) ;
49
58
50
-
51
59
this . currentPort = chosen . label ;
52
60
return chosen ? chosen . label : undefined ;
53
61
}
54
62
55
63
public async selectBaudRate ( ) : Promise < number | undefined > {
56
64
const rates = SerialMonitorReplacement . listBaudRates ( ) ;
57
65
const chosen = await vscode . window . showQuickPick ( rates . map ( ( rate ) => rate . toString ( ) ) ) ;
58
- if ( ! chosen ) {
66
+ if ( ! chosen ) {
59
67
return undefined ;
60
68
}
61
69
if ( ! parseInt ( chosen , 10 ) ) {
@@ -91,7 +99,7 @@ export class SerialMonitorReplacement implements vscode.Disposable {
91
99
lineEnding : LineEnding . None ,
92
100
dataBits : 8 ,
93
101
stopBits : StopBits . One ,
94
- parity : Parity . None
102
+ parity : Parity . None ,
95
103
} )
96
104
}
97
105
@@ -105,4 +113,4 @@ export class SerialMonitorReplacement implements vscode.Disposable {
105
113
public dispose ( ) {
106
114
this . serialMonitorApi . dispose ( ) ;
107
115
}
108
- }
116
+ }
0 commit comments