ublox 0.10.0

A crate to communicate with u-blox GPS devices using the UBX protocol
Documentation
#![cfg(feature = "ubx_proto33")]

#[cfg(feature = "serde")]
use super::{SerializeMap, SerializeUbxPacketFields};

use crate::ubx_packets::packets::{
    ack::{AckAck, AckAckOwned, AckAckRef, AckNak, AckNakOwned, AckNakRef},
    cfg_ant::{CfgAnt, CfgAntOwned, CfgAntRef},
    cfg_esf_alg::{CfgEsfAlg, CfgEsfAlgOwned, CfgEsfAlgRef},
    cfg_esf_wt::{CfgEsfWt, CfgEsfWtOwned, CfgEsfWtRef},
    cfg_gnss::{CfgGnss, CfgGnssOwned, CfgGnssRef},
    cfg_inf::{CfgInf, CfgInfOwned, CfgInfRef},
    cfg_itfm::{CfgItfm, CfgItfmOwned, CfgItfmRef},
    cfg_nav5::{CfgNav5, CfgNav5Owned, CfgNav5Ref},
    cfg_odo::{CfgOdo, CfgOdoOwned, CfgOdoRef},
    cfg_prt::{
        CfgPrtI2c, CfgPrtI2cOwned, CfgPrtI2cRef, CfgPrtSpi, CfgPrtSpiOwned, CfgPrtSpiRef,
        CfgPrtUart, CfgPrtUartOwned, CfgPrtUartRef,
    },
    cfg_tmode2::{CfgTmode2, CfgTmode2Owned, CfgTmode2Ref},
    cfg_tmode3::{CfgTmode3, CfgTmode3Owned, CfgTmode3Ref},
    cfg_tp5::{CfgTp5, CfgTp5Owned, CfgTp5Ref},
    cfg_val::{CfgValGetResponse, CfgValGetResponseOwned, CfgValGetResponseRef},
    esf_alg::{EsfAlg, EsfAlgOwned, EsfAlgRef},
    esf_ins::{EsfIns, EsfInsOwned, EsfInsRef},
    esf_meas::{EsfMeas, EsfMeasOwned, EsfMeasRef},
    esf_raw::{EsfRaw, EsfRawOwned, EsfRawRef},
    esf_status::{EsfStatus, EsfStatusOwned, EsfStatusRef},
    inf_debug::{InfDebug, InfDebugOwned, InfDebugRef},
    inf_error::{InfError, InfErrorOwned, InfErrorRef},
    inf_notice::{InfNotice, InfNoticeOwned, InfNoticeRef},
    inf_test::{InfTest, InfTestOwned, InfTestRef},
    inf_warning::{InfWarning, InfWarningOwned, InfWarningRef},
    mga_ack::{MgaAck, MgaAckOwned, MgaAckRef},
    mga_bds_eph::{MgaBdsEph, MgaBdsEphOwned, MgaBdsEphRef},
    mga_bds_utc::{MgaBdsUtc, MgaBdsUtcOwned, MgaBdsUtcRef},
    mga_gal_eph::{MgaGalEph, MgaGalEphOwned, MgaGalEphRef},
    mga_gal_time::{MgaGalTime, MgaGalTimeOwned, MgaGalTimeRef},
    mga_glo_eph::{MgaGloEph, MgaGloEphOwned, MgaGloEphRef},
    mga_gps_eph::{MgaGpsEph, MgaGpsEphOwned, MgaGpsEphRef},
    mga_gps_iono::{MgaGpsIono, MgaGpsIonoOwned, MgaGpsIonoRef},
    mga_gps_utc::{MgaGpsUtc, MgaGpsUtcOwned, MgaGpsUtcRef},
    mon_comms::{MonComms, MonCommsOwned, MonCommsRef},
    mon_gnss::{MonGnss, MonGnssOwned, MonGnssRef},
    mon_hw::{MonHw, MonHwOwned, MonHwRef},
    mon_hw2::{MonHw2, MonHw2Owned, MonHw2Ref},
    mon_hw3::{MonHw3, MonHw3Owned, MonHw3Ref},
    mon_io::{MonIo, MonIoOwned, MonIoRef},
    mon_rf::{MonRf, MonRfOwned, MonRfRef},
    mon_ver::{MonVer, MonVerOwned, MonVerRef},
    nav_att::{NavAtt, NavAttOwned, NavAttRef},
    nav_clock::{NavClock, NavClockOwned, NavClockRef},
    nav_cov::{NavCov, NavCovOwned, NavCovRef},
    nav_dop::{NavDop, NavDopOwned, NavDopRef},
    nav_hp_pos_ecef::{NavHpPosEcef, NavHpPosEcefOwned, NavHpPosEcefRef},
    nav_hp_pos_llh::{NavHpPosLlh, NavHpPosLlhOwned, NavHpPosLlhRef},
    nav_other::{
        NavEoe, NavEoeOwned, NavEoeRef, NavOdo, NavOdoOwned, NavOdoRef, NavVelECEF,
        NavVelECEFOwned, NavVelECEFRef,
    },
    nav_pl::{NavPl, NavPlOwned, NavPlRef},
    nav_pos_ecef::{NavPosEcef, NavPosEcefOwned, NavPosEcefRef},
    nav_pos_llh::{NavPosLlh, NavPosLlhOwned, NavPosLlhRef},
    nav_pvt::proto33::{NavPvt, NavPvtOwned, NavPvtRef},
    nav_rel_pos_ned::proto33::{NavRelPosNed, NavRelPosNedOwned, NavRelPosNedRef},
    nav_sat::{NavSat, NavSatOwned, NavSatRef},
    nav_sig::{NavSig, NavSigOwned, NavSigRef},
    nav_sol::{NavSol, NavSolOwned, NavSolRef},
    nav_status::{NavStatus, NavStatusOwned, NavStatusRef},
    nav_time_gps::{NavTimeGps, NavTimeGpsOwned, NavTimeGpsRef},
    nav_time_ls::{NavTimeLs, NavTimeLsOwned, NavTimeLsRef},
    nav_time_utc::{NavTimeUTC, NavTimeUTCOwned, NavTimeUTCRef},
    nav_vel_ned::{NavVelNed, NavVelNedOwned, NavVelNedRef},
    rxm_cor::{RxmCor, RxmCorOwned, RxmCorRef},
    rxm_rawx::{RxmRawx, RxmRawxOwned, RxmRawxRef},
    rxm_rtcm::{RxmRtcm, RxmRtcmOwned, RxmRtcmRef},
    rxm_sfrbx::{RxmSfrbx, RxmSfrbxOwned, RxmSfrbxRef},
    sec_sig::{SecSig, SecSigOwned, SecSigRef},
    sec_siglog::{SecSiglog, SecSiglogOwned, SecSiglogRef},
    sec_uniq_id::{SecUniqId, SecUniqIdOwned, SecUniqIdRef},
    tim_svin::{TimSvin, TimSvinOwned, TimSvinRef},
    tim_tm2::{TimTm2, TimTm2Owned, TimTm2Ref},
    tim_tp::{TimTp, TimTpOwned, TimTpRef},
};
use crate::{ParserError, UbxPacketMeta, UbxUnknownPacketOwned, UbxUnknownPacketRef};
use ublox_derive::define_recv_packets;

