Skip to content
136 changes: 129 additions & 7 deletions src/flightlog_fields_presenter.js
Original file line number Diff line number Diff line change
Expand Up @@ -1441,6 +1441,50 @@ FlightLogFieldPresenter.adjustDebugDefsList = function (
'debug[6]': 'pidD',
'debug[7]': 'pidA',
};
DEBUG_FRIENDLY_FIELD_NAMES.FEEDFORWARD = {
"debug[all]": "Feedforward [debug_axis]",
"debug[0]": "Setpoint, un-smoothed",
"debug[1]": "Delta, smoothed",
"debug[2]": "Boost, smoothed",
"debug[3]": "rcCommand Delta",
"debug[4]": "Jitter Attenuator",
"debug[5]": "Duplicate Flag",
"debug[6]": "Yaw FF BaseAmt",
"debug[7]": "Yaw FF HoldAmt",
};
DEBUG_FRIENDLY_FIELD_NAMES.FEEDFORWARD_LIMIT = {
"debug[all]": "Feedforward Limit",
"debug[0]": "Jitter Attenuator",
"debug[1]": "MaxRcRate [debugAxis]",
"debug[2]": "Setpoint",
"debug[3]": "Feedforward",
"debug[4]": "Setpoint Speed",
"debug[5]": "Setpoint Speed Smoothed",
"debug[6]": "FF PT1K",
"debug[7]": "Rx Rate",
};
DEBUG_FRIENDLY_FIELD_NAMES.RX_TIMING = {
"debug[all]": "Receiver Timing",
"debug[0]": "Frame Interval",
"debug[1]": "Frame TimeStamp",
"debug[2]": "Is Rate Valid",
"debug[3]": "Interval Constrained",
"debug[4]": "Rx Rate",
"debug[5]": "Smoothed Rx Rate",
"debug[6]": "LQ Percent",
"debug[7]": "Is Receiving Signal",
};
DEBUG_FRIENDLY_FIELD_NAMES.RC_SMOOTHING = {
"debug[all]": "Debug RC Smoothing",
"debug[0]": "Rx Rate Current",
"debug[1]": "Rx Rate For Cutoffs",
"debug[2]": "Cutoff Hz",
"debug[3]": "Throttle Cutoff Hz",
"debug[4]": "FF Smoothing PT1K",
"debug[5]": "Smoothed Rx Rate",
"debug[6]": "Outlier Count",
"debug[7]": "Valid Count",
};
}
}
};
Expand Down Expand Up @@ -1967,7 +2011,7 @@ FlightLogFieldPresenter.decodeDebugFieldToFriendly = function (
}
case "RC_SMOOTHING":
switch (fieldName) {
case "debug[0]":
case "debug[0]":
return `${(value + 1500).toFixed(0)} us`;
case "debug[3]": // rx frame rate [us]
return `${(value / 1000).toFixed(1)} ms`;
Expand Down Expand Up @@ -2239,6 +2283,39 @@ FlightLogFieldPresenter.decodeDebugFieldToFriendly = function (
default:
return value.toFixed(1);
}
case "FEEDFORWARD":
switch (fieldName) {
case "debug[0]": // setpoint
return `${value.toFixed(0)} °/s`;
case "debug[1]": // setpoint speed * 0.01f
return `${value.toFixed(0)} °/s/s`;
// case "debug[2]": feedforward boost * 0.01f
case "debug[3]": // rcCommand Delta integer * 10
return `${(value / 10).toFixed(1)}`;
case "debug[4]": // jitter attenuator percent
return `${(value / 100).toFixed(2)} %`;
// case "debug[5]": boolean packet duplicate
// case "debug[6]": yaw feedforward
// case "debug[7]": yaw feedforward hold element
default:
return value.toFixed(0);
}
case "FEEDFORWARD_LIMIT":
switch (fieldName) {
case "debug[0]": // jitter attenuator percent
return `${(value / 100).toFixed(2)} %`;
// case "debug[1]": max setpoint rate for the axis
// case "debug[2]": setpoint
// case "debug[3]": feedforward * 0.01
// case "debug[4]": setpoint speed un-smoothed * 0.01f
// case "debug[5]": setpoint speed smoothed * 0.01f
// case "debug[6]": feedforward smoothing PT1K * 1000
return `${(value / 10).toFixed(1)}`;
case "debug[7]": // smoothed RxRateHz
return `${value.toFixed(0)} Hz`;
default:
return value.toFixed(0);
}
}
return value.toFixed(0);
}
Expand Down Expand Up @@ -2674,10 +2751,17 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
}
case "RC_SMOOTHING":
switch (fieldName) {
case "debug[0]":
return toFriendly ? value + 1500 : value - 1500; // us
case "debug[3]": // rx frame rate [us]
return toFriendly ? value / 1000 : value * 1000; // ms
// case "debug[0]": // current Rx Rate Hz
// case "debug[1]": // smoothed but stepped Rx Rate Hz
// case "debug[2]": // setpoint cutoff Hz
// case "debug[3]": // throttle cutoff Hz
// case "debug[5]": // smoothed Rx Rate Hz, without steps
// return `${value.toFixed(0)} Hz`;
case "debug[4]": // debug 4 is Feedforward PT1k range 0-1000
// return `${(value / 1000).toFixed(2)}`;
return toFriendly ? value / 10 : value * 10; //
// debug 6 is outlier count 0-3
// debug 7 is valid count 0-3
default:
return value;
}
Expand Down Expand Up @@ -2728,9 +2812,16 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
return toFriendly ? value / 10 : value * 10; // °
case "RX_TIMING":
switch (fieldName) {
case "debug[0]": // Frame delta us/10
case "debug[1]": // Frame age us/10
case "debug[0]": // packet interval in hundredths of ms
case "debug[3]": // constrained packet interval in hundredths of ms
return toFriendly ? value / 100 : value * 100; //ms
case "debug[1]": // Frame time stamp us/100
return toFriendly ? value / 10 : value * 10; //ms
// debug 2 is isRateValid boolean
// debug 4 is current Rx Rate, Hz
// debug 5 is smoothed Rx Rate, Hz
// debug 6 is link wuality
// debug 7 is isReceivingSignal boolean
default:
return value;
}
Expand Down Expand Up @@ -2938,6 +3029,37 @@ FlightLogFieldPresenter.ConvertDebugFieldValue = function (
default:
return value;
}
case "FEEDFORWARD":
switch (fieldName) {
// case "debug[0]": setpoint
// case "debug[1]": setpoint speed * 0.01f
// case "debug[2]": feedforward boost * 0.01f
case "debug[3]": // rcCommand Delta integer * 10
return toFriendly ? value / 10 : value * 10;
// case "debug[4]": // jitter attenuator percent
// case "debug[5]": boolean packet duplicate
// case "debug[6]": yaw feedforward
// case "debug[7]": yaw feedforward hold element
default:
return value;
}
case "FEEDFORWARD_LIMIT":
switch (fieldName) {
// case "debug[0]": // jitter attenuator percent
// return `${(value / 100).toFixed(2)} %`;
// case "debug[1]": max setpoint rate for the axis
// case "debug[2]": setpoint
// case "debug[3]": feedforward * 0.01
// case "debug[4]": setpoint speed un-smoothed * 0.01f
// case "debug[5]": setpoint speed smoothed * 0.01f
case "debug[6]": //feedforward smoothing PT1K * 1000
// return `${(value / 10).toFixed(1)}`;
return toFriendly ? value / 10 : value * 10;
// case "debug[7]": // smoothed RxRateHz
//return `${value.toFixed(0)} Hz`;
default:
return value;
}
}
}
return value;
Expand Down