Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
urg_sim::URGSimulator Class Reference

#include <urg_sim.h>

Classes

struct  Params
 

Public Types

enum  MeasurementMode { MeasurementMode::RANGE, MeasurementMode::RANGE_INTENSITY }
 
enum  Model { Model::UTM, Model::UST_UUST1, Model::UST_UUST2 }
 
enum  SensorState {
  SensorState::BOOTING, SensorState::IDLE, SensorState::SINGLE_SCAN, SensorState::MULTI_SCAN,
  SensorState::TIME_ADJUSTMENT, SensorState::ERROR_DETECTED
}
 

Public Member Functions

int getBootCnt ()
 
boost::asio::ip::tcp::endpoint getLocalEndpoint () const
 
void kill ()
 
void setState (const SensorState s)
 
void spin ()
 
 URGSimulator (const boost::asio::ip::tcp::endpoint &endpoint, const URGSimulator::Params &params, const RawScanDataCallback raw_scan_data_cb=nopRawScanDataCallback)
 

Private Types

using KeyValue = std::pair< std::string, std::string >
 
using KeyValues = std::vector< KeyValue >
 

Private Member Functions

void accept ()
 
void accepted (const boost::system::error_code &ec)
 
void asyncRead ()
 
void booted ()
 
void fifo (boost::asio::io_service &fifo)
 
void handleBM (const std::string cmd)
 
void handleDisconnect ()
 
void handleII (const std::string cmd)
 
void handleMX (const std::string cmd)
 
void handlePP (const std::string cmd)
 
void handleQT (const std::string cmd)
 
void handleRB (const std::string cmd)
 
void handleRS (const std::string cmd)
 
void handleTM (const std::string cmd)
 
void handleUnknown (const std::string cmd)
 
void handleVV (const std::string cmd)
 
void nextScan ()
 
void onRead (const boost::system::error_code &ec)
 
void processInput (const std::string cmd, const boost::posix_time::ptime &when)
 
double randomCommDelay ()
 
void reboot ()
 
void reset ()
 
void response (const std::string echo, const std::string status, const std::string data="")
 
void responseKeyValues (const std::string echo, const std::string status, const KeyValues kv)
 
void scan ()
 
void send (const std::string data, const boost::posix_time::ptime &when)
 
void sendScan ()
 
uint32_t timestamp (const boost::posix_time::ptime &now=boost::posix_time::microsec_clock::universal_time())
 
bool validateExtraString (const std::string &cmd, const size_t expected_size)
 
void waitTick (const uint64_t n)
 

Private Attributes

boost::asio::ip::tcp::acceptor acceptor_
 
int boot_cnt_
 
boost::asio::deadline_timer boot_timer_
 
std::normal_distribution< double > comm_delay_distribution_
 
std::string firm_version_
 
std::map< std::string, std::function< void(const std::string)> > handlers_
 
boost::asio::streambuf input_buf_
 
boost::asio::io_service input_fifo_
 
boost::asio::io_service io_service_
 
std::atomic< bool > killed_
 
RawScanData::Ptr last_raw_scan_
 
boost::posix_time::ptime last_rb_
 
std::string measurement_cmd_
 
int measurement_cnt_
 
int measurement_end_step_
 
std::string measurement_extra_string_
 
int measurement_grouping_step_
 
MeasurementMode measurement_mode_
 
int measurement_scans_
 
int measurement_sent_
 
int measurement_skips_
 
int measurement_start_step_
 
std::string model_name_
 
std::mutex mu_
 
boost::posix_time::ptime next_scan_
 
boost::asio::io_service output_fifo_
 
const URGSimulator::Params params_
 
std::default_random_engine rand_engine_
 
RawScanDataCallback raw_scan_data_cb_
 
boost::asio::deadline_timer scan_timer_
 
SensorState sensor_state_
 
boost::asio::ip::tcp::socket socket_
 
boost::posix_time::ptime timestamp_epoch_
 

Detailed Description

