From 5d8c86923b535292ecfcb37667dcfcb1f18123c6 Mon Sep 17 00:00:00 2001 From: Damjan Adamic Date: Sat, 8 Aug 2015 18:17:09 +0200 Subject: [PATCH] Re #2607: gtest for hi precision VFAS added --- radio/src/Makefile | 2 +- radio/src/tests/frsky.cpp | 22 +++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/radio/src/Makefile b/radio/src/Makefile index caf737fb1..59c0f64f5 100644 --- a/radio/src/Makefile +++ b/radio/src/Makefile @@ -1820,6 +1820,6 @@ gtest-all.o : $(GTEST_SRCS_) #use all .cpp files from tests/ dir GTEST_TESTS_SRCS = $(shell find tests/ -type f -name '*.cpp') -gtests: allsimusrc.cpp $(GTEST_TESTS_SRCS) targets/simu/simpgmspace.cpp *.h gtest-all.o +gtests: allsimusrc.cpp $(GTEST_TESTS_SRCS) targets/simu/simpgmspace.cpp *.h tests/gtests.h gtest-all.o g++ -std=gnu++0x $(CPPFLAGS) $(SIMUCPPFLAGS) allsimusrc.cpp $(LUASRC) $(GTEST_TESTS_SRCS) targets/simu/simpgmspace.cpp -I$(GTEST_DIR) ${INCFLAGS} -I$(GTEST_DIR)/include -I/usr/include/qt4 -o gtests -lpthread -MD -DSIMU -lQtCore -lQtGui gtest-all.o -fexceptions diff --git a/radio/src/tests/frsky.cpp b/radio/src/tests/frsky.cpp index 90854460a..899e1b188 100644 --- a/radio/src/tests/frsky.cpp +++ b/radio/src/tests/frsky.cpp @@ -122,7 +122,26 @@ TEST(FrSky, FrskyValueWithMinAveraging) EXPECT_EQ(testVal.value, expected[testPos++]); } } -#endif + +TEST(FrSky, Vfas_0x39_HiPrecision) +{ + MODEL_RESET(); + TELEMETRY_RESET(); + EXPECT_EQ(telemetryItems[0].value, 0); + + // normal precision, resolution 0.1V + processHubPacket(VFAS_ID, 1234); // set value of 123.4V + EXPECT_EQ(telemetryItems[0].value, 12340); // stored value has resolution of 0.01V + + // now high precision, resolution 0.01V + processHubPacket(VFAS_ID, VFAS_D_HIPREC_OFFSET); // set value of 0V + EXPECT_EQ(telemetryItems[0].value, 0); + processHubPacket(VFAS_ID, VFAS_D_HIPREC_OFFSET + 12345); // set value of 123.45V + EXPECT_EQ(telemetryItems[0].value, 12345); + processHubPacket(VFAS_ID, VFAS_D_HIPREC_OFFSET + 30012); // set value of 300.12V + EXPECT_EQ(telemetryItems[0].value, 30012); +} +#endif // #if defined(FRSKY) && defined(CPUARM) #if defined(FRSKY_SPORT) TEST(FrSkySPORT, checkCrc) @@ -163,6 +182,7 @@ void generateSportCellPacket(uint8_t * packet, uint8_t cells, uint8_t battnumber TEST(FrSkySPORT, FrSkyDCells) { + MODEL_RESET(); TELEMETRY_RESET(); uint8_t pkt1[] = { 0x7E, 0x98, 0x10, 0x06, 0x00, 0x07, 0xD0, 0x00, 0x00, 0x12 }; EXPECT_EQ(checkSportPacket(pkt1+1), true);