void WEAK ins_reset_local_origin(void) { #if USE_GPS struct UtmCoor_i utm = utm_int_from_gps(&gps, 0); // ground alt utm.alt = gps.hmsl; // reset state UTM ref stateSetLocalUtmOrigin_i(&utm); #endif }
static void send_gps(struct transport_tx *trans, struct link_device *dev) { uint8_t zero = 0; int16_t climb = -gps.ned_vel.z; int16_t course = (DegOfRad(gps.course) / ((int32_t)1e6)); struct UtmCoor_i utm = utm_int_from_gps(&gps, 0); pprz_msg_send_GPS(trans, dev, AC_ID, &gps.fix, &utm.east, &utm.north, &course, &gps.hmsl, &gps.gspeed, &climb, &gps.week, &gps.tow, &utm.zone, &zero); // send SVINFO for available satellites that have new data send_svinfo_available(trans, dev); }
void send_waldo_msg(void) { // populate fields struct FloatEulers *att = stateGetNedToBodyEulers_f(); struct UtmCoor_i utm = utm_int_from_gps(&gps, 0); float height = stateGetPositionUtm_f()->alt - groundalt; // send msg DOWNLINK_SEND_WALDO_MSG(DefaultChannel, DefaultDevice, &(att->phi), &(att->psi), &(att->theta), &gps.fix, &utm.east, &utm.north, &utm.zone, &gps.gspeed, &gps.week, &gps.tow, &height); }