/* send raw GPS position information (GPS_RAW_INT, GPS2_RAW, GPS_RTK and GPS2_RTK). returns true if messages fit into transmit buffer, false otherwise. */ bool GCS_MAVLINK::send_gps_raw(AP_GPS &gps) { if (comm_get_txspace(chan) >= MAVLINK_MSG_ID_GPS_RAW_INT_LEN + MAVLINK_NUM_NON_PAYLOAD_BYTES) { gps.send_mavlink_gps_raw(chan); } else { return false; } if (gps.highest_supported_status(0) > AP_GPS::GPS_OK_FIX_3D) { if (comm_get_txspace(chan) >= MAVLINK_NUM_NON_PAYLOAD_BYTES+MAVLINK_MSG_ID_GPS_RTK_LEN) { gps.send_mavlink_gps_rtk(chan); } } if (gps.num_sensors() > 1 && gps.status(1) > AP_GPS::NO_GPS) { if (comm_get_txspace(chan) >= MAVLINK_NUM_NON_PAYLOAD_BYTES+MAVLINK_MSG_ID_GPS2_RAW_LEN) { gps.send_mavlink_gps2_raw(chan); } if (gps.highest_supported_status(1) > AP_GPS::GPS_OK_FIX_3D) { if (comm_get_txspace(chan) >= MAVLINK_NUM_NON_PAYLOAD_BYTES+MAVLINK_MSG_ID_GPS2_RTK_LEN) { gps.send_mavlink_gps2_rtk(chan); } } } //TODO: Should check what else managed to get through... return true; }
/* send raw GPS position information (GPS_RAW_INT, GPS2_RAW, GPS_RTK and GPS2_RTK). returns true if messages fit into transmit buffer, false otherwise. */ bool GCS_MAVLINK::send_gps_raw(AP_GPS &gps) { int16_t payload_space = comm_get_txspace(chan) - MAVLINK_NUM_NON_PAYLOAD_BYTES; if (payload_space >= MAVLINK_MSG_ID_GPS_RAW_INT_LEN) { gps.send_mavlink_gps_raw(chan); } else { return false; } #if GPS_RTK_AVAILABLE if (gps.highest_supported_status(0) > AP_GPS::GPS_OK_FIX_3D) { payload_space = comm_get_txspace(chan) - MAVLINK_NUM_NON_PAYLOAD_BYTES; if (payload_space >= MAVLINK_MSG_ID_GPS_RTK_LEN) { gps.send_mavlink_gps_rtk(chan); } } #endif #if GPS_MAX_INSTANCES > 1 if (gps.num_sensors() > 1 && gps.status(1) > AP_GPS::NO_GPS) { payload_space = comm_get_txspace(chan) - MAVLINK_NUM_NON_PAYLOAD_BYTES; if (payload_space >= MAVLINK_MSG_ID_GPS2_RAW_LEN) { gps.send_mavlink_gps2_raw(chan); } #if GPS_RTK_AVAILABLE if (gps.highest_supported_status(1) > AP_GPS::GPS_OK_FIX_3D) { payload_space = comm_get_txspace(chan) - MAVLINK_NUM_NON_PAYLOAD_BYTES; if (payload_space >= MAVLINK_MSG_ID_GPS2_RTK_LEN) { gps.send_mavlink_gps2_rtk(chan); } } #endif } #endif //TODO: Should check what else managed to get through... return true; }