mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-06-07 17:49:49 +08:00
NAV-SOL gps message handling
This commit is contained in:
@@ -37,11 +37,11 @@
|
||||
</block>
|
||||
|
||||
<block name="eight 1">
|
||||
<eight radius="75" center="1" turn_around="2"/>
|
||||
<eight radius="nav_radius" center="1" turn_around="2"/>
|
||||
</block>
|
||||
|
||||
<block name="oval" strip_button="Oval">
|
||||
<oval p1="1" p2="2" radius="80"/>
|
||||
<oval p1="1" p2="2" radius="nav_radius"/>
|
||||
</block>
|
||||
|
||||
<block name="MOB" strip_button="MOB">
|
||||
@@ -53,10 +53,6 @@
|
||||
<circle radius="75" wp="1" pitch="auto" throttle="0.7"/>
|
||||
</block>
|
||||
|
||||
<block name="circle left 1">
|
||||
<circle radius="-75" wp="1"/>
|
||||
</block>
|
||||
|
||||
<block name="climb 75">
|
||||
<circle radius="50+(estimator_z-ground_alt)/2" wp="1" throttle="0.75" pitch="0.3" vmode="throttle" until="10 > PowerVoltage()"/>
|
||||
</block>
|
||||
|
||||
@@ -113,6 +113,13 @@
|
||||
<field name="desired_climb" type="float" format="%.1f"></field>
|
||||
</message>
|
||||
|
||||
<message name="GPS_SOL" ID="17">
|
||||
<field name="Pacc" type="uint32"/>
|
||||
<field name="Sacc" type="uint32"/>
|
||||
<field name="PDOP" type="uint16"/>
|
||||
<field name="numSV" type="uint8"/>
|
||||
</message>
|
||||
|
||||
<message name="CAM" ID="20">
|
||||
<field name="phi" type="int8" unit="deg"/>
|
||||
<field name="theta" type="int8" unit="deg"/>
|
||||
|
||||
@@ -64,8 +64,8 @@
|
||||
</dl_setting>
|
||||
|
||||
|
||||
<dl_setting MAX="-0.005" MIN="-0.1" STEP="0.005" VAR="v_ctl_auto_throttle_pgain" shortname="throttle_pgain"/>
|
||||
<dl_setting MAX="1" MIN="0.05" STEP="0.05" VAR="v_ctl_auto_throttle_igain" shortname="throttle_igain"/>
|
||||
<dl_setting MAX="0.00" MIN="-0.05" STEP="0.005" VAR="v_ctl_auto_throttle_pgain" shortname="throttle_pgain"/>
|
||||
<dl_setting MAX="1" MIN="0.0" STEP="0.05" VAR="v_ctl_auto_throttle_igain" shortname="throttle_igain"/>
|
||||
<dl_setting MAX="0" MIN="-4000" STEP="100" VAR="v_ctl_auto_throttle_dash_trim" shortname="dash trim"/>
|
||||
<dl_setting MIN="0" MAX="3000" STEP="100" VAR="v_ctl_auto_throttle_loiter_trim" shortname="loiter trim"/>
|
||||
<dl_setting MAX="1" MIN="0" STEP="0.01" VAR="v_ctl_auto_throttle_climb_throttle_increment" shortname="throttle_incr"/>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<message name="GYRO_RATES" period="1"/>
|
||||
<message name="SURVEY" period="2"/>
|
||||
<message name="ESTIMATOR" period="0.5"/>
|
||||
<message name="GPS_SOL" period="2"/>
|
||||
</mode>
|
||||
<mode name="debug">
|
||||
<message name="CALIB_START" period="0.5"/>
|
||||
|
||||
@@ -15,6 +15,37 @@
|
||||
<field name="Vacc" format="U4" unit="mm"/>
|
||||
</message>
|
||||
|
||||
<message name="DOP" ID="0x04" length="18">
|
||||
<field name="ITOW" format="U4" unit="ms"/>
|
||||
<field name="GDOP" format="U2"/>
|
||||
<field name="PDOP" format="U2"/>
|
||||
<field name="TDOP" format="U2"/>
|
||||
<field name="VDOP" format="U2"/>
|
||||
<field name="HDOP" format="U2"/>
|
||||
<field name="NDOP" format="U2"/>
|
||||
<field name="EDOP" format="U2"/>
|
||||
</message>
|
||||
|
||||
<message name="SOL" ID="0x06" length="52">
|
||||
<field name="ITOW" format="U4" unit="ms"/>
|
||||
<field name="Frac" format="I4" unit="ns"/>
|
||||
<field name="week" format="I2"/>
|
||||
<field name="GPSfix" format="U1"/>
|
||||
<field name="Flags" format="U1"/>
|
||||
<field name="ECEF_X" format="I4" unit="cm"/>
|
||||
<field name="ECEF_Y" format="I4" unit="cm"/>
|
||||
<field name="ECEF_Z" format="I4" unit="cm"/>
|
||||
<field name="Pacc" format="U4"/>
|
||||
<field name="ECEFVX" format="I4" unit="cm/s"/>
|
||||
<field name="ECEFVY" format="I4" unit="cm/s"/>
|
||||
<field name="ECEFVZ" format="I4" unit="cm/s"/>
|
||||
<field name="Sacc" format="U4"/>
|
||||
<field name="PDOP" format="U2"/>
|
||||
<field name="res1" format="U1"/>
|
||||
<field name="numSV" format="U1"/>
|
||||
<field name="res2" format="U4"/>
|
||||
</message>
|
||||
|
||||
<message name="POSUTM" ID="0x08" length="18">
|
||||
<field name="ITOW" format="U4" unit="ms"/>
|
||||
<field name="EAST" format="I4" unit="cm"/>
|
||||
|
||||
@@ -171,5 +171,9 @@
|
||||
|
||||
#define PERIODIC_SEND_TUNE_ROLL() DOWNLINK_SEND_TUNE_ROLL(&estimator_p,&estimator_phi, &h_ctl_roll_setpoint);
|
||||
|
||||
#ifdef GPS
|
||||
#define PERIODIC_SEND_GPS_SOL() DOWNLINK_SEND_GPS_SOL(&gps_Pacc, &gps_Sacc, &gps_PDOP, &gps_numSV)
|
||||
#endif
|
||||
|
||||
|
||||
#endif /* AP_DOWNLINK_H */
|
||||
|
||||
@@ -61,7 +61,6 @@ void enose_periodic( void ) {
|
||||
enose_conf_requested = FALSE;
|
||||
}
|
||||
else if (enose_status == ENOSE_IDLE) {
|
||||
LED_OFF(2);
|
||||
enose_status = ENOSE_MEASURING_WR;
|
||||
const uint8_t msg[] = { ENOSE_DATA_ADDR };
|
||||
memcpy(i2c_buf, msg, sizeof(msg));
|
||||
@@ -74,7 +73,6 @@ void enose_periodic( void ) {
|
||||
enose_i2c_done = FALSE;
|
||||
}
|
||||
else if (enose_status == ENOSE_MEASURING_RD) {
|
||||
LED_ON(2);
|
||||
enose_val[0] = (i2c_buf[0]<<8) | i2c_buf[1];
|
||||
enose_val[1] = (i2c_buf[2]<<8) | i2c_buf[3];
|
||||
enose_val[2] = (i2c_buf[4]<<8) | i2c_buf[5];
|
||||
|
||||
@@ -52,6 +52,10 @@ extern int16_t gps_course; /* decideg */
|
||||
extern int32_t gps_utm_east, gps_utm_north; /** cm */
|
||||
extern uint8_t gps_utm_zone;
|
||||
extern int32_t gps_lat, gps_lon; /* 1e7 deg */
|
||||
extern uint16_t gps_PDOP;
|
||||
extern uint32_t gps_Pacc, gps_Sacc;
|
||||
extern uint8_t gps_numSV;
|
||||
|
||||
|
||||
extern uint16_t last_gps_msg_t; /** cputime of the last gps message */
|
||||
|
||||
|
||||
@@ -75,6 +75,10 @@ bool_t gps_pos_available;
|
||||
uint8_t ubx_id, ubx_class;
|
||||
int32_t gps_lat, gps_lon;
|
||||
|
||||
uint16_t gps_PDOP;
|
||||
uint32_t gps_Pacc, gps_Sacc;
|
||||
uint8_t gps_numSV;
|
||||
|
||||
#define UTM_HEM_NORTH 0
|
||||
#define UTM_HEM_SOUTH 1
|
||||
|
||||
@@ -159,6 +163,11 @@ void parse_gps_msg( void ) {
|
||||
gps_itow = UBX_NAV_VELNED_ITOW(ubx_msg_buf);
|
||||
|
||||
gps_pos_available = TRUE; /* The 3 UBX messages are sent in one rafale */
|
||||
} else if (ubx_id == UBX_NAV_SOL_ID) {
|
||||
gps_PDOP = UBX_NAV_SOL_PDOP(ubx_msg_buf);
|
||||
gps_Pacc = UBX_NAV_SOL_Pacc(ubx_msg_buf);
|
||||
gps_Sacc = UBX_NAV_SOL_Sacc(ubx_msg_buf);
|
||||
gps_numSV = UBX_NAV_SOL_numSV(ubx_msg_buf);
|
||||
} else if (ubx_id == UBX_NAV_SVINFO_ID) {
|
||||
gps_nb_channels = UBX_NAV_SVINFO_NCH(ubx_msg_buf);
|
||||
uint8_t i;
|
||||
|
||||
Reference in New Issue
Block a user