Skip to content

Commit 7fe377f

Browse files
authored
Merge pull request #680 from mikeller/added_disable_arming
Added disabling of arming when connected to the configurator.
2 parents 7672fcf + 8246b07 commit 7fe377f

File tree

4 files changed

+76
-36
lines changed

4 files changed

+76
-36
lines changed

_locales/en/messages.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,12 @@
198198
"craftNameReceived": {
199199
"message": "Craft name: <strong>$1</strong>"
200200
},
201+
"armingDisabled": {
202+
"message": "<strong>Arming Disabled</strong>"
203+
},
204+
"armingEnabled": {
205+
"message": "<strong>Arming Enabled</strong>"
206+
},
201207
"boardInfoReceived": {
202208
"message": "Board: <strong>$1</strong>, version: <strong>$2</strong>"
203209
},

js/msp/MSPCodes.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ var MSPCodes = {
7777
MSP_SENSOR_CONFIG: 96,
7878
MSP_SET_SENSOR_CONFIG: 97,
7979
//MSP_SPECIAL_PARAMETERS: 98, // DEPRECATED
80+
MSP_ARMING_DISABLE: 99,
8081
//MSP_SET_SPECIAL_PARAMETERS: 99, // DEPRECATED
8182
//MSP_IDENT: 100, // DEPRECTED
8283
MSP_STATUS: 101,

js/msp/MSPHelper.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1153,6 +1153,9 @@ MspHelper.prototype.process_data = function(dataHandler) {
11531153
case MSPCodes.MSP_COPY_PROFILE:
11541154
console.log('Copy profile');
11551155
break;
1156+
case MSPCodes.MSP_ARMING_DISABLE:
1157+
console.log('Arming disable');
1158+
break;
11561159
default:
11571160
console.log('Unknown code detected: ' + code);
11581161
} else {
@@ -1512,9 +1515,17 @@ MspHelper.prototype.crunch = function(code) {
15121515
case MSPCodes.MSP_COPY_PROFILE:
15131516
buffer.push8(COPY_PROFILE.type)
15141517
.push8(COPY_PROFILE.dstProfile)
1515-
.push8(COPY_PROFILE.srcProfile)
1518+
.push8(COPY_PROFILE.srcProfile);
1519+
break;
1520+
case MSPCodes.MSP_ARMING_DISABLE:
1521+
var value;
1522+
if (CONFIG.arming_disabled) {
1523+
value = 1;
1524+
} else {
1525+
value = 0;
1526+
}
1527+
buffer.push8(value);
15161528
break;
1517-
15181529
default:
15191530
return false;
15201531
}

js/serial_backend.js

Lines changed: 56 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -60,42 +60,21 @@ $(document).ready(function () {
6060
GUI.interval_kill_all();
6161
GUI.tab_switch_cleanup();
6262
GUI.tab_switch_in_progress = false;
63-
64-
var wasConnected = CONFIGURATOR.connectionValid;
6563

66-
serial.disconnect(onClosed);
67-
68-
GUI.connected_to = false;
69-
GUI.allowedTabs = GUI.defaultAllowedTabsWhenDisconnected.slice();
70-
MSP.disconnect_cleanup();
71-
PortUsage.reset();
72-
73-
// Reset various UI elements
74-
$('span.i2c-error').text(0);
75-
$('span.cycle-time').text(0);
76-
if (semver.gte(CONFIG.apiVersion, "1.20.0"))
77-
$('span.cpu-load').text('');
78-
79-
// unlock port select & baud
80-
$('div#port-picker #port').prop('disabled', false);
81-
if (!GUI.auto_connect) $('div#port-picker #baud').prop('disabled', false);
82-
83-
// reset connect / disconnect button
84-
$('div.connect_controls a.connect').removeClass('active');
85-
$('div.connect_controls a.connect_state').text(chrome.i18n.getMessage('connect'));
86-
87-
// reset active sensor indicators
88-
sensor_status(0);
89-
90-
if (wasConnected) {
91-
// detach listeners and remove element data
92-
$('#content').empty();
93-
}
64+
if (semver.gte(CONFIG.apiVersion, "1.37.0")) {
65+
CONFIG.arming_disabled = false;
66+
67+
MSP.send_message(MSPCodes.MSP_ARMING_DISABLE, false, false, function () {
68+
GUI.log(chrome.i18n.getMessage('armingEnabled'));
9469

95-
$('#tabs .tab_landing a').click();
70+
finishClose(clicks);
71+
});
72+
} else {
73+
finishClose(clicks);
74+
}
9675
}
97-
98-
$(this).data("clicks", !clicks);
76+
77+
$(this).data("clicks", !clicks);
9978
}
10079
}
10180
});
@@ -143,7 +122,40 @@ $(document).ready(function () {
143122
PortUsage.initialize();
144123
});
145124

125+
function finishClose(clicks) {
126+
var wasConnected = CONFIGURATOR.connectionValid;
127+
128+
serial.disconnect(onClosed);
129+
130+
MSP.disconnect_cleanup();
131+
PortUsage.reset();
132+
133+
GUI.connected_to = false;
134+
GUI.allowedTabs = GUI.defaultAllowedTabsWhenDisconnected.slice();
135+
// Reset various UI elements
136+
$('span.i2c-error').text(0);
137+
$('span.cycle-time').text(0);
138+
if (semver.gte(CONFIG.apiVersion, "1.20.0"))
139+
$('span.cpu-load').text('');
140+
141+
// unlock port select & baud
142+
$('div#port-picker #port').prop('disabled', false);
143+
if (!GUI.auto_connect) $('div#port-picker #baud').prop('disabled', false);
144+
145+
// reset connect / disconnect button
146+
$('div.connect_controls a.connect').removeClass('active');
147+
$('div.connect_controls a.connect_state').text(chrome.i18n.getMessage('connect'));
148+
149+
// reset active sensor indicators
150+
sensor_status(0);
146151

152+
if (wasConnected) {
153+
// detach listeners and remove element data
154+
$('#content').empty();
155+
}
156+
157+
$('#tabs .tab_landing a').click();
158+
}
147159

148160

149161
function onOpen(openInfo) {
@@ -214,7 +226,17 @@ function onOpen(openInfo) {
214226
MSP.send_message(MSPCodes.MSP_NAME, false, false, function () {
215227
GUI.log(chrome.i18n.getMessage('craftNameReceived', [CONFIG.name]));
216228

217-
finishOpen();
229+
if (semver.gte(CONFIG.apiVersion, "1.37.0")) {
230+
CONFIG.arming_disabled = true;
231+
232+
MSP.send_message(MSPCodes.MSP_ARMING_DISABLE, false, false, function () {
233+
GUI.log(chrome.i18n.getMessage('armingDisabled'));
234+
235+
finishOpen();
236+
});
237+
} else {
238+
finishOpen();
239+
}
218240
});
219241
} else {
220242
finishOpen();

0 commit comments

Comments
 (0)