Program Listing for File ConfigData.h
↰ Return to documentation for file (/tmp/ws/src/sick_safetyscanners_base/include/sick_safetyscanners_base/datastructure/ConfigData.h
)
// this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*-
// -- BEGIN LICENSE BLOCK ----------------------------------------------
// -- END LICENSE BLOCK ------------------------------------------------
//----------------------------------------------------------------------
//----------------------------------------------------------------------
#ifndef SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_CONFIGDATA_H
#define SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_CONFIGDATA_H
#include "sick_safetyscanners_base/datastructure/DerivedValues.h"
#include <boost/asio/ip/address_v4.hpp>
#include <iostream>
#include <vector>
namespace sick {
namespace datastructure {
class ConfigData
{
public:
ConfigData();
std::string getVersionCVersion() const;
void setVersionCVersion(const std::string& version_c_version);
uint8_t getVersionMajorVersionNumber() const;
void setVersionMajorVersionNumber(const uint8_t& version_major_version_number);
uint8_t getVersionMinorVersionNumber() const;
void setVersionMinorVersionNumber(const uint8_t& version_minor_version_number);
uint8_t getVersionReleaseNumber() const;
void setVersionReleaseNumber(const uint8_t& version_release_number);
boost::asio::ip::address_v4 getHostIp() const;
void setHostIp(const boost::asio::ip::address_v4& host_ip);
void setHostIp(const std::string& host_ip);
uint16_t getHostUdpPort() const;
void setHostUdpPort(const uint16_t& host_udp_port);
uint8_t getChannel() const;
void setChannel(const uint8_t& channel);
bool getEnabled() const;
void setEnabled(bool enabled);
uint8_t getEInterfaceType() const;
void setEInterfaceType(const uint8_t& e_interface_type);
uint16_t getPublishingFrequency() const;
void setPublishingFrequency(const uint16_t& publishing_frequency);
float getStartAngle() const;
void setStartAngle(const int32_t& start_angle);
void setStartAngleDegrees(const float& start_angle);
float getEndAngle() const;
void setEndAngle(const int32_t& end_angle);
void setEndAngleDegrees(const float& end_angle);
uint16_t getFeatures() const;
void setFeatures(const uint16_t& features);
void setFeatures(bool general_system_state,
bool derived_settings,
bool measurement_data,
bool intrusion_data,
bool application_data);
uint16_t getDerivedMultiplicationFactor() const;
void setDerivedMultiplicationFactor(const uint16_t& multiplication_factor);
uint16_t getDerivedNumberOfBeams() const;
void setDerivedNumberOfBeams(const uint16_t& number_of_beams);
uint16_t getDerivedScanTime() const;
void setDerivedScanTime(const uint16_t& scan_time);
float getDerivedStartAngle() const;
void setDerivedStartAngle(const int32_t& start_angle);
float getDerivedAngularBeamResolution() const;
void setDerivedAngularBeamResolution(const int32_t& angular_beam_resolution);
void setDerivedAngularBeamResolutionDegrees(const float& angular_beam_resolution);
uint32_t getDerivedInterbeamPeriod() const;
void setDerivedInterbeamPeriod(const uint32_t& interbeam_period);
private:
const double m_ANGLE_RESOLUTION = 4194304.0;
// TODO cleanup and refactor in different subclasses
std::string m_version_c_version;
uint8_t m_version_major_version_number;
uint8_t m_version_minor_version_number;
uint8_t m_version_release_number;
boost::asio::ip::address_v4 m_host_ip;
uint16_t m_host_udp_port;
uint8_t m_channel;
bool m_enabled;
uint8_t m_e_interface_type;
uint16_t m_publishing_frequency;
float m_start_angle;
float m_end_angle;
uint16_t m_features;
uint16_t m_derived_multiplication_factor;
uint16_t m_derived_number_of_beams;
uint16_t m_derived_scan_time;
float m_derived_start_angle;
float m_derived_angular_beam_resolution; // TODO move into derived values
uint16_t m_derived_interbeam_period;
};
} // namespace datastructure
} // namespace sick
#endif // SICK_SAFETYSCANNERS_BASE_DATASTRUCTURE_CONFIGDATA_H