|
NinjaFlight
|
#include <stdbool.h>#include <stdint.h>#include <ctype.h>#include <string.h>#include <math.h>#include <platform.h>#include "build_config.h"#include "debug.h"#include "common/maths.h"#include "common/axis.h"#include "common/utils.h"#include "config/config.h"#include "config/feature.h"#include "drivers/system.h"#include "drivers/serial.h"#include "drivers/serial_uart.h"#include "drivers/light_led.h"#include "io/serial.h"#include "gps.h"
Data Structures | |
| struct | gpsInitData_s |
| struct | ubloxSbas_s |
| struct | gpsDataNmea_s |
| struct | ubx_header |
| struct | ubx_nav_posllh |
| struct | ubx_nav_status |
| struct | ubx_nav_solution |
| struct | ubx_nav_velned |
| struct | ubx_nav_svinfo_channel |
| struct | ubx_nav_svinfo |
Macros | |
| #define | LOG_ERROR '?' |
| #define | LOG_IGNORED '!' |
| #define | LOG_SKIPPED '>' |
| #define | LOG_NMEA_GGA 'g' |
| #define | LOG_NMEA_RMC 'r' |
| #define | LOG_UBLOX_SOL 'O' |
| #define | LOG_UBLOX_STATUS 'S' |
| #define | LOG_UBLOX_SVINFO 'I' |
| #define | LOG_UBLOX_POSLLH 'P' |
| #define | LOG_UBLOX_VELNED 'V' |
| #define | GPS_SV_MAXSATS 16 |
| #define | GPS_TIMEOUT (2500) |
| #define | GPS_INIT_ENTRIES (GPS_BAUDRATE_MAX + 1) |
| #define | GPS_BAUDRATE_CHANGE_DELAY (200) |
| #define | GPS_INIT_DATA_ENTRY_COUNT (sizeof(gpsInitData) / sizeof(gpsInitData[0])) |
| #define | DEFAULT_BAUD_RATE_INDEX 0 |
| #define | UBLOX_SBAS_MESSAGE_LENGTH 16 |
| #define | NO_FRAME 0 |
| #define | FRAME_GGA 1 |
| #define | FRAME_RMC 2 |
| #define | FRAME_GSV 3 |
| #define | MAX_UBLOX_PAYLOAD_SIZE 344 |
| #define | UBLOX_BUFFER_SIZE MAX_UBLOX_PAYLOAD_SIZE |
Typedefs | |
| typedef struct gpsInitData_s | gpsInitData_t |
| typedef struct ubloxSbas_s | ubloxSbas_t |
| typedef struct gpsDataNmea_s | gpsDataNmea_t |
Enumerations | |
| enum | gpsState_e { GPS_UNKNOWN, GPS_INITIALIZING, GPS_CHANGE_BAUD, GPS_CONFIGURE, GPS_RECEIVING_DATA, GPS_LOST_COMMUNICATION } |
| enum | { PREAMBLE1 = 0xb5, PREAMBLE2 = 0x62, CLASS_NAV = 0x01, CLASS_ACK = 0x05, CLASS_CFG = 0x06, MSG_ACK_NACK = 0x00, MSG_ACK_ACK = 0x01, MSG_POSLLH = 0x2, MSG_STATUS = 0x3, MSG_SOL = 0x6, MSG_VELNED = 0x12, MSG_SVINFO = 0x30, MSG_CFG_PRT = 0x00, MSG_CFG_RATE = 0x08, MSG_CFG_SET_RATE = 0x01, MSG_CFG_NAV_SETTINGS = 0x24 } |
| enum | { FIX_NONE = 0, FIX_DEAD_RECKONING = 1, FIX_2D = 2, FIX_3D = 3, FIX_GPS_DEAD_RECKONING = 4, FIX_TIME = 5 } |
| enum | { NAV_STATUS_FIX_VALID = 1 } |
Functions | |
| int | gps_init (struct gps *self, const struct system_calls *system, const struct config *config) |
| void | gps_update (struct gps *self) |
| void | gps_enable_passthrough (struct gps *self, serialPort_t *gpsPassthroughPort) |
Variables | |
| gpsData_t | gpsData |
| enum { ... } | ubx_protocol_bytes |
| enum { ... } | ubs_nav_fix_type |
| enum { ... } | ubx_nav_status_bits |
| #define DEFAULT_BAUD_RATE_INDEX 0 |
| #define FRAME_GGA 1 |
| #define FRAME_GSV 3 |
| #define FRAME_RMC 2 |
| #define GPS_BAUDRATE_CHANGE_DELAY (200) |
| #define GPS_INIT_DATA_ENTRY_COUNT (sizeof(gpsInitData) / sizeof(gpsInitData[0])) |
| #define GPS_INIT_ENTRIES (GPS_BAUDRATE_MAX + 1) |
| #define GPS_SV_MAXSATS 16 |
| #define GPS_TIMEOUT (2500) |
| #define LOG_ERROR '?' |
| #define LOG_IGNORED '!' |
| #define LOG_NMEA_GGA 'g' |
| #define LOG_NMEA_RMC 'r' |
| #define LOG_SKIPPED '>' |
| #define LOG_UBLOX_POSLLH 'P' |
| #define LOG_UBLOX_SOL 'O' |
| #define LOG_UBLOX_STATUS 'S' |
| #define LOG_UBLOX_SVINFO 'I' |
| #define LOG_UBLOX_VELNED 'V' |
| #define MAX_UBLOX_PAYLOAD_SIZE 344 |
| #define NO_FRAME 0 |
| #define UBLOX_BUFFER_SIZE MAX_UBLOX_PAYLOAD_SIZE |
| #define UBLOX_SBAS_MESSAGE_LENGTH 16 |
| typedef struct gpsDataNmea_s gpsDataNmea_t |
| typedef struct gpsInitData_s gpsInitData_t |
| typedef struct ubloxSbas_s ubloxSbas_t |
| anonymous enum |
| enum gpsState_e |
| void gps_enable_passthrough | ( | struct gps * | self, |
| serialPort_t * | gpsPassthroughPort | ||
| ) |

| int gps_init | ( | struct gps * | self, |
| const struct system_calls * | system, | ||
| const struct config * | config | ||
| ) |

| void gps_update | ( | struct gps * | self | ) |

| uint8_t bytes[UBLOX_BUFFER_SIZE] |
| gpsData_t gpsData |
| ubx_nav_posllh posllh |
| ubx_nav_solution solution |
| ubx_nav_status status |
| ubx_nav_svinfo svinfo |
| enum { ... } ubs_nav_fix_type |
| enum { ... } ubx_nav_status_bits |
| enum { ... } ubx_protocol_bytes |
| ubx_nav_velned velned |