示例#1
0
文件: ins.c 项目: coppolam/paparazzi
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
}
示例#2
0
文件: gps.c 项目: 2seasuav/paparuzzi
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);
}
示例#3
0
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);
}