|
|
|
@ -147,13 +147,10 @@ kj::Array<capnp::word> UbloxMsgParser::gen_nav_pvt(ubx_t::nav_pvt_t *msg) { |
|
|
|
|
return capnp::messageToFlatArray(msg_builder); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kj::Array<capnp::word> UbloxMsgParser::gen_rxm_sfrbx(ubx_t::rxm_sfrbx_t *msg) { |
|
|
|
|
auto body = *msg->body(); |
|
|
|
|
|
|
|
|
|
if (msg->gnss_id() == ubx_t::gnss_type_t::GNSS_TYPE_GPS) { |
|
|
|
|
kj::Array<capnp::word> UbloxMsgParser::parse_gps_ephemeris(ubx_t::rxm_sfrbx_t *msg) { |
|
|
|
|
// GPS subframes are packed into 10x 4 bytes, each containing 3 actual bytes
|
|
|
|
|
// We will first need to separate the data from the padding and parity
|
|
|
|
|
auto body = *msg->body(); |
|
|
|
|
assert(body.size() == 10); |
|
|
|
|
|
|
|
|
|
std::string subframe_data; |
|
|
|
@ -262,9 +259,18 @@ kj::Array<capnp::word> UbloxMsgParser::gen_rxm_sfrbx(ubx_t::rxm_sfrbx_t *msg) { |
|
|
|
|
|
|
|
|
|
return capnp::messageToFlatArray(msg_builder); |
|
|
|
|
} |
|
|
|
|
return kj::Array<capnp::word>(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kj::Array<capnp::word> UbloxMsgParser::gen_rxm_sfrbx(ubx_t::rxm_sfrbx_t *msg) { |
|
|
|
|
switch (msg->gnss_id()) { |
|
|
|
|
case ubx_t::gnss_type_t::GNSS_TYPE_GPS: |
|
|
|
|
return parse_gps_ephemeris(msg); |
|
|
|
|
default: |
|
|
|
|
return kj::Array<capnp::word>(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
kj::Array<capnp::word> UbloxMsgParser::gen_rxm_rawx(ubx_t::rxm_rawx_t *msg) { |
|
|
|
|
MessageBuilder msg_builder; |
|
|
|
|