define_recv_packets!(
    enum Packet {
        _ = UbxUnknownPacket,
        AckAck,
        AckNak,
        CfgAnt,
        CfgEsfAlg,
        CfgEsfWt,
        CfgGnss,
        CfgInf,
        CfgItfm,
        CfgNav5,
        CfgOdo,
        CfgPrtI2c,
        CfgPrtSpi,
        CfgPrtUart,
        CfgTmode2,
        CfgTmode3,
        CfgTp5,
        CfgValGetResponse,
        EsfAlg,
        EsfIns,
        EsfMeas,
        EsfStatus,
        EsfRaw,
        InfError,
        InfWarning,
        InfNotice,
        InfTest,
        InfDebug,
        MonVer,
        MonGnss,
        MonHw,
        MonHw2,
        MonHw3,
        MonComms,
        MonIo,
        MonRf,
        MgaAck,
        MgaGpsIono,
        MgaGpsEph,
        MgaGpsUtc,
        MgaBdsEph,
        MgaBdsUtc,
        MgaGalEph,
        MgaGalTime,
        MgaGloEph,
        NavAtt,
        NavClock,
        NavCov,
        NavDop,
        NavEoe,
        NavHpPosLlh,
        NavHpPosEcef,
        NavOdo,
        NavPl,
        NavPosEcef,
        NavPvt,
        NavPosLlh,
        NavRelPosNed,
        NavSat,
        NavSig,
        NavSol,
        NavStatus,
        NavVelNed,
        NavTimeGps,
        NavTimeUTC,
        NavTimeLs,
        NavVelECEF,
        RxmCor,
        RxmRawx,
        RxmRtcm,
        RxmSfrbx,
        SecSig,
        SecSiglog,
        SecUniqId,
        TimSvin,
        TimTp,
        TimTm2,
    }
);