@@ -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,18 +2011,26 @@ FlightLogFieldPresenter.decodeDebugFieldToFriendly = function (
19672011 }
19682012 case "RC_SMOOTHING" :
19692013 switch ( fieldName ) {
1970- case "debug[0]" :
1971- return `${ ( value + 1500 ) . toFixed ( 0 ) } us` ;
1972- case "debug[3]" : // rx frame rate [us]
1973- return `${ ( value / 1000 ) . toFixed ( 1 ) } ms` ;
2014+ case "debug[0]" : // current Rx Rate Hz
2015+ case "debug[1]" : // smoothed but stepped Rx Rate Hz
2016+ case "debug[2]" : // setpoint cutoff Hz
2017+ case "debug[3]" : // throttle cutoff Hz
2018+ case "debug[5]" : // smoothed Rx Rate Hz, without steps
2019+ return `${ value . toFixed ( 0 ) } Hz` ;
2020+ case "debug[4]" : // Feedforward PT1k range 0-1000 show as 0.nnn
2021+ return `${ ( value / 1000 ) . toFixed ( 3 ) } ` ;
2022+ // debug 6 is outlier count 0-3
2023+ // debug 7 is valid count 0-3
19742024 default :
19752025 return value . toFixed ( 0 ) ;
19762026 }
19772027 case "RC_SMOOTHING_RATE" :
19782028 switch ( fieldName ) {
1979- case "debug[0]" : // current frame rate [us]
1980- case "debug[2]" : // average frame rate [us]
2029+ case "debug[0]" : // current Rx Interval [us]
19812030 return `${ ( value / 1000 ) . toFixed ( 2 ) } ms` ;
2031+ case "debug[2]" : // smoothed Rx Rate [Hz]
2032+ return `${ value . toFixed ( 0 ) } Hz` ;
2033+ // case "debug[3]": // flag to update smoothing
19822034 default :
19832035 return value . toFixed ( 0 ) ;
19842036 }
@@ -2026,9 +2078,17 @@ FlightLogFieldPresenter.decodeDebugFieldToFriendly = function (
20262078 return `${ ( value / 10 ) . toFixed ( 1 ) } °` ;
20272079 case "RX_TIMING" :
20282080 switch ( fieldName ) {
2029- case "debug[0]" : // Frame delta us/10
2030- case "debug[1 ]" : // Frame age us/10
2081+ case "debug[0]" : // Packet interval us/10
2082+ case "debug[3 ]" : // Constrained packet interval us/10
20312083 return `${ ( value / 100 ) . toFixed ( 2 ) } ms` ;
2084+ case "debug[1]" : // Packet time stamp us/100, divide by 10 to ms
2085+ return `${ ( value / 10 ) . toFixed ( 1 ) } ms` ;
2086+ case "debug[4]" : // Rx Rate Hz
2087+ case "debug[5]" : // Smoothed Rx RateHz
2088+ return `${ value . toFixed ( 0 ) } Hz` ;
2089+ case "debug[6]" : // LQ Percent
2090+ case "debug[2]" : // isRateValid boolean
2091+ case "debug[7]" : // Is Receiving Signal boolean
20322092 default :
20332093 return value . toFixed ( 0 ) ;
20342094 }
@@ -2239,6 +2299,39 @@ FlightLogFieldPresenter.decodeDebugFieldToFriendly = function (
22392299 default :
22402300 return value . toFixed ( 1 ) ;
22412301 }
2302+ case "FEEDFORWARD" :
2303+ switch ( fieldName ) {
2304+ case "debug[0]" : // setpoint
2305+ return `${ value . toFixed ( 0 ) } °/s` ;
2306+ case "debug[1]" : // setpoint speed
2307+ return `${ value . toFixed ( 0 ) } °/s/s` ;
2308+ // case "debug[2]": feedforward boost
2309+ case "debug[3]" : // rcCommand Delta integer * 10
2310+ return `${ ( value / 10 ) . toFixed ( 1 ) } ` ;
2311+ case "debug[4]" : // jitter attenuator percent
2312+ return `${ value . toFixed ( 0 ) } %` ;
2313+ // case "debug[5]": boolean packet duplicate
2314+ // case "debug[6]": yaw feedforward
2315+ // case "debug[7]": yaw feedforward hold element
2316+ default :
2317+ return value . toFixed ( 0 ) ;
2318+ }
2319+ case "FEEDFORWARD_LIMIT" :
2320+ switch ( fieldName ) {
2321+ case "debug[0]" : // jitter attenuator percent
2322+ return `${ value . toFixed ( 0 ) } %` ;
2323+ // case "debug[1]": max setpoint rate for the axis
2324+ // case "debug[2]": setpoint
2325+ // case "debug[3]": feedforward
2326+ // case "debug[4]": setpoint speed un-smoothed
2327+ // case "debug[5]": setpoint speed smoothed
2328+ case "debug[6]" : // feedforward smoothing PT1K * 1000
2329+ return `${ ( value / 1000 ) . toFixed ( 3 ) } ` ;
2330+ case "debug[7]" : // smoothed RxRateHz
2331+ return `${ value . toFixed ( 0 ) } Hz` ;
2332+ default :
2333+ return value . toFixed ( 0 ) ;
2334+ }
22422335 }
22432336 return value . toFixed ( 0 ) ;
22442337 }
@@ -2674,18 +2767,24 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
26742767 }
26752768 case "RC_SMOOTHING" :
26762769 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
2770+ // case "debug[0]": // current Rx Rate Hz
2771+ // case "debug[1]": // smoothed but stepped Rx Rate Hz
2772+ // case "debug[2]": // setpoint cutoff Hz
2773+ // case "debug[3]": // throttle cutoff Hz
2774+ // case "debug[5]": // smoothed Rx Rate Hz, without steps
2775+ case "debug[4]" : // Feedforward PT1K range 0-1000 show as 0.mmm
2776+ return toFriendly ? value / 1000 : value * 1000 ;
2777+ // debug 6 is outlier count 0-3
2778+ // debug 7 is valid count 0-3
26812779 default :
26822780 return value ;
26832781 }
26842782 case "RC_SMOOTHING_RATE" :
26852783 switch ( fieldName ) {
26862784 case "debug[0]" : // current frame rate [us]
2687- case "debug[2]" : // average frame rate [us]
26882785 return toFriendly ? value / 1000 : value * 1000 ; // ms
2786+ case "debug[2]" : // smoothed RxRate [Hz]
2787+ case "debug[3]" : // boolean indicating need to update smoothing
26892788 default :
26902789 return value ;
26912790 }
@@ -2728,9 +2827,16 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
27282827 return toFriendly ? value / 10 : value * 10 ; // °
27292828 case "RX_TIMING" :
27302829 switch ( fieldName ) {
2731- case "debug[0]" : // Frame delta us/10
2732- case "debug[1 ]" : // Frame age us/10
2830+ case "debug[0]" : // packet interval in hundredths of ms
2831+ case "debug[3 ]" : // constrained packet interval in hundredths of ms
27332832 return toFriendly ? value / 100 : value * 100 ; //ms
2833+ case "debug[1]" : // Frame time stamp us/100
2834+ return toFriendly ? value / 10 : value * 10 ; //ms
2835+ // debug 2 is isRateValid boolean
2836+ // debug 4 is current Rx Rate, Hz
2837+ // debug 5 is smoothed Rx Rate, Hz
2838+ // debug 6 is link quality
2839+ // debug 7 is isReceivingSignal boolean
27342840 default :
27352841 return value ;
27362842 }
@@ -2938,6 +3044,34 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
29383044 default :
29393045 return value ;
29403046 }
3047+ case "FEEDFORWARD" :
3048+ switch ( fieldName ) {
3049+ // case "debug[0]": // setpoint
3050+ // case "debug[1]": // setpoint speed
3051+ // case "debug[2]": //feedforward boost
3052+ case "debug[3]" : // rcCommand Delta integer * 10
3053+ return toFriendly ? value / 10 : value * 10 ;
3054+ // case "debug[4]": // jitter attenuator percent
3055+ // case "debug[5]": // boolean indicating packet duplicate
3056+ // case "debug[6]": // yaw feedforward
3057+ // case "debug[7]": // yaw feedforward hold element
3058+ default :
3059+ return value ;
3060+ }
3061+ case "FEEDFORWARD_LIMIT" :
3062+ switch ( fieldName ) {
3063+ // case "debug[0]": // jitter attenuator percent
3064+ // case "debug[1]": // max setpoint rate for the axis
3065+ // case "debug[2]": // setpoint
3066+ // case "debug[3]": // feedforward
3067+ // case "debug[4]": // setpoint speed un-smoothed
3068+ // case "debug[5]": // setpoint speed smoothed
3069+ case "debug[6]" : //feedforward smoothing PT1K * 1000 show as 0.nnn
3070+ return toFriendly ? value / 1000 : value * 1000 ;
3071+ // case "debug[7]": // smoothed RxRateHz
3072+ default :
3073+ return value ;
3074+ }
29413075 }
29423076 }
29433077 return value ;
0 commit comments