add a default handler for serial errors (disconnect) (#1522)

add a default handler for serial errors (disconnect)
10.7.0-preview
Michael Keller 2019-07-09 07:57:28 +12:00 committed by GitHub
commit e1af1fbd52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 15 deletions

View File

@ -306,6 +306,13 @@
"message": "Show Log" "message": "Show Log"
}, },
"serialErrorFrameError": {
"message": "Serial connection error: bad framing"
},
"serialErrorParityError": {
"message": "Serial connection error: bad parity"
},
"serialPortOpened": { "serialPortOpened": {
"message": "Serial port <span class=\"message-positive\">successfully</span> opened with ID: $1" "message": "Serial port <span class=\"message-positive\">successfully</span> opened with ID: $1"
}, },

View File

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var serial = { var serial = {
connected: false, connected: false,
connectionId: false, connectionId: false,
openRequested: false, openRequested: false,
openCanceled: false, openCanceled: false,
@ -39,7 +39,7 @@ var serial = {
} }
if (connectionInfo && !self.openCanceled) { if (connectionInfo && !self.openCanceled) {
self.connected = true; self.connected = true;
self.connectionId = connectionInfo.connectionId; self.connectionId = connectionInfo.connectionId;
self.bitrate = connectionInfo.bitrate; self.bitrate = connectionInfo.bitrate;
self.bytesReceived = 0; self.bytesReceived = 0;
@ -52,8 +52,6 @@ var serial = {
}); });
self.onReceiveError.addListener(function watch_for_on_receive_errors(info) { self.onReceiveError.addListener(function watch_for_on_receive_errors(info) {
console.error(info);
switch (info.error) { switch (info.error) {
case 'system_error': // we might be able to recover from this one case 'system_error': // we might be able to recover from this one
if (!self.failed++) { if (!self.failed++) {
@ -84,8 +82,6 @@ var serial = {
} }
break; break;
//case 'break':
// This occurs on F1 boards with old firmware during reboot
case 'overrun': case 'overrun':
// wait 50 ms and attempt recovery // wait 50 ms and attempt recovery
self.error = info.error; self.error = info.error;
@ -114,11 +110,18 @@ var serial = {
break; break;
case 'timeout': case 'timeout':
// TODO // No data has been received for receiveTimeout milliseconds.
// We will do nothing.
break; break;
case 'frame_error':
case 'parity_error':
GUI.log(i18n.getMessage('serialError' + inflection.camelize(info.error)));
case 'break': // This seems to be the error that is thrown under NW.js in Windows when the device reboots after typing 'exit' in CLI case 'break': // This seems to be the error that is thrown under NW.js in Windows when the device reboots after typing 'exit' in CLI
case 'disconnected':
case 'device_lost': case 'device_lost':
default:
console.log("serial disconnecting: " + info.error);
CONFIG.armingDisabled = false; CONFIG.armingDisabled = false;
CONFIG.runawayTakeoffPreventionDisabled = false; CONFIG.runawayTakeoffPreventionDisabled = false;
@ -128,10 +131,6 @@ var serial = {
self.disconnect(); self.disconnect();
} }
break; break;
case 'disconnected':
// TODO
break;
} }
}); });