@@ -1441,6 +1441,50 @@ FlightLogFieldPresenter.adjustDebugDefsList = function (
14411441 'debug[6]' : 'pidD' ,
14421442 'debug[7]' : 'pidA' ,
14431443 } ;
1444+ DEBUG_FRIENDLY_FIELD_NAMES . FEEDFORWARD = {
1445+ "debug[all]" : "Feedforward [debug_axis]" ,
1446+ "debug[0]" : "Setpoint, un-smoothed" ,
1447+ "debug[1]" : "Delta, smoothed" ,
1448+ "debug[2]" : "Boost, smoothed" ,
1449+ "debug[3]" : "rcCommand Delta" ,
1450+ "debug[4]" : "Jitter Attenuator" ,
1451+ "debug[5]" : "Duplicate Flag" ,
1452+ "debug[6]" : "Yaw FF BaseAmt" ,
1453+ "debug[7]" : "Yaw FF HoldAmt" ,
1454+ } ;
1455+ DEBUG_FRIENDLY_FIELD_NAMES . FEEDFORWARD_LIMIT = {
1456+ "debug[all]" : "Feedforward Limit" ,
1457+ "debug[0]" : "Jitter Attenuator" ,
1458+ "debug[1]" : "MaxRcRate [debugAxis]" ,
1459+ "debug[2]" : "Setpoint" ,
1460+ "debug[3]" : "Feedforward" ,
1461+ "debug[4]" : "Setpoint Speed" ,
1462+ "debug[5]" : "Setpoint Speed Smoothed" ,
1463+ "debug[6]" : "FF PT1K" ,
1464+ "debug[7]" : "Rx Rate" ,
1465+ } ;
1466+ DEBUG_FRIENDLY_FIELD_NAMES . RX_TIMING = {
1467+ "debug[all]" : "Receiver Timing" ,
1468+ "debug[0]" : "Frame Interval" ,
1469+ "debug[1]" : "Frame TimeStamp" ,
1470+ "debug[2]" : "Is Rate Valid" ,
1471+ "debug[3]" : "Interval Constrained" ,
1472+ "debug[4]" : "Rx Rate" ,
1473+ "debug[5]" : "Smoothed Rx Rate" ,
1474+ "debug[6]" : "LQ Percent" ,
1475+ "debug[7]" : "Is Receiving Signal" ,
1476+ } ;
1477+ DEBUG_FRIENDLY_FIELD_NAMES . RC_SMOOTHING = {
1478+ "debug[all]" : "Debug RC Smoothing" ,
1479+ "debug[0]" : "Rx Rate Current" ,
1480+ "debug[1]" : "Rx Rate For Cutoffs" ,
1481+ "debug[2]" : "Cutoff Hz" ,
1482+ "debug[3]" : "Throttle Cutoff Hz" ,
1483+ "debug[4]" : "FF Smoothing PT1K" ,
1484+ "debug[5]" : "Smoothed Rx Rate" ,
1485+ "debug[6]" : "Outlier Count" ,
1486+ "debug[7]" : "Valid Count" ,
1487+ } ;
14441488 }
14451489 }
14461490} ;
@@ -1967,7 +2011,7 @@ FlightLogFieldPresenter.decodeDebugFieldToFriendly = function (
19672011 }
19682012 case "RC_SMOOTHING" :
19692013 switch ( fieldName ) {
1970- case "debug[0]" :
2014+ case "debug[0]" :
19712015 return `${ ( value + 1500 ) . toFixed ( 0 ) } us` ;
19722016 case "debug[3]" : // rx frame rate [us]
19732017 return `${ ( value / 1000 ) . toFixed ( 1 ) } ms` ;
@@ -2239,6 +2283,39 @@ FlightLogFieldPresenter.decodeDebugFieldToFriendly = function (
22392283 default :
22402284 return value . toFixed ( 1 ) ;
22412285 }
2286+ case "FEEDFORWARD" :
2287+ switch ( fieldName ) {
2288+ case "debug[0]" : // setpoint
2289+ return `${ value . toFixed ( 0 ) } °/s` ;
2290+ case "debug[1]" : // setpoint speed * 0.01f
2291+ return `${ value . toFixed ( 0 ) } °/s/s` ;
2292+ // case "debug[2]": feedforward boost * 0.01f
2293+ case "debug[3]" : // rcCommand Delta integer * 10
2294+ return `${ ( value / 10 ) . toFixed ( 1 ) } ` ;
2295+ case "debug[4]" : // jitter attenuator percent
2296+ return `${ ( value / 100 ) . toFixed ( 2 ) } %` ;
2297+ // case "debug[5]": boolean packet duplicate
2298+ // case "debug[6]": yaw feedforward
2299+ // case "debug[7]": yaw feedforward hold element
2300+ default :
2301+ return value . toFixed ( 0 ) ;
2302+ }
2303+ case "FEEDFORWARD_LIMIT" :
2304+ switch ( fieldName ) {
2305+ case "debug[0]" : // jitter attenuator percent
2306+ return `${ ( value / 100 ) . toFixed ( 2 ) } %` ;
2307+ // case "debug[1]": max setpoint rate for the axis
2308+ // case "debug[2]": setpoint
2309+ // case "debug[3]": feedforward * 0.01
2310+ // case "debug[4]": setpoint speed un-smoothed * 0.01f
2311+ // case "debug[5]": setpoint speed smoothed * 0.01f
2312+ // case "debug[6]": feedforward smoothing PT1K * 1000
2313+ return `${ ( value / 10 ) . toFixed ( 1 ) } ` ;
2314+ case "debug[7]" : // smoothed RxRateHz
2315+ return `${ value . toFixed ( 0 ) } Hz` ;
2316+ default :
2317+ return value . toFixed ( 0 ) ;
2318+ }
22422319 }
22432320 return value . toFixed ( 0 ) ;
22442321 }
@@ -2674,10 +2751,17 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
26742751 }
26752752 case "RC_SMOOTHING" :
26762753 switch ( fieldName ) {
2677- case "debug[0]" :
2678- return toFriendly ? value + 1500 : value - 1500 ; // us
2679- case "debug[3]" : // rx frame rate [us]
2680- return toFriendly ? value / 1000 : value * 1000 ; // ms
2754+ // case "debug[0]": // current Rx Rate Hz
2755+ // case "debug[1]": // smoothed but stepped Rx Rate Hz
2756+ // case "debug[2]": // setpoint cutoff Hz
2757+ // case "debug[3]": // throttle cutoff Hz
2758+ // case "debug[5]": // smoothed Rx Rate Hz, without steps
2759+ // return `${value.toFixed(0)} Hz`;
2760+ case "debug[4]" : // debug 4 is Feedforward PT1k range 0-1000
2761+ // return `${(value / 1000).toFixed(2)}`;
2762+ return toFriendly ? value / 10 : value * 10 ; //
2763+ // debug 6 is outlier count 0-3
2764+ // debug 7 is valid count 0-3
26812765 default :
26822766 return value ;
26832767 }
@@ -2728,9 +2812,16 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
27282812 return toFriendly ? value / 10 : value * 10 ; // °
27292813 case "RX_TIMING" :
27302814 switch ( fieldName ) {
2731- case "debug[0]" : // Frame delta us/10
2732- case "debug[1 ]" : // Frame age us/10
2815+ case "debug[0]" : // packet interval in hundredths of ms
2816+ case "debug[3 ]" : // constrained packet interval in hundredths of ms
27332817 return toFriendly ? value / 100 : value * 100 ; //ms
2818+ case "debug[1]" : // Frame time stamp us/100
2819+ return toFriendly ? value / 10 : value * 10 ; //ms
2820+ // debug 2 is isRateValid boolean
2821+ // debug 4 is current Rx Rate, Hz
2822+ // debug 5 is smoothed Rx Rate, Hz
2823+ // debug 6 is link wuality
2824+ // debug 7 is isReceivingSignal boolean
27342825 default :
27352826 return value ;
27362827 }
@@ -2938,6 +3029,37 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
29383029 default :
29393030 return value ;
29403031 }
3032+ case "FEEDFORWARD" :
3033+ switch ( fieldName ) {
3034+ // case "debug[0]": setpoint
3035+ // case "debug[1]": setpoint speed * 0.01f
3036+ // case "debug[2]": feedforward boost * 0.01f
3037+ case "debug[3]" : // rcCommand Delta integer * 10
3038+ return toFriendly ? value / 10 : value * 10 ;
3039+ // case "debug[4]": // jitter attenuator percent
3040+ // case "debug[5]": boolean packet duplicate
3041+ // case "debug[6]": yaw feedforward
3042+ // case "debug[7]": yaw feedforward hold element
3043+ default :
3044+ return value ;
3045+ }
3046+ case "FEEDFORWARD_LIMIT" :
3047+ switch ( fieldName ) {
3048+ // case "debug[0]": // jitter attenuator percent
3049+ // return `${(value / 100).toFixed(2)} %`;
3050+ // case "debug[1]": max setpoint rate for the axis
3051+ // case "debug[2]": setpoint
3052+ // case "debug[3]": feedforward * 0.01
3053+ // case "debug[4]": setpoint speed un-smoothed * 0.01f
3054+ // case "debug[5]": setpoint speed smoothed * 0.01f
3055+ case "debug[6]" : //feedforward smoothing PT1K * 1000
3056+ // return `${(value / 10).toFixed(1)}`;
3057+ return toFriendly ? value / 10 : value * 10 ;
3058+ // case "debug[7]": // smoothed RxRateHz
3059+ //return `${value.toFixed(0)} Hz`;
3060+ default :
3061+ return value ;
3062+ }
29413063 }
29423064 }
29433065 return value ;
0 commit comments