Skip to content

Commit dac4bb1

Browse files
committed
feat: added feedback
Added feedback from the board to the webide when using the web serial API based flashers on chromebooks.
1 parent edcd385 commit dac4bb1

File tree

4 files changed

+42
-36
lines changed

4 files changed

+42
-36
lines changed

src/chrome-app-daemon.js

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,27 +27,27 @@ import Daemon from './daemon';
2727

2828
const POLLING_INTERVAL = 2000;
2929

30-
class WebSerialPort {
31-
sendVersion () {}
32-
sendSupportedBoards () {}
33-
listPorts () {}
34-
log (message, category) {}
35-
upload (data) {}
36-
openPort (data) {}
37-
closePort (data) {}
38-
writePort (data) {}
39-
onMessage (message) {}
40-
onDisconnect (message) {}
41-
onSerialData (name, data) {}
42-
}
30+
// class WebSerialPort {
31+
// sendVersion () {}
32+
// sendSupportedBoards () {}
33+
// listPorts () {}
34+
// log (message, category) {}
35+
// upload (data) {}
36+
// openPort (data) {}
37+
// closePort (data) {}
38+
// writePort (data) {}
39+
// onMessage (message) {}
40+
// onDisconnect (message) {}
41+
// onSerialData (name, data) {}
42+
// }
4343
export default class ChromeOsDaemon extends Daemon {
4444
constructor(boardsUrl, options) { // , chromeExtensionId) {
4545
super(boardsUrl);
4646
if (typeof options === 'string') {
47-
this.chromeExtensionId = options;
48-
} else {
49-
this.chromeExtensionId = options.chromeExtensionId;
50-
this.webSerialPort = new WebSerialPort(); // options.webSerialPort;
47+
this.chromeExtensionId = options;
48+
}
49+
else {
50+
this.chromeExtensionId = options.chromeExtensionId;
5151
}
5252
this.webSerialChannel = null;
5353
this.channel = null;
@@ -119,7 +119,6 @@ export default class ChromeOsDaemon extends Daemon {
119119
}
120120
}
121121

122-
123122
handleListMessage(message) {
124123
const lastDevices = this.devicesList.getValue();
125124
if (!Daemon.devicesListAreEquals(lastDevices.serial, message.ports)) {
@@ -256,7 +255,9 @@ export default class ChromeOsDaemon extends Daemon {
256255
* }
257256
*/
258257
_upload(uploadPayload, uploadCommandInfo) {
259-
const { board, port, commandline, data } = uploadPayload;
258+
const {
259+
board, port, commandline, data
260+
} = uploadPayload;
260261
const extrafiles = uploadCommandInfo && uploadCommandInfo.files && Array.isArray(uploadCommandInfo.files) ? uploadCommandInfo.files : [];
261262
try {
262263
window.oauth.token().then(token => {

src/firmware-updater.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,4 +227,4 @@ export default class FirmwareUpdater {
227227
this.getFirmwareInfo(boardId, port, firmwareVersion);
228228
});
229229
}
230-
}
230+
}

src/signatures.js

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/web-serial-daemon.js

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import { WebSerialManager } from '@bcmi-labs/arduino-chromeos-uploader';
22
import Daemon from './daemon';
33

4-
function mapSerialPortToDevice(port) {
5-
const info = port.getInfo();
6-
return {
7-
Name: `Board-${info.usbVendorId}-${info.usbProductId}`,
8-
SerialNumber: `${info.usbVendorId}-${info.usbProductId}`,
9-
IsOpen: true,
10-
VendorID: '0x2341', // String(info.usbVendorId),
11-
ProductID: '0x0054', // String(info.usbProductId)
12-
// type: 'web-serial'
13-
};
14-
}
4+
// function mapSerialPortToDevice(port) {
5+
// const info = port.getInfo();
6+
// return {
7+
// Name: `Board-${info.usbVendorId}-${info.usbProductId}`,
8+
// SerialNumber: `${info.usbVendorId}-${info.usbProductId}`,
9+
// IsOpen: true,
10+
// VendorID: '0x2341', // String(info.usbVendorId),
11+
// ProductID: '0x0054', // String(info.usbProductId)
12+
// // type: 'web-serial'
13+
// };
14+
// }
1515

1616
export default class WebSerialDaemon extends Daemon {
1717
constructor(boardsUrl) {
@@ -24,11 +24,12 @@ export default class WebSerialDaemon extends Daemon {
2424
// Specific for serial web API on chromebooks
2525
async requestSerialPortAccess() {
2626
this.webSerialManager = new WebSerialManager({
27-
filters: [{usbVendorId: 0x2341}]
28-
})
27+
filters: [{ usbVendorId: 0x2341 }]
28+
});
2929
await this.webSerialManager.connect();
3030
}
3131

32+
// eslint-disable-next-line class-methods-use-this
3233
closeSerialMonitor() {
3334
// TODO: it's a NO OP at the moment
3435
}
@@ -59,7 +60,12 @@ export default class WebSerialDaemon extends Daemon {
5960
console.dir(uploadPayload.data.length, { depth: null, colors: true });
6061
console.dir('******** END: web-serial-daemon:105 ********');
6162

62-
await this.webSerialManager.flashSketch(Uint8Array.from(atob(uploadPayload.data), c => c.charCodeAt(0)));
63-
63+
try {
64+
await this.webSerialManager.flashSketch(Uint8Array.from(atob(uploadPayload.data), c => c.charCodeAt(0)));
65+
this.uploading.next({ status: this.UPLOAD_DONE, msg: 'Sketch uploaded' });
66+
}
67+
catch (error) {
68+
this.notifyUploadError(error.message);
69+
}
6470
}
6571
}

0 commit comments

Comments
 (0)