ifm3d
legacy_device.h
1 /*
2  * Copyright 2021-present ifm electronic, gmbh
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 
6 #ifndef IFM3D_DEVICE_LEGACY_DEVICE_H
7 #define IFM3D_DEVICE_LEGACY_DEVICE_H
8 
9 #include <ifm3d/device/device.h>
10 
11 namespace ifm3d
12 {
13  class IFM3D_EXPORT LegacyDevice : public Device
14  {
15  public:
16  using Ptr = std::shared_ptr<LegacyDevice>;
17 
25  using device_family = ifm3d::Device::DeviceFamily;
26 
47  static Ptr MakeShared(
48  const std::string& ip = ifm3d::DEFAULT_IP,
49  std::uint16_t xmlrpc_port = ifm3d::DEFAULT_XMLRPC_PORT,
50  const std::string& password = ifm3d::DEFAULT_PASSWORD);
51 
63  LegacyDevice(const std::string& ip = ifm3d::DEFAULT_IP,
64  std::uint16_t xmlrpc_port = ifm3d::DEFAULT_XMLRPC_PORT,
65  const std::string& password = ifm3d::DEFAULT_PASSWORD);
66 
67  LegacyDevice(const LegacyDevice&) = delete;
68  LegacyDevice(LegacyDevice&&) = delete;
69  LegacyDevice& operator=(const LegacyDevice&) = delete;
70  LegacyDevice& operator=(LegacyDevice&&) = delete;
71  ~LegacyDevice() override;
72 
74  virtual std::string Password();
75 
77  virtual std::string SessionID();
78 
83  virtual void FactoryReset();
84 
111  virtual std::string RequestSession();
112 
125  virtual bool CancelSession();
126 
134  virtual bool CancelSession(const std::string& sid);
135 
148  virtual int Heartbeat(int hb);
149 
150  virtual std::unordered_map<std::string, std::string> NetInfo();
151  virtual std::unordered_map<std::string, std::string> TimeInfo();
152 
170  virtual void SetTemporaryApplicationParameters(
171  const std::unordered_map<std::string, std::string>& params);
172 
177  virtual int ActiveApplication();
178 
191  virtual json ApplicationList();
192 
202  virtual std::vector<std::string> ApplicationTypes();
203 
212  virtual std::vector<std::string> ImagerTypes();
213 
225  virtual int CopyApplication(int idx);
226 
244  virtual int CreateApplication(
245  const std::string& type = DEFAULT_APPLICATION_TYPE);
246 
253  virtual void DeleteApplication(int idx);
254 
262  virtual void SetCurrentTime(int epoch_secs = -1);
263 
268  virtual std::vector<std::uint8_t> UnitVectors();
269 
274  virtual std::vector<std::uint8_t> ExportIFMConfig();
275 
291  virtual std::vector<std::uint8_t> ExportIFMApp(int idx);
292 
297  virtual void ImportIFMConfig(const std::vector<std::uint8_t>& bytes,
298  std::uint16_t flags = 0x0);
299 
313  virtual int ImportIFMApp(const std::vector<std::uint8_t>& bytes);
314 
323  virtual void SetPassword(const std::string& password = "");
324 
325  json ToJSON() override;
326  void FromJSON(const json& j) override;
327  void ForceTrigger() override;
328 
329  protected:
330  class Impl;
331  std::unique_ptr<Impl> _impl;
332 
347  void from_json(const json& j_curr,
348  const json& j_new,
349  const std::function<void(const std::string&,
350  const std::string&)>& set_func,
351  const std::function<void()>& save_func,
352  const std::string& name,
353  int idx = -1);
354 
363  static bool get_app_json(int index, const json& j, json& app);
364 
365  json to_json(bool open_session = true);
366 
367  json get_application_infos_to_json();
368  };
369 }
370 
371 #endif // IFM3D_DEVICE_LEGACY_DEVICE_H
ifm3d::Device::OperatingMode
OperatingMode
Device operating modes: run (streaming pixel data), edit (configuring the device/applications).
Definition: device.h:153
ifm3d::Device::BootMode
BootMode
Device boot up modes:
Definition: device.h:143
ifm3d::json
Definition: json.hpp:130
ifm3d::Device::MedianfilterMaskSize
MedianfilterMaskSize
Convenient constants for median filter mask sizes.
Definition: device.h:202
ifm3d::Device
Definition: device.h:132
ifm3d::LegacyDevice
Definition: legacy_device.h:13
ifm3d::Device::TriggerMode
TriggerMode
Image acquisition trigger modes.
Definition: device.h:162
ifm3d::Device::TemporalFilter
TemporalFilter
Convenience constants for temporal filter types.
Definition: device.h:192
ifm3d::Device::ImportFlags
ImportFlags
Import flags used when importing a Vision Assistant configuration.
Definition: device.h:171
ifm3d::Device::SpatialFilter
SpatialFilter
Convenience constants for spatial filter types.
Definition: device.h:181