@@ -171,6 +171,7 @@ MspHelper.prototype.process_data = function(dataHandler) {
171
171
}
172
172
break ;
173
173
case MSPCodes . MSP_CURRENT_METERS :
174
+
174
175
CURRENT_METERS = [ ] ;
175
176
var currentMeterLength = 5 ;
176
177
for ( var i = 0 ; i < ( data . byteLength / currentMeterLength ) ; i ++ ) {
@@ -192,46 +193,63 @@ MspHelper.prototype.process_data = function(dataHandler) {
192
193
break ;
193
194
194
195
case MSPCodes . MSP_VOLTAGE_METER_CONFIG :
195
- VOLTAGE_METER_CONFIGS = [ ] ;
196
- var voltage_meter_count = data . readU8 ( ) ;
197
-
198
- for ( var i = 0 ; i < voltage_meter_count ; i ++ ) {
199
- var subframe_length = data . readU8 ( ) ;
200
- if ( subframe_length != 5 ) {
201
- for ( var j = 0 ; j < subframe_length ; j ++ ) {
202
- data . readU8 ( ) ;
196
+ if ( semver . lt ( CONFIG . apiVersion , "1.36.0" ) ) {
197
+ MISC . vbatscale = data . readU8 ( ) ; // 10-200
198
+ MISC . vbatmincellvoltage = data . readU8 ( ) / 10 ; // 10-50
199
+ MISC . vbatmaxcellvoltage = data . readU8 ( ) / 10 ; // 10-50
200
+ MISC . vbatwarningcellvoltage = data . readU8 ( ) / 10 ; // 10-50
201
+ if ( semver . gte ( CONFIG . apiVersion , "1.23.0" ) ) {
202
+ MISC . batterymetertype = data . readU8 ( ) ;
203
+ }
204
+ } else {
205
+ VOLTAGE_METER_CONFIGS = [ ] ;
206
+ var voltage_meter_count = data . readU8 ( ) ;
207
+
208
+ for ( var i = 0 ; i < voltage_meter_count ; i ++ ) {
209
+ var subframe_length = data . readU8 ( ) ;
210
+ if ( subframe_length != 5 ) {
211
+ for ( var j = 0 ; j < subframe_length ; j ++ ) {
212
+ data . readU8 ( ) ;
213
+ }
214
+ } else {
215
+ var voltageMeterConfig = { } ;
216
+ voltageMeterConfig . id = data . readU8 ( ) ;
217
+ voltageMeterConfig . sensorType = data . readU8 ( ) ;
218
+ voltageMeterConfig . vbatscale = data . readU8 ( ) ;
219
+ voltageMeterConfig . vbatresdivval = data . readU8 ( ) ;
220
+ voltageMeterConfig . vbatresdivmultiplier = data . readU8 ( ) ;
221
+
222
+ VOLTAGE_METER_CONFIGS . push ( voltageMeterConfig ) ;
203
223
}
204
- } else {
205
- var voltageMeterConfig = { } ;
206
- voltageMeterConfig . id = data . readU8 ( ) ;
207
- voltageMeterConfig . sensorType = data . readU8 ( ) ;
208
- voltageMeterConfig . vbatscale = data . readU8 ( ) ;
209
- voltageMeterConfig . vbatresdivval = data . readU8 ( ) ;
210
- voltageMeterConfig . vbatresdivmultiplier = data . readU8 ( ) ;
211
-
212
- VOLTAGE_METER_CONFIGS . push ( voltageMeterConfig ) ;
213
224
}
214
225
}
215
226
break ;
216
227
case MSPCodes . MSP_CURRENT_METER_CONFIG :
217
- var offset = 0 ;
218
- CURRENT_METER_CONFIGS = [ ] ;
219
- var current_meter_count = data . readU8 ( ) ;
220
- for ( var i = 0 ; i < current_meter_count ; i ++ ) {
221
- var currentMeterConfig = { } ;
222
- var subframe_length = data . readU8 ( ) ;
223
-
224
- if ( subframe_length != 6 ) {
225
- for ( var j = 0 ; j < subframe_length ; j ++ ) {
226
- data . readU8 ( ) ;
227
- }
228
- } else {
229
- currentMeterConfig . id = data . readU8 ( ) ;
230
- currentMeterConfig . sensorType = data . readU8 ( ) ;
231
- currentMeterConfig . scale = data . readU16 ( ) ;
232
- currentMeterConfig . offset = data . readU16 ( ) ;
228
+ if ( semver . lt ( CONFIG . apiVersion , "1.36.0" ) ) {
229
+ BF_CONFIG . currentscale = data . read16 ( ) ;
230
+ BF_CONFIG . currentoffset = data . read16 ( ) ;
231
+ BF_CONFIG . currentmetertype = data . readU8 ( ) ;
232
+ BF_CONFIG . batterycapacity = data . readU16 ( ) ;
233
+ } else {
234
+ var offset = 0 ;
235
+ CURRENT_METER_CONFIGS = [ ] ;
236
+ var current_meter_count = data . readU8 ( ) ;
237
+ for ( var i = 0 ; i < current_meter_count ; i ++ ) {
238
+ var currentMeterConfig = { } ;
239
+ var subframe_length = data . readU8 ( ) ;
240
+
241
+ if ( subframe_length != 6 ) {
242
+ for ( var j = 0 ; j < subframe_length ; j ++ ) {
243
+ data . readU8 ( ) ;
244
+ }
245
+ } else {
246
+ currentMeterConfig . id = data . readU8 ( ) ;
247
+ currentMeterConfig . sensorType = data . readU8 ( ) ;
248
+ currentMeterConfig . scale = data . readU16 ( ) ;
249
+ currentMeterConfig . offset = data . readU16 ( ) ;
233
250
234
- CURRENT_METER_CONFIGS . push ( currentMeterConfig ) ;
251
+ CURRENT_METER_CONFIGS . push ( currentMeterConfig ) ;
252
+ }
235
253
}
236
254
}
237
255
break ;
@@ -557,7 +575,9 @@ MspHelper.prototype.process_data = function(dataHandler) {
557
575
558
576
case MSPCodes . MSP_MIXER_CONFIG :
559
577
MIXER_CONFIG . mixer = data . readU8 ( ) ;
560
- MIXER_CONFIG . reverseMotorDir = data . readU8 ( ) ;
578
+ if ( semver . gte ( CONFIG . apiVersion , "1.36.0" ) ) {
579
+ MIXER_CONFIG . reverseMotorDir = data . readU8 ( ) ;
580
+ }
561
581
break ;
562
582
563
583
case MSPCodes . MSP_FEATURE_CONFIG :
@@ -1161,7 +1181,9 @@ MspHelper.prototype.crunch = function(code) {
1161
1181
break ;
1162
1182
case MSPCodes . MSP_SET_MIXER_CONFIG :
1163
1183
buffer . push8 ( MIXER_CONFIG . mixer )
1164
- . push8 ( MIXER_CONFIG . reverseMotorDir ) ;
1184
+ if ( semver . gte ( CONFIG . apiVersion , "1.36.0" ) ) {
1185
+ buffer . push8 ( MIXER_CONFIG . reverseMotorDir ) ;
1186
+ }
1165
1187
break ;
1166
1188
case MSPCodes . MSP_SET_BOARD_ALIGNMENT_CONFIG :
1167
1189
buffer . push16 ( BOARD_ALIGNMENT_CONFIG . roll )
@@ -1269,19 +1291,19 @@ MspHelper.prototype.crunch = function(code) {
1269
1291
case MSPCodes . MSP_SET_VOLTAGE_METER_CONFIG :
1270
1292
if ( semver . lt ( CONFIG . apiVersion , "1.36.0" ) ) {
1271
1293
buffer . push8 ( MISC . vbatscale )
1272
- . push8 ( Math . round ( BATTERY_CONFIG . vbatmincellvoltage * 10 ) )
1273
- . push8 ( Math . round ( BATTERY_CONFIG . vbatmaxcellvoltage * 10 ) )
1274
- . push8 ( Math . round ( BATTERY_CONFIG . vbatwarningcellvoltage * 10 ) ) ;
1294
+ . push8 ( Math . round ( MISC . vbatmincellvoltage * 10 ) )
1295
+ . push8 ( Math . round ( MISC . vbatmaxcellvoltage * 10 ) )
1296
+ . push8 ( Math . round ( MISC . vbatwarningcellvoltage * 10 ) ) ;
1275
1297
if ( semver . gte ( CONFIG . apiVersion , "1.23.0" ) ) {
1276
- buffer . push8 ( BATTERY_CONFIG . voltageMeterSource ) ;
1298
+ buffer . push8 ( MISC . batterymetertype ) ;
1277
1299
}
1278
1300
}
1279
1301
break ;
1280
1302
case MSPCodes . MSP_SET_CURRENT_METER_CONFIG :
1281
1303
if ( semver . lt ( CONFIG . apiVersion , "1.36.0" ) ) {
1282
1304
buffer . push16 ( BF_CONFIG . currentscale )
1283
1305
. push16 ( BF_CONFIG . currentoffset )
1284
- . push8 ( BATTERY_CONFIG . currentMeterSource )
1306
+ . push8 ( BF_CONFIG . currentmetertype )
1285
1307
. push16 ( BF_CONFIG . batterycapacity )
1286
1308
}
1287
1309
break ;
0 commit comments