Paparazzi UAS
v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
|
Sirf protocol specific code. More...
Go to the source code of this file.
Data Structures | |
struct | GpsSirf |
struct | sirf_msg_2 |
Message ID 2 from GPS. More... | |
struct | sirf_msg_41 |
Message ID 41 from GPS. More... | |
Macros | |
#define | GPS_NB_CHANNELS 16 |
#define | SIRF_MAXLEN 255 |
#define | UNINIT 0 |
#define | GOT_A0 1 |
#define | GOT_A2 2 |
#define | GOT_B0 3 |
#define | Invert2Bytes(x) ((x>>8) | (x<<8)) |
#define | Invert4Bytes(x) ((x>>24) | ((x<<8) & 0x00FF0000) | ((x>>8) & 0x0000FF00) | (x<<24)) |
Functions | |
void | sirf_parse_char (uint8_t c) |
void | sirf_parse_msg (void) |
void | gps_sirf_msg (void) |
static void | GpsEvent (void) |
Variables | |
struct GpsSirf | gps_sirf |
Sirf protocol specific code.
Definition in file gps_sirf.h.
struct GpsSirf |
Definition at line 43 of file gps_sirf.h.
Data Fields | ||
---|---|---|
bool_t | msg_available | |
char | msg_buf[SIRF_MAXLEN] | buffer for storing one nmea-line |
int | msg_len | |
bool_t | pos_available | |
int | read_state |
struct sirf_msg_2 |
Message ID 2 from GPS.
Total payload length should be 41 bytes.
Definition at line 58 of file gps_sirf.h.
Data Fields | ||
---|---|---|
uint8_t | ch10prn | |
uint8_t | ch11prn | |
uint8_t | ch12prn | |
uint8_t | ch1prn | pseudo-random noise, 12 channels |
uint8_t | ch2prn | |
uint8_t | ch3prn | |
uint8_t | ch4prn | |
uint8_t | ch5prn | |
uint8_t | ch6prn | |
uint8_t | ch7prn | |
uint8_t | ch8prn | |
uint8_t | ch9prn | |
uint8_t | hdop | horizontal dilution of precision *5 (0.2 precision) |
uint8_t | mode1 | |
uint8_t | mode2 | |
uint8_t | msg_id | hex value 0x02 ( = decimal 2) |
uint8_t | num_sat | Number of satellites in fix. |
uint32_t | tow | time of week in seconds * 10^2 |
int16_t | vx | x-velocity * 8 in m/s |
int16_t | vy | y-velocity * 8 in m/s |
int16_t | vz | z-velocity * 8 in m/s |
uint16_t | week | |
int32_t | x_pos | x-position in m |
int32_t | y_pos | y-position in m |
int32_t | z_pos | z-position in m |
struct sirf_msg_41 |
Message ID 41 from GPS.
Total payload length should be 91 bytes.
Definition at line 88 of file gps_sirf.h.
Data Fields | ||
---|---|---|
uint8_t | add_info | Additional mode info. |
int32_t | alt_ellipsoid | in meters *10^2 |
int32_t | alt_msl | in meters *10^2 |
int16_t | climb_rate | in m/s * 10^2 |
int32_t | clock_bias | in m * 10^2 |
uint32_t | clock_bias_err | in m * 10^2 |
int32_t | clock_drift | in m/s * 10^2 |
uint32_t | clock_drift_err | in m/s * 10^2 |
uint16_t | cog | course over ground, in degrees clockwise from true north * 10^2 |
uint8_t | day | |
uint32_t | distance | Distance traveled since reset in m. |
uint16_t | distance_err | in meters |
uint32_t | ehpe | estimated horizontal position error, in meters * 10^2 |
uint16_t | ehve | estimated horizontal velocity error in m/s * 10^2 |
uint32_t | ete | estimated time error, in seconds * 10^2 |
uint32_t | evpe | estimated vertical position error, in meters * 10^2 |
uint16_t | extended_week_number | |
uint8_t | hdop | Horizontal dilution of precision x 5 (0.2 precision) |
uint16_t | heading_err | in degrees * 10^2 |
int16_t | heading_rate | in deg/s * 10^2 |
uint8_t | hour | |
int32_t | latitude | in degrees (+= North) *10^7 |
int32_t | longitude | in degrees (+= East) *10*7 |
int16_t | mag_var | not implemented |
int8_t | map_datum | |
uint8_t | minute | |
uint8_t | month | |
uint8_t | msg_id | hex value 0x29 (= decimal 41) |
uint16_t | nav_type | |
uint16_t | nav_valid | if equal to 0x0000, then navigation solution is valid |
uint8_t | num_sat | Number of satellites used for solution. |
uint32_t | sat_id | satellites used in solution. Each satellite corresponds with a bit, e.g. bit 1 ON = SV 1 is used in solution |
uint16_t | second | |
uint16_t | sog | speed over ground, in m/s * 10^2 |
uint32_t | tow | time of week in seconds *10^3] |
uint16_t | year |
#define GOT_A0 1 |
Definition at line 39 of file gps_sirf.h.
Referenced by sirf_parse_char().
#define GOT_A2 2 |
Definition at line 40 of file gps_sirf.h.
Referenced by sirf_parse_char().
#define GOT_B0 3 |
Definition at line 41 of file gps_sirf.h.
Referenced by sirf_parse_char().
#define GPS_NB_CHANNELS 16 |
Definition at line 34 of file gps_sirf.h.
#define Invert2Bytes | ( | x | ) | ((x>>8) | (x<<8)) |
Definition at line 54 of file gps_sirf.h.
Referenced by sirf_parse_2(), and sirf_parse_41().
#define Invert4Bytes | ( | x | ) | ((x>>24) | ((x<<8) & 0x00FF0000) | ((x>>8) & 0x0000FF00) | (x<<24)) |
Definition at line 55 of file gps_sirf.h.
Referenced by sirf_parse_2(), and sirf_parse_41().
#define SIRF_MAXLEN 255 |
Definition at line 35 of file gps_sirf.h.
#define UNINIT 0 |
Definition at line 38 of file gps_sirf.h.
void gps_sirf_msg | ( | void | ) |
Definition at line 51 of file gps_sirf.c.
References FALSE, GpsState::fix, get_sys_time_usec(), gps, GPS_FIX_3D, gps_sirf, GPS_SIRF_ID, GpsState::last_3dfix_ticks, GpsState::last_3dfix_time, GpsState::last_msg_ticks, GpsState::last_msg_time, GpsSirf::msg_available, sys_time::nb_sec, sys_time::nb_sec_rem, GpsSirf::pos_available, and sirf_parse_msg().
Referenced by GpsEvent().
|
inlinestatic |
Definition at line 137 of file gps_sirf.h.
References link_device::char_available, dev, link_device::get_byte, gps_sirf, gps_sirf_msg(), GpsSirf::msg_available, link_device::periph, and sirf_parse_char().
void sirf_parse_char | ( | uint8_t | c | ) |
Definition at line 68 of file gps_sirf.c.
References GOT_A0, GOT_A2, GOT_B0, gps_sirf, GpsSirf::msg_available, GpsSirf::msg_buf, GpsSirf::msg_len, GpsSirf::read_state, TRUE, and UNINIT.
Referenced by GpsEvent().
void sirf_parse_msg | ( | void | ) |
Definition at line 193 of file gps_sirf.c.
References FALSE, gps_sirf, GpsSirf::msg_buf, GpsSirf::msg_len, sys_time::nb_sec, GpsSirf::pos_available, sirf_parse_2(), sirf_parse_41(), start_time2, and ticks2.
Referenced by gps_sirf_msg().
struct GpsSirf gps_sirf |
Definition at line 39 of file gps_sirf.c.
Referenced by gps_impl_init(), gps_sirf_msg(), GpsEvent(), sirf_parse_2(), sirf_parse_41(), sirf_parse_char(), and sirf_parse_msg().