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

temporarily removed throttle calibration. broken until further notice.

implemented channel order selection (map in cli). example "map AETR1234" -> ail, ele, throttle, rudder, aux1234. thanks simon for all the halp on this one. truly a mindfuck.

git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@126 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
This commit is contained in:
timecop 2012-03-24 07:10:17 +00:00
parent 670390e7a6
commit 0534444b2d
8 changed files with 2421 additions and 2844 deletions

View file

@ -7,6 +7,7 @@ static void cliDefaults(char *cmdline);
static void cliExit(char *cmdline);
static void cliFeature(char *cmdline);
static void cliHelp(char *cmdline);
static void cliMap(char *cmdline);
static void cliMixer(char *cmdline);
static void cliSave(char *cmdline);
static void cliSet(char *cmdline);
@ -16,6 +17,9 @@ static void cliVersion(char *cmdline);
// from sensors.c
extern uint8_t batteryCellCount;
// from config.c RC Channel mapping
extern const char rcChannelLetters[];
// buffer
static char cliBuffer[32];
static uint8_t bufferIndex = 0;
@ -47,6 +51,7 @@ const clicmd_t cmdTable[] = {
{ "exit", "", cliExit },
{ "feature", "list or -val or val", cliFeature },
{ "help", "", cliHelp },
{ "map", "mapping of first 4 channels", cliMap },
{ "mixer", "mixer name or list", cliMixer },
{ "save", "save and reboot", cliSave },
{ "set", "name=value or blank for list", cliSet },
@ -245,6 +250,42 @@ static void cliHelp(char *cmdline)
}
}
static void cliMap(char *cmdline)
{
uint8_t len;
uint8_t i;
char out[9];
len = strlen(cmdline);
if (len == 0 || len != 8) {
uartPrint("Current assignment: ");
for (i = 0; i < 8; i++)
out[cfg.rcmap[i]] = rcChannelLetters[i];
out[i] = '\0';
uartPrint(out);
uartPrint("\r\n");
return;
} else {
bool fail = false;
// uppercase it
for (i = 0; i < 8; i++) {
cmdline[i] = toupper(cmdline[i]);
if (!strchr(rcChannelLetters, cmdline[i])) {
fail = true;
break;
}
}
if (fail)
uartPrint("Must be any order of AETR1234\r\n");
else {
parseRcChannels(cmdline);
cliMap("");
}
}
}
static void cliMixer(char *cmdline)
{
uint8_t i;