@@ -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
149161function 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