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:
parent
3974df6798
commit
cf18d21ae6
1 changed files with 25 additions and 7 deletions
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue