1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-14 20:10:18 +03:00

Added command feedback.

This commit is contained in:
mikeller 2019-03-21 07:20:52 +13:00
parent 3974df6798
commit cf18d21ae6

View file

@ -4695,7 +4695,7 @@ dmaoptEntry_t dmaoptEntryTable[] = {
#define DMA_OPT_UI_INDEX(i) ((i) + 1) #define DMA_OPT_UI_INDEX(i) ((i) + 1)
#define DMA_OPT_STRING_BUFSIZE 5 #define DMA_OPT_STRING_BUFSIZE 5
static void dmaoptToString(int optval, char *buf) static void optToString(int optval, char *buf)
{ {
if (optval == DMA_OPT_UNUSED) { if (optval == DMA_OPT_UNUSED) {
memcpy(buf, "NONE", DMA_OPT_STRING_BUFSIZE); memcpy(buf, "NONE", DMA_OPT_STRING_BUFSIZE);
@ -4959,10 +4959,10 @@ static void cliDmaopt(char *cmdline)
} }
} }
char optvalString[5]; char optvalString[DMA_OPT_STRING_BUFSIZE];
char orgvalString[5]; char orgvalString[DMA_OPT_STRING_BUFSIZE];
dmaoptToString(optval, optvalString); optToString(optval, optvalString);
dmaoptToString(orgval, orgvalString); optToString(orgval, orgvalString);
if (optval != orgval) { if (optval != orgval) {
if (entry) { if (entry) {
@ -5178,7 +5178,6 @@ static void cliTimer(char *cmdline)
char *pch = NULL; char *pch = NULL;
char *saveptr; char *saveptr;
int timerIOIndex = -1;
ioTag_t ioTag = IO_TAG_NONE; ioTag_t ioTag = IO_TAG_NONE;
pch = strtok_r(cmdline, " ", &saveptr); pch = strtok_r(cmdline, " ", &saveptr);
@ -5188,16 +5187,22 @@ static void cliTimer(char *cmdline)
return; return;
} }
int timerIOIndex = -1;
bool isNewTimerOpt = false;
/* find existing entry, or go for next available */ /* find existing entry, or go for next available */
for (unsigned i = 0; i < MAX_TIMER_PINMAP_COUNT; i++) { for (unsigned i = 0; i < MAX_TIMER_PINMAP_COUNT; i++) {
if (timerIOConfig(i)->ioTag == ioTag) { if (timerIOConfig(i)->ioTag == ioTag) {
timerIOIndex = i; timerIOIndex = i;
break; break;
} }
/* first available empty slot */ /* first available empty slot */
if (timerIOIndex < 0 && timerIOConfig(i)->ioTag == IO_TAG_NONE) { if (timerIOConfig(i)->ioTag == IO_TAG_NONE) {
timerIOIndex = i; timerIOIndex = i;
isNewTimerOpt = true;
break;
} }
} }
@ -5230,10 +5235,23 @@ static void cliTimer(char *cmdline)
timerIndex = atoi(pch) + 1; timerIndex = atoi(pch) + 1;
} }
uint8_t oldTimerIndex = isNewTimerOpt ? 0 : timerIOConfig(timerIOIndex)->index;
timerIOConfigMutable(timerIOIndex)->ioTag = timerIndex == 0 ? IO_TAG_NONE : ioTag; timerIOConfigMutable(timerIOIndex)->ioTag = timerIndex == 0 ? IO_TAG_NONE : ioTag;
timerIOConfigMutable(timerIOIndex)->index = timerIndex; timerIOConfigMutable(timerIOIndex)->index = timerIndex;
timerIOConfigMutable(timerIOIndex)->dmaopt = DMA_OPT_UNUSED; timerIOConfigMutable(timerIOIndex)->dmaopt = DMA_OPT_UNUSED;
char optvalString[DMA_OPT_STRING_BUFSIZE];
optToString(timerIndex - 1, optvalString);
char orgvalString[DMA_OPT_STRING_BUFSIZE];
optToString(oldTimerIndex - 1, orgvalString);
if (timerIndex == oldTimerIndex) {
cliPrintLinef("timer %c%02d: no change: %s", IO_GPIOPortIdxByTag(ioTag) + 'A', IO_GPIOPinIdxByTag(ioTag), orgvalString);
} else {
cliPrintLinef("timer %c%02d: changed from %s to %s", IO_GPIOPortIdxByTag(ioTag) + 'A', IO_GPIOPinIdxByTag(ioTag), orgvalString, optvalString);
}
return; return;
} else { } else {
printTimerDetails(ioTag, timerIOConfig(timerIOIndex)->index, false, DUMP_MASTER, cliDumpPrintLinef); printTimerDetails(ioTag, timerIOConfig(timerIOIndex)->index, false, DUMP_MASTER, cliDumpPrintLinef);