1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-19 22:35:12 +03:00

Fixes (TELEMETRY DATA0 missing)

This commit is contained in:
Bertrand Songis 2019-03-05 11:46:39 +01:00
parent b2e6d0da7a
commit 9fbff6e67d
4 changed files with 35 additions and 34 deletions

View file

@ -104,7 +104,7 @@ void Pxx2Pulses::setupChannelsFrame(uint8_t module)
}
}
bool Pxx2Pulses::setupRegisterFrame(uint8_t module)
void Pxx2Pulses::setupRegisterFrame(uint8_t module)
{
addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_REGISTER);
@ -120,23 +120,22 @@ bool Pxx2Pulses::setupRegisterFrame(uint8_t module)
else {
Pxx2Transport::addByte(0);
}
return true; // TODO not always
}
bool Pxx2Pulses::setupBindFrame(uint8_t module)
void Pxx2Pulses::setupBindFrame(uint8_t module)
{
addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_BIND);
if (reusableBuffer.moduleSetup.pxx2.bindStep == BIND_WAIT) {
if (get_tmr10ms() > reusableBuffer.moduleSetup.pxx2.bindWaitTimeout) {
moduleSettings[module].mode = MODULE_MODE_NORMAL;
reusableBuffer.moduleSetup.pxx2.bindStep = BIND_OK;
POPUP_INFORMATION(STR_BIND_OK);
}
return false;
return;
}
else if (reusableBuffer.moduleSetup.pxx2.bindStep == BIND_RX_NAME_SELECTED) {
addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_BIND);
if (reusableBuffer.moduleSetup.pxx2.bindStep == BIND_RX_NAME_SELECTED) {
Pxx2Transport::addByte(0x01);
for (uint8_t i=0; i<PXX2_LEN_RX_NAME; i++) {
Pxx2Transport::addByte(reusableBuffer.moduleSetup.pxx2.bindCandidateReceiversNames[reusableBuffer.moduleSetup.pxx2.bindSelectedReceiverIndex][i]);
@ -150,15 +149,13 @@ bool Pxx2Pulses::setupBindFrame(uint8_t module)
Pxx2Transport::addByte(zchar2char(g_model.modelRegistrationID[i]));
}
}
return true; // TODO not always
}
bool Pxx2Pulses::setupSpectrumAnalyser(uint8_t module)
void Pxx2Pulses::setupSpectrumAnalyser(uint8_t module)
{
if (moduleSettings[module].counter > 1000) {
moduleSettings[module].counter = 1002;
return false;
return;
}
moduleSettings[module].counter = 1002;
@ -174,11 +171,9 @@ bool Pxx2Pulses::setupSpectrumAnalyser(uint8_t module)
reusableBuffer.spectrum.step = 100000; // 100KHz
Pxx2Transport::addWord(reusableBuffer.spectrum.step);
return true;
}
bool Pxx2Pulses::setupShareMode(uint8_t module)
void Pxx2Pulses::setupShareMode(uint8_t module)
{
addFrameType(PXX2_TYPE_C_MODULE, PXX2_TYPE_ID_RX_SETUP);
@ -191,24 +186,22 @@ bool Pxx2Pulses::setupShareMode(uint8_t module)
}
moduleSettings[module].mode = MODULE_MODE_NORMAL;
return true;
}
bool Pxx2Pulses::setupFrame(uint8_t module)
void Pxx2Pulses::setupFrame(uint8_t module)
{
initFrame();
bool result = true;
uint8_t mode = moduleSettings[module].mode;
if (mode == MODULE_MODE_REGISTER)
result = setupRegisterFrame(module);
setupRegisterFrame(module);
else if (mode == MODULE_MODE_BIND)
result = setupBindFrame(module);
setupBindFrame(module);
else if (mode == MODULE_MODE_SPECTRUM_ANALYSER)
result = setupSpectrumAnalyser(module);
setupSpectrumAnalyser(module);
else if (mode == MODULE_MODE_SHARE)
result = setupShareMode(module);
setupShareMode(module);
else
setupChannelsFrame(module);
@ -217,8 +210,6 @@ bool Pxx2Pulses::setupFrame(uint8_t module)
}
endFrame();
return result;
}
template class PxxPulses<Pxx2Transport>;

View file

@ -100,18 +100,18 @@ class Pxx2Transport: public DataBuffer<uint8_t, 64>, public Pxx2CrcMixin {
class Pxx2Pulses: public PxxPulses<Pxx2Transport> {
public:
bool setupFrame(uint8_t module);
void setupFrame(uint8_t module);
protected:
bool setupRegisterFrame(uint8_t module);
void setupRegisterFrame(uint8_t module);
bool setupBindFrame(uint8_t module);
void setupBindFrame(uint8_t module);
bool setupShareMode(uint8_t module);
void setupShareMode(uint8_t module);
void setupChannelsFrame(uint8_t module);
bool setupSpectrumAnalyser(uint8_t module);
void setupSpectrumAnalyser(uint8_t module);
void addHead()
{
@ -157,11 +157,18 @@ class Pxx2Pulses: public PxxPulses<Pxx2Transport> {
void endFrame()
{
// update the frame LEN = frame length minus the 2 first bytes
data[1] = getSize() - 2;
uint8_t size = getSize() - 2;
// now add the CRC
addCrc();
if (size > 0) {
// update the frame LEN = frame length minus the 2 first bytes
data[1] = getSize() - 2;
// now add the CRC
addCrc();
}
else {
Pxx2Transport::initBuffer();
}
}
};

View file

@ -92,6 +92,9 @@ extern "C" void INTMODULE_USART_IRQHandler(void)
void intmoduleSendBuffer(const uint8_t * data, uint8_t size)
{
if (size == 0)
return;
DMA_InitTypeDef DMA_InitStructure;
DMA_DeInit(INTMODULE_DMA_STREAM);
DMA_InitStructure.DMA_Channel = INTMODULE_DMA_CHANNEL;

View file

@ -123,7 +123,7 @@ void processBindFrame(uint8_t module, uint8_t * frame)
void processTelemetryFrame(uint8_t module, uint8_t * frame)
{
sportProcessTelemetryPacketWithoutCrc(&frame[3]);
sportProcessTelemetryPacketWithoutCrc(&frame[2]);
}
void processSpectrumFrame(uint8_t module, uint8_t * frame)