Program Listing for File CommSettings.h

Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/datastructure/CommSettings.h)

// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-

// -- BEGIN LICENSE BLOCK ----------------------------------------------

// -- END LICENSE BLOCK ------------------------------------------------

//----------------------------------------------------------------------
//----------------------------------------------------------------------

#ifndef SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_COMMSETTINGS_H
#define SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_COMMSETTINGS_H

#include <bitset>
#include <boost/asio.hpp>
#include <cstdint>
#include <iostream>
#include <ostream>
#include <sstream>
#include <string>

#include "sick_safetyscanners_base/Types.h"

namespace sick {
namespace datastructure {

struct CommSettings
{
  CommSettings() = default;

  // Aggregate Initialization, do not add constructors, default-initializers etc.
  // see https://en.cppreference.com/w/cpp/language/aggregate_initialization
  uint8_t channel{0};
  uint16_t publishing_frequency{1};
  uint8_t e_interface_type{0};
  float start_angle{0.0};
  float end_angle{0.0};
  sick::types::SensorFeatures features{sick::SensorDataFeatures::ALL};
  bool enabled{true};

  sick::types::port_t host_udp_port{0};
  sick::types::ip_address_t host_ip{boost::asio::ip::address_v4::from_string("192.168.1.100")};
};

std::ostream& operator<<(std::ostream& os, const CommSettings& settings);

} // namespace datastructure
} // namespace sick

#endif // SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_COMMSETTINGS_H