Definition at line 59 of file urg_sim.h.

Member Typedef Documentation

◆ KeyValue

using urg_sim::URGSimulator::KeyValue = std::pair<std::string, std::string>
private

Definition at line 155 of file urg_sim.h.

◆ KeyValues

using urg_sim::URGSimulator::KeyValues = std::vector<KeyValue>
private

Definition at line 156 of file urg_sim.h.

Member Enumeration Documentation

◆ MeasurementMode

Enumerator
RANGE 
RANGE_INTENSITY 

Definition at line 91 of file urg_sim.h.

◆ Model

Enumerator
UTM 
UST_UUST1 
UST_UUST2 

Definition at line 62 of file urg_sim.h.

◆ SensorState

Enumerator
BOOTING 
IDLE 
SINGLE_SCAN 
MULTI_SCAN 
TIME_ADJUSTMENT 
ERROR_DETECTED 

Definition at line 82 of file urg_sim.h.

Constructor & Destructor Documentation

◆ URGSimulator()

urg_sim::URGSimulator::URGSimulator ( const boost::asio::ip::tcp::endpoint &  endpoint,
const URGSimulator::Params params,
const RawScanDataCallback  raw_scan_data_cb = nopRawScanDataCallback 
)
inline

Definition at line 97 of file urg_sim.h.

Member Function Documentation

◆ accept()

void urg_sim::URGSimulator::accept ( )
private

Definition at line 586 of file urg_sim.cpp.

◆ accepted()

void urg_sim::URGSimulator::accepted ( const boost::system::error_code &  ec)
private

Definition at line 597 of file urg_sim.cpp.

◆ asyncRead()

void urg_sim::URGSimulator::asyncRead ( )
private

Definition at line 54 of file urg_sim.cpp.

◆ booted()

void urg_sim::URGSimulator::booted ( )
private

Definition at line 508 of file urg_sim.cpp.

◆ fifo()

void urg_sim::URGSimulator::fifo ( boost::asio::io_service &  fifo)
private

Definition at line 797 of file urg_sim.cpp.

◆ getBootCnt()

int urg_sim::URGSimulator::getBootCnt ( )

Definition at line 839 of file urg_sim.cpp.

◆ getLocalEndpoint()

boost::asio::ip::tcp::endpoint urg_sim::URGSimulator::getLocalEndpoint ( ) const
inline

Definition at line 144 of file urg_sim.h.

◆ handleBM()

void urg_sim::URGSimulator::handleBM ( const std::string  cmd)
private

Definition at line 297 of file urg_sim.cpp.

◆ handleDisconnect()

void urg_sim::URGSimulator::handleDisconnect ( )
private

Definition at line 465 of file urg_sim.cpp.

◆ handleII()

void urg_sim::URGSimulator::handleII ( const std::string  cmd)
private

Definition at line 110 of file urg_sim.cpp.

◆ handleMX()

void urg_sim::URGSimulator::handleMX ( const std::string  cmd)
private

Definition at line 401 of file urg_sim.cpp.

◆ handlePP()

void urg_sim::URGSimulator::handlePP ( const std::string  cmd)
private

Definition at line 206 of file urg_sim.cpp.

◆ handleQT()

void urg_sim::URGSimulator::handleQT ( const std::string  cmd)
private

Definition at line 325 of file urg_sim.cpp.

◆ handleRB()

void urg_sim::URGSimulator::handleRB ( const std::string  cmd)
private

Definition at line 377 of file urg_sim.cpp.

◆ handleRS()

void urg_sim::URGSimulator::handleRS ( const std::string  cmd)
private

Definition at line 354 of file urg_sim.cpp.

◆ handleTM()

void urg_sim::URGSimulator::handleTM ( const std::string  cmd)
private

Definition at line 230 of file urg_sim.cpp.

◆ handleUnknown()

void urg_sim::URGSimulator::handleUnknown ( const std::string  cmd)
private

Definition at line 456 of file urg_sim.cpp.

◆ handleVV()

void urg_sim::URGSimulator::handleVV ( const std::string  cmd)
private

Definition at line 189 of file urg_sim.cpp.

◆ kill()

void urg_sim::URGSimulator::kill ( )

Definition at line 825 of file urg_sim.cpp.

◆ nextScan()

void urg_sim::URGSimulator::nextScan ( )
private

Definition at line 621 of file urg_sim.cpp.

◆ onRead()

void urg_sim::URGSimulator::onRead ( const boost::system::error_code &  ec)
private

Definition at line 62 of file urg_sim.cpp.

◆ processInput()

void urg_sim::URGSimulator::processInput ( const std::string  cmd,
const boost::posix_time::ptime &  when 
)
private

Definition at line 85 of file urg_sim.cpp.

◆ randomCommDelay()

double urg_sim::URGSimulator::randomCommDelay ( )
private

Definition at line 845 of file urg_sim.cpp.

◆ reboot()

void urg_sim::URGSimulator::reboot ( )
private

Definition at line 478 of file urg_sim.cpp.

◆ reset()

void urg_sim::URGSimulator::reset ( )
private

◆ response()

void urg_sim::URGSimulator::response ( const std::string  echo,
const std::string  status,
const std::string  data = "" 
)
private

Definition at line 531 of file urg_sim.cpp.

◆ responseKeyValues()

void urg_sim::URGSimulator::responseKeyValues ( const std::string  echo,
const std::string  status,
const KeyValues  kv 
)
private

Definition at line 549 of file urg_sim.cpp.

◆ scan()

void urg_sim::URGSimulator::scan ( )
private

Definition at line 633 of file urg_sim.cpp.

◆ send()

void urg_sim::URGSimulator::send ( const std::string  data,
const boost::posix_time::ptime &  when 
)
private

Definition at line 563 of file urg_sim.cpp.

◆ sendScan()

void urg_sim::URGSimulator::sendScan ( )
private

Definition at line 702 of file urg_sim.cpp.

◆ setState()

void urg_sim::URGSimulator::setState ( const SensorState  s)

Definition at line 833 of file urg_sim.cpp.

◆ spin()

void urg_sim::URGSimulator::spin ( )

Definition at line 779 of file urg_sim.cpp.

◆ timestamp()

uint32_t urg_sim::URGSimulator::timestamp ( const boost::posix_time::ptime &  now = boost::posix_time::microsec_clock::universal_time())
private

Definition at line 580 of file urg_sim.cpp.

◆ validateExtraString()

bool urg_sim::URGSimulator::validateExtraString ( const std::string &  cmd,
const size_t  expected_size 
)
private

Definition at line 758 of file urg_sim.cpp.

◆ waitTick()

void urg_sim::URGSimulator::waitTick ( const uint64_t  n)
private

Definition at line 851 of file urg_sim.cpp.

Member Data Documentation

◆ acceptor_

boost::asio::ip::tcp::acceptor urg_sim::URGSimulator::acceptor_
private

Definition at line 165 of file urg_sim.h.

◆ boot_cnt_

int urg_sim::URGSimulator::boot_cnt_
private

Definition at line 194 of file urg_sim.h.

◆ boot_timer_

boost::asio::deadline_timer urg_sim::URGSimulator::boot_timer_
private

Definition at line 168 of file urg_sim.h.

◆ comm_delay_distribution_

std::normal_distribution<double> urg_sim::URGSimulator::comm_delay_distribution_
private

Definition at line 175 of file urg_sim.h.

◆ firm_version_

std::string urg_sim::URGSimulator::firm_version_
private

Definition at line 160 of file urg_sim.h.

◆ handlers_

std::map<std::string, std::function<void(const std::string)> > urg_sim::URGSimulator::handlers_
private

Definition at line 179 of file urg_sim.h.

◆ input_buf_

boost::asio::streambuf urg_sim::URGSimulator::input_buf_
private

Definition at line 167 of file urg_sim.h.

◆ input_fifo_

boost::asio::io_service urg_sim::URGSimulator::input_fifo_
private

Definition at line 163 of file urg_sim.h.

◆ io_service_

boost::asio::io_service urg_sim::URGSimulator::io_service_
private

Definition at line 162 of file urg_sim.h.

◆ killed_

std::atomic<bool> urg_sim::URGSimulator::killed_
private

Definition at line 177 of file urg_sim.h.

◆ last_raw_scan_

RawScanData::Ptr urg_sim::URGSimulator::last_raw_scan_
private

Definition at line 182 of file urg_sim.h.

◆ last_rb_

boost::posix_time::ptime urg_sim::URGSimulator::last_rb_
private

Definition at line 181 of file urg_sim.h.

◆ measurement_cmd_

std::string urg_sim::URGSimulator::measurement_cmd_
private

Definition at line 192 of file urg_sim.h.

◆ measurement_cnt_

int urg_sim::URGSimulator::measurement_cnt_
private

Definition at line 190 of file urg_sim.h.

◆ measurement_end_step_

int urg_sim::URGSimulator::measurement_end_step_
private

Definition at line 186 of file urg_sim.h.

◆ measurement_extra_string_

std::string urg_sim::URGSimulator::measurement_extra_string_
private

Definition at line 193 of file urg_sim.h.

◆ measurement_grouping_step_

int urg_sim::URGSimulator::measurement_grouping_step_
private

Definition at line 187 of file urg_sim.h.

◆ measurement_mode_

MeasurementMode urg_sim::URGSimulator::measurement_mode_
private

Definition at line 184 of file urg_sim.h.

◆ measurement_scans_

int urg_sim::URGSimulator::measurement_scans_
private

Definition at line 189 of file urg_sim.h.

◆ measurement_sent_

int urg_sim::URGSimulator::measurement_sent_
private

Definition at line 191 of file urg_sim.h.

◆ measurement_skips_

int urg_sim::URGSimulator::measurement_skips_
private

Definition at line 188 of file urg_sim.h.

◆ measurement_start_step_

int urg_sim::URGSimulator::measurement_start_step_
private

Definition at line 185 of file urg_sim.h.

◆ model_name_

std::string urg_sim::URGSimulator::model_name_
private

Definition at line 159 of file urg_sim.h.

◆ mu_

std::mutex urg_sim::URGSimulator::mu_
private

Definition at line 170 of file urg_sim.h.

◆ next_scan_

boost::posix_time::ptime urg_sim::URGSimulator::next_scan_
private

Definition at line 183 of file urg_sim.h.

◆ output_fifo_

boost::asio::io_service urg_sim::URGSimulator::output_fifo_
private

Definition at line 164 of file urg_sim.h.

◆ params_

const URGSimulator::Params urg_sim::URGSimulator::params_
private

Definition at line 158 of file urg_sim.h.

◆ rand_engine_

std::default_random_engine urg_sim::URGSimulator::rand_engine_
private

Definition at line 174 of file urg_sim.h.

◆ raw_scan_data_cb_

RawScanDataCallback urg_sim::URGSimulator::raw_scan_data_cb_
private

Definition at line 172 of file urg_sim.h.

◆ scan_timer_

boost::asio::deadline_timer urg_sim::URGSimulator::scan_timer_
private

Definition at line 169 of file urg_sim.h.

◆ sensor_state_

SensorState urg_sim::URGSimulator::sensor_state_
private

Definition at line 180 of file urg_sim.h.

◆ socket_

boost::asio::ip::tcp::socket urg_sim::URGSimulator::socket_
private

Definition at line 166 of file urg_sim.h.

◆ timestamp_epoch_

boost::posix_time::ptime urg_sim::URGSimulator::timestamp_epoch_
private

Definition at line 178 of file urg_sim.h.


The documentation for this class was generated from the following files:


urg_stamped
Author(s): Atsushi Watanabe
autogenerated on Wed Dec 18 2024 03:10:57