diff --git a/src/main/flight/gps_conversion.c b/src/main/flight/gps_conversion.c index 7876ca9260..e19dd818cf 100644 --- a/src/main/flight/gps_conversion.c +++ b/src/main/flight/gps_conversion.c @@ -26,9 +26,9 @@ #define DIGIT_TO_VAL(_x) (_x - '0') -uint32_t GPS_coord_to_degrees(char* coordinateString) +uint32_t GPS_coord_to_degrees(const char* coordinateString) { - char *fieldSeparator, *remainingString; + const char *fieldSeparator, *remainingString; uint8_t degress = 0, minutes = 0; uint16_t fractionalMinutes = 0; uint8_t digitIndex; diff --git a/src/main/flight/gps_conversion.h b/src/main/flight/gps_conversion.h index 5c77e33fa0..81adc0b01c 100644 --- a/src/main/flight/gps_conversion.h +++ b/src/main/flight/gps_conversion.h @@ -15,4 +15,4 @@ * along with Cleanflight. If not, see . */ -uint32_t GPS_coord_to_degrees(char* s); +uint32_t GPS_coord_to_degrees(const char* coordinateString); diff --git a/src/main/io/gps.c b/src/main/io/gps.c index ee36661037..0167cd587c 100644 --- a/src/main/io/gps.c +++ b/src/main/io/gps.c @@ -403,7 +403,7 @@ bool gpsNewFrame(uint8_t c) EOS increased the precision here, even if we think that the gps is not precise enough, with 10e5 precision it has 76cm resolution with 10e7 it's around 1 cm now. Increasing it further is irrelevant, since even 1cm resolution is unrealistic, however increased resolution also increased precision of nav calculations -static uint32_t GPS_coord_to_degrees(char *s) +static uint32_t GPS_coord_to_degrees(char *coordinateString) { char *p = s, *d = s; uint8_t min, deg = 0; diff --git a/src/test/Makefile b/src/test/Makefile index ae1b517f42..abacb30e74 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -112,16 +112,16 @@ flight_imu_unittest : $(OBJECT_DIR)/flight/imu.o $(OBJECT_DIR)/flight_imu_unitte $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@ -$(OBJECT_DIR)/io/gps_conversion.o : $(USER_DIR)/io/gps_conversion.c $(USER_DIR)/io/gps_conversion.h $(GTEST_HEADERS) +$(OBJECT_DIR)/flight/gps_conversion.o : $(USER_DIR)/flight/gps_conversion.c $(USER_DIR)/flight/gps_conversion.h $(GTEST_HEADERS) @mkdir -p $(dir $@) - $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/io/gps_conversion.c -o $@ + $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(USER_DIR)/flight/gps_conversion.c -o $@ $(OBJECT_DIR)/gps_conversion_unittest.o : $(TEST_DIR)/gps_conversion_unittest.cc \ - $(USER_DIR)/io/gps_conversion.h $(GTEST_HEADERS) + $(USER_DIR)/flight/gps_conversion.h $(GTEST_HEADERS) @mkdir -p $(dir $@) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/gps_conversion_unittest.cc -o $@ -gps_conversion_unittest : $(OBJECT_DIR)/io/gps_conversion.o $(OBJECT_DIR)/gps_conversion_unittest.o $(OBJECT_DIR)/gtest_main.a +gps_conversion_unittest : $(OBJECT_DIR)/flight/gps_conversion.o $(OBJECT_DIR)/gps_conversion_unittest.o $(OBJECT_DIR)/gtest_main.a $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@ @@ -135,5 +135,5 @@ $(OBJECT_DIR)/telemetry_hott_unittest.o : $(TEST_DIR)/telemetry_hott_unittest.cc @mkdir -p $(dir $@) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(TEST_CFLAGS) -c $(TEST_DIR)/telemetry_hott_unittest.cc -o $@ -telemetry_hott_unittest :$(OBJECT_DIR)/telemetry/hott.o $(OBJECT_DIR)/telemetry_hott_unittest.o $(OBJECT_DIR)/io/gps_conversion.o $(OBJECT_DIR)/gtest_main.a +telemetry_hott_unittest :$(OBJECT_DIR)/telemetry/hott.o $(OBJECT_DIR)/telemetry_hott_unittest.o $(OBJECT_DIR)/flight/gps_conversion.o $(OBJECT_DIR)/gtest_main.a $(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $(OBJECT_DIR)/$@ diff --git a/src/test/unit/flight_imu_unittest.cc b/src/test/unit/flight_imu_unittest.cc index 7f4c5cc726..3c562ccd3b 100644 --- a/src/test/unit/flight_imu_unittest.cc +++ b/src/test/unit/flight_imu_unittest.cc @@ -84,12 +84,17 @@ TEST(FlightImuTest, IsThrustFacingDownwards) uint16_t acc_1G; int16_t heading; -flags_t f; gyro_t gyro; int16_t magADC[XYZ_AXIS_COUNT]; int32_t BaroAlt; int16_t debug[4]; +uint8_t stateFlags; +uint16_t flightModeFlags; +uint8_t armingFlags; + +int32_t sonarAlt; + void gyroGetADC(void) {}; bool sensors(uint32_t mask) diff --git a/src/test/unit/gps_conversion_unittest.cc b/src/test/unit/gps_conversion_unittest.cc index 91b9dc6daf..97c20ad917 100644 --- a/src/test/unit/gps_conversion_unittest.cc +++ b/src/test/unit/gps_conversion_unittest.cc @@ -18,7 +18,7 @@ #include #include -#include "io/gps_conversion.h" +#include "flight/gps_conversion.h" #include "unittest_macros.h" #include "gtest/gtest.h" @@ -39,7 +39,7 @@ typedef struct gpsConversionExpectation_s { TEST(GpsConversionTest, GPSCoordToDegrees_NMEA_Values) { - gpsConversionExpectation_t gpsConversionExpectations[] = { + const gpsConversionExpectation_t gpsConversionExpectations[] = { {"0.0", 0}, {"000.0", 0}, {"00000.0000", 0}, @@ -59,7 +59,7 @@ TEST(GpsConversionTest, GPSCoordToDegrees_NMEA_Values) // expect for (uint8_t index = 0; index < testIterationCount; index ++) { - gpsConversionExpectation_t *expectation = &gpsConversionExpectations[index]; + const gpsConversionExpectation_t *expectation = &gpsConversionExpectations[index]; printf("iteration: %d\n", index); uint32_t result = GPS_coord_to_degrees(expectation->coord); diff --git a/src/test/unit/platform.h b/src/test/unit/platform.h index 9767af24be..2a8ac9771b 100644 --- a/src/test/unit/platform.h +++ b/src/test/unit/platform.h @@ -18,3 +18,8 @@ #pragma once #define BARO +#define GPS +#define TELEMETRY + +#define SERIAL_PORT_COUNT 4 + diff --git a/src/test/unit/telemetry_hott_unittest.cc b/src/test/unit/telemetry_hott_unittest.cc index d20f40214c..a7f06a7f36 100644 --- a/src/test/unit/telemetry_hott_unittest.cc +++ b/src/test/unit/telemetry_hott_unittest.cc @@ -41,7 +41,7 @@ #include "telemetry/telemetry.h" #include "telemetry/hott.h" -#include "io/gps_conversion.h" +#include "flight/gps_conversion.h" #include "unittest_macros.h" @@ -88,8 +88,8 @@ TEST(TelemetryHottTest, UpdateGPSCoordinates2) // Hampstead Heath, London // 51.563886, -0.159960 - int32_t longitude = GPS_coord_to_degrees("5156.3886"); - int32_t latitude = -GPS_coord_to_degrees("015.9960"); + uint32_t longitude = GPS_coord_to_degrees("5156.3886"); + uint32_t latitude = -GPS_coord_to_degrees("015.9960"); // when addGPSCoordinates(hottGPSMessage, longitude, latitude); @@ -131,7 +131,7 @@ TEST(TelemetryHottTest, PrepareGPSMessage_Altitude1m) // given HOTT_GPS_MSG_t *hottGPSMessage = getGPSMessageForTest(); - f.GPS_FIX = 1; + stateFlags = GPS_FIX; uint16_t altitudeInMeters = 1; GPS_altitude = altitudeInMeters * (1 / 0.1f); // 1 = 0.1m @@ -147,8 +147,10 @@ TEST(TelemetryHottTest, PrepareGPSMessage_Altitude1m) int16_t debug[4]; +uint8_t stateFlags; + + uint8_t GPS_numSat; -flags_t f; int32_t GPS_coord[2]; uint16_t GPS_speed; // speed in 0.1m/s uint16_t GPS_distanceToHome; // distance to home point in meters