From ab2cf9567df6672e4bbb0a6aed083fc257402adc Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Wed, 28 Jun 2017 07:56:52 +1000 Subject: [PATCH 1/6] Using "develop" branch of CommsChampion. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ae2a6f8..9e92a57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,7 @@ set (CC_EXTERNAL_TGT "comms_champion_external") macro (externals install_dir build_cc) include(ExternalProject) - set (cc_tag "v0.18.1") + set (cc_tag "develop") set (cc_main_dir "${CMAKE_BINARY_DIR}/comms_champion") set (cc_src_dir "${cc_main_dir}/src") set (cc_bin_dir "${cc_main_dir}/build") From c827afda86fa48e42d8e4fd304b277c1fc484101 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Mon, 17 Jul 2017 19:21:07 +1000 Subject: [PATCH 2/6] Fixing Windows build. --- include/ublox/message/RxmSfrbx.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/ublox/message/RxmSfrbx.h b/include/ublox/message/RxmSfrbx.h index 54658a7..6297ce9 100644 --- a/include/ublox/message/RxmSfrbx.h +++ b/include/ublox/message/RxmSfrbx.h @@ -67,6 +67,7 @@ struct RxmSfrbxFields using dwrd = field::common::ListT< field::common::U4, + comms::option::SequenceSizeForcingEnabled, TOpt >; From 19bdd9bdda8ff60a6fd2a25bc20402823255c0cc Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Mon, 17 Jul 2017 20:21:04 +1000 Subject: [PATCH 3/6] Fixing Windows build. --- include/ublox/message/CfgGnss.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/ublox/message/CfgGnss.h b/include/ublox/message/CfgGnss.h index 97a0aef..0d716ef 100644 --- a/include/ublox/message/CfgGnss.h +++ b/include/ublox/message/CfgGnss.h @@ -122,7 +122,12 @@ struct CfgGnssFields /// @brief Definition of the list of configuration blocks /// @tparam TOpt Extra option(s) template - using blocksList = field::common::ListT; + using blocksList = + field::common::ListT< + block, + comms::option::SequenceSizeForcingEnabled, + TOpt + >; /// @brief All the fields bundled in std::tuple. /// @tparam TOpt Extra option(s) for @ref blocksList field From 0470eb2e1a4cc844fa6f68b7cc1b068258de6687 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Tue, 25 Jul 2017 08:00:37 +1000 Subject: [PATCH 4/6] Convenence access to bitmask bits. --- include/ublox/message/AidHui.h | 4 ++-- include/ublox/message/AidIni.h | 13 +++++++++++++ include/ublox/message/CfgAnt.h | 8 ++++---- include/ublox/message/CfgCfg.h | 12 ++++++++++++ include/ublox/message/CfgDosc.h | 4 ++-- include/ublox/message/CfgEkf.h | 14 ++++++++++---- include/ublox/message/CfgEsfgwt.h | 6 ++++++ include/ublox/message/CfgFxn.h | 6 ++++++ include/ublox/message/CfgGnss.h | 4 ++-- include/ublox/message/CfgInf.h | 4 ++-- include/ublox/message/CfgItfm.h | 8 ++++---- include/ublox/message/CfgLogfilter.h | 4 ++-- include/ublox/message/CfgNav5.h | 16 ++++++++++++++++ include/ublox/message/CfgNavx5.h | 16 ++++++++++++++-- include/ublox/message/CfgNmea.h | 8 ++++---- include/ublox/message/CfgNmeaExt.h | 6 ++++++ include/ublox/message/CfgNmeaExtV1.h | 4 ++-- include/ublox/message/CfgNvs.h | 12 ++++++++++++ include/ublox/message/CfgOdo.h | 4 ++-- include/ublox/message/CfgPm.h | 4 ++-- include/ublox/message/CfgPm2.h | 16 ++++++++-------- include/ublox/message/CfgPrt.h | 16 +++++++++++----- include/ublox/message/CfgRinv.h | 4 ++-- include/ublox/message/CfgRst.h | 6 ++++++ include/ublox/message/CfgSbas.h | 16 ++++++++-------- include/ublox/message/CfgSmgr.h | 26 ++++++++++++++++++++++---- include/ublox/message/CfgTmode2.h | 4 ++-- include/ublox/message/CfgTp.h | 4 ++-- include/ublox/message/CfgTp5.h | 4 ++-- include/ublox/message/CfgTxslot.h | 4 ++-- include/ublox/message/CfgUsb.h | 4 ++-- include/ublox/message/EsfStatus.h | 8 ++++---- include/ublox/message/LogCreate.h | 4 ++-- include/ublox/message/LogInfo.h | 6 ++++++ include/ublox/message/MgaIniFreq.h | 4 ++-- include/ublox/message/MgaIniTimeGnss.h | 4 ++-- include/ublox/message/MgaIniTimeUtc.h | 4 ++-- include/ublox/message/MonGnss.h | 12 ++++++------ include/ublox/message/MonHw.h | 8 ++++---- include/ublox/message/MonPatch.h | 4 ++-- include/ublox/message/MonRxr.h | 4 ++-- include/ublox/message/MonSmgr.h | 20 ++++++++++---------- include/ublox/message/MonTxbuf.h | 4 ++-- include/ublox/message/NavAopstatus.h | 4 ++-- include/ublox/message/NavAopstatusU8.h | 4 ++-- include/ublox/message/NavDgps.h | 4 ++-- include/ublox/message/NavEkfstatus.h | 4 ++-- include/ublox/message/NavPvt.h | 20 +++++++++++++------- include/ublox/message/NavSat.h | 12 ++++++------ include/ublox/message/NavSbas.h | 4 ++-- include/ublox/message/NavSol.h | 4 ++-- include/ublox/message/NavStatus.h | 4 ++-- include/ublox/message/NavSvinfo.h | 4 ++-- include/ublox/message/NavTimebds.h | 4 ++-- include/ublox/message/NavTimegal.h | 4 ++-- include/ublox/message/NavTimeglo.h | 4 ++-- include/ublox/message/NavTimegps.h | 4 ++-- include/ublox/message/NavTimels.h | 4 ++-- include/ublox/message/NavTimeutc.h | 4 ++-- include/ublox/message/RxmImes.h | 16 ++++++++-------- include/ublox/message/RxmPmreq.h | 6 ++++++ include/ublox/message/RxmPmreqV0.h | 12 ++++++++++++ include/ublox/message/RxmRawx.h | 8 ++++---- include/ublox/message/RxmSvsi.h | 4 ++-- include/ublox/message/TimHoc.h | 4 ++-- include/ublox/message/TimSmeas.h | 4 ++-- include/ublox/message/TimTm2.h | 8 ++++---- include/ublox/message/TimTos.h | 8 ++++---- include/ublox/message/TimTp.h | 4 ++-- 69 files changed, 327 insertions(+), 178 deletions(-) diff --git a/include/ublox/message/AidHui.h b/include/ublox/message/AidHui.h index e3674fe..d7b2c6e 100644 --- a/include/ublox/message/AidHui.h +++ b/include/ublox/message/AidHui.h @@ -94,10 +94,10 @@ struct AidHuiFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(healthValid, utcValid, klobValid); + COMMS_BITMASK_BITS_SEQ(healthValid, utcValid, klobValid); }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/AidIni.h b/include/ublox/message/AidIni.h index 602ab28..d25ed3b 100644 --- a/include/ublox/message/AidIni.h +++ b/include/ublox/message/AidIni.h @@ -81,6 +81,12 @@ struct AidIniFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(fEdge=1, tm1=4, f1=6); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(fEdge, tm1, f1); }; /// @brief Definition of "wno" field. @@ -216,6 +222,13 @@ struct AidIniFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(pos, time, clockD, tp, clockF, lla, altInv, prevTm, utc=10); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(pos, time, clockD, tp, clockF, lla, altInv, prevTm, utc); + }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/CfgAnt.h b/include/ublox/message/CfgAnt.h index 23fb5fc..948fcff 100644 --- a/include/ublox/message/CfgAnt.h +++ b/include/ublox/message/CfgAnt.h @@ -41,10 +41,10 @@ struct CfgAntFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(svcs, csd, ocd, pdwnOnSCD, recovery); + COMMS_BITMASK_BITS_SEQ(svcs, csd, ocd, pdwnOnSCD, recovery); }; /// @brief Common definition of @b pinSwitch, @b pinSCD, and @b pinOCD member @@ -59,10 +59,10 @@ struct CfgAntFields struct reconfig : public field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; /// @brief Definition of "pins" field. diff --git a/include/ublox/message/CfgCfg.h b/include/ublox/message/CfgCfg.h index 12062db..36f25c9 100644 --- a/include/ublox/message/CfgCfg.h +++ b/include/ublox/message/CfgCfg.h @@ -45,6 +45,12 @@ struct CfgCfgFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(ioPort, msgConf, infMsg, navConf, rxmConf, rinvConf=9, antConf, logConf, ftsConf); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(ioPort, msgConf, infMsg, navConf, rxmConf, rinvConf, antConf, logConf, ftsConf); }; /// @brief Definition of "clearMask" field. @@ -65,6 +71,12 @@ struct CfgCfgFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(devBBR, devFlash, devEEPROM, devSpiFlash=4); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(devBBR, devFlash, devEEPROM, devSpiFlash); }; /// @brief Definition of optional "deviceMask" field. diff --git a/include/ublox/message/CfgDosc.h b/include/ublox/message/CfgDosc.h index 4c4af28..4851ebd 100644 --- a/include/ublox/message/CfgDosc.h +++ b/include/ublox/message/CfgDosc.h @@ -67,10 +67,10 @@ struct CfgDoscFields struct isCalibrated : public field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; diff --git a/include/ublox/message/CfgEkf.h b/include/ublox/message/CfgEkf.h index ba76737..0367865 100644 --- a/include/ublox/message/CfgEkf.h +++ b/include/ublox/message/CfgEkf.h @@ -59,6 +59,12 @@ struct CfgEkfFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(clTab=1, clCalib=2, nomTacho=4, nomGyro=5, setTemp=6, dir=7); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(clTab, clCalib, nomTacho, nomGyro, setTemp, dir); }; /// @brief Definition of "configFlags" field. @@ -68,10 +74,10 @@ struct CfgEkfFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(pulsesPerM, useSerWt); + COMMS_BITMASK_BITS_SEQ(pulsesPerM, useSerWt); }; /// @brief Definition of "inverseFlags" field. @@ -81,10 +87,10 @@ struct CfgEkfFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(invDir, invGyro); + COMMS_BITMASK_BITS_SEQ(invDir, invGyro); }; /// @brief Definition of "reserved2" field. diff --git a/include/ublox/message/CfgEsfgwt.h b/include/ublox/message/CfgEsfgwt.h index c44d0fc..7d6e98f 100644 --- a/include/ublox/message/CfgEsfgwt.h +++ b/include/ublox/message/CfgEsfgwt.h @@ -44,6 +44,12 @@ struct CfgEsfgwtFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(setVehicle=12, setTime, setWt); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(setVehicle, setTime, setWt); }; /// @brief Definition of "id" field. diff --git a/include/ublox/message/CfgFxn.h b/include/ublox/message/CfgFxn.h index bc82fd6..34fd31e 100644 --- a/include/ublox/message/CfgFxn.h +++ b/include/ublox/message/CfgFxn.h @@ -44,6 +44,12 @@ struct CfgFxnFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(sleep=1, absAlign=3, onOff); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(sleep, absAlign, onOff); }; /// @brief Definition of "tReacq" field. diff --git a/include/ublox/message/CfgGnss.h b/include/ublox/message/CfgGnss.h index 0d716ef..3f8834b 100644 --- a/include/ublox/message/CfgGnss.h +++ b/include/ublox/message/CfgGnss.h @@ -71,10 +71,10 @@ struct CfgGnssFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(enable); + COMMS_BITMASK_BITS_SEQ(enable); }; /// @brief Definition of "sigCfgMask" member field of the @ref flags bitfield. diff --git a/include/ublox/message/CfgInf.h b/include/ublox/message/CfgInf.h index 3339b11..c687231 100644 --- a/include/ublox/message/CfgInf.h +++ b/include/ublox/message/CfgInf.h @@ -62,10 +62,10 @@ struct CfgInfFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(ERROR, WARNING, NOTICE, DEBUG, TEST); + COMMS_BITMASK_BITS_SEQ(ERROR, WARNING, NOTICE, DEBUG, TEST); }; /// @brief Definition of "infMsgMask" field. diff --git a/include/ublox/message/CfgItfm.h b/include/ublox/message/CfgItfm.h index 3a292c7..6bab2d5 100644 --- a/include/ublox/message/CfgItfm.h +++ b/include/ublox/message/CfgItfm.h @@ -72,10 +72,10 @@ struct CfgItfmFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; /// @brief Definition of "generalBits" member field in @ref config2 bitmask. @@ -102,10 +102,10 @@ struct CfgItfmFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; diff --git a/include/ublox/message/CfgLogfilter.h b/include/ublox/message/CfgLogfilter.h index 8898837..81bc16a 100644 --- a/include/ublox/message/CfgLogfilter.h +++ b/include/ublox/message/CfgLogfilter.h @@ -47,10 +47,10 @@ struct CfgLogfilterFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(recordEnabled, psmOncePerWakupEnabled, applyAllFilterSettings); + COMMS_BITMASK_BITS_SEQ(recordEnabled, psmOncePerWakupEnabled, applyAllFilterSettings); }; /// @brief Definition of "minInterval" field. diff --git a/include/ublox/message/CfgNav5.h b/include/ublox/message/CfgNav5.h index 791b816..dc0bae2 100644 --- a/include/ublox/message/CfgNav5.h +++ b/include/ublox/message/CfgNav5.h @@ -102,6 +102,22 @@ struct CfgNav5Fields dgpsMask, cnoThreshold, utc=10); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS( + dyn, + minEl, + posFixMode, + drLim, + posMask, + timeMask, + staticHoldMask, + dgpsMask, + cnoThreshold, + utc); }; /// @brief Definition of "dynModel" field. diff --git a/include/ublox/message/CfgNavx5.h b/include/ublox/message/CfgNavx5.h index 9b79b56..aafaa0b 100644 --- a/include/ublox/message/CfgNavx5.h +++ b/include/ublox/message/CfgNavx5.h @@ -93,6 +93,12 @@ struct CfgNavx5Fields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(minMax=2, minCno, initial3dfix=6, wknRoll=9, ackAid, ppp=13, aop=14); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(minMax, minCno, initial3dfix, wknRoll, ackAid, ppp, aop); }; /// @brief Definition of "mask2" field. @@ -106,6 +112,12 @@ struct CfgNavx5Fields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(adr=6, sigAttenComp); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(adr, sigAttenComp); }; @@ -174,10 +186,10 @@ struct CfgNavx5Fields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(useAOP); + COMMS_BITMASK_BITS_SEQ(useAOP); }; /// @brief Definition of "reserved5" field. diff --git a/include/ublox/message/CfgNmea.h b/include/ublox/message/CfgNmea.h index 2785af7..b7558a3 100644 --- a/include/ublox/message/CfgNmea.h +++ b/include/ublox/message/CfgNmea.h @@ -59,10 +59,10 @@ struct CfgNmeaFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(posFilt, mskPosFilt, timeFilt, dateFilt, gpsOnlyFilter, trackFilt); + COMMS_BITMASK_BITS_SEQ(posFilt, mskPosFilt, timeFilt, dateFilt, gpsOnlyFilter, trackFilt); }; /// @brief Definition of "nmeaVersion" field. @@ -83,10 +83,10 @@ struct CfgNmeaFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(compat, consider); + COMMS_BITMASK_BITS_SEQ(compat, consider); }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/CfgNmeaExt.h b/include/ublox/message/CfgNmeaExt.h index 66d46f7..d871f7f 100644 --- a/include/ublox/message/CfgNmeaExt.h +++ b/include/ublox/message/CfgNmeaExt.h @@ -73,6 +73,12 @@ struct CfgNmeaExtFields : public CfgNmeaFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(gps, sbas, qzss=4, glonass, beidou); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(gps, sbas, qzss, glonass, beidou); }; /// @brief Definition of "svNumbering" field. diff --git a/include/ublox/message/CfgNmeaExtV1.h b/include/ublox/message/CfgNmeaExtV1.h index cf93aef..e6d0bca 100644 --- a/include/ublox/message/CfgNmeaExtV1.h +++ b/include/ublox/message/CfgNmeaExtV1.h @@ -72,10 +72,10 @@ struct CfgNmeaExtV1Fields : public CfgNmeaExtFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(compat, consider, limit82); + COMMS_BITMASK_BITS_SEQ(compat, consider, limit82); }; diff --git a/include/ublox/message/CfgNvs.h b/include/ublox/message/CfgNvs.h index 5e2fd60..f51e810 100644 --- a/include/ublox/message/CfgNvs.h +++ b/include/ublox/message/CfgNvs.h @@ -55,6 +55,12 @@ struct CfgNvsFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(alm=17, aop=29); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(alm, aop); }; /// @brief Definition of "clearMask" field. @@ -77,6 +83,12 @@ struct CfgNvsFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(devBBR, devFlash, devEEPROM, devSpiFlash=4); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(devBBR, devFlash, devEEPROM, devSpiFlash); }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/CfgOdo.h b/include/ublox/message/CfgOdo.h index 77eabfb..e29345c 100644 --- a/include/ublox/message/CfgOdo.h +++ b/include/ublox/message/CfgOdo.h @@ -50,10 +50,10 @@ struct CfgOdoFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(useODO, useCOG, outLPVel, outLPCog); + COMMS_BITMASK_BITS_SEQ(useODO, useCOG, outLPVel, outLPCog); }; /// @brief Value enumeration for @ref profile field. diff --git a/include/ublox/message/CfgPm.h b/include/ublox/message/CfgPm.h index d24a6dc..3beaf28 100644 --- a/include/ublox/message/CfgPm.h +++ b/include/ublox/message/CfgPm.h @@ -122,10 +122,10 @@ struct CfgPmFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(waitTimeFix, updateRTC, updateEPH); + COMMS_BITMASK_BITS_SEQ(waitTimeFix, updateRTC, updateEPH); }; /// @brief Definition of "flags" field. diff --git a/include/ublox/message/CfgPm2.h b/include/ublox/message/CfgPm2.h index d8cd3eb..4752ac3 100644 --- a/include/ublox/message/CfgPm2.h +++ b/include/ublox/message/CfgPm2.h @@ -126,10 +126,10 @@ struct CfgPm2Fields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; /// @brief Definition of "updateRTC" bit as a bitmask member of @ref flags bitfield field. @@ -137,10 +137,10 @@ struct CfgPm2Fields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; /// @brief Definition of "updateEPH" bit as a bitmask member of @ref flags bitfield field. @@ -148,10 +148,10 @@ struct CfgPm2Fields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; /// @brief Definition of "doNotEnterOff" bit as a bitmask member of @ref flags bitfield field. @@ -159,10 +159,10 @@ struct CfgPm2Fields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; /// @brief Definition of "mode" member of @ref flags bitfield field. diff --git a/include/ublox/message/CfgPrt.h b/include/ublox/message/CfgPrt.h index 51268b1..bc15cbf 100644 --- a/include/ublox/message/CfgPrt.h +++ b/include/ublox/message/CfgPrt.h @@ -62,10 +62,10 @@ struct CfgPrtFields struct en : public field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; /// @brief Definition of "pol" member field in @ref txReady bitfield @@ -121,7 +121,7 @@ struct CfgPrtFields /// @details See definition of @b COMMS_BITMASK_BITS macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(inUbx, inNmea, inRtcm); + COMMS_BITMASK_BITS_SEQ(inUbx, inNmea, inRtcm); }; /// @brief Definition of "outProtoMask" field. @@ -129,10 +129,10 @@ struct CfgPrtFields field::common::X2T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(outUbx, outNmea); + COMMS_BITMASK_BITS_SEQ(outUbx, outNmea); }; /// @brief Definition of "flags" field. @@ -144,6 +144,12 @@ struct CfgPrtFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(extendedTxTimeout=1); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(extendedTxTimeout); }; /// @brief Definition of "reserved5" field diff --git a/include/ublox/message/CfgRinv.h b/include/ublox/message/CfgRinv.h index f059168..f1a3071 100644 --- a/include/ublox/message/CfgRinv.h +++ b/include/ublox/message/CfgRinv.h @@ -40,10 +40,10 @@ struct CfgRinvFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(dump, binary); + COMMS_BITMASK_BITS_SEQ(dump, binary); }; /// @brief Definition of "data" field. diff --git a/include/ublox/message/CfgRst.h b/include/ublox/message/CfgRst.h index befb5ba..fa9879b 100644 --- a/include/ublox/message/CfgRst.h +++ b/include/ublox/message/CfgRst.h @@ -75,6 +75,12 @@ struct CfgRstFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(eph, alm, health, klob, pos, clkd, osc, utc, rtc, sfdr=11, vmon, tct, aop=15); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(eph, alm, health, klob, pos, clkd, osc, utc, rtc, sfdr, vmon, tct, aop); }; /// @brief Definition of "resetMode" field. diff --git a/include/ublox/message/CfgSbas.h b/include/ublox/message/CfgSbas.h index f0bff79..cfb2ab9 100644 --- a/include/ublox/message/CfgSbas.h +++ b/include/ublox/message/CfgSbas.h @@ -41,10 +41,10 @@ struct CfgSbasFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(enabled, test); + COMMS_BITMASK_BITS_SEQ(enabled, test); }; /// @brief Definition of "usage" field. @@ -54,10 +54,10 @@ struct CfgSbasFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(range, diffCorr, integrity); + COMMS_BITMASK_BITS_SEQ(range, diffCorr, integrity); }; /// @brief Definition of "maxSBAS" field. @@ -73,20 +73,20 @@ struct CfgSbasFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(PRN152, PRN153, PRN154, PRN155, PRN156, PRN157, PRN158); + COMMS_BITMASK_BITS_SEQ(PRN152, PRN153, PRN154, PRN155, PRN156, PRN157, PRN158); }; /// @brief Definition of "scanmode1" field. struct scanmode1 : public field::common::X4 { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS( + COMMS_BITMASK_BITS_SEQ( PRN120, PRN121, PRN122, diff --git a/include/ublox/message/CfgSmgr.h b/include/ublox/message/CfgSmgr.h index de315bf..16e29ad 100644 --- a/include/ublox/message/CfgSmgr.h +++ b/include/ublox/message/CfgSmgr.h @@ -62,10 +62,10 @@ struct CfgSmgrFields field::common::X2T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(measInternal, measGNSS, measEXTINT0, measEXTINT1); + COMMS_BITMASK_BITS_SEQ(measInternal, measGNSS, measEXTINT0, measEXTINT1); }; /// @brief Definition of "maxSlewRate" field. @@ -113,6 +113,24 @@ struct CfgSmgrFields issueFreqWarning, issueTimeWarning ); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS( + disableInternal, + disableExternal, + preferenceMode, + enableGNSS, + enableEXTINT0, + enableEXTINT1, + enableHostMeasInt, + enableHostMeasExt, + useAnyFix, + disableMaxSlewRate, + issueFreqWarning, + issueTimeWarning); }; /// @brief Definition of "flagshHigh" member field of @ref flags bitfield. @@ -123,10 +141,10 @@ struct CfgSmgrFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(disableOffset); + COMMS_BITMASK_BITS_SEQ(disableOffset); }; /// @brief Definition of "flags" field. diff --git a/include/ublox/message/CfgTmode2.h b/include/ublox/message/CfgTmode2.h index a113d57..f1e6565 100644 --- a/include/ublox/message/CfgTmode2.h +++ b/include/ublox/message/CfgTmode2.h @@ -59,10 +59,10 @@ struct CfgTmode2Fields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(lla, altInv); + COMMS_BITMASK_BITS_SEQ(lla, altInv); }; /// @brief Definition of "ecefX" field. diff --git a/include/ublox/message/CfgTp.h b/include/ublox/message/CfgTp.h index 523e2a7..d062f50 100644 --- a/include/ublox/message/CfgTp.h +++ b/include/ublox/message/CfgTp.h @@ -74,10 +74,10 @@ struct CfgTpFields struct flags : public field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(syncMode); + COMMS_BITMASK_BITS_SEQ(syncMode); }; /// @brief Definition of "res" field. diff --git a/include/ublox/message/CfgTp5.h b/include/ublox/message/CfgTp5.h index d17858f..3e9072d 100644 --- a/include/ublox/message/CfgTp5.h +++ b/include/ublox/message/CfgTp5.h @@ -178,10 +178,10 @@ struct CfgTp5Fields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(active, logGpsFreq, lockedOtherSet, isFreq, isLength, alignToTow, polarity); + COMMS_BITMASK_BITS_SEQ(active, logGpsFreq, lockedOtherSet, isFreq, isLength, alignToTow, polarity); }; /// @brief Enumeration for @ref gridUtcGnss field. diff --git a/include/ublox/message/CfgTxslot.h b/include/ublox/message/CfgTxslot.h index b21068b..f8e5d0d 100644 --- a/include/ublox/message/CfgTxslot.h +++ b/include/ublox/message/CfgTxslot.h @@ -46,10 +46,10 @@ struct CfgTxslotFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(DDC, UART1, UART2, USB, SPI); + COMMS_BITMASK_BITS_SEQ(DDC, UART1, UART2, USB, SPI); }; /// @brief Value enumeration for @ref refTp field. diff --git a/include/ublox/message/CfgUsb.h b/include/ublox/message/CfgUsb.h index a3661ba..5f03907 100644 --- a/include/ublox/message/CfgUsb.h +++ b/include/ublox/message/CfgUsb.h @@ -59,10 +59,10 @@ struct CfgUsbFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(reEnum, powerMode); + COMMS_BITMASK_BITS_SEQ(reEnum, powerMode); }; /// @brief Definition of "vendorString" field. diff --git a/include/ublox/message/EsfStatus.h b/include/ublox/message/EsfStatus.h index 275b493..1ec6cbd 100644 --- a/include/ublox/message/EsfStatus.h +++ b/include/ublox/message/EsfStatus.h @@ -81,10 +81,10 @@ struct EsfStatusFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(used, ready); + COMMS_BITMASK_BITS_SEQ(used, ready); }; /// @brief Definition of "sensStatus1" field. @@ -173,10 +173,10 @@ struct EsfStatusFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(badMeas, badTTag, missingMeas, noisyMeas); + COMMS_BITMASK_BITS_SEQ(badMeas, badTTag, missingMeas, noisyMeas); }; diff --git a/include/ublox/message/LogCreate.h b/include/ublox/message/LogCreate.h index a025abb..aa90667 100644 --- a/include/ublox/message/LogCreate.h +++ b/include/ublox/message/LogCreate.h @@ -55,10 +55,10 @@ struct LogCreateFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(circular); + COMMS_BITMASK_BITS_SEQ(circular); }; /// @brief Definition of "reserved" field. diff --git a/include/ublox/message/LogInfo.h b/include/ublox/message/LogInfo.h index 97e1790..9c8bcac 100644 --- a/include/ublox/message/LogInfo.h +++ b/include/ublox/message/LogInfo.h @@ -114,6 +114,12 @@ struct LogInfoFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(recording=3, inactive, circular); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(recording, inactive, circular); }; /// @brief Definition of "reserved6" field. diff --git a/include/ublox/message/MgaIniFreq.h b/include/ublox/message/MgaIniFreq.h index 66e4e80..a9a3e64 100644 --- a/include/ublox/message/MgaIniFreq.h +++ b/include/ublox/message/MgaIniFreq.h @@ -75,10 +75,10 @@ struct MgaIniFreqFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(fall); + COMMS_BITMASK_BITS_SEQ(fall); }; /// @brief Definition of "flags" field. diff --git a/include/ublox/message/MgaIniTimeGnss.h b/include/ublox/message/MgaIniTimeGnss.h index bd5fe49..404d466 100644 --- a/include/ublox/message/MgaIniTimeGnss.h +++ b/include/ublox/message/MgaIniTimeGnss.h @@ -72,10 +72,10 @@ struct MgaIniTimeGnssFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(fall, last); + COMMS_BITMASK_BITS_SEQ(fall, last); }; /// @brief Definition of "ref" field. diff --git a/include/ublox/message/MgaIniTimeUtc.h b/include/ublox/message/MgaIniTimeUtc.h index 90e24e6..874c544 100644 --- a/include/ublox/message/MgaIniTimeUtc.h +++ b/include/ublox/message/MgaIniTimeUtc.h @@ -72,10 +72,10 @@ struct MgaIniTimeUtcFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(fall, last); + COMMS_BITMASK_BITS_SEQ(fall, last); }; /// @brief Definition of "ref" field. diff --git a/include/ublox/message/MonGnss.h b/include/ublox/message/MonGnss.h index a5fc725..dc61210 100644 --- a/include/ublox/message/MonGnss.h +++ b/include/ublox/message/MonGnss.h @@ -47,10 +47,10 @@ struct MonGnssFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(GPSSup, GlonassSup, BeidouSup, GalileoSup); + COMMS_BITMASK_BITS_SEQ(GPSSup, GlonassSup, BeidouSup, GalileoSup); }; /// @brief Definition of "default" field. @@ -60,10 +60,10 @@ struct MonGnssFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(GPSDef, GlonassDef, BeidouDef, GalileoDef); + COMMS_BITMASK_BITS_SEQ(GPSDef, GlonassDef, BeidouDef, GalileoDef); }; /// @brief Definition of "enabled" field. @@ -73,10 +73,10 @@ struct MonGnssFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(GPSEna, GlonassEna, BeidouEna, GalileoEna); + COMMS_BITMASK_BITS_SEQ(GPSEna, GlonassEna, BeidouEna, GalileoEna); }; diff --git a/include/ublox/message/MonHw.h b/include/ublox/message/MonHw.h index 111ebd7..9949dde 100644 --- a/include/ublox/message/MonHw.h +++ b/include/ublox/message/MonHw.h @@ -110,10 +110,10 @@ struct MonHwFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; /// @brief Definition of "safeBoot" member field of @ref flags bitfield. @@ -139,10 +139,10 @@ struct MonHwFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; diff --git a/include/ublox/message/MonPatch.h b/include/ublox/message/MonPatch.h index b36a155..a2f79b6 100644 --- a/include/ublox/message/MonPatch.h +++ b/include/ublox/message/MonPatch.h @@ -50,10 +50,10 @@ struct MonPatchFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(bit); + COMMS_BITMASK_BITS_SEQ(bit); }; diff --git a/include/ublox/message/MonRxr.h b/include/ublox/message/MonRxr.h index 1a12f79..48ad805 100644 --- a/include/ublox/message/MonRxr.h +++ b/include/ublox/message/MonRxr.h @@ -40,10 +40,10 @@ struct MonRxrFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(awake); + COMMS_BITMASK_BITS_SEQ(awake); }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/MonSmgr.h b/include/ublox/message/MonSmgr.h index a1dfe8b..1d2b259 100644 --- a/include/ublox/message/MonSmgr.h +++ b/include/ublox/message/MonSmgr.h @@ -71,10 +71,10 @@ struct MonSmgrFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(intOscCalib, intOscDisc); + COMMS_BITMASK_BITS_SEQ(intOscCalib, intOscDisc); }; /// @brief Definition of "intOsc" field. @@ -107,10 +107,10 @@ struct MonSmgrFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(extOscCalib, extOscDisc); + COMMS_BITMASK_BITS_SEQ(extOscCalib, extOscDisc); }; /// @brief Definition of "extOsc" field. @@ -155,10 +155,10 @@ struct MonSmgrFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(gnssAvail); + COMMS_BITMASK_BITS_SEQ(gnssAvail); }; /// @brief Definition of "extInt0" field. @@ -168,10 +168,10 @@ struct MonSmgrFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(extInt0Avail, extInt0Type, extInt0FeedBack); + COMMS_BITMASK_BITS_SEQ(extInt0Avail, extInt0Type, extInt0FeedBack); }; /// @brief Definition of "extInt1" field. @@ -181,10 +181,10 @@ struct MonSmgrFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(extInt1Avail, extInt1Type, extInt1FeedBack); + COMMS_BITMASK_BITS_SEQ(extInt1Avail, extInt1Type, extInt1FeedBack); }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/MonTxbuf.h b/include/ublox/message/MonTxbuf.h index 7c0c3e7..200e43d 100644 --- a/include/ublox/message/MonTxbuf.h +++ b/include/ublox/message/MonTxbuf.h @@ -80,10 +80,10 @@ struct MonTxbufFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(mem, alloc); + COMMS_BITMASK_BITS_SEQ(mem, alloc); }; /// @brief Definition of "errors" field. diff --git a/include/ublox/message/NavAopstatus.h b/include/ublox/message/NavAopstatus.h index c4b3252..e4bbd59 100644 --- a/include/ublox/message/NavAopstatus.h +++ b/include/ublox/message/NavAopstatus.h @@ -41,10 +41,10 @@ struct NavAopstatusFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(useAOP); + COMMS_BITMASK_BITS_SEQ(useAOP); }; /// @brief Definition of "status" field. diff --git a/include/ublox/message/NavAopstatusU8.h b/include/ublox/message/NavAopstatusU8.h index 2304236..2314e1c 100644 --- a/include/ublox/message/NavAopstatusU8.h +++ b/include/ublox/message/NavAopstatusU8.h @@ -41,10 +41,10 @@ struct NavAopstatusU8Fields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(useAOP); + COMMS_BITMASK_BITS_SEQ(useAOP); }; /// @brief Definition of "status" field. diff --git a/include/ublox/message/NavDgps.h b/include/ublox/message/NavDgps.h index 4f751a8..3f76926 100644 --- a/include/ublox/message/NavDgps.h +++ b/include/ublox/message/NavDgps.h @@ -84,10 +84,10 @@ struct NavDgpsFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(dgpsUsed); + COMMS_BITMASK_BITS_SEQ(dgpsUsed); }; /// @brief Definition of "flags" field. diff --git a/include/ublox/message/NavEkfstatus.h b/include/ublox/message/NavEkfstatus.h index 2b793c0..260bf4f 100644 --- a/include/ublox/message/NavEkfstatus.h +++ b/include/ublox/message/NavEkfstatus.h @@ -113,10 +113,10 @@ struct NavEkfstatusFields struct measUsed : public field::common::X1 { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(pulse, direction, gyro, temp, pos, vel, errGyro, errPulse); + COMMS_BITMASK_BITS_SEQ(pulse, direction, gyro, temp, pos, vel, errGyro, errPulse); }; /// @brief Definition of "reserved2" field. diff --git a/include/ublox/message/NavPvt.h b/include/ublox/message/NavPvt.h index 9570e93..a2dc641 100644 --- a/include/ublox/message/NavPvt.h +++ b/include/ublox/message/NavPvt.h @@ -72,10 +72,10 @@ struct NavPvtFields comms::option::BitmaskReservedBits<0xf8, 0> > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(validDate, validTime, fullyResolved); + COMMS_BITMASK_BITS_SEQ(validDate, validTime, fullyResolved); }; /// @brief Definition of "tAcc" field. @@ -93,10 +93,10 @@ struct NavPvtFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(gnssFixOK, diffSoln); + COMMS_BITMASK_BITS_SEQ(gnssFixOK, diffSoln); }; /// @brief Definition of "psmState" member field in @ref flags bitmask field. @@ -112,14 +112,14 @@ struct NavPvtFields struct flagsHigh : public field::common::X1T< comms::option::FixedBitLength<3>, - comms::option::BitmaskReservedBits<0xfc, 0> + comms::option::BitmaskReservedBits<0xfe, 0> > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(headVehValid); + COMMS_BITMASK_BITS_SEQ(headVehValid); }; @@ -149,6 +149,12 @@ struct NavPvtFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(confirmedAvai=5, confirmedDate, confirmedTime); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(confirmedAvai, confirmedDate, confirmedTime); }; diff --git a/include/ublox/message/NavSat.h b/include/ublox/message/NavSat.h index c53abdf..50aeb38 100644 --- a/include/ublox/message/NavSat.h +++ b/include/ublox/message/NavSat.h @@ -100,10 +100,10 @@ struct NavSatFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(svUsed); + COMMS_BITMASK_BITS_SEQ(svUsed); }; /// @brief Value enumeration for @ref health field. @@ -130,10 +130,10 @@ struct NavSatFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(diffCorr, smoothed); + COMMS_BITMASK_BITS_SEQ(diffCorr, smoothed); }; /// @brief Value enumeration for @ref orbitSource field. @@ -163,10 +163,10 @@ struct NavSatFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(ephAvail, almAvail, anoAvail, aopAvail); + COMMS_BITMASK_BITS_SEQ(ephAvail, almAvail, anoAvail, aopAvail); }; /// @brief Definition of "flags" field. diff --git a/include/ublox/message/NavSbas.h b/include/ublox/message/NavSbas.h index dc24fdb..68a682e 100644 --- a/include/ublox/message/NavSbas.h +++ b/include/ublox/message/NavSbas.h @@ -116,10 +116,10 @@ struct NavSbasFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(Ranging, Corrections, Integrity, Testmode); + COMMS_BITMASK_BITS_SEQ(Ranging, Corrections, Integrity, Testmode); }; /// @brief Definition of "cnt" field. diff --git a/include/ublox/message/NavSol.h b/include/ublox/message/NavSol.h index 47d6576..c31986d 100644 --- a/include/ublox/message/NavSol.h +++ b/include/ublox/message/NavSol.h @@ -52,10 +52,10 @@ struct NavSolFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(GPSfixOK, DiffSoln, WKNSET, TOWSET); + COMMS_BITMASK_BITS_SEQ(GPSfixOK, DiffSoln, WKNSET, TOWSET); }; /// @brief Definition of "ecefX" field. diff --git a/include/ublox/message/NavStatus.h b/include/ublox/message/NavStatus.h index 6668220..52f26e4 100644 --- a/include/ublox/message/NavStatus.h +++ b/include/ublox/message/NavStatus.h @@ -74,10 +74,10 @@ struct NavStatusFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(gpsFixOk, diffSoln, wknSet, towSet); + COMMS_BITMASK_BITS_SEQ(gpsFixOk, diffSoln, wknSet, towSet); }; /// @brief Definition of "dgpsIStat" member fields of @ref fixStat bitfield. diff --git a/include/ublox/message/NavSvinfo.h b/include/ublox/message/NavSvinfo.h index d042d21..c65111b 100644 --- a/include/ublox/message/NavSvinfo.h +++ b/include/ublox/message/NavSvinfo.h @@ -101,10 +101,10 @@ struct NavSvinfoFields struct flags : public field::common::X1 { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(svUsed, diffCorr, orbitAvail, orbitEph, unhealthy, orbitAlm, orbitAop, smoothed); + COMMS_BITMASK_BITS_SEQ(svUsed, diffCorr, orbitAvail, orbitEph, unhealthy, orbitAlm, orbitAop, smoothed); }; /// @brief Definition of "quality" field. diff --git a/include/ublox/message/NavTimebds.h b/include/ublox/message/NavTimebds.h index 3e712fb..65300dd 100644 --- a/include/ublox/message/NavTimebds.h +++ b/include/ublox/message/NavTimebds.h @@ -53,10 +53,10 @@ struct NavTimebdsFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(sowValid, weekValid, leapSValid); + COMMS_BITMASK_BITS_SEQ(sowValid, weekValid, leapSValid); }; /// @brief Definition of "tAcc" field. diff --git a/include/ublox/message/NavTimegal.h b/include/ublox/message/NavTimegal.h index 0ee9eac..2aa140f 100644 --- a/include/ublox/message/NavTimegal.h +++ b/include/ublox/message/NavTimegal.h @@ -53,10 +53,10 @@ struct NavTimegalFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(galTowValid, galWnoValid, leapSValid); + COMMS_BITMASK_BITS_SEQ(galTowValid, galWnoValid, leapSValid); }; /// @brief Definition of "tAcc" field. diff --git a/include/ublox/message/NavTimeglo.h b/include/ublox/message/NavTimeglo.h index 24fff2d..212b04a 100644 --- a/include/ublox/message/NavTimeglo.h +++ b/include/ublox/message/NavTimeglo.h @@ -53,10 +53,10 @@ struct NavTimegloFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(todValid, dateValid); + COMMS_BITMASK_BITS_SEQ(todValid, dateValid); }; /// @brief Definition of "tAcc" field. diff --git a/include/ublox/message/NavTimegps.h b/include/ublox/message/NavTimegps.h index d87f8aa..15a42b3 100644 --- a/include/ublox/message/NavTimegps.h +++ b/include/ublox/message/NavTimegps.h @@ -50,10 +50,10 @@ struct NavTimegpsFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(towValid, weekValid, leapSValid); + COMMS_BITMASK_BITS_SEQ(towValid, weekValid, leapSValid); }; /// @brief Definition of "tAcc" field. diff --git a/include/ublox/message/NavTimels.h b/include/ublox/message/NavTimels.h index 77bf436..a02aa45 100644 --- a/include/ublox/message/NavTimels.h +++ b/include/ublox/message/NavTimels.h @@ -124,10 +124,10 @@ struct NavTimelsFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(validCurrLs, validTimeToLsEvent); + COMMS_BITMASK_BITS_SEQ(validCurrLs, validTimeToLsEvent); }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/NavTimeutc.h b/include/ublox/message/NavTimeutc.h index 7261caa..ff8420e 100644 --- a/include/ublox/message/NavTimeutc.h +++ b/include/ublox/message/NavTimeutc.h @@ -68,10 +68,10 @@ struct NavTimeutcFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(validTOW, validWKN, validUTC); + COMMS_BITMASK_BITS_SEQ(validTOW, validWKN, validUTC); }; /// @brief Definition of "utcStandard" member field of @ref validBitfield field. diff --git a/include/ublox/message/RxmImes.h b/include/ublox/message/RxmImes.h index 598a939..a8b37be 100644 --- a/include/ublox/message/RxmImes.h +++ b/include/ublox/message/RxmImes.h @@ -113,10 +113,10 @@ struct RxmImesFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(pos1Valid); + COMMS_BITMASK_BITS_SEQ(pos1Valid); }; /// @brief Definition of "position1_2" field. @@ -172,10 +172,10 @@ struct RxmImesFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(pos2Valid); + COMMS_BITMASK_BITS_SEQ(pos2Valid); }; /// @brief Definition of "position2_1" field. @@ -222,10 +222,10 @@ struct RxmImesFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(shortValid, shortBoundary); + COMMS_BITMASK_BITS_SEQ(shortValid, shortBoundary); }; /// @brief Definition of "shortIdFrame" field. @@ -254,10 +254,10 @@ struct RxmImesFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(mediumIdMSB, mediumValid, mediumboundary); + COMMS_BITMASK_BITS_SEQ(mediumIdMSB, mediumValid, mediumboundary); }; /// @brief Definition of a single block of @ref data list diff --git a/include/ublox/message/RxmPmreq.h b/include/ublox/message/RxmPmreq.h index 7d48c70..58b5478 100644 --- a/include/ublox/message/RxmPmreq.h +++ b/include/ublox/message/RxmPmreq.h @@ -47,6 +47,12 @@ struct RxmPmreqFields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(backup=1); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(backup); }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/RxmPmreqV0.h b/include/ublox/message/RxmPmreqV0.h index 7c5efea..01e67db 100644 --- a/include/ublox/message/RxmPmreqV0.h +++ b/include/ublox/message/RxmPmreqV0.h @@ -56,6 +56,12 @@ struct RxmPmreqV0Fields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(backup=1, force); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(backup, force); }; /// @brief Definition of "wakeupSources" field. @@ -69,6 +75,12 @@ struct RxmPmreqV0Fields /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. COMMS_BITMASK_BITS(uartrx=3, extint0=5, extint1, spics); + + /// @brief Provide convenience access functions for internal bits. + /// @details See definition of @b COMMS_BITMASK_BITS_ACCESS macro + /// related to @b comms::field::BitmaskValue class from COMMS library + /// for details. + COMMS_BITMASK_BITS_ACCESS(uartrx, extint0, extint1, spics); }; /// @brief All the fields bundled in std::tuple. diff --git a/include/ublox/message/RxmRawx.h b/include/ublox/message/RxmRawx.h index b893a29..551fe13 100644 --- a/include/ublox/message/RxmRawx.h +++ b/include/ublox/message/RxmRawx.h @@ -52,10 +52,10 @@ struct RxmRawxFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(leapSec, clkReset); + COMMS_BITMASK_BITS_SEQ(leapSec, clkReset); }; /// @brief Definition of "version" field. @@ -117,10 +117,10 @@ struct RxmRawxFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(prValid, cpValid, halfCyc, subHalfCyc); + COMMS_BITMASK_BITS_SEQ(prValid, cpValid, halfCyc, subHalfCyc); }; /// @brief Definition of "reserved3" field. diff --git a/include/ublox/message/RxmSvsi.h b/include/ublox/message/RxmSvsi.h index 7839cf2..cedaf56 100644 --- a/include/ublox/message/RxmSvsi.h +++ b/include/ublox/message/RxmSvsi.h @@ -63,10 +63,10 @@ struct RxmSvsiFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(healthy, ephVal, almVal, notAvail); + COMMS_BITMASK_BITS_SEQ(healthy, ephVal, almVal, notAvail); }; /// @brief Definition of "svFlag" field. diff --git a/include/ublox/message/TimHoc.h b/include/ublox/message/TimHoc.h index 8c6d497..6911500 100644 --- a/include/ublox/message/TimHoc.h +++ b/include/ublox/message/TimHoc.h @@ -58,10 +58,10 @@ struct TimHocFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(raw, difference); + COMMS_BITMASK_BITS_SEQ(raw, difference); }; diff --git a/include/ublox/message/TimSmeas.h b/include/ublox/message/TimSmeas.h index ce5f930..7d1674a 100644 --- a/include/ublox/message/TimSmeas.h +++ b/include/ublox/message/TimSmeas.h @@ -57,10 +57,10 @@ struct TimSmeasFields field::common::X1T > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(freqValid, phaseValid); + COMMS_BITMASK_BITS_SEQ(freqValid, phaseValid); }; /// @brief Definition of "phaseOffsetFrac" field. diff --git a/include/ublox/message/TimTm2.h b/include/ublox/message/TimTm2.h index 23f99cc..465aa73 100644 --- a/include/ublox/message/TimTm2.h +++ b/include/ublox/message/TimTm2.h @@ -57,10 +57,10 @@ struct TimTm2Fields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(mode, run, newFallingEdge); + COMMS_BITMASK_BITS_SEQ(mode, run, newFallingEdge); }; /// @brief Definition of "timeBase" member field of @ref flags bitfield. @@ -80,10 +80,10 @@ struct TimTm2Fields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(utc, time, newRisingEdge); + COMMS_BITMASK_BITS_SEQ(utc, time, newRisingEdge); }; /// @brief Definition of "flags" field. diff --git a/include/ublox/message/TimTos.h b/include/ublox/message/TimTos.h index c9a7d63..45fa49c 100644 --- a/include/ublox/message/TimTos.h +++ b/include/ublox/message/TimTos.h @@ -49,10 +49,10 @@ struct TimTosFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS( + COMMS_BITMASK_BITS_SEQ( leapNow, leapSoon, leapPositive, @@ -93,10 +93,10 @@ struct TimTosFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(raim, cohPulse, lockedPulse); + COMMS_BITMASK_BITS_SEQ(raim, cohPulse, lockedPulse); }; /// @brief Definition of "flags" field. diff --git a/include/ublox/message/TimTp.h b/include/ublox/message/TimTp.h index e4ec0ac..a026939 100644 --- a/include/ublox/message/TimTp.h +++ b/include/ublox/message/TimTp.h @@ -58,10 +58,10 @@ struct TimTpFields > { /// @brief Provide names for internal bits. - /// @details See definition of @b COMMS_BITMASK_BITS macro + /// @details See definition of @b COMMS_BITMASK_BITS_SEQ macro /// related to @b comms::field::BitmaskValue class from COMMS library /// for details. - COMMS_BITMASK_BITS(timeBase, utc); + COMMS_BITMASK_BITS_SEQ(timeBase, utc); }; /// @brief Enumeration value for @ref raim field From 965c712f6e714faf124df305961128845afa80ed Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Tue, 25 Jul 2017 16:51:16 +1000 Subject: [PATCH 5/6] Updating documentation. --- doc/main.dox | 142 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 91 insertions(+), 51 deletions(-) diff --git a/doc/main.dox b/doc/main.dox index 14e77d5..c26e3aa 100644 --- a/doc/main.dox +++ b/doc/main.dox @@ -301,51 +301,8 @@ /// virtual void handle(MyInputMessage& msg) override {...} /// }; /// @endcode -/// -/// Every message class in ublox::message namespace uses -/// @b COMMS_MSG_FIELDS_ACCESS() macro to provide names to its fields. It -/// makes the access to the fields of the message easier. The fields can be -/// accessed via defined accessor functions: -/// @code -/// class MyHandler -/// { -/// public: -/// void handle(InNavPosecef& msg) { -/// auto& iTOW = msg.field_iTOW(); // iTOW field -/// auto& ecefX = msg.field_ecefX(); // ecefX field -/// auto& ecefY = msg.field_ecefY(); // ecefY field -/// auto& ecefZ = msg.field_ecefZ(); // ecefZ field -/// -/// auto iTowVal = iTOW.value(); // Get iTOW value -/// auto ecefXVal = ecefX.value(); // Get ecefX value -/// auto ecefYVal = ecefY.value(); // Get ecefY value -/// auto ecefZVal = ecefZ.value(); // Get ecefZ value -/// -/// ... // Do something with the values -/// } -/// }; -/// @endcode -/// or via @b FieldIdx enum. -/// @code -/// class MyHandler -/// { -/// public: -/// void handle(InNavPosecef& msg) { -/// auto& allFields = msg.fields(); // access to std::tuple of fields -/// auto& iTOW = std::get(allFields); // iTOW field -/// auto& ecefX = std::get(allFields); // ecefX field -/// auto& ecefY = std::get(allFields); // ecefY field -/// auto& ecefZ = std::get(allFields); // ecefZ field -/// -/// auto iTowVal = iTOW.value(); // Get iTOW value -/// auto ecefXVal = ecefX.value(); // Get ecefX value -/// auto ecefYVal = ecefY.value(); // Get ecefY value -/// auto ecefZVal = ecefZ.value(); // Get ecefZ value -/// -/// ... // Do something with the values -/// } -/// }; -/// @endcode +/// The later @ref ublox_fields_accessing section contains information on +/// how to access handled message fields. /// /// @section ublox_output_messages Output Messages /// Just like defining @ref ublox_input_messages, it is recommended to define @@ -377,7 +334,7 @@ /// return 0U; // Nothing has been written /// } /// -/// auto begIter = comms::writeIteratorFor(&outputBuf[0]); +/// auto begIter = comms::writeIteratorFor(buf); /// auto iter = begIter; /// auto es = protStack.write(msg, iter, bufLen); /// if (es != comms::ErrorStatus::Success) { @@ -481,10 +438,79 @@ /// @b fields() member function of the message class, the reference of such /// tuple is returned: /// @code -/// NavPosecef msg; +/// ublox::message::NavPosecef<...> msg; /// NavPosecefFields::All& fields = msg.fields(); /// @endcode /// +/// @subsection ublox_fields_accessing Accessing Message Fields +/// Every message class in ublox::message namespace uses +/// @b COMMS_MSG_FIELDS_ACCESS() macro to provide names to its fields. For +/// example comms::message::NavPosecef class defines the following names: +/// @code +/// namespace ublox +/// { +/// namespace message +/// { +/// template +/// class NavPosecef : public comms::MessageBase<...> +/// { +/// public: +/// COMMS_MSG_FIELDS_ACCESS(iTOW, ecefX, ecefY, ecefZ, pAcc); +/// ... +/// }; +/// +/// } // namespace message +/// } // namespace ublox +/// @endcode +/// +/// The macro generates @b field_ convenience access function(s) for +/// every name it receives. For example: +/// @code +/// class MyHandler +/// { +/// public: +/// void handle(InNavPosecef& msg) { +/// auto& iTOW = msg.field_iTOW(); // iTOW field +/// auto& ecefX = msg.field_ecefX(); // ecefX field +/// auto& ecefY = msg.field_ecefY(); // ecefY field +/// auto& ecefZ = msg.field_ecefZ(); // ecefZ field +/// +/// auto iTowVal = iTOW.value(); // Get iTOW value +/// auto ecefXVal = ecefX.value(); // Get ecefX value +/// auto ecefYVal = ecefY.value(); // Get ecefY value +/// auto ecefZVal = ecefZ.value(); // Get ecefZ value +/// +/// ... // Do something with the values +/// } +/// }; +/// @endcode +/// The macro also generates enum @b FieldIdx enum containing @b FieldIdx_ +/// value for every provided name. They can be used to access fields by index +/// (comparing to names). For example: +/// @code +/// class MyHandler +/// { +/// public: +/// void handle(InNavPosecef& msg) { +/// auto& allFields = msg.fields(); // access to std::tuple of fields +/// auto& iTOW = std::get(allFields); // iTOW field +/// auto& ecefX = std::get(allFields); // ecefX field +/// auto& ecefY = std::get(allFields); // ecefY field +/// auto& ecefZ = std::get(allFields); // ecefZ field +/// +/// auto iTowVal = iTOW.value(); // Get iTOW value +/// auto ecefXVal = ecefX.value(); // Get ecefX value +/// auto ecefYVal = ecefY.value(); // Get ecefY value +/// auto ecefZVal = ecefZ.value(); // Get ecefZ value +/// +/// ... // Do something with the values +/// } +/// }; +/// @endcode +/// @b NOTE, that call to @b field_() member function gives an access to +/// the @b field object, not the stored value. To access the stored value, please +/// use @b value() member function of the @b field. +/// /// In order to properly understand what the fields are, and how to operate with /// them, it is recommended to thoroughly read the /// Fields Tutorial @@ -578,7 +604,7 @@ /// no real need to know the original units also. If the @b type of the units /// is known (angle measurement in the example above), the developer can use /// the converstion function(s) to the required units. In this case the -/// compiler will do all the necessary match calculation and/or type +/// compiler will do all the necessary math calculation and/or type /// conversions. /// /// To get a better understanding on units conversion, pleas read the @@ -604,9 +630,23 @@ /// There are multiple bitmask fields that inherit from /// @b comms::field::BitmaskValue (for example ublox::message::CfgPrtFields::outProtoMask). /// This bitmask fields use @b COMMS_BITMASK_BITS() macro from @b COMMS library -/// to define names for the bits. This macro will create @b BitIdx enum with -/// all the values prefixed with @b BitIdx_, which cat be used to get/set -/// bit values. +/// to define names for the bits and @b COMMS_BITMASK_BITS_ACCESS() macro to generate +/// convenience set/get member functions. When the bits are "sequential", i.e. +/// start at bit @b 0 and go up without skips, then single @b COMMS_BITMASK_BITS_SEQ() macro +/// is used to achieve the same effect. These macro will create @b BitIdx enum with +/// all the values prefixed with @b BitIdx_, which cat be used as bit indices. +/// The macros also generate convenience access @b setBitValue_() and @b +/// getBitValue_() for every name provided to the macros. For example: +/// @code +/// using OutCfgPrtUsb = ublox::message::CfgPrtUsb; +/// +/// OutCfgPrtUsb msg; +/// auto& outProtoMaskField = msg.field_outProtoMask(); +/// +/// outProtoMaskField.setBitValue_outUbx(true); +/// outProtoMaskField.setBitValue_outNmea(false); +/// @endcode +/// The @b BitIdx enum values can also be used: /// @code /// using OutCfgPrtUsb = ublox::message::CfgPrtUsb; /// From 061d027949ad42c22d3667e9f8eb73b6d385b682 Mon Sep 17 00:00:00 2001 From: Alex Robenko Date: Sat, 29 Jul 2017 20:49:48 +1000 Subject: [PATCH 6/6] Using "v0.20" release of CommsChampion. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9e92a57..e2c7e86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,7 +68,7 @@ set (CC_EXTERNAL_TGT "comms_champion_external") macro (externals install_dir build_cc) include(ExternalProject) - set (cc_tag "develop") + set (cc_tag "v0.20") set (cc_main_dir "${CMAKE_BINARY_DIR}/comms_champion") set (cc_src_dir "${cc_main_dir}/src") set (cc_bin_dir "${cc_main_dir}/build")