VisionaryAutoIPScan.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2023 SICK AG, Waldkirch
3 //
4 // SPDX-License-Identifier: Unlicense
5 
6 #pragma once
7 
8 #include <cstdint>
9 #include <string>
10 #include <vector>
11 
12 namespace visionary {
13 
18 {
19 public:
20  static constexpr std::uint16_t DEFAULT_PORT{30718u};
21  static const std::string DEFAULT_BROADCAST_ADDR;
22  static const std::string DEFAULT_IP_MASK;
23  static const std::string DEFAULT_GATEWAY;
24  static constexpr bool DEFAULT_DHCP{false};
25  static constexpr std::uint16_t DEFAULT_TIMEOUT{5000};
26 
28  {
30  COLA_A = 2111,
31  COLA_B = 2112,
32  COLA_2 = 2122
33  };
34 
35  struct MacAddress
36  {
37  std::uint8_t macAddress[6];
38  };
39 
40  struct DeviceInfo
41  {
42  std::string deviceName;
44  std::string ipAddress;
45  std::string subNet;
46  std::uint16_t port;
48  };
49 
55  VisionaryAutoIPScan(const std::string& serverIP, std::uint8_t prefixLength);
63  std::vector<DeviceInfo> doScan(unsigned int timeOut, std::uint16_t port = DEFAULT_PORT);
64 
76  bool assign(const MacAddress& destinationMac,
77  ProtocolType colaVer,
78  const std::string& ipAddr,
79  std::uint8_t prefixLength,
80  const std::string& ipGateway = DEFAULT_GATEWAY,
81  bool dhcp = DEFAULT_DHCP,
82  unsigned int timout = DEFAULT_TIMEOUT);
83 
84  static MacAddress convertMacToStruct(const std::string& basicString);
85  static std::string convertMacToString(const MacAddress& macAddress);
86 
87 private:
88  using ByteBuffer = std::vector<std::uint8_t>;
89  std::string m_serverIP;
90  std::string m_serverNetMask;
91 
92  DeviceInfo parseAutoIPXml(std::stringstream& rStringStream);
93  DeviceInfo parseAutoIPBinary(const ByteBuffer& receivedBuffer);
94  static std::vector<std::uint8_t> convertIpToBinary(const std::string& address);
95  static std::string networkPrefixToMask(std::uint8_t prefixLength);
96 };
97 
98 } // namespace visionary
visionary::VisionaryAutoIPScan::DeviceInfo::macAddress
MacAddress macAddress
Definition: VisionaryAutoIPScan.h:43
visionary::VisionaryAutoIPScan::DeviceInfo
Definition: VisionaryAutoIPScan.h:40
visionary::VisionaryAutoIPScan::DEFAULT_GATEWAY
static const std::string DEFAULT_GATEWAY
Definition: VisionaryAutoIPScan.h:23
visionary::VisionaryAutoIPScan::ByteBuffer
std::vector< std::uint8_t > ByteBuffer
Definition: VisionaryAutoIPScan.h:88
visionary
Definition: MD5.cpp:44
visionary::VisionaryAutoIPScan::assign
bool assign(const MacAddress &destinationMac, ProtocolType colaVer, const std::string &ipAddr, std::uint8_t prefixLength, const std::string &ipGateway=DEFAULT_GATEWAY, bool dhcp=DEFAULT_DHCP, unsigned int timout=DEFAULT_TIMEOUT)
Definition: VisionaryAutoIPScan.cpp:513
visionary::VisionaryAutoIPScan::DeviceInfo::protocolType
ProtocolType protocolType
Definition: VisionaryAutoIPScan.h:47
visionary::VisionaryAutoIPScan::COLA_A
@ COLA_A
Definition: VisionaryAutoIPScan.h:30
visionary::VisionaryAutoIPScan::DEFAULT_DHCP
static constexpr bool DEFAULT_DHCP
Definition: VisionaryAutoIPScan.h:24
visionary::VisionaryAutoIPScan::m_serverNetMask
std::string m_serverNetMask
Definition: VisionaryAutoIPScan.h:90
visionary::VisionaryAutoIPScan::doScan
std::vector< DeviceInfo > doScan(unsigned int timeOut, std::uint16_t port=DEFAULT_PORT)
Definition: VisionaryAutoIPScan.cpp:55
visionary::VisionaryAutoIPScan::parseAutoIPBinary
DeviceInfo parseAutoIPBinary(const ByteBuffer &receivedBuffer)
Definition: VisionaryAutoIPScan.cpp:238
visionary::VisionaryAutoIPScan::COLA_B
@ COLA_B
Definition: VisionaryAutoIPScan.h:31
visionary::VisionaryAutoIPScan::DEFAULT_IP_MASK
static const std::string DEFAULT_IP_MASK
Definition: VisionaryAutoIPScan.h:22
visionary::VisionaryAutoIPScan::VisionaryAutoIPScan
VisionaryAutoIPScan(const std::string &serverIP, std::uint8_t prefixLength)
Definition: VisionaryAutoIPScan.cpp:474
visionary::VisionaryAutoIPScan::DEFAULT_BROADCAST_ADDR
static const std::string DEFAULT_BROADCAST_ADDR
Definition: VisionaryAutoIPScan.h:21
visionary::VisionaryAutoIPScan::MacAddress::macAddress
std::uint8_t macAddress[6]
Definition: VisionaryAutoIPScan.h:37
visionary::VisionaryAutoIPScan::INVALID_PROTOCOL
@ INVALID_PROTOCOL
Definition: VisionaryAutoIPScan.h:29
visionary::VisionaryAutoIPScan::DEFAULT_TIMEOUT
static constexpr std::uint16_t DEFAULT_TIMEOUT
Definition: VisionaryAutoIPScan.h:25
visionary::VisionaryAutoIPScan::m_serverIP
std::string m_serverIP
Definition: VisionaryAutoIPScan.h:89
visionary::VisionaryAutoIPScan::networkPrefixToMask
static std::string networkPrefixToMask(std::uint8_t prefixLength)
Definition: VisionaryAutoIPScan.cpp:479
visionary::VisionaryAutoIPScan::convertMacToString
static std::string convertMacToString(const MacAddress &macAddress)
Definition: VisionaryAutoIPScan.cpp:651
visionary::VisionaryAutoIPScan::DEFAULT_PORT
static constexpr std::uint16_t DEFAULT_PORT
Definition: VisionaryAutoIPScan.h:20
visionary::VisionaryAutoIPScan::convertMacToStruct
static MacAddress convertMacToStruct(const std::string &basicString)
Definition: VisionaryAutoIPScan.cpp:633
visionary::VisionaryAutoIPScan::DeviceInfo::deviceName
std::string deviceName
Definition: VisionaryAutoIPScan.h:42
visionary::VisionaryAutoIPScan::COLA_2
@ COLA_2
Definition: VisionaryAutoIPScan.h:32
visionary::VisionaryAutoIPScan
Definition: VisionaryAutoIPScan.h:17
visionary::VisionaryAutoIPScan::DeviceInfo::port
std::uint16_t port
Definition: VisionaryAutoIPScan.h:46
visionary::VisionaryAutoIPScan::ProtocolType
ProtocolType
Definition: VisionaryAutoIPScan.h:27
visionary::VisionaryAutoIPScan::DeviceInfo::ipAddress
std::string ipAddress
Definition: VisionaryAutoIPScan.h:44
visionary::VisionaryAutoIPScan::MacAddress
Definition: VisionaryAutoIPScan.h:35
visionary::VisionaryAutoIPScan::convertIpToBinary
static std::vector< std::uint8_t > convertIpToBinary(const std::string &address)
Definition: VisionaryAutoIPScan.cpp:499
visionary::VisionaryAutoIPScan::parseAutoIPXml
DeviceInfo parseAutoIPXml(std::stringstream &rStringStream)
Definition: VisionaryAutoIPScan.cpp:179
visionary::VisionaryAutoIPScan::DeviceInfo::subNet
std::string subNet
Definition: VisionaryAutoIPScan.h:45


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:56:19