aboutsummaryrefslogtreecommitdiff
path: root/src/drivers/px4fmu/fmu.cpp
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2013-10-30 22:34:51 +0100
committerLorenz Meier <lm@inf.ethz.ch>2013-10-30 22:34:51 +0100
commit727342a5168bb23501c50287acb8edfe6d80e157 (patch)
tree2e1f680c5b0033d55ef8a5a6ce6e9954eca092b3 /src/drivers/px4fmu/fmu.cpp
parent8131d28a0faf7d33060cf067f5bd8dee41666fed (diff)
downloadpx4-firmware-727342a5168bb23501c50287acb8edfe6d80e157.tar.gz
px4-firmware-727342a5168bb23501c50287acb8edfe6d80e157.tar.bz2
px4-firmware-727342a5168bb23501c50287acb8edfe6d80e157.zip
Teached the FMU driver that stopping is also an option
Diffstat (limited to 'src/drivers/px4fmu/fmu.cpp')
-rw-r--r--src/drivers/px4fmu/fmu.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/drivers/px4fmu/fmu.cpp b/src/drivers/px4fmu/fmu.cpp
index 6d4019f24..dd475bb6c 100644
--- a/src/drivers/px4fmu/fmu.cpp
+++ b/src/drivers/px4fmu/fmu.cpp
@@ -1093,6 +1093,20 @@ fmu_start(void)
return ret;
}
+int
+fmu_stop(void)
+{
+ int ret = OK;
+
+ if (g_fmu != nullptr) {
+
+ delete g_fmu;
+ g_fmu = nullptr;
+ }
+
+ return ret;
+}
+
void
test(void)
{
@@ -1224,6 +1238,12 @@ fmu_main(int argc, char *argv[])
PortMode new_mode = PORT_MODE_UNSET;
const char *verb = argv[1];
+ if (!strcmp(verb, "stop")) {
+ fmu_stop();
+ errx(0, "FMU driver stopped");
+ }
+
+
if (fmu_start() != OK)
errx(1, "failed to start the FMU driver");