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

Fixup fc_msp.c (and fc_core.c)

This commit is contained in:
jflyper 2017-06-11 01:49:52 +09:00
parent a4ee4102d7
commit d8ff795327
2 changed files with 40 additions and 2 deletions

View file

@ -36,6 +36,7 @@
#include "drivers/gyro_sync.h" #include "drivers/gyro_sync.h"
#include "drivers/light_led.h" #include "drivers/light_led.h"
#include "drivers/time.h" #include "drivers/time.h"
#include "drivers/transponder_ir.h"
#include "sensors/acceleration.h" #include "sensors/acceleration.h"
#include "sensors/barometer.h" #include "sensors/barometer.h"

View file

@ -749,8 +749,24 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce
break; break;
case MSP_TRANSPONDER_CONFIG: case MSP_TRANSPONDER_CONFIG:
{
#ifdef TRANSPONDER #ifdef TRANSPONDER
sbufWriteU8(dst, 1); //Transponder supported uint8_t header = 1; //transponder supported
switch(transponderConfig()->provider){
case ILAP:
header |= 0x02;
break;
case ARCITIMER:
header |= 0x04;
break;
default:
break;
}
header |= (sizeof(transponderConfig()->data) << 4);
sbufWriteU8(dst, header);
for (unsigned int i = 0; i < sizeof(transponderConfig()->data); i++) { for (unsigned int i = 0; i < sizeof(transponderConfig()->data); i++) {
sbufWriteU8(dst, transponderConfig()->data[i]); sbufWriteU8(dst, transponderConfig()->data[i]);
} }
@ -758,6 +774,7 @@ static bool mspCommonProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProce
sbufWriteU8(dst, 0); // Transponder not supported sbufWriteU8(dst, 0); // Transponder not supported
#endif #endif
break; break;
}
case MSP_OSD_CONFIG: { case MSP_OSD_CONFIG: {
#define OSD_FLAGS_OSD_FEATURE (1 << 0) #define OSD_FLAGS_OSD_FEATURE (1 << 0)
@ -1988,7 +2005,26 @@ static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
switch (cmdMSP) { switch (cmdMSP) {
#ifdef TRANSPONDER #ifdef TRANSPONDER
case MSP_SET_TRANSPONDER_CONFIG: case MSP_SET_TRANSPONDER_CONFIG:
if (dataSize != sizeof(transponderConfig()->data)) { {
uint8_t tmp = sbufReadU8(src);
uint8_t type;
switch(tmp){
case 0x02:
type = ILAP;
break;
case 0x04:
type = ARCITIMER;
break;
}
if(type != transponderConfig()->provider){
transponderStopRepeating();
}
transponderConfigMutable()->provider = type;
if (dataSize != sizeof(transponderConfig()->data) + 1) {
return MSP_RESULT_ERROR; return MSP_RESULT_ERROR;
} }
for (unsigned int i = 0; i < sizeof(transponderConfig()->data); i++) { for (unsigned int i = 0; i < sizeof(transponderConfig()->data); i++) {
@ -1996,6 +2032,7 @@ static mspResult_e mspCommonProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
} }
transponderUpdateData(); transponderUpdateData();
break; break;
}
#endif #endif
case MSP_SET_VOLTAGE_METER_CONFIG: { case MSP_SET_VOLTAGE_METER_CONFIG: {