1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 09:16:07 +03:00

Fix slow TLMBoost causing TX->RX MSP timeouts

This commit is contained in:
phobos- 2022-08-01 16:59:49 +02:00
parent 7ca3033279
commit 8e4f6e0021

View file

@ -122,10 +122,6 @@ uint8_t getCurrentTelemetryPayload(uint8_t *outData)
break; break;
case ELRS_SENDING: case ELRS_SENDING:
bytesLastPayload = MIN((uint8_t)(length - currentOffset), ELRS_TELEMETRY_BYTES_PER_CALL); bytesLastPayload = MIN((uint8_t)(length - currentOffset), ELRS_TELEMETRY_BYTES_PER_CALL);
for (unsigned n = 0; n < bytesLastPayload; ++n)
{
outData[n] = data[currentOffset + n];
}
// If this is the last data chunk, and there has been at least one other packet // If this is the last data chunk, and there has been at least one other packet
// skip the blank packet needed for WAIT_UNTIL_NEXT_CONFIRM // skip the blank packet needed for WAIT_UNTIL_NEXT_CONFIRM
if (currentPackage > 1 && (currentOffset + bytesLastPayload) >= length) { if (currentPackage > 1 && (currentOffset + bytesLastPayload) >= length) {
@ -133,6 +129,8 @@ uint8_t getCurrentTelemetryPayload(uint8_t *outData)
} else { } else {
packageIndex = currentPackage; packageIndex = currentPackage;
} }
memcpy(outData, &data[currentOffset], bytesLastPayload);
break; break;
default: default:
packageIndex = 0; packageIndex = 0;
@ -255,9 +253,8 @@ void receiveMspData(const uint8_t packageIndex, const volatile uint8_t* const re
if (acceptData) { if (acceptData) {
uint8_t len = MIN((uint8_t)(mspLength - mspCurrentOffset), ELRS_MSP_BYTES_PER_CALL); uint8_t len = MIN((uint8_t)(mspLength - mspCurrentOffset), ELRS_MSP_BYTES_PER_CALL);
for (unsigned i = 0; i < len; i++) { memcpy(&mspData[mspCurrentOffset], (const uint8_t*) receiveData, len);
mspData[mspCurrentOffset++] = receiveData[i]; mspCurrentOffset += len;
}
mspConfirm = !mspConfirm; mspConfirm = !mspConfirm;
} }
} }