@@ -58,18 +58,23 @@ var FlightLogParser = function(logData) {
58
58
//Predict that this field is minthrottle
59
59
FLIGHT_LOG_FIELD_PREDICTOR_MINMOTOR = 11 ,
60
60
61
+ //Predict that this field is dshot status and other data
62
+ FLIGHT_LOG_FIELD_PREDICTOR_DSHOT_STATUS_N_VOLTAGE = 12 ,
63
+ FLIGHT_LOG_FIELD_PREDICTOR_DSHOT_STATUS_N_ERPM_FRACTION_18 = 13 ,
64
+
61
65
//Home coord predictors appear in pairs (two copies of FLIGHT_LOG_FIELD_PREDICTOR_HOME_COORD). Rewrite the second
62
66
//one we see to this to make parsing easier
63
67
FLIGHT_LOG_FIELD_PREDICTOR_HOME_COORD_1 = 256 ,
64
68
65
- FLIGHT_LOG_FIELD_ENCODING_SIGNED_VB = 0 , // Signed variable-byte
66
- FLIGHT_LOG_FIELD_ENCODING_UNSIGNED_VB = 1 , // Unsigned variable-byte
67
- FLIGHT_LOG_FIELD_ENCODING_NEG_14BIT = 3 , // Unsigned variable-byte but we negate the value before storing, value is 14 bits
68
- FLIGHT_LOG_FIELD_ENCODING_TAG8_8SVB = 6 ,
69
- FLIGHT_LOG_FIELD_ENCODING_TAG2_3S32 = 7 ,
70
- FLIGHT_LOG_FIELD_ENCODING_TAG8_4S16 = 8 ,
71
- FLIGHT_LOG_FIELD_ENCODING_NULL = 9 , // Nothing is written to the file, take value to be zero
72
- FLIGHT_LOG_FIELD_ENCODING_TAG2_3SVARIABLE = 10 ,
69
+ FLIGHT_LOG_FIELD_ENCODING_SIGNED_VB = 0 , // Signed variable-byte
70
+ FLIGHT_LOG_FIELD_ENCODING_UNSIGNED_VB = 1 , // Unsigned variable-byte
71
+ FLIGHT_LOG_FIELD_ENCODING_NEG_14BIT = 3 , // Unsigned variable-byte but we negate the value before storing, value is 14 bits
72
+ FLIGHT_LOG_FIELD_ENCODING_TAG8_8SVB = 6 ,
73
+ FLIGHT_LOG_FIELD_ENCODING_TAG2_3S32 = 7 ,
74
+ FLIGHT_LOG_FIELD_ENCODING_TAG8_4S16 = 8 ,
75
+ FLIGHT_LOG_FIELD_ENCODING_NULL = 9 , // Nothing is written to the file, take value to be zero
76
+ FLIGHT_LOG_FIELD_ENCODING_TAG2_3SVARIABLE = 10 ,
77
+ FLIGHT_LOG_FIELD_ENCODING_PACK_1F_1F_1F_1G_4U_8U = 11 , // 1 flagBit, 1 flagBit, 1 flagBit, 1 gapBit, 4 unsignedIntBit, 8 unsignedIntBit
73
78
74
79
FLIGHT_LOG_EVENT_LOG_END = 255 ,
75
80
@@ -513,9 +518,9 @@ var FlightLogParser = function(logData) {
513
518
function translateFieldName ( fieldName ) {
514
519
var translation = translationValues [ fieldName ] ;
515
520
if ( typeof translation !== 'undefined' ) {
516
- return translation ;
521
+ return translation ;
517
522
} else {
518
- return fieldName ;
523
+ return fieldName ;
519
524
}
520
525
}
521
526
@@ -585,14 +590,14 @@ var FlightLogParser = function(logData) {
585
590
case "Cleanflight" :
586
591
that . sysConfig . firmwareType = FIRMWARE_TYPE_CLEANFLIGHT ;
587
592
$ ( 'html' ) . removeClass ( 'isBaseF' ) ;
588
- $ ( 'html' ) . addClass ( 'isCF' ) ;
593
+ $ ( 'html' ) . addClass ( 'isCF' ) ;
589
594
$ ( 'html' ) . removeClass ( 'isBF' ) ;
590
595
$ ( 'html' ) . removeClass ( 'isINAV' ) ;
591
596
break ;
592
597
default :
593
598
that . sysConfig . firmwareType = FIRMWARE_TYPE_BASEFLIGHT ;
594
599
$ ( 'html' ) . addClass ( 'isBaseF' ) ;
595
- $ ( 'html' ) . removeClass ( 'isCF' ) ;
600
+ $ ( 'html' ) . removeClass ( 'isCF' ) ;
596
601
$ ( 'html' ) . removeClass ( 'isBF' ) ;
597
602
$ ( 'html' ) . removeClass ( 'isINAV' ) ;
598
603
}
@@ -919,7 +924,7 @@ var FlightLogParser = function(logData) {
919
924
$ ( 'html' ) . addClass ( 'isINAV' ) ;
920
925
} else {
921
926
922
- // Cleanflight 1.x and others
927
+ // Cleanflight 1.x and others
923
928
that . sysConfig . firmwareVersion = '0.0.0' ;
924
929
that . sysConfig . firmware = 0.0 ;
925
930
that . sysConfig . firmwarePatch = 0 ;
@@ -1080,6 +1085,40 @@ var FlightLogParser = function(logData) {
1080
1085
% that . sysConfig . frameIntervalPDenom < that . sysConfig . frameIntervalPNum ;
1081
1086
}
1082
1087
1088
+ /**
1089
+ * Debug data interpretation depends on the chosen debug mode encodings and other parameters could need to be fixed
1090
+ */
1091
+ function assimilateDebugMode ( sysConfig , frameDef )
1092
+ {
1093
+ var k ;
1094
+
1095
+ console . log ( "Debug mode is " + DEBUG_MODE [ sysConfig . debug_mode ] + ":" + sysConfig . debug_mode ) ;
1096
+
1097
+ if ( DEBUG_MODE [ sysConfig . debug_mode ] . startsWith ( "DSHOT_STATUS_N_" ) )
1098
+ {
1099
+ for ( k = 0 ; k < frameDef . name . length ; k ++ )
1100
+ {
1101
+ if ( frameDef . name [ k ] . startsWith ( "debug" ) ) {
1102
+ // Assimilate encoding depending on debug mode
1103
+ frameDef . encoding [ k ] = FLIGHT_LOG_FIELD_ENCODING_PACK_1F_1F_1F_1G_4U_8U ;
1104
+
1105
+ // Assimilate predictor depending on debug mode
1106
+ switch ( DEBUG_MODE [ sysConfig . debug_mode ] )
1107
+ {
1108
+ case "DSHOT_STATUS_N_VOLTAGE" :
1109
+ frameDef . predictor [ k ] = FLIGHT_LOG_FIELD_PREDICTOR_DSHOT_STATUS_N_VOLTAGE ;
1110
+ break ;
1111
+ case "DSHOT_STATUS_N_ERPM_FRACTION_18" :
1112
+ frameDef . predictor [ k ] = FLIGHT_LOG_FIELD_PREDICTOR_DSHOT_STATUS_N_ERPM_FRACTION_18 ;
1113
+ break ;
1114
+ default :
1115
+ break ;
1116
+ }
1117
+ }
1118
+ }
1119
+ }
1120
+ }
1121
+
1083
1122
/**
1084
1123
* Attempt to parse the frame of into the supplied `current` buffer using the encoding/predictor
1085
1124
* definitions from `frameDefs`. The previous frame values are used for predictions.
@@ -1095,7 +1134,7 @@ var FlightLogParser = function(logData) {
1095
1134
encoding = frameDef . encoding ,
1096
1135
values = new Array ( 8 ) ,
1097
1136
i , j , groupCount ;
1098
-
1137
+
1099
1138
i = 0 ;
1100
1139
while ( i < frameDef . count ) {
1101
1140
var
@@ -1164,6 +1203,19 @@ var FlightLogParser = function(logData) {
1164
1203
1165
1204
continue ;
1166
1205
break ;
1206
+ case FLIGHT_LOG_FIELD_ENCODING_PACK_1F_1F_1F_1G_4U_8U :
1207
+ value = stream . readSignedVB ( ) ;
1208
+
1209
+ current [ i ] = new Array ( 5 ) ;
1210
+ current [ i ] [ 0 ] = ( ( value & 0x8000 ) != 0 ) ? 1 : 0 ;
1211
+ current [ i ] [ 1 ] = ( ( value & 0x4000 ) != 0 ) ? 1 : 0 ;
1212
+ current [ i ] [ 2 ] = ( ( value & 0x2000 ) != 0 ) ? 1 : 0 ;
1213
+ current [ i ] [ 3 ] = ( value >> 8 ) & 0x000F ;
1214
+ current [ i ] [ 4 ] = applyPrediction ( i , raw ? FLIGHT_LOG_FIELD_PREDICTOR_0 : predictor [ i ] , value & 0x00FF , current , previous , previous2 ) ;
1215
+ i ++ ;
1216
+
1217
+ continue ;
1218
+ break ;
1167
1219
case FLIGHT_LOG_FIELD_ENCODING_NULL :
1168
1220
//Nothing to read
1169
1221
value = 0 ;
@@ -1337,6 +1389,12 @@ var FlightLogParser = function(logData) {
1337
1389
if ( mainHistory [ 1 ] )
1338
1390
value += mainHistory [ 1 ] [ FlightLogParser . prototype . FLIGHT_LOG_FIELD_INDEX_TIME ] ;
1339
1391
break ;
1392
+ case FLIGHT_LOG_FIELD_PREDICTOR_DSHOT_STATUS_N_VOLTAGE :
1393
+ value /= 4 ;
1394
+ break ;
1395
+ case FLIGHT_LOG_FIELD_PREDICTOR_DSHOT_STATUS_N_ERPM_FRACTION_18 :
1396
+ value *= 18 ;
1397
+ break ;
1340
1398
default :
1341
1399
throw "Unsupported field predictor " + predictor ;
1342
1400
}
@@ -1674,6 +1732,8 @@ var FlightLogParser = function(logData) {
1674
1732
} else {
1675
1733
lastSlow = [ ] ;
1676
1734
}
1735
+
1736
+ assimilateDebugMode ( that . sysConfig , this . frameDefs . I ) ;
1677
1737
} ;
1678
1738
1679
1739
/**
0 commit comments