Paparazzi UAS
v5.8.2_stable-0-g6260b7c
Paparazzi is a free software Unmanned Aircraft System.
|
Parser for the Xsens protocol. More...
#include "ins_module.h"
#include "ins_xsens.h"
#include "subsystems/ins.h"
#include <inttypes.h>
#include "generated/airframe.h"
#include "mcu_periph/sys_time.h"
#include "subsystems/datalink/downlink.h"
#include "messages.h"
#include "xsens_protocol.h"
#include "mcu_periph/uart.h"
Go to the source code of this file.
Macros | |
#define | XsensInitCheksum() { send_ck = 0; } |
#define | XsensUpdateChecksum(c) { send_ck += c; } |
#define | XsensSend1(c) { uint8_t i8=c; InsUartSend1(i8); XsensUpdateChecksum(i8); } |
#define | XsensSend1ByAddr(x) { XsensSend1(*x); } |
#define | XsensSend2ByAddr(x) { XsensSend1(*(x+1)); XsensSend1(*x); } |
#define | XsensSend4ByAddr(x) { XsensSend1(*(x+3)); XsensSend1(*(x+2)); XsensSend1(*(x+1)); XsensSend1(*x); } |
#define | XsensHeader(msg_id, len) |
#define | XsensTrailer() { uint8_t i8=0x100-send_ck; InsUartSend1(i8); } |
#define | XSENS_MAX_PAYLOAD 254 |
Includes macros generated from xsens_MTi-G.xml. More... | |
#define | UNINIT 0 |
#define | GOT_START 1 |
#define | GOT_BID 2 |
#define | GOT_MID 3 |
#define | GOT_LEN 4 |
#define | GOT_DATA 5 |
#define | GOT_CHECKSUM 6 |
Functions | |
void | xsens_init (void) |
static void | xsens_ask_message_rate (uint8_t c1, uint8_t c2, uint8_t freq) |
void | xsens_periodic (void) |
void | handle_ins_msg (void) |
void | parse_ins_msg (void) |
void | parse_ins_buffer (uint8_t c) |
Parser for the Xsens protocol.
Definition in file ins_xsens700.c.
#define GOT_BID 2 |
Definition at line 121 of file ins_xsens700.c.
Referenced by parse_ins_buffer().
#define GOT_CHECKSUM 6 |
Definition at line 125 of file ins_xsens700.c.
#define GOT_DATA 5 |
Definition at line 124 of file ins_xsens700.c.
Referenced by parse_ins_buffer().
#define GOT_LEN 4 |
Definition at line 123 of file ins_xsens700.c.
Referenced by parse_ins_buffer().
#define GOT_MID 3 |
Definition at line 122 of file ins_xsens700.c.
Referenced by parse_ins_buffer().
#define GOT_START 1 |
Definition at line 120 of file ins_xsens700.c.
Referenced by parse_ins_buffer().
#define UNINIT 0 |
Definition at line 119 of file ins_xsens700.c.
Referenced by parse_ins_buffer(), and xsens_init().
#define XSENS_MAX_PAYLOAD 254 |
Includes macros generated from xsens_MTi-G.xml.
Definition at line 115 of file ins_xsens700.c.
Referenced by parse_ins_buffer().
#define XsensHeader | ( | msg_id, | |
len | |||
) |
Definition at line 102 of file ins_xsens700.c.
Referenced by xsens_periodic().
#define XsensInitCheksum | ( | ) | { send_ck = 0; } |
Definition at line 94 of file ins_xsens700.c.
#define XsensSend1 | ( | c | ) | { uint8_t i8=c; InsUartSend1(i8); XsensUpdateChecksum(i8); } |
Definition at line 97 of file ins_xsens700.c.
#define XsensSend1ByAddr | ( | x | ) | { XsensSend1(*x); } |
Definition at line 98 of file ins_xsens700.c.
Referenced by xsens_ask_message_rate().
#define XsensSend2ByAddr | ( | x | ) | { XsensSend1(*(x+1)); XsensSend1(*x); } |
Definition at line 99 of file ins_xsens700.c.
#define XsensSend4ByAddr | ( | x | ) | { XsensSend1(*(x+3)); XsensSend1(*(x+2)); XsensSend1(*(x+1)); XsensSend1(*x); } |
Definition at line 100 of file ins_xsens700.c.
#define XsensTrailer | ( | ) | { uint8_t i8=0x100-send_ck; InsUartSend1(i8); } |
Definition at line 109 of file ins_xsens700.c.
Referenced by xsens_periodic().
#define XsensUpdateChecksum | ( | c | ) | { send_ck += c; } |
Definition at line 95 of file ins_xsens700.c.
void handle_ins_msg | ( | void | ) |
Definition at line 361 of file ins_xsens700.c.
References GpsState::course, GpsState::fix, gps, GPS_FIX_3D, GpsState::gspeed, ins_vx, ins_vy, ins_vz, and GpsState::speed_3d.
void parse_ins_buffer | ( | uint8_t | c | ) |
Definition at line 567 of file ins_xsens700.c.
References ck, GOT_BID, GOT_DATA, GOT_LEN, GOT_MID, GOT_START, ins_msg_received, TRUE, UNINIT, xsens_id, xsens_len, XSENS_MAX_PAYLOAD, xsens_msg_buf, xsens_msg_idx, and xsens_status.
Referenced by ins_event_check_and_handle().
|
inline |
Definition at line 382 of file ins_xsens700.c.
References ahrs_chimu, UtmCoor_i::alt, link_device::char_available, CHIMU_Msg_3_IMU_Attitude, CHIMU_Parse(), SVinfo::cno, DefaultChannel, DefaultDevice, dev, UtmCoor_f::east, UtmCoor_i::east, CHIMU_attitude_data::euler, GpsState::fix, SVinfo::flags, link_device::get_byte, gps, GPS_FIX_2D, GPS_FIX_3D, GPS_FIX_NONE, GPS_NB_CHANNELS, GpsState::hmsl, ins_ax, ins_ay, ins_az, INS_FORMAT, ins_p, ins_phi, ins_psi, ins_q, ins_r, ins_theta, ins_vx, ins_vy, ins_vz, InsLinkDevice, AhrsChimu::is_aligned, AhrsChimu::is_enabled, GpsState::last_3dfix_ticks, GpsState::last_3dfix_time, LlaCoor_f::lat, LED_TOGGLE, lla_f, LlaCoor_f::lon, CHIMU_PARSER_DATA::m_attitude, CHIMU_PARSER_DATA::m_attrates, CHIMU_PARSER_DATA::m_MsgID, CHIMU_PARSER_DATA::m_sensor, Min, nav_utm_zone0, GpsState::nb_channels, sys_time::nb_sec, sys_time::nb_sec_rem, GpsState::ned_vel, new_ins_attitude, UtmCoor_f::north, UtmCoor_i::north, GpsState::num_sv, GpsState::pacc, GpsState::pdop, link_device::periph, CHIMU_Euler::phi, CHIMU_Euler::psi, SVinfo::qi, CHIMU_sensor_data::rate, GpsState::sacc, stateSetBodyRates_f(), stateSetNedToBodyEulers_f(), SVinfo::svid, GpsState::svinfos, CHIMU_Euler::theta, GpsState::tow, TRUE, utm_f, utm_of_lla_f(), GpsState::utm_pos, GpsState::week, wgs84_ellipsoid_to_geoid(), NedCoor_i::x, xsens_declination, xsens_errorcode, xsens_gps_arm_x, xsens_gps_arm_y, xsens_gps_arm_z, xsens_id, xsens_len, xsens_msg_buf, xsens_msg_statusword, NedCoor_i::y, NedCoor_i::z, UtmCoor_f::zone, and UtmCoor_i::zone.
Referenced by ins_event_check_and_handle().
Definition at line 248 of file ins_xsens700.c.
References foo, and XsensSend1ByAddr.
Referenced by xsens_periodic().
void xsens_init | ( | void | ) |
Definition at line 166 of file ins_xsens700.c.
References UNINIT, xsens_configured, xsens_msg_statusword, xsens_status, and xsens_time_stamp.
void xsens_periodic | ( | void | ) |
Definition at line 257 of file ins_xsens700.c.
References xsens_ask_message_rate(), xsens_configured, xsens_declination, xsens_output_mode, xsens_output_settings, XsensHeader, and XsensTrailer.
|
static |
Definition at line 156 of file ins_xsens700.c.
Referenced by parse_ins_buffer().
INS_FORMAT ins_ax |
Definition at line 72 of file ins_xsens700.c.
Referenced by parse_ins_msg().
INS_FORMAT ins_ay |
Definition at line 73 of file ins_xsens700.c.
Referenced by parse_ins_msg().
INS_FORMAT ins_az |
Definition at line 74 of file ins_xsens700.c.
Referenced by parse_ins_msg().
volatile uint8_t ins_msg_received |
Definition at line 92 of file ins_xsens700.c.
Referenced by ins_event_check_and_handle(), and parse_ins_buffer().
INS_FORMAT ins_mx |
Definition at line 77 of file ins_xsens700.c.
INS_FORMAT ins_my |
Definition at line 78 of file ins_xsens700.c.
INS_FORMAT ins_mz |
Definition at line 79 of file ins_xsens700.c.
INS_FORMAT ins_p |
Definition at line 67 of file ins_xsens700.c.
Referenced by parse_ins_msg().
INS_FORMAT ins_phi |
Definition at line 62 of file ins_xsens700.c.
Referenced by parse_ins_msg().
INS_FORMAT ins_psi |
Definition at line 64 of file ins_xsens700.c.
Referenced by parse_ins_msg().
INS_FORMAT ins_q |
Definition at line 68 of file ins_xsens700.c.
Referenced by parse_ins_msg().
INS_FORMAT ins_r |
Definition at line 69 of file ins_xsens700.c.
Referenced by parse_ins_msg().
INS_FORMAT ins_theta |
Definition at line 63 of file ins_xsens700.c.
Referenced by parse_ins_msg().
INS_FORMAT ins_vx |
Definition at line 57 of file ins_xsens700.c.
Referenced by handle_ins_msg(), and parse_ins_msg().
INS_FORMAT ins_vy |
Definition at line 58 of file ins_xsens700.c.
Referenced by handle_ins_msg(), and parse_ins_msg().
INS_FORMAT ins_vz |
Definition at line 59 of file ins_xsens700.c.
Referenced by handle_ins_msg(), and parse_ins_msg().
INS_FORMAT ins_x |
Definition at line 52 of file ins_xsens700.c.
INS_FORMAT ins_y |
Definition at line 53 of file ins_xsens700.c.
INS_FORMAT ins_z |
Definition at line 54 of file ins_xsens700.c.
struct LlaCoor_f lla_f |
Definition at line 159 of file ins_xsens700.c.
Referenced by parse_ins_msg().
uint8_t send_ck |
Definition at line 157 of file ins_xsens700.c.
struct UtmCoor_f utm_f |
Definition at line 160 of file ins_xsens700.c.
Referenced by parse_ins_msg().
volatile int xsens_configured = 0 |
Definition at line 162 of file ins_xsens700.c.
Referenced by xsens_init(), and xsens_periodic().
int8_t xsens_day |
Definition at line 150 of file ins_xsens700.c.
float xsens_declination = 0 |
Definition at line 138 of file ins_xsens700.c.
Referenced by parse_ins_msg().
uint8_t xsens_errorcode |
Definition at line 133 of file ins_xsens700.c.
Referenced by parse_ins_msg().
float xsens_gps_arm_x = 0 |
Definition at line 139 of file ins_xsens700.c.
Referenced by parse_ins_msg().
float xsens_gps_arm_y = 0 |
Definition at line 140 of file ins_xsens700.c.
Referenced by parse_ins_msg().
float xsens_gps_arm_z = 0 |
Definition at line 141 of file ins_xsens700.c.
Referenced by parse_ins_msg().
int8_t xsens_hour |
Definition at line 144 of file ins_xsens700.c.
|
static |
Definition at line 152 of file ins_xsens700.c.
Referenced by parse_ins_buffer(), and parse_ins_msg().
|
static |
Definition at line 154 of file ins_xsens700.c.
Referenced by parse_ins_buffer(), and parse_ins_msg().
int8_t xsens_min |
Definition at line 145 of file ins_xsens700.c.
int8_t xsens_month |
Definition at line 149 of file ins_xsens700.c.
uint8_t xsens_msg_buf[XSENS_MAX_PAYLOAD] |
Definition at line 116 of file ins_xsens700.c.
Referenced by parse_ins_buffer(), and parse_ins_msg().
|
static |
Definition at line 155 of file ins_xsens700.c.
Referenced by parse_ins_buffer().
uint32_t xsens_msg_statusword |
Definition at line 134 of file ins_xsens700.c.
Referenced by parse_ins_msg(), and xsens_init().
int32_t xsens_nanosec |
Definition at line 147 of file ins_xsens700.c.
uint16_t xsens_output_mode |
Definition at line 136 of file ins_xsens700.c.
uint32_t xsens_output_settings |
Definition at line 137 of file ins_xsens700.c.
int8_t xsens_sec |
Definition at line 146 of file ins_xsens700.c.
|
static |
Definition at line 153 of file ins_xsens700.c.
Referenced by parse_ins_buffer(), and xsens_init().
uint16_t xsens_time_stamp |
Definition at line 135 of file ins_xsens700.c.
Referenced by xsens_init().
int16_t xsens_year |
Definition at line 148 of file ins_xsens700.c.