14 if (dev_log_ !=
nullptr)
29 std::vector<obsd_t> obs{raw_msg->
obsCount};
30 for (
int i = 0; i < raw_msg->
obsCount; i++)
31 obs.push_back(raw_msg->
data.
obs[i]);
32 vec[0].obs.push_back(obs);
36 vec[0].eph.push_back(raw_msg->
data.
eph);
42 vec[0].sbas.push_back(raw_msg->
data.
sbas);
45 vec[0].sta.push_back(raw_msg->
data.
sta);
48 vec[0].ion.push_back(raw_msg->
data.
ion);
58 g_python_parent.attr(
"did_callback")(did, py::array_t<T>(std::vector<ptrdiff_t>{(py::ssize_t)vec.size()}, vec.data()),
id);
64 for (
int i = 0; i < (int)vec[0].obs.size(); i++)
70 g_python_parent.attr(
"gps_raw_data_callback")(did, py::array_t<sbsmsg_t>(std::vector<ptrdiff_t>{(py::ssize_t)vec[0].sbas.size()}, vec[0].sbas.data()),
id, (
int)
raw_data_type_sbas);
78 vector<string> stl_serials = serials.cast<vector<string>>();
79 cout <<
"loading DAT file from " << log_directory << endl;
80 cout <<
"reading serial numbers ";
81 for (
int i = 0; i < (int)stl_serials.size(); i++)
82 cout << stl_serials[i] <<
"\n";
88 cout <<
"unable to find DAT files, trying SDATS";
90 cout <<
"Unable to load files" << endl;
93 cout <<
"found " << logger_.GetDeviceCount() <<
" devices\n";
94 for (
int i = 0; i < (int)logger_.GetDeviceCount(); i++)
96 cout << logger_.GetDeviceInfo(i)->serialNumber <<
"\t";
108 while ((data = logger_.ReadData(device_id)))
116 switch (data->
hdr.
id)
124 #define HANDLE_MSG(DID, vec) \ 126 log_message(data->hdr.id, data->buf, vec); \ 222 forward_message(
DID_INS_1, dev_log_->ins1,
id );
223 forward_message(
DID_INS_2, dev_log_->ins2,
id );
225 forward_message(
DID_SYS_CMD, dev_log_->sysCmd,
id );
237 forward_message(
DID_MAG_CAL, dev_log_->magCal,
id );
247 forward_message(
DID_IO, dev_log_->io,
id );
281 forward_message(
DID_BIT, dev_log_->bit,
id );
282 forward_message(
DID_INS_3, dev_log_->ins3,
id );
283 forward_message(
DID_INS_4, dev_log_->ins4,
id );
304 for (
int i = 0; i < (int)logger_.GetDeviceCount(); i++)
306 if (dev_log_ !=
nullptr)
332 m.doc() =
"log_reader";
335 py::class_<LogReader>(m,
"LogReader")
#define DID_MANUFACTURING_INFO
void log_message(int did, uint8_t *msg, std::vector< T > &vec)
static py::object g_python_parent
#define DID_GPS2_RTK_CMP_REL
obsd_t obs[MAX_OBSERVATION_COUNT_IN_RTK_MESSAGE]
#define DID_PREINTEGRATED_IMU
bool init(py::object python_class, std::string log_directory, pybind11::list serials)
#define DID_MAGNETOMETER_2
void forward_message(eDataIDs did, std::vector< T > &vec, int id)
#define DID_GPS2_RTK_CMP_MISC
#define DID_DIAGNOSTIC_MESSAGE
#define DID_SYS_SENSORS_SIGMA
#define DID_MAGNETOMETER_1
#define DID_RTK_CODE_RESIDUAL
USBInterfaceDescriptor data
#define DID_INL2_MAG_OBS_INFO
#define DID_WHEEL_ENCODER
#define DID_STROBE_IN_TIME
PYBIND11_MODULE(log_reader, m)
#define DID_INL2_NED_SIGMA
#define HANDLE_MSG(DID, vec)
#define DID_GPS1_RTK_POS_REL
#define DID_INTERNAL_DIAGNOSTIC
void organizeData(int device_id)
#define DID_RTK_PHASE_RESIDUAL
#define DID_GPS1_RTK_POS_MISC
#define DID_SENSORS_ADC_SIGMA