Skip to content

Commit

Permalink
Added defs to fully define available packets
Browse files Browse the repository at this point in the history
  • Loading branch information
flybrianfly committed Dec 27, 2021
1 parent 7445e9a commit f3d7a86
Show file tree
Hide file tree
Showing 6 changed files with 658 additions and 413 deletions.
2 changes: 1 addition & 1 deletion examples/cmake/ublox_example.cc
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ int main() {
Serial.begin(115200);
while(!Serial) {}
Serial.println("Starting Test v1");
bool result = gnss.Begin(921600);
bool result = gnss.Begin(9600);
Serial.println(result);
// bfs::U1 val1;
// unsigned long t1, t2;
Expand Down
190 changes: 95 additions & 95 deletions src/ubx.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,101 +43,101 @@ constexpr uint8_t Ubx::UBX_HEADER_[];

bool Ubx::Begin(const uint32_t baud) {
bus_->begin(baud);
/* Disable NMEA outputs */
if (!SetCfgVal<U1>(UBX_CFG_UART1OUTPROT_NMEA_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_UART2OUTPROT_NMEA_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_USBOUTPROT_NMEA_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_I2COUTPROT_NMEA_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_SPIOUTPROT_NMEA_, 0)) {return false;}
/* Disable NMEA inputs */
if (!SetCfgVal<U1>(UBX_CFG_UART1INPROT_NMEA_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_UART2INPROT_NMEA_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_USBINPROT_NMEA_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_I2CINPROT_NMEA_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_SPIINPROT_NMEA_, 0)) {return false;}
/* Disable RTCM outputs */
if (!SetCfgVal<U1>(UBX_CFG_UART1OUTPROT_RTCM3X_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_UART2OUTPROT_RTCM3X_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_USBOUTPROT_RTCM3X_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_I2COUTPROT_RTCM3X_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_SPIOUTPROT_RTCM3X_, 0)) {return false;}
/* Disable RTCM inputs */
if (!SetCfgVal<U1>(UBX_CFG_UART1INPROT_RTCM3X_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_UART2INPROT_RTCM3X_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_USBINPROT_RTCM3X_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_I2CINPROT_RTCM3X_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_SPIINPROT_RTCM3X_, 0)) {return false;}
/* Enable UBX output on UART1 */
if (!SetCfgVal<U1>(UBX_CFG_UART1OUTPROT_UBX_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_UART2OUTPROT_UBX_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_USBOUTPROT_UBX_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_I2COUTPROT_UBX_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_SPIOUTPROT_UBX_, 0)) {return false;}
/* Enable UBX input on UART1 */
if (!SetCfgVal<U1>(UBX_CFG_UART1INPROT_UBX_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_UART2INPROT_UBX_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_USBINPROT_UBX_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_I2CINPROT_UBX_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_SPIINPROT_UBX_, 0)) {return false;}
/* Select UBX Messages */
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_LOG_INFO_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_COMMS_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_HW2_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_HW3_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_HW_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_IO_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_MSGPP_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_RF_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_RXBUF_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_RXR_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_SPAN_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_TXBUF_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_CLOCK_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_DOP_UART1_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_EOE_UART1_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_GEOFENCE_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_HPPOSECEF_UART1_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_HPPOSLLH_UART1_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_ODO_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_ORB_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_POSECEF_UART1_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_POSLLH_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_PVT_UART1_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_RELPOSNED_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SAT_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SBAS_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SIG_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SLAS_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_STATUS_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SVIN_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEBDS_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEGAL_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEGLO_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEGPS_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMELS_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEUTC_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_VELECEF_UART1_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_VELNED_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_MEASX_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_RAWX_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_RLM_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_RTCM_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_SFRBX_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_TIM_TM2_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_TIM_TP_UART1_, 0)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_TIM_VRFY_UART1_, 0)) {return false;}
/* Set output rate tp 10 Hz */
if (!SetCfgVal<U2>(UBX_CFG_RATE_MEAS_, 100)) {return false;}
/* Standard precision navigation configuration */
if (!SetCfgVal<U1>(UBX_CFG_NAVSPG_FIXMODE_,
UBX_CFG_NAVSPG_FIXMODE_3D_ONLY_)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_NAVSPG_INIFIX3D_, 1)) {return false;}
if (!SetCfgVal<U1>(UBX_CFG_NAVSPG_DYNMODEL_,
UBX_CFG_NAVSPG_DYNMODEL_AIR4_)) {return false;}
/* CFG-NAVHPG High precision navigation configuration */
if (!SetCfgVal<U1>(UBX_CFG_NAVHPG_DGNSSMODE_,
UBX_CFG_NAVHPG_DGNSSMODE_RTK_FIXED_)) {return false;}
// /* Disable NMEA outputs */
// if (!SetCfgVal<U1>(UBX_CFG_UART1OUTPROT_NMEA_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_UART2OUTPROT_NMEA_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_USBOUTPROT_NMEA_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_I2COUTPROT_NMEA_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_SPIOUTPROT_NMEA_, 0)) {return false;}
// /* Disable NMEA inputs */
// if (!SetCfgVal<U1>(UBX_CFG_UART1INPROT_NMEA_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_UART2INPROT_NMEA_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_USBINPROT_NMEA_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_I2CINPROT_NMEA_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_SPIINPROT_NMEA_, 0)) {return false;}
// /* Disable RTCM outputs */
// if (!SetCfgVal<U1>(UBX_CFG_UART1OUTPROT_RTCM3X_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_UART2OUTPROT_RTCM3X_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_USBOUTPROT_RTCM3X_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_I2COUTPROT_RTCM3X_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_SPIOUTPROT_RTCM3X_, 0)) {return false;}
// /* Disable RTCM inputs */
// if (!SetCfgVal<U1>(UBX_CFG_UART1INPROT_RTCM3X_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_UART2INPROT_RTCM3X_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_USBINPROT_RTCM3X_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_I2CINPROT_RTCM3X_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_SPIINPROT_RTCM3X_, 0)) {return false;}
// /* Enable UBX output on UART1 */
// if (!SetCfgVal<U1>(UBX_CFG_UART1OUTPROT_UBX_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_UART2OUTPROT_UBX_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_USBOUTPROT_UBX_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_I2COUTPROT_UBX_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_SPIOUTPROT_UBX_, 0)) {return false;}
// /* Enable UBX input on UART1 */
// if (!SetCfgVal<U1>(UBX_CFG_UART1INPROT_UBX_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_UART2INPROT_UBX_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_USBINPROT_UBX_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_I2CINPROT_UBX_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_SPIINPROT_UBX_, 0)) {return false;}
// /* Select UBX Messages */
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_LOG_INFO_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_COMMS_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_HW2_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_HW3_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_HW_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_IO_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_MSGPP_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_RF_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_RXBUF_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_RXR_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_SPAN_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_MON_TXBUF_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_CLOCK_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_DOP_UART1_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_EOE_UART1_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_GEOFENCE_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_HPPOSECEF_UART1_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_HPPOSLLH_UART1_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_ODO_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_ORB_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_POSECEF_UART1_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_POSLLH_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_PVT_UART1_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_RELPOSNED_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SAT_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SBAS_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SIG_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SLAS_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_STATUS_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_SVIN_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEBDS_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEGAL_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEGLO_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEGPS_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMELS_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEQZSS_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_TIMEUTC_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_VELECEF_UART1_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_NAV_VELNED_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_MEASX_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_RAWX_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_RLM_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_RTCM_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_RXM_SFRBX_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_TIM_TM2_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_TIM_TP_UART1_, 0)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_MSGOUT_UBX_TIM_VRFY_UART1_, 0)) {return false;}
// /* Set output rate tp 10 Hz */
// if (!SetCfgVal<U2>(UBX_CFG_RATE_MEAS_, 100)) {return false;}
// /* Standard precision navigation configuration */
// if (!SetCfgVal<U1>(UBX_CFG_NAVSPG_FIXMODE_,
// UBX_CFG_NAVSPG_FIXMODE_3D_ONLY_)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_NAVSPG_INIFIX3D_, 1)) {return false;}
// if (!SetCfgVal<U1>(UBX_CFG_NAVSPG_DYNMODEL_,
// UBX_CFG_NAVSPG_DYNMODEL_AIR4_)) {return false;}
// /* CFG-NAVHPG High precision navigation configuration */
// if (!SetCfgVal<U1>(UBX_CFG_NAVHPG_DGNSSMODE_,
// UBX_CFG_NAVHPG_DGNSSMODE_RTK_FIXED_)) {return false;}
return true;
}
bool Ubx::ParseMsg(const uint8_t c, UbxMsg * const msg) {
Expand Down
10 changes: 10 additions & 0 deletions src/ubx.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ class Ubx {
/* UBX checksum calculation */
uint16_t Checksum(uint8_t const * const data, const uint16_t len,
bool reset_states);
/* Legacy Configuration */
template<typename T>
bool SendLegacyCfg(const T &ref) {
txmsg_.cls = ref.cls;
txmsg_.id = ref.id;
txmsg_.len = ref.len;
memcpy(txmsg_.payload, ref.payload, ref.len);
SendMsg(txmsg_);
}
/* v9 Configuration */
/* Set a config value in RAM */
template<typename T>
bool SetCfgVal(const uint32_t key, const T val) {
Expand Down
Loading

0 comments on commit f3d7a86

Please sign in to comment.