MRPT  2.0.3
DataSourceRawlog.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #include "apps-precomp.h" // Precompiled headers
11 
13 #include <mrpt/obs/CRawlog.h>
14 
15 using namespace mrpt::apps;
16 
19  mrpt::obs::CSensoryFrame::Ptr& observations,
20  mrpt::obs::CObservation::Ptr& observation)
21 {
23 
24  // 1st time? Open rawlog:
25  if (!m_rawlog_arch)
26  {
27  std::string err_msg;
28  if (!m_rawlog_io.open(m_rawlogFileName, err_msg))
29  {
31  "Error opening rawlog file: `%s`", err_msg.c_str());
32  }
34 
35  MRPT_LOG_INFO_FMT("RAWLOG file: `%s`", m_rawlogFileName.c_str());
36  }
37 
38  // Read:
39 
40  for (;;)
41  {
43  *m_rawlog_arch, action, observations, observation,
45  return false;
46 
47  // Optional skip of first N entries
48  if (m_rawlogEntry < m_rawlog_offset) continue;
49 
50  MRPT_LOG_DEBUG_STREAM("Processing rawlog entry #" << m_rawlogEntry);
51 
52  // Ok, accept this new observations:
53  return true;
54  };
55 
56  return false;
57 
58  MRPT_END
59 }
mrpt::obs::CObservation::Ptr
std::shared_ptr< CObservation > Ptr
Definition: CObservation.h:45
apps-precomp.h
mrpt::obs::CRawlog::getActionObservationPairOrObservation
static bool getActionObservationPairOrObservation(mrpt::serialization::CArchive &inStream, CActionCollection::Ptr &action, CSensoryFrame::Ptr &observations, CObservation::Ptr &observation, size_t &rawlogEntry)
Reads a consecutive pair action/sensory_frame OR an observation, depending of the rawlog format,...
Definition: CRawlog.cpp:349
MRPT_LOG_INFO_FMT
#define MRPT_LOG_INFO_FMT(_FMT_STRING,...)
Definition: system/COutputLogger.h:463
mrpt::obs::CSensoryFrame::Ptr
std::shared_ptr< mrpt::obs ::CSensoryFrame > Ptr
Definition: CSensoryFrame.h:53
mrpt::serialization::archiveUniquePtrFrom
CArchive::UniquePtr archiveUniquePtrFrom(STREAM &s)
Like archiveFrom(), returning a unique_ptr<>.
Definition: CArchive.h:606
mrpt::apps::DataSourceRawlog::m_rawlog_arch
mrpt::serialization::CArchive::UniquePtr m_rawlog_arch
Definition: DataSourceRawlog.h:39
mrpt::obs::CActionCollection::Ptr
std::shared_ptr< mrpt::obs ::CActionCollection > Ptr
Definition: CActionCollection.h:28
THROW_EXCEPTION_FMT
#define THROW_EXCEPTION_FMT(_FORMAT_STRING,...)
Definition: exceptions.h:69
mrpt::apps::DataSourceRawlog::m_rawlogFileName
std::string m_rawlogFileName
Definition: DataSourceRawlog.h:35
MRPT_START
#define MRPT_START
Definition: exceptions.h:241
mrpt::apps::DataSourceRawlog::m_rawlogEntry
std::size_t m_rawlogEntry
Definition: DataSourceRawlog.h:37
mrpt::io::CFileGZInputStream::open
bool open(const std::string &fileName, mrpt::optional_ref< std::string > error_msg=std::nullopt)
Opens the file for read.
Definition: CFileGZInputStream.cpp:46
mrpt::apps
Definition: BaseAppDataSource.h:15
mrpt::apps::DataSourceRawlog::m_rawlog_io
mrpt::io::CFileGZInputStream m_rawlog_io
Definition: DataSourceRawlog.h:38
MRPT_LOG_DEBUG_STREAM
#define MRPT_LOG_DEBUG_STREAM(__CONTENTS)
Use: MRPT_LOG_DEBUG_STREAM("Var=" << value << " foo=" << foo_var);
Definition: system/COutputLogger.h:471
MRPT_END
#define MRPT_END
Definition: exceptions.h:245
DataSourceRawlog.h
CRawlog.h
mrpt::apps::DataSourceRawlog::impl_get_next_observations
bool impl_get_next_observations(mrpt::obs::CActionCollection::Ptr &action, mrpt::obs::CSensoryFrame::Ptr &observations, mrpt::obs::CObservation::Ptr &observation) override
Get next sensory data.
Definition: DataSourceRawlog.cpp:17
mrpt::apps::DataSourceRawlog::m_rawlog_offset
std::size_t m_rawlog_offset
Definition: DataSourceRawlog.h:36



Page generated by Doxygen 1.8.17 for MRPT 2.0.3 at Fri May 15 15:49:54 UTC 2020