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:
parent
a4ee4102d7
commit
d8ff795327
2 changed files with 40 additions and 2 deletions
|
@ -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"
|
||||||
|
|
|
@ -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: {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue