static void cliDump(char *cmdline) { int i; char buf[16]; float thr, roll, pitch, yaw; uint32_t mask; const clivalue_t *setval; printf("Current Config: Copy everything below here...\r\n"); // print out aux switches cliAux(""); // print out current motor mix printf("mixer %s\r\n", mixerNames[mcfg.mixerConfiguration - 1]); // print custom mix if exists if (mcfg.customMixer[0].throttle != 0.0f) { for (i = 0; i < MAX_MOTORS; i++) { if (mcfg.customMixer[i].throttle == 0.0f) break; thr = mcfg.customMixer[i].throttle; roll = mcfg.customMixer[i].roll; pitch = mcfg.customMixer[i].pitch; yaw = mcfg.customMixer[i].yaw; printf("cmix %d", i + 1); if (thr < 0) printf(" "); printf("%s", ftoa(thr, buf)); if (roll < 0) printf(" "); printf("%s", ftoa(roll, buf)); if (pitch < 0) printf(" "); printf("%s", ftoa(pitch, buf)); if (yaw < 0) printf(" "); printf("%s\r\n", ftoa(yaw, buf)); } printf("cmix %d 0 0 0 0\r\n", i + 1); } // print enabled features mask = featureMask(); for (i = 0; ; i++) { // disable all feature first if (featureNames[i] == NULL) break; printf("feature -%s\r\n", featureNames[i]); } for (i = 0; ; i++) { // reenable what we want. if (featureNames[i] == NULL) break; if (mask & (1 << i)) printf("feature %s\r\n", featureNames[i]); } // print RC MAPPING for (i = 0; i < 8; i++) buf[mcfg.rcmap[i]] = rcChannelLetters[i]; buf[i] = '\0'; printf("map %s\r\n", buf); // print settings for (i = 0; i < VALUE_COUNT; i++) { setval = &valueTable[i]; printf("set %s = ", valueTable[i].name); cliPrintVar(setval, 0); cliPrint("\r\n"); } }
static void cliDump(char *cmdline) { (void)cmdline; unsigned int i, channel; char buf[16]; float thr, roll, pitch, yaw; uint32_t mask; const clivalue_t *setval; cliVersion(NULL); printf("Current Config: Copy everything below here...\r\n"); // print out aux switches cliAux(""); // print out current motor mix printf("mixer %s\r\n", mixerNames[mcfg.mixerConfiguration - 1]); // print custom mix if exists if (mcfg.customMixer[0].throttle != 0.0f) { for (i = 0; i < MAX_MOTORS; i++) { if (mcfg.customMixer[i].throttle == 0.0f) break; thr = mcfg.customMixer[i].throttle; roll = mcfg.customMixer[i].roll; pitch = mcfg.customMixer[i].pitch; yaw = mcfg.customMixer[i].yaw; printf("cmix %d", i + 1); if (thr < 0) printf(" "); printf("%s", ftoa(thr, buf)); if (roll < 0) printf(" "); printf("%s", ftoa(roll, buf)); if (pitch < 0) printf(" "); printf("%s", ftoa(pitch, buf)); if (yaw < 0) printf(" "); printf("%s\r\n", ftoa(yaw, buf)); } printf("cmix %d 0 0 0 0\r\n", i + 1); } // print custom servo mixer if exists if (mcfg.customServoMixer[0].rate != 0) { for (i = 0; i < MAX_SERVO_RULES; i++) { if (mcfg.customServoMixer[i].rate == 0) break; printf("smix %d ", i + 1); printf("%d ", mcfg.customServoMixer[i].targetChannel + 1); printf("%d ", mcfg.customServoMixer[i].fromChannel + 1); printf("%d ", mcfg.customServoMixer[i].rate); printf("%d ", mcfg.customServoMixer[i].speed); printf("%d ", mcfg.customServoMixer[i].min); printf("%d ", mcfg.customServoMixer[i].max); printf("%d\r\n", mcfg.customServoMixer[i].box); } printf("smix %d 0 0 0 0\r\n", i + 1); } // print servo directions for (i = 0; i < MAX_SERVOS; i++) for (channel = 0; channel < INPUT_ITEMS; channel++) if (cfg.servoConf[i].direction & (1 << channel)) printf("smix direction %d %d -1\r\n", i + 1 , channel + 1); // print servo config for (i = 0; i < MAX_SERVOS; i++) printf("servo %d %d %d %d %d\r\n", i + 1, cfg.servoConf[i].min, cfg.servoConf[i].middle, cfg.servoConf[i].max, cfg.servoConf[i].rate); // print enabled features mask = featureMask(); for (i = 0; ; i++) { // disable all feature first if (featureNames[i] == NULL) break; printf("feature -%s\r\n", featureNames[i]); } for (i = 0; ; i++) { // reenable what we want. if (featureNames[i] == NULL) break; if (mask & (1 << i)) printf("feature %s\r\n", featureNames[i]); } // print RC MAPPING for (i = 0; i < mcfg.rc_channel_count; i++) buf[mcfg.rcmap[i]] = rcChannelLetters[i]; buf[i] = '\0'; printf("map %s\r\n", buf); // print settings for (i = 0; i < VALUE_COUNT; i++) { setval = &valueTable[i]; printf("set %s = ", valueTable[i].name); cliPrintVar(setval, 0); cliPrint("\r\n"); } }
static void cliDump(char *cmdline) { unsigned int i; char buf[17]; float thr, roll, pitch, yaw; uint32_t mask; uint8_t dumpMask = DUMP_ALL; if (strcasecmp(cmdline, "master") == 0) { dumpMask = DUMP_MASTER; // only } if (strcasecmp(cmdline, "profile") == 0) { dumpMask = DUMP_PROFILE; // only } if (dumpMask & DUMP_MASTER) { printf("\r\n# dump master\r\n"); printf("\r\n# mixer\r\n"); printf("mixer %s\r\n", mixerNames[masterConfig.mixerConfiguration - 1]); if (masterConfig.customMixer[0].throttle != 0.0f) { for (i = 0; i < MAX_SUPPORTED_MOTORS; i++) { if (masterConfig.customMixer[i].throttle == 0.0f) break; thr = masterConfig.customMixer[i].throttle; roll = masterConfig.customMixer[i].roll; pitch = masterConfig.customMixer[i].pitch; yaw = masterConfig.customMixer[i].yaw; printf("cmix %d", i + 1); if (thr < 0) printf(" "); printf("%s", ftoa(thr, buf)); if (roll < 0) printf(" "); printf("%s", ftoa(roll, buf)); if (pitch < 0) printf(" "); printf("%s", ftoa(pitch, buf)); if (yaw < 0) printf(" "); printf("%s\r\n", ftoa(yaw, buf)); } printf("cmix %d 0 0 0 0\r\n", i + 1); } printf("\r\n\r\n# feature\r\n"); mask = featureMask(); for (i = 0; ; i++) { // disable all feature first if (featureNames[i] == NULL) break; printf("feature -%s\r\n", featureNames[i]); } for (i = 0; ; i++) { // reenable what we want. if (featureNames[i] == NULL) break; if (mask & (1 << i)) printf("feature %s\r\n", featureNames[i]); } printf("\r\n\r\n# map\r\n"); for (i = 0; i < rxRuntimeConfig.channelCount; i++) buf[i] = '-'; buf[i] = '\0'; for (i = 0; i < 12; i++) if (masterConfig.rxConfig.rcmap[i] != -1) buf[masterConfig.rxConfig.rcmap[i]] = rcChannelLetters[i]; printf("map %s\r\n", buf); printSectionBreak(); dumpValues(MASTER_VALUE); } if (dumpMask & DUMP_PROFILE) { printf("\r\n# dump profile\r\n"); printf("\r\n# aux\r\n"); cliAux(""); printSectionBreak(); dumpValues(PROFILE_VALUE); } }