1
0
Fork 0
mirror of https://github.com/EdgeTX/edgetx.git synced 2025-07-24 16:55:15 +03:00

[PXX2] Telemetry push fix

This commit is contained in:
Bertrand Songis 2019-03-21 10:00:52 +01:00
parent 725388b83e
commit 471d1c6f53
5 changed files with 18 additions and 8 deletions

View file

@ -480,6 +480,7 @@ static int luaPXX2TelemetryPush(lua_State * L)
packet.primId = luaL_checkunsigned(L, 4);
packet.dataId = luaL_checkunsigned(L, 5);
packet.value = luaL_checkunsigned(L, 6);
// TODO we could avoid this new copy
pushPXX2TelemetryPacket(module, rx_uid - 1, &packet);
lua_pushboolean(L, true);
}

View file

@ -43,7 +43,7 @@
#define INTMODULE_PXX_PERIOD 9/*ms*/
#endif
#define EXTMODULE_USART_PXX2_BAUDRATE 450000
#define EXTMODULE_USART_PXX2_BAUDRATE 400000
#if defined(PXX_FREQUENCY_HIGH) && (!defined(INTMODULE_USART) || !defined(EXTMODULE_USART))
/* PXX uses 20 bytes (as of Rev 1.1 document) with 8 changes per byte + stop bit ~= 162 max pulses */

View file

@ -107,6 +107,14 @@ void Pxx2Pulses::setupChannelsFrame(uint8_t module)
}
}
void Pxx2Pulses::setupTelemetryFrame(uint8_t module)
{
addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_TELEMETRY);
for (uint8_t i = 0; i < outputTelemetryBuffer.size; i++) {
Pxx2Transport::addByte(outputTelemetryBuffer.data[i]);
}
}
void Pxx2Pulses::setupHardwareInfoFrame(uint8_t module)
{
if (reusableBuffer.hardware.modules[module].step >= -1 && reusableBuffer.hardware.modules[module].step < PXX2_MAX_RECEIVERS_PER_MODULE) {
@ -271,7 +279,12 @@ void Pxx2Pulses::setupFrame(uint8_t module)
setupShareMode(module);
break;
default:
if (outputTelemetryBuffer.size > 0 && outputTelemetryBuffer.destination == module) {
setupTelemetryFrame(module);
}
else {
setupChannelsFrame(module);
}
break;
}

View file

@ -127,6 +127,8 @@ class Pxx2Pulses: public PxxPulses<Pxx2Transport> {
void setupChannelsFrame(uint8_t module);
void setupTelemetryFrame(uint8_t module);
void setupSpectrumAnalyser(uint8_t module);
void setupPowerMeter(uint8_t module);

View file

@ -135,12 +135,6 @@ void intmoduleSendNextFrame()
switch(moduleSettings[INTERNAL_MODULE].protocol) {
#if defined(PXX2)
case PROTOCOL_CHANNELS_PXX2:
#if defined(LUA)
if (outputTelemetryBuffer.size > 0 && outputTelemetryBuffer.destination == INTERNAL_MODULE) {
intmoduleSendBuffer(outputTelemetryBuffer.data, outputTelemetryBuffer.size);
break;
}
#endif
intmoduleSendBuffer(intmodulePulsesData.pxx2.getData(), intmodulePulsesData.pxx2.getSize());
break;
#endif