ifm3d
ifm3d::O3R Class Reference

#include <ifm3d/device/o3r.h>

Public Types

using Ptr = std::shared_ptr< O3R >
 
- Public Types inherited from ifm3d::Device
enum  boot_mode : int { PRODUCTIVE = 0, RECOVERY = 1 }
 Device boot up modes: More...
 
enum  operating_mode : int { RUN = 0, EDIT = 1 }
 Device operating modes: run (streaming pixel data), edit (configuring the device/applications).
 
enum  trigger_mode : int { FREE_RUN = 1, SW = 2 }
 Image acquisition trigger modes.
 
enum  import_flags : int { GLOBAL = 0x1, NET = 0x2, APPS = 0x10 }
 Import flags used when importing a Vision Assistant configuration.
 
enum  spatial_filter : int { OFF = 0x0, MEDIAN = 0x1, MEAN = 0x2, BILATERAL = 0x3 }
 Convenience constants for spatial filter types.
 
enum  temporal_filter : int { OFF = 0x0, MEAN = 0x1, ADAPTIVE_EXP = 0x2 }
 Convenience constants for temporal filter types.
 
enum  mfilt_mask_size : int { _3x3 = 0, _5x5 = 1 }
 Convenient constants for median filter mask sizes.
 
enum  device_family : int { UNKNOWN = 0, O3D = 1, O3X = 2, O3R = 3 }
 
enum  swu_version : int { SWU_NOT_SUPPORTED = 0, SWU_V1 = 1, SWU_V2 = 2 }
 
using Ptr = std::shared_ptr< Device >
 

Public Member Functions

 O3R (const std::string &ip=ifm3d::DEFAULT_IP, const std::uint16_t xmlrpc_port=ifm3d::DEFAULT_XMLRPC_PORT)
 
 O3R (O3R &&)=delete
 
O3Roperator= (O3R &&)=delete
 
 O3R (O3R &)=delete
 
O3Roperator= (O3R &)=delete
 
virtual void FactoryReset (bool keepNetworkSettings)
 Sets the device configuration back to the state in which it shipped from the ifm factory. More...
 
json GetSchema ()
 Return the current JSON schema configuration. More...
 
json Get (const std::vector< std::string > &path=std::vector< std::string >())
 Returns the configuration formatted as JSON based on a path. More...
 
json ResolveConfig (const json::json_pointer &ptr)
 Returns a part of the configuration formatted as JSON based on a JSON pointer. More...
 
void Set (const json &j)
 Overwrites parts of the temporary JSON configuration which is achieved by merging the provided JSON fragment with the current temporary JSON. More...
 
void Remove (const std::string &jsonPointer)
 Removes an object from the JSON. More...
 
void Reset (const std::string &jsonPointer)
 Sets the default value of an object inside the JSON. More...
 
json GetInit ()
 Return the initial JSON configuration. More...
 
void SaveInit (const std::vector< std::string > &pointers={})
 Save to current temporary JSON configuration as initial JSON configuration, so it will be applied with the next transition to the INIT state (system boot up) More...
 
std::vector< PortInfoPorts ()
 Returns a list containing information about all connected physical and application ports. More...
 
PortInfo Port (const std::string &port)
 Returns information about a given physical or application port. More...
 
json GetDiagnostic ()
 Returns the content of the diagnostic memory formatted in JSON. More...
 
json GetDiagnosticFilterSchema ()
 Returns the JSON schema for the filter expression provided to the getFiltered() method. More...
 
json GetDiagnosticFiltered (json filter)
 Returns the content of the diagnostic memory formatted in JSON and filtered according to the JSON filter expression. More...
 
void Reboot (const boot_mode &mode=ifm3d::Device::boot_mode::PRODUCTIVE) override
 Reboot the device. More...
 
void RebootToRecovery ()
 Reboot the device into Recovery Mode.
 
device_family WhoAmI () override
 This function can be used to retrieve the family of the connected device. More...
 
ifm3d::Device::swu_version SwUpdateVersion () override
 Checks the swupdater version supported by device. More...
 
json ToJSON () override
 Serializes the state of the device to JSON. More...
 
void FromJSON (const json &j) override
 Configures the device based on the parameter values of the passed in JSON. More...
 
void DownloadServiceReport ()
 
- Public Member Functions inherited from ifm3d::Device
 Device (const std::string &ip=ifm3d::DEFAULT_IP, const std::uint16_t xmlrpc_port=ifm3d::DEFAULT_XMLRPC_PORT)
 Initializes the device interface utilizing library defaults for password, ip, and xmlrpc port unless explicitly passed in. More...
 
virtual ~Device ()
 The dtor will cancel any open edit sessions with the device.
 
 Device (Device &&)=delete
 
Deviceoperator= (Device &&)=delete
 
 Device (Device &)=delete
 
Deviceoperator= (Device &)=delete
 
virtual std::string IP ()
 The IP address associated with this Device instance.
 
virtual std::uint16_t XMLRPCPort ()
 The XMLRPC Port associated with this Device instance.
 
virtual void ForceTrigger ()
 Sends a S/W trigger to the device over XMLRPC. More...
 
virtual std::string DeviceType (bool use_cached=true)
 This is a convenience function for extracting out the device type of the connected device. More...
 
virtual bool AmI (device_family family)
 This is a convenience function for checking whether a device is one of the specified device family. More...
 
virtual std::string DeviceParameter (const std::string &key)
 Convenience accessor for extracting a device parameters (i.e., no edit session created on the device)
 
virtual std::vector< std::string > TraceLogs (int count)
 Delivers the trace log from the device A session is not required to call this function. More...
 
virtual std::string ToJSONStr ()
 A stringified version of the JSON object returned by ToJSON(). More...
 
virtual void FromJSONStr (const std::string &jstr)
 Accepts a string with properly formatted/escaped JSON text, converts it to a json object, and call FromJSON() on it. More...
 
bool CheckMinimumFirmwareVersion (unsigned int major, unsigned int minor, unsigned int patch)
 Checks for a minimum ifm device software version. More...
 
ifm3d::SemVer FirmwareVersion ()
 get the firmware version of the device
 
json GetSWVersion ()
 

Additional Inherited Members

- Static Public Member Functions inherited from ifm3d::Device
static std::vector< ifm3d::IFMNetworkDeviceDeviceDiscovery ()
 This function Provides a convinent way to find all ifm devices on the network. More...
 
static void SetTempIPAddress (std::string mac, std::string temp_ip)
 This function Provides a way to set temporary IP. More...
 
static Ptr MakeShared (const std::string &ip=ifm3d::DEFAULT_IP, const std::uint16_t xmlrpc_port=ifm3d::DEFAULT_XMLRPC_PORT, const std::string &password=ifm3d::DEFAULT_PASSWORD, bool throwIfUnavailable=true)
 Factory function for instantiating the proper subclass based on h/w probing. More...
 
- Protected Member Functions inherited from ifm3d::Device
int DeviceID ()
 Implements the serialization of the device state to JSON. More...
 
bool checkDeviceID (int deviceID, int minID, int maxID)
 
std::shared_ptr< XMLRPCWrapper > XWrapper ()
 
- Protected Attributes inherited from ifm3d::Device
std::unique_ptr< Impl > pImpl
 
std::string device_type_
 The cached device type of the connected device.
 

Detailed Description

Device specialization for O3R

Member Function Documentation

◆ FactoryReset()

virtual void ifm3d::O3R::FactoryReset ( bool  keepNetworkSettings)
virtual

Sets the device configuration back to the state in which it shipped from the ifm factory.

Parameters
[in]keepNetworkSettingsa bool indicating wether to keep the current network settings

◆ FromJSON()

void ifm3d::O3R::FromJSON ( const json j)
overridevirtual

Configures the device based on the parameter values of the passed in JSON.

This function is the way to tune the device/application/imager/etc. parameters.

Parameters
[in]jsonA json object encoding a camera configuration to apply to the hardware.
  • Device parameters are processed and saved persistently
Exceptions
ifm3d::Errorupon error - if this throws an exception, you are encouraged to check the log file as a best effort is made to be as descriptive as possible as to the specific error that has occured. Equivalent to Set() followed by SaveInit()

Reimplemented from ifm3d::Device.

◆ Get()

json ifm3d::O3R::Get ( const std::vector< std::string > &  path = std::vector< std::string >())

Returns the configuration formatted as JSON based on a path.

If the path is empty, returns the whole configuration. This function is blocking for firmware versions above 1.1.0.

Parameters
[in]pathA List of JSON path fragments to retrieve the information for
Returns
The JSON configuration for the list of object path fragments

◆ GetDiagnostic()

json ifm3d::O3R::GetDiagnostic ( )

Returns the content of the diagnostic memory formatted in JSON.

Returns
The JSON containing all known diagnostic events

◆ GetDiagnosticFiltered()

json ifm3d::O3R::GetDiagnosticFiltered ( json  filter)

Returns the content of the diagnostic memory formatted in JSON and filtered according to the JSON filter expression.

Parameters
filterA filter expression in JSON format
Returns
json

◆ GetDiagnosticFilterSchema()

json ifm3d::O3R::GetDiagnosticFilterSchema ( )

Returns the JSON schema for the filter expression provided to the getFiltered() method.

Returns
The JSON schema

◆ GetInit()

json ifm3d::O3R::GetInit ( )

Return the initial JSON configuration.

Returns
The initial JSON configuration

◆ GetSchema()

json ifm3d::O3R::GetSchema ( )

Return the current JSON schema configuration.

Returns
The current JSON schema configuration

◆ Port()

PortInfo ifm3d::O3R::Port ( const std::string &  port)

Returns information about a given physical or application port.

Parameters
[in]portthe port for which to get the information
Returns
the port information

◆ Ports()

std::vector<PortInfo> ifm3d::O3R::Ports ( )

Returns a list containing information about all connected physical and application ports.

Returns
the list of ports

◆ Reboot()

void ifm3d::O3R::Reboot ( const boot_mode mode = ifm3d::Device::boot_mode::PRODUCTIVE)
overridevirtual

Reboot the device.

Parameters
[in]modeThe system mode to boot into upon restart of the device
Exceptions
ifm3d::Errorupon error

Reimplemented from ifm3d::Device.

◆ Remove()

void ifm3d::O3R::Remove ( const std::string &  jsonPointer)

Removes an object from the JSON.

The scope of this method is limited to the following regular expressions

  • ^\/applications\/instances\/app\d+$
  • ^\/device\/log\/components\/[a-zA-Z0-9-_]+$
Parameters
[in]jsonPointerA JSON Pointer to the object to be removed.

◆ Reset()

void ifm3d::O3R::Reset ( const std::string &  jsonPointer)

Sets the default value of an object inside the JSON.

The object is addressed by a JSON Pointer. The object is reset to the values defined in the JSON schema. Note that this does not reset the init configuration, nor the parameters marked as "sticky".

Parameters
[in]jsonPointerA JSON Pointer to the object to be set to default.

◆ ResolveConfig()

json ifm3d::O3R::ResolveConfig ( const json::json_pointer &  ptr)

Returns a part of the configuration formatted as JSON based on a JSON pointer.

Parameters
[in]ptrA JSON pointer to retrieve the information for
Returns
The partial JSON configuration for the given JSON pointer

◆ SaveInit()

void ifm3d::O3R::SaveInit ( const std::vector< std::string > &  pointers = {})

Save to current temporary JSON configuration as initial JSON configuration, so it will be applied with the next transition to the INIT state (system boot up)

Parameters
[in]pointersA List of JSON pointers specifying which parts of the configuration should be saved as initial JSON. If no list is provided the whole config will be saved

◆ Set()

void ifm3d::O3R::Set ( const json j)

Overwrites parts of the temporary JSON configuration which is achieved by merging the provided JSON fragment with the current temporary JSON.

This function is blocking for firmware versions above 1.1.0.

Parameters
[in]jThe new temporay JSON configuration of the device.

◆ SwUpdateVersion()

ifm3d::Device::swu_version ifm3d::O3R::SwUpdateVersion ( )
overridevirtual

Checks the swupdater version supported by device.

Returns
sw_version supported by device

Reimplemented from ifm3d::Device.

◆ ToJSON()

json ifm3d::O3R::ToJSON ( )
overridevirtual

Serializes the state of the device to JSON.

The JSON interface returned here is the excellent JSON for Modern C++.

This function (along with its std::string equivalent ToJSONStr()) provides the primary gateway into obtaining the current parameter settings for the device and PMD imager. Data returned from this function can be manipulated as a json object, then fed into FromJSON(...) to mutate parameter settings on the device.

Returns
A JSON object representation of the current state of the hardware.
Exceptions
ifm3d::Errorupon error Equivalent to the Get() method

Reimplemented from ifm3d::Device.

◆ WhoAmI()

device_family ifm3d::O3R::WhoAmI ( )
overridevirtual

This function can be used to retrieve the family of the connected device.

Returns
the device family of the connected device.

Reimplemented from ifm3d::Device.


The documentation for this class was generated from the following file: