ifm3d
ifm_network_device.h
1 // -*- c++ -*-
2 /*
3  * Copyright 2020-present ifm electronic, gmbh
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef IFM3D_IFM_NETWORK_DEVICE_H
8 #define IFM3D_IFM_NETWORK_DEVICE_H
9 
10 #include <cstdint>
11 #include <ifm3d/device/module_device.h>
12 #include <string>
13 #include <vector>
14 
15 namespace ifm3d
16 {
17  using Data = std::vector<unsigned char>;
18  class IFM3D_EXPORT IFMNetworkDevice
19  {
20  public:
21  IFMNetworkDevice(Data& data, std::string ip_address_via_interface);
22 
24  [[nodiscard]] std::string GetIPAddress() const;
25 
27  [[nodiscard]] std::string GetMACAddress() const;
28 
30  [[nodiscard]] std::string GetNetmask() const;
31 
33  [[nodiscard]] std::string GetGateway() const;
34 
36  [[nodiscard]] uint16_t GetPort() const;
37 
39  [[nodiscard]] uint16_t GetFlag() const;
40 
42  [[nodiscard]] std::string GetHostName() const;
43 
45  [[nodiscard]] std::string GetDeviceName() const;
46 
48  [[nodiscard]] uint16_t GetVendorId() const;
49 
51  [[nodiscard]] uint16_t GetDeviceId() const;
52 
54  [[nodiscard]] std::string GetFoundVia() const;
55 
56  private:
57  std::string _ip_address;
58  std::string _mac;
59  std::string _subnet;
60  std::string _gateway;
61  uint16_t _port;
62  uint16_t _flags;
63  std::string _hostname;
64  std::string _device_name;
65  uint16_t _vendor_id;
66  uint16_t _device_id;
67  std::string _found_via;
68  };
69 
70 } // end: namespace ifm3d
71 
72 #endif // IFM3D_IFM_NETWORK_DEVICE_H
ifm3d::IFMNetworkDevice
Definition: ifm_network_device.h:18