mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-25 17:25:18 +03:00
First attempt at msp to get/set timer overrides
This commit is contained in:
parent
fe78217fc1
commit
06017a7ff2
2 changed files with 39 additions and 2 deletions
|
@ -3673,6 +3673,41 @@ bool mspFCProcessInOutCommand(uint16_t cmdMSP, sbuf_t *dst, sbuf_t *src, mspResu
|
|||
*ret = MSP_RESULT_ACK;
|
||||
break;
|
||||
#endif
|
||||
case MSP2_INAV_TIMER_OUTPUT_MODE:
|
||||
if (dataSize == 0) {
|
||||
for(int i =0; i < HARDWARE_TIMER_DEFINITION_COUNT; ++i) {
|
||||
sbufWriteU8(dst, i);
|
||||
sbufWriteU8(dst, timerOverrides(i)->outputMode);
|
||||
}
|
||||
*ret = MSP_RESULT_ACK;
|
||||
} else if(dataSize == 1) {
|
||||
uint8_t timer = sbufReadU8(src);
|
||||
if(timer < HARDWARE_TIMER_DEFINITION_COUNT) {
|
||||
sbufWriteU8(dst, timer);
|
||||
sbufWriteU8(dst, timerOverrides(timer)->outputMode);
|
||||
*ret = MSP_RESULT_ACK;
|
||||
} else {
|
||||
*ret = MSP_RESULT_ERROR;
|
||||
}
|
||||
} else {
|
||||
*ret = MSP_RESULT_ERROR;
|
||||
}
|
||||
break;
|
||||
case MSP2_INAV_SET_TIMER_OUTPUT_MODE:
|
||||
if(dataSize == 2) {
|
||||
uint8_t timer = sbufReadU8(src);
|
||||
uint8_t outputMode = sbufReadU8(src);
|
||||
if(timer < HARDWARE_TIMER_DEFINITION_COUNT) {
|
||||
timerOverridesMutable(timer)->outputMode = outputMode;
|
||||
*ret = MSP_RESULT_ACK;
|
||||
} else {
|
||||
*ret = MSP_RESULT_ERROR;
|
||||
}
|
||||
} else {
|
||||
*ret = MSP_RESULT_ERROR;
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
// Not handled
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
#define MSP2_INAV_MC_BRAKING 0x200B
|
||||
#define MSP2_INAV_SET_MC_BRAKING 0x200C
|
||||
#define MSP2_INAV_OUTPUT_MAPPING_EXT 0x200D
|
||||
#define MSP2_INAV_TIMER_OUTPUT_MODE 0x200E
|
||||
#define MSP2_INAV_SET_TIMER_OUTPUT_MODE 0x200F
|
||||
|
||||
#define MSP2_INAV_MIXER 0x2010
|
||||
#define MSP2_INAV_SET_MIXER 0x2011
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue