Added power and bootpin commands (Thx @pkendall64)

This commit is contained in:
Raphael Coeffic
2021-11-21 11:18:35 +01:00
committed by Raphael Coeffic
parent 85ec133ff3
commit 81da0bf587
+44 -13
View File
@@ -842,23 +842,50 @@ int cliSet(const char **argv)
}
}
#endif
#if defined(INTMODULE_BOOTCMD_GPIO)
else if (!strcmp(argv[1], "bootpin")) {
int level = 0;
if (toInt(argv, 2, &level) < 0) {
serialPrint("%s: invalid level argument '%s'", argv[0], argv[2]);
else if (!strcmp(argv[1], "rfmod")) {
int module = 0;
if (toInt(argv, 2, &module) < 0) {
serialPrint("%s: invalid module argument '%s'", argv[0], argv[2]);
return -1;
}
if (level) {
GPIO_SetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
serialPrint("%s: bootpin set", argv[0]);
} else {
GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
serialPrint("%s: bootpin reset", argv[0]);
if (!strcmp(argv[3], "power")) {
if (!strcmp("on", argv[4])) {
if (module == 0) {
INTERNAL_MODULE_ON();
} else {
EXTERNAL_MODULE_ON();
}
} else if (!strcmp("off", argv[4])) {
if (module == 0) {
INTERNAL_MODULE_OFF();
} else {
EXTERNAL_MODULE_OFF();
}
} else {
serialPrint("%s: invalid power argument '%s'", argv[0], argv[4]);
return -1;
}
serialPrint("%s: rfmod %d power %d", argv[0], module, argv[4]);
}
#if defined(INTMODULE_BOOTCMD_GPIO)
else if (!strcmp(argv[3], "bootpin")) {
int level = 0;
if (toInt(argv, 4, &level) < 0) {
serialPrint("%s: invalid bootpin argument '%s'", argv[0], argv[4]);
return -1;
}
if (module == 0) {
if (level) {
GPIO_SetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
serialPrint("%s: bootpin set", argv[0]);
} else {
GPIO_ResetBits(INTMODULE_BOOTCMD_GPIO, INTMODULE_BOOTCMD_GPIO_PIN);
serialPrint("%s: bootpin reset", argv[0]);
}
}
}
}
#endif
}
return 0;
}
@@ -975,6 +1002,10 @@ int cliSerialPassthrough(const char **argv)
// and stop module
intmoduleStop();
// power off the module and wait for a bit
INTERNAL_MODULE_OFF();
delay_ms(200);
}
#endif