aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-10-07 22:49:27 +0200
committerLorenz Meier <lm@inf.ethz.ch>2014-10-07 22:49:27 +0200
commit4a8d20e2e562b69f3d2272d3e40db2b7a3e5152a (patch)
tree05bb8ef2f9443110c0dfa0e3915ecc391dadf5c6 /Tools
parent8c6c08dcb5ce87e613cbf867571f219a60e1b813 (diff)
parent91b4d85b46f1d4514fe1ce45553753eb011918c1 (diff)
downloadpx4-firmware-4a8d20e2e562b69f3d2272d3e40db2b7a3e5152a.tar.gz
px4-firmware-4a8d20e2e562b69f3d2272d3e40db2b7a3e5152a.tar.bz2
px4-firmware-4a8d20e2e562b69f3d2272d3e40db2b7a3e5152a.zip
Merged master into st24
Diffstat (limited to 'Tools')
-rw-r--r--Tools/tests-host/.gitignore1
-rw-r--r--Tools/tests-host/Makefile12
-rw-r--r--Tools/tests-host/sf0x_test.cpp65
3 files changed, 76 insertions, 2 deletions
diff --git a/Tools/tests-host/.gitignore b/Tools/tests-host/.gitignore
index b06f99815..37e923b5e 100644
--- a/Tools/tests-host/.gitignore
+++ b/Tools/tests-host/.gitignore
@@ -1,5 +1,6 @@
./obj/*
mixer_test
+sf0x_test
sbus2_test
autodeclination_test
st24_test
diff --git a/Tools/tests-host/Makefile b/Tools/tests-host/Makefile
index f44f18be6..8742e2f7c 100644
--- a/Tools/tests-host/Makefile
+++ b/Tools/tests-host/Makefile
@@ -3,7 +3,7 @@ CC=g++
CFLAGS=-I. -I../../src/modules -I ../../src/include -I../../src/drivers \
-I../../src -I../../src/lib -D__EXPORT="" -Dnullptr="0" -lm
-all: mixer_test sbus2_test autodeclination_test st24_test
+all: mixer_test sbus2_test autodeclination_test st24_test sf0x_test
MIXER_FILES=../../src/systemcmds/tests/test_mixer.cpp \
../../src/systemcmds/tests/test_conv.cpp \
@@ -24,6 +24,11 @@ ST24_FILES=../../src/lib/rc/st24.c \
hrt.cpp \
st24_test.cpp
+SF0X_FILES= \
+ hrt.cpp \
+ sf0x_test.cpp \
+ ../../src/drivers/sf0x/sf0x_parser.cpp
+
AUTODECLINATION_FILES= ../../src/lib/geo_lookup/geo_mag_declination.c \
hrt.cpp \
autodeclination_test.cpp
@@ -34,6 +39,9 @@ mixer_test: $(MIXER_FILES)
sbus2_test: $(SBUS2_FILES)
$(CC) -o sbus2_test $(SBUS2_FILES) $(CFLAGS)
+sf0x_test: $(SF0X_FILES)
+ $(CC) -o sf0x_test $(SF0X_FILES) $(CFLAGS)
+
autodeclination_test: $(SBUS2_FILES)
$(CC) -o autodeclination_test $(AUTODECLINATION_FILES) $(CFLAGS)
@@ -43,4 +51,4 @@ st24_test: $(ST24_FILES)
.PHONY: clean
clean:
- rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~ mixer_test sbus2_test autodeclination_test st24_test \ No newline at end of file
+ rm -f $(ODIR)/*.o *~ core $(INCDIR)/*~ mixer_test sbus2_test autodeclination_test st24_test sf0x_test
diff --git a/Tools/tests-host/sf0x_test.cpp b/Tools/tests-host/sf0x_test.cpp
new file mode 100644
index 000000000..82d19fcbe
--- /dev/null
+++ b/Tools/tests-host/sf0x_test.cpp
@@ -0,0 +1,65 @@
+
+#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <systemlib/err.h>
+#include <drivers/drv_hrt.h>
+
+#include <drivers/sf0x/sf0x_parser.h>
+
+int main(int argc, char *argv[])
+{
+ warnx("SF0X test started");
+
+ int ret = 0;
+
+ const char LINE_MAX = 20;
+ char _linebuf[LINE_MAX];
+ _linebuf[0] = '\0';
+
+ const char *lines[] = {"0.01\r\n",
+ "0.02\r\n",
+ "0.03\r\n",
+ "0.04\r\n",
+ "0",
+ ".",
+ "0",
+ "5",
+ "\r",
+ "\n",
+ "0",
+ "3\r",
+ "\n"
+ "\r\n",
+ "0.06",
+ "\r\n"
+ };
+
+ enum SF0X_PARSE_STATE state = SF0X_PARSE_STATE0_UNSYNC;
+ float dist_m;
+ char _parserbuf[LINE_MAX];
+ unsigned _parsebuf_index = 0;
+
+ for (unsigned l = 0; l < sizeof(lines) / sizeof(lines[0]); l++) {
+
+ printf("\n%s", _linebuf);
+
+ int parse_ret;
+
+ for (int i = 0; i < strlen(lines[l]); i++) {
+ parse_ret = sf0x_parser(lines[l][i], _parserbuf, &_parsebuf_index, &state, &dist_m);
+
+ if (parse_ret == 0) {
+ printf("\nparsed: %f %s\n", dist_m, (parse_ret == 0) ? "OK" : "");
+ }
+ }
+
+ printf("%s", lines[l]);
+
+ }
+
+ warnx("test finished");
+
+ return ret;
+}