1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-13 11:29:58 +03:00

Dshot RPM Telemetry Refactoring (#13012)

This commit is contained in:
Jan Post 2023-12-03 05:16:35 +01:00 committed by GitHub
parent 0c9d7e6c50
commit 5769b3021e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 166 additions and 112 deletions

View file

@ -1123,7 +1123,7 @@ static bool mspProcessOutCommand(mspDescriptor_t srcDesc, int16_t cmdMSP, sbuf_t
// Added in API version 1.46
// Write CPU temp
#ifdef USE_ADC_INTERNAL
#ifdef USE_ADC_INTERNAL
sbufWriteU16(dst, getCoreTemperatureCelsius());
#else
sbufWriteU16(dst, 0);
@ -1236,7 +1236,7 @@ case MSP_NAME:
#ifdef USE_DSHOT_TELEMETRY
if (motorConfig()->dev.useDshotTelemetry) {
rpm = erpmToRpm(getDshotTelemetry(i));
rpm = lrintf(getDshotRpm(i));
rpmDataAvailable = true;
invalidPct = 10000; // 100.00%
@ -1272,7 +1272,7 @@ case MSP_NAME:
if (featureIsEnabled(FEATURE_ESC_SENSOR)) {
escSensorData_t *escData = getEscSensorData(i);
if (!rpmDataAvailable) { // We want DSHOT telemetry RPM data (if available) to have precedence
rpm = erpmToRpm(escData->rpm);
rpm = lrintf(erpmToRpm(escData->rpm));
rpmDataAvailable = true;
}
escTemperature = escData->temperature;
@ -1495,7 +1495,7 @@ case MSP_NAME:
sbufWriteU8(dst, getMotorCount());
for (int i = 0; i < getMotorCount(); i++) {
sbufWriteU8(dst, dshotTelemetryState.motorState[i].telemetryData[DSHOT_TELEMETRY_TYPE_TEMPERATURE]);
sbufWriteU16(dst, getDshotTelemetry(i) * 100 * 2 / motorConfig()->motorPoleCount);
sbufWriteU16(dst, lrintf(getDshotRpm(i)));
}
}
else