Skip to content
This repository was archived by the owner on Oct 1, 2024. It is now read-only.

Commit c9876f9

Browse files
authored
add arduino.defaultBaudRate option (#620)
1 parent 506255b commit c9876f9

File tree

5 files changed

+35
-3
lines changed

5 files changed

+35
-3
lines changed

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ The following Visual Studio Code settings are available for the Arduino extensio
6565
"arduino.additionalUrls": [
6666
"https://raw.githubusercontent.com/VSChina/azureiotdevkit_tools/master/package_azureboard_index.json",
6767
"http://arduino.esp8266.com/stable/package_esp8266com_index.json"
68-
]
68+
],
69+
"arduino.defaultBaudRate": 115200,
6970
}
7071
```
7172
- `arduino.path` - Path to Arduino, you can use a custom version of Arduino by modifying this setting to include the full path. Example: `C:\\Program Files\\Arduino` for Windows, `/Applications` for Mac, `/home/$user/Downloads/arduino-1.8.1` for Linux. (Requires a restart after change). The default value is automatically detected from your Arduino IDE installation path.
@@ -80,6 +81,7 @@ serialport-list -f jsonline
8081
```
8182
- `arduino.disableTestingOpen` - Disable/enable auto sending a test message to serial port for checking open status. The default value is `false` (a test message will be sent).
8283
- `arduino.skipHeaderProvider` - Enable/disable the extension providing completion items for headers. The functionality is included in newer versions of the C++ extension. The default value is `false`.
84+
- `arduino.defaultBaudRate` - Default baud rate for serial port monitor. The default value is 115200. Supported values are 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200, 230400 and 250000.
8385

8486
The following settings are per sketch settings of the Arduino extension. You can find them in
8587
`.vscode/arduino.json` under the workspace.

package.json

+4
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,10 @@
458458
"arduino.skipHeaderProvider": {
459459
"type": "boolean",
460460
"default": false
461+
},
462+
"defaultBaudRate": {
463+
"type": "number",
464+
"default": 115200
461465
}
462466
}
463467
},

src/arduino/arduinoSettings.ts

+18
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export interface IArduinoSettings {
2020
defaultLibPath: string;
2121
sketchbookPath: string;
2222
preferencePath: string;
23+
defaultBaudRate: number;
2324
preferences: Map<string, string>;
2425
reloadPreferences(): void;
2526
}
@@ -33,6 +34,8 @@ export class ArduinoSettings implements IArduinoSettings {
3334

3435
private _sketchbookPath: string;
3536

37+
private _defaultBaudRate: number;
38+
3639
private _preferences: Map<string, string>;
3740

3841
public constructor() {
@@ -42,6 +45,7 @@ export class ArduinoSettings implements IArduinoSettings {
4245
const platform = os.platform();
4346
this._commandPath = VscodeSettings.getInstance().commandPath;
4447
await this.tryResolveArduinoPath();
48+
await this.tryGetDefaultBaudRate();
4549
if (platform === "win32") {
4650
await this.updateWindowsPath();
4751
if (this._commandPath === "") {
@@ -146,6 +150,10 @@ export class ArduinoSettings implements IArduinoSettings {
146150
return this._preferences;
147151
}
148152

153+
public get defaultBaudRate() {
154+
return this._defaultBaudRate;
155+
}
156+
149157
public reloadPreferences() {
150158
this._preferences = util.parseConfigFile(this.preferencePath);
151159
if (this.preferences.get("sketchbook.path")) {
@@ -209,4 +217,14 @@ export class ArduinoSettings implements IArduinoSettings {
209217
this._arduinoPath = configValue;
210218
}
211219
}
220+
221+
private async tryGetDefaultBaudRate(): Promise<void> {
222+
const supportBaudRates = [300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200, 230400, 250000];
223+
const configValue = VscodeSettings.getInstance().defaultBaudRate;
224+
if (!configValue || supportBaudRates.indexOf(configValue) === -1) {
225+
this._defaultBaudRate = 0;
226+
} else {
227+
this._defaultBaudRate = configValue;
228+
}
229+
}
212230
}

src/arduino/vscodeSettings.ts

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const configKeys = {
1313
DISABLE_TESTING_OPEN: "arduino.disableTestingOpen",
1414
IGNORE_BOARDS: "arduino.ignoreBoards",
1515
SKIP_HEADER_PROVIDER: "arduino.skipHeaderProvider",
16+
DEFAULT_BAUD_RATE: "arduino.defaultBaudRate",
1617
};
1718

1819
export interface IVscodeSettings {
@@ -24,6 +25,7 @@ export interface IVscodeSettings {
2425
disableTestingOpen: boolean;
2526
ignoreBoards: string[];
2627
skipHeaderProvider: boolean;
28+
defaultBaudRate: number;
2729
updateAdditionalUrls(urls: string | string[]): void;
2830
}
2931

@@ -71,6 +73,10 @@ export class VscodeSettings implements IVscodeSettings {
7173
this.setConfigValue(configKeys.IGNORE_BOARDS, value, true);
7274
}
7375

76+
public get defaultBaudRate(): number {
77+
return this.getConfigValue<number>(configKeys.DEFAULT_BAUD_RATE);
78+
}
79+
7480
public get skipHeaderProvider(): boolean {
7581
return this.getConfigValue<boolean>(configKeys.SKIP_HEADER_PROVIDER);
7682
}

src/serialmonitor/serialMonitor.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the MIT license.
33

44
import * as vscode from "vscode";
5+
import ArduinoContext from "../arduinoContext";
56
import * as constants from "../common/constants";
67
import { DeviceContext } from "../deviceContext";
78
import * as Logger from "../logger/logger";
@@ -66,8 +67,9 @@ export class SerialMonitor implements vscode.Disposable {
6667
}
6768

6869
public initialize() {
70+
const defaultBaudRate = ArduinoContext.arduinoApp.settings.defaultBaudRate || SerialMonitor.DEFAULT_BAUD_RATE;
6971
this._outputChannel = vscode.window.createOutputChannel(SerialMonitor.SERIAL_MONITOR);
70-
this._currentBaudRate = SerialMonitor.DEFAULT_BAUD_RATE;
72+
this._currentBaudRate = defaultBaudRate;
7173
this._portsStatusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, constants.statusBarPriority.PORT);
7274
this._portsStatusBar.command = "arduino.selectSerialPort";
7375
this._portsStatusBar.tooltip = "Select Serial Port";
@@ -82,7 +84,7 @@ export class SerialMonitor implements vscode.Disposable {
8284
this._baudRateStatusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, constants.statusBarPriority.BAUD_RATE);
8385
this._baudRateStatusBar.command = "arduino.changeBaudRate";
8486
this._baudRateStatusBar.tooltip = "Baud Rate";
85-
this._baudRateStatusBar.text = SerialMonitor.DEFAULT_BAUD_RATE.toString();
87+
this._baudRateStatusBar.text = defaultBaudRate.toString();
8688
this.updatePortListStatus(null);
8789

8890
this._endingStatusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Right, constants.statusBarPriority.ENDING);

0 commit comments

Comments
 (0)