IFM O3D313 - Video camera

O3D313 - Video camera IFM - Free user manual and instructions

Find the device manual for free O3D313 IFM in PDF.

📄 65 pages English EN Download 💬 AI Question 10 questions ⚙️ Specs
Notice IFM O3D313 - page 21
View the manual : Français FR English EN
Pick your language and provide your email: we'll send you a specifically translated version.
Product type 3D video camera
Brand IFM
Model O3D313
Technology Time-of-flight (ToF)
Dimensions (L x W x H) 95 x 82.6 x 73.3 mm
Weight Approx. 300 g
Power supply 24 V DC (SELV)
Interface Ethernet (M12, D-coded, 4-pin)
Trigger input Yes, via pin 2 (M12)
Switching outputs 2 outputs (ready and cascade)
Measuring range Up to 30 m
Protection class Protection class III (CP III)
Environmental conditions Indoor, altitude ≤ 2000 m, pollution degree 3, humidity ≤ 90% non-condensing
Mounting 2 M5 screws or mounting kit
Cleaning Clean lint-free cloth, glass cleaner
Reparability Do not open, repair only by manufacturer
Firmware update Via ifm Vision Assistant software
Included accessories 3D camera, quick start guide
Software ifm Vision Assistant (free), ifm3Dlib, ROS
Approvals EU Declaration of Conformity

Frequently Asked Questions - O3D313 IFM

How to connect the power supply of the O3D313 camera?
Connect a 24 V DC (SELV) power supply to the 5-pin M12 male connector according to the wiring diagram. Pin 1 is U+, pin 3 is GND. Observe the electrical data in the technical datasheet.
How to trigger image capture?
Capture can be triggered via the trigger input (pin 2) by a switching signal, via Ethernet, or continuously at a fixed frame rate. You can configure rising and/or falling edges in the ifm Vision Assistant software.
Which software to use for configuring the device?
Use the free ifm Vision Assistant software (available at www.ifm.com) or the ifm3Dlib (C++, Linux) and ROS libraries for advanced integration.
How to clean the camera lens?
Use a clean, lint-free cloth with glass cleaner. Avoid scratches which could cause measurement errors.
What to do in case of an error indicated by the LEDs?
If LEDs 1 and 2 flash at 8 Hz, an internal error is present. Check the error message via Ethernet. If LEDs flash at 2 Hz, it is a recoverable error. Contact the manufacturer if necessary.
What is the maximum measuring range?
The range depends on the 'Maximum visibility distance' parameter and can reach more than 30 m. For long distances, the surface temperature may increase, requiring cooling measures.
How to mount multiple cameras side by side without interference?
Two methods: cascade the devices via the hardware trigger (cascade output) or use different frequency channels configurable in ifm Vision Assistant.
How to update the firmware?
Download the update from www.ifm.com, then use the ifm Vision Assistant software. Back up your parameters first as they will be lost during the update.
Can I use the camera outdoors?
No, the camera is designed for indoor use (altitude ≤ 2000 m, pollution degree 3, humidity ≤ 90% non-condensing). Avoid direct sunlight (>8 klx) which causes measurement errors.
How to replace the device without losing settings?
Before replacement, export the parameters via ifm Vision Assistant. After installing the new device, import these parameters. This also allows quick duplication of the configuration on multiple devices.

User questions about O3D313 IFM

0 question about this device. Answer the ones you know or ask your own.

Ask a new question about this device

The email remains private: it is only used to notify you if someone responds to your question.

No questions yet. Be the first to ask one.

Download the instructions for your Video camera in PDF format for free! Find your manual O3D313 - IFM and take your electronic device back in hand. On this page are published all the documents necessary for the use of your device. O3D313 by IFM.

USER MANUAL O3D313 IFM

natural_image Abstract geometric pattern with nested rounded rectangles and rectangular cutouts (no text or symbols)

Contenu

14.3.1 Sending Commands....25
14.3.2 Receiving Images....26
14.3.3 Image data 26
14.3.4 Additional Information for CONFIDENCE_IMAGE....30

14.3.5 Configuration of PCIC Output....31

14.4 Process Interface Command Reference....36

14.4.1 a Command (activate application) 36

14.4.2 A? Command (occupancy of application list) 36

14.4.3 c Command (upload PCIC output configuration) 37

14.4.4 C? Command (retrieve current PCIC configuration)....37

14.4.5 E? Command (request current error state)....37

14.4.6 G? Command (request device information) 38

14.4.7 H? Command (return a list of available commands). 39

14.4.8 I? Command (request last image taken)....40

14.4.9 o Command (set logic state of a ID)....40

14.4.10 O? Command (request state of a ID) 41

14.4.11 p Command (turn PCIC output on or off) 41

14.4.12 S? Command (request current decoding statistics) 42

14.4.13 t Command (execute asynchronous trigger)....42

14.4.14 T? Command (execute synchronous trigger)....43

14.4.15 v Command (set current protocol version) 43

14.4.16 V? Command (request current protocol version) 43

14.5 Error codes 44

14.6 XML-RPC Command Reference 45

14.6.1 Parameter API 45

14.6.2 Main Object....46

14.6.3 Session Object 49

14.6.4 Edit Mode Object 51

14.6.5 Device Config Object 52

14.6.6 Device/Network Config Object 56

14.6.7 Application Config Object 56

14.6.8 Application/Imager Config Object....58

14.6.9 Image Settings and Filter Parameters 65

This product can contain Free Software or Open Source Software from various software developers which is subject to the following licenses: General Public License version 1, version 2 and version 3 (General Public License version 3 in conjunction with the GNU Compiler Collection Runtime Library Exception version 3.1), Lesser General Public License version 2.1, Lesser General Public License version 3, Berkeley Software Distribution ("This product includes software developed by the University of California, Berkeley and its contributors"), The Academic Free License version 2.1. For the components subject to the General Public License in their respective versions the following applies:

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation. If version 1 applies to the software: either version 1 of the License or (at your option) any later version; if version 2 (or 2.1) applies to the software: either version 2 (or 2.1) of the License or (at your option) any later version; if version 3 applies to the software: either version 3 of the License or (at your option) any later version. The following disclaimer of the software developers applies to the software components that are subject to the General Public License or the Lesser General Public License in their respective versions: The Free Software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License and the GNU Lesser General Public License for more details.

The responsibility of ifm electronic gmbh for ifm products, in the case of product-specific software, remains unaffected by the above disclaimer. Please note that the firmware for the ifm products is in some cases provided free of charge. The price of the ifm products has then to be paid for the respective device itself (hardware) and not for the firmware. For the latest information on the license agreement for your product please visit www.ifm.com

For binaries that are licensed under any version of the GNU General Public License (GPL) or the GNU LGPL you may obtain the complete corresponding source code of the GPL software from us by sending a written request to: opensource@ifm.com or to ifm electronic gmbh Friedrichstraße 1, 45128 Essen, Germany.

We charge €30 for each request. Please write “source for product Y” in the memo line of your payment. Your request should include (i) the name of the covered binary, (ii) the name and the version number of the ifm product, (iii) your name and (iv) your return address.

This offer is valid to anyone in receipt of this information.

This offer is valid for at least three years (from the date you received the GLP/LGPL covered code).

text_image ① ② ③ ④ ⑤
other | Time (ms) | Entry (Trigger) | Capture d'images | | --------- | --------------- | ----------------- | | 1 | Yes | Yes | | 2 | Yes | Yes | | 3 | Yes | Yes | | 4 | Yes | Yes | | 5 | Yes | Yes | | 6 | Yes | Yes | | 7 | Yes | Yes | | 8 | Yes | Yes | | 9 | Yes | Yes | | 10 | Yes | Yes | | 11 | Yes | Yes |

7.1.3 Bornes 4 / 5 (ready / cascade)

text_image Diagram of a two-segment display setup with labeled components ①, ②, and ③
text_image LED 1 LED 2 LED 4 LED 3
text_image Diagram of a mechanical device with numbered components, likely a valve or pump assembly.

The following ports are required for the camera configuration using XML-RPC and for receiving data on the process interface. They must not be blocked by a firewall or router.

  • TCP/HTTP: 80
  • TCP: 50010

If the ifm Vision Assistant is used, the following additional ports must also be available:

  • UDP: 3321
  • TCP/HTTP: 8080

It is possible to configure another port than 50010 for the process interface. If a different port is used, it must not be blocked either.

14.2 XML-RPC Interface

In case the O3D3xx camera should not be configured by the "ifmVisionAssistant", the XML-RPC interface can be used instead.

IFM O3D313 - XML-RPC Interface - 1

General information about XML-RPC is found on the website http://xmlrpc.scripting.com/spec

To send a command via the XML-RPC interface the command is in a special layout. In this command, linefeeds and carriage returns are essential.

IFM O3D313 - XML-RPC Interface - 2

Every command which is sent via the XML-RPC interface must end with carriage return and linefeed .

Several commands will use different URLs in the XML-RPC header.

14.2.1 Sample XML-RPC command

All following XML-RPC commands will have this type of layout:

POST /RPC3 HTTP/1.0<CR><LF>
User-Agent: Frontier/5.1.2 (WinNT)<CR><LF>
Host: betty.userland.com<CR><LF>
Content-Type: text/xml<CR><LF>
Content-length: 181<CR><LF>
<CR><LF>
<?xml version="1.0"?><CR><LF>
<methodCall><CR><LF>
<methodName>examples.getStateName</methodName><CR><LF>
<params><CR><LF>
<param><CR><LF>
<value><i4>41</i4></value><CR><LF>
</param><CR><LF>
</params><CR><LF>
</methodCall><CR><LF> 
The following example contains one O3D3xx command:
POST /api/rpc/v1/com.ifm.efector/ HTTP/1.1 <CR><LF>
User-Agent: Frontier/5.1.2 (WinNT)<CR><LF>
Host: 192.168.0.69<CR><LF>
Content-Type: text/xml<CR><LF>
Content-length: 94<CR><LF>
<CR><LF>
<?xml version="1.0"?><CR><LF>
<methodCall><CR><LF>
<methodName>getParameter</methodName><CR><LF>
</methodCall><CR><LF> 

14.2.2 XML-RPC Objects

To communicate and to configure the device via XML-RPC the XML-RPC commands have to use different XML-RPC objects. Different commands need different XML-RPC objects (see XML-RPC command references).

The interface of O3D3xx is structured in an object-oriented way. Some of the objects are available all the time, others are only available after bringing the device into a special mode by calling a method on an already available object. This mechanism is used to create system requirements (e.g. password protection).

It could be necessary to send heartbeats so that there will be no session timeout.

The following diagram should give an overview how objects are related to each other and which methods must be called to make others available:

IFM O3D313 - XML-RPC Objects - 1

flowchart
graph TD
    A["Main API"] -->|requestSession(...)| B["Session"]
    B -->|setOperatingMode(1)| C["EditMode"]
    C -->|editApplication(1)| D["ApplicationConfig"]
    D --> E["DeviceConfig"]
    E --> F["NetworkConfig"]
    E --> G["ImagerConfig"]

IFM O3D313 - XML-RPC Objects - 2

flowchart
graph TD
    A["Main API"] --> B["cancelSession(...) removes itself from RPC. Session will also be removed, if heartbeat(...) is not called at the right time"]
    B --> C["Session"]
    C --> D["setOperatingMode(0) will remove EditMode from RPC"]
    D --> E["EditMode"]
    E --> F["stopEditApplication() will remove ApplicationConfig from RPC"]
    F --> G["ApplicationConfig"]

Main Object

Object-URI: /api/rpc/v1/com.ifm.efector/

This is the main object of RPC. It contains methods to open a session. The session contains methods for activating the edit mode. Most of its methods are only getters, because it should be possible to protect editing with a password.

Session Object

Object URI e.g.: /api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/

The URL part "d21c80db5bc1069932fbb9a3bd841d0b" is the session ID. It is returned by the command "requestSession" of the main object. If the command "requestSession" is called without a user-defined session ID, which can be passed as a parameter, a random session ID is generated automatically.

EditMode Object

Object URI e.g.: /api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/

This object is only available if the device is in the edit operating mode. The index of applications must be between 1 and 32. The device must only support 32 applications and the indexes must start at 1.

DeviceConfig Object

Object-URI e.g.: /api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/device/

Device/NetworkConfig Object

Object URI e.g.:

/api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/device/network/

Application Config Object (editable application)

Object URI e.g.:

/api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/application/

Application/Imager Config Object (O3D3xx)

Object URI e.g.:

/api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/application/imager_001/

As there is only one imager config on O3D3xx, the ID must be fixed to "001". Data of this object is persistently saved when calling "save" on the application config object. The imager config RPC object has multiple sub-types. Only parameters relevant for a specific type are available while it is active. They are based on frequency (extending the distance) and integration intervals (extending the measurement details).

Type names, based on GUI draft (under 5 metres -> single frequency, up to 30 metres -> double frequency, more than 30 metres -> triple frequency.):

under5m_low

under5m_moderate

under5m_high

upto30m_low

upto30m_moderate

upto30m_high

morethan30m_low

morethan30m_moderate

Image Settings and Filter Parameters

There is an RPC object for spatial filter parameters in each imager configuration.

Object URI e.g.: /api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/application/imager_001/spatialfilter

There is an RPC object for temporal filter parameters in each imager configuration.

Object URI e.g.: /api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/application/imager_001/temporalfilter

Data of these objects is persistently saved when calling "save" on application config object.

14.3 Process Interface

The process interface is used during the normal operation mode to get operational data (e.g. 3D images, process values) from the O3D3xx.

14.3.1 Sending Commands

For sending commands via the process interface the commands have to be sent with a special protocol and as ASCII character strings. This protocol conforms to the version 3 of the O2V/O2D products.

Structure of the protocol:

CR LF CR LF

Abbreviation Description ASCII code (dec) ASCII code (hex)
CR Carriage Return 13 D
LF Linefeed 10 A
< > Marking of a placeholder(e.g.is a placeholder for code)
[ ] Optional argument(possible but not required)
Command Description
It is the command to the device (e.g. trigger the unit).
It is a character string of 4 digits between 0-9. If a message with a specific ticket is sent to the device, it will reply with the same ticket. A ticket number must be > 0999. Use a ticket number from the range 1000 - 9999.
It is a character string beginning with the letter 'L' followed by 9 digits. It indicates the length of the following data (<content>CR LF) in bytes.

They are different protocol versions available:

VersionInput format Output format
V1<Content>CR LFas input
V2as input
V3as input
V4<Content>CR LF<length>CR LF<Content>CR LF

IFM O3D313 - Sending Commands - 1

The default protocol version is "V3". It is recommended to use protocol version 3 for machine to machine communication. This is due to the fact that only version 3 supports asynchronous messages and provides length information.

Ticket numbers for asynchronous messages:

Ticket numberDescription
0000Asynchronous results
0001Asynchronous error messages / codes
0010Asynchronous notifications / message codes

14.3.2 Receiving Images

For receiving the image data a TCP/IP socket communication is established. The default port number is 50010. The port number may differ based on the configuration. After opening the socket communication, the O3D3XX device will automatically (if the device is in free run mode) send the data through this socket to the TCP/IP client (PC).

PCIC output per frame. The following data is submitted in this sequence:

Component Content
Ticket and length information (→ 14.4.14)
Ticket „0000“
Start sequence String "star" (4 bytes)
Normalised amplitude imageOutput format: 16-bit unsigned integer1 image
Distance imageOutput format: 16-bit integer. Unit: mm.1 image
X imageOutput format: 16-bit signed integer. Unit: mm.1 image
Y imageOutput format: 16-bit signed integer. Unit: mm.1 image
Z imageOutput format: 16-bit signed integer. Unit: mm.1 image
Confidence imageOutput format: 8-bit unsigned integer1 image
Diagnostic data
Stop sequence String "stop" (4 bytes)
Ticket signature

14.3.3 Image data

For every image there will be a separate chunk. The chunk is part of the response frame data of the process interface.

The header of each chunk contains different kinds of information. This information is separated into bytes. The information contains e.g. the kind of image which will be in the "PIXEL_DATA" and the size of the chunk.

Offset NameDescription Size [byte]
0x0000 CHUNK_TYPE Defines the type of the chunk. For each distinct chunk an own type is defined.4
0x0004 CHUNK_SIZE Size of the whole image chunk in bytes. After this count of bytes the next chunk starts.4
0x0008 HEADER_SIZE Number of bytes starting from 0x0000 until PIXEL_DATA.4
0x000CHEADER_VERSIONVersion number of the header4
0x0010 IMAGE_WIDTH Image width in pixel 4
0x0014 IMAGE_HEIGHT Image height in pixel 4
0x0018 PIXEL_FORMAT Pixel format 4
0x001CTIME_STAMP Time stampin microseconds (deprecated) 4
0x0020FRAME_COUNT Frame counter 4
0x0024STATUS_CODE Errors of the device 4
0x0028TIME_STAMP_SEC Time stamp in seconds 4
0x002CTIME_STAMP_NSEC Time stamp in nanoseconds4
0x0030PIXEL_DATAThe pixel data in the given type and dimension of the image. Padded to 4-byte boundary.4

Available chunk types:

ConstantValueDescription
RADIAL_DISTANCE_IMAGE100Each pixel of the distance matrix denotes the ToF distance measured by the corresponding pixel or group of pixels of the imager. The distance value is corrected by the camera's calibration, excluding effects caused by multipath and multiple objects contributions (e.g. "flying pixels"). Reference point is the optical centre of the camera inside the camera housing.Invalid PMD pixels (e.g. due to saturation) have a value of zero.Data type: 16-bit unsigned integer (little endian)Unit: millimetres
NORM_AMPLITUDE_IMAGE101Each pixel of the normalized amplitude image denotes the raw amplitude (see amplitude image below for further explanation), normalized to exposure time. Furthermore, vignetting effects are compensated, ie the darkening of pixels at the image border is corrected. The visual impression of this grayscale image is comparable to that of a common 2D camera.Invalid PMD pixels (e.g. due to saturation) have an amplitude value of 0.Data type: 16-bit unsigned integer
AMPLITUDE_IMAGE103Each pixel of the amplitude matrix denotes the amount of modulated light (i.e. the light from the camera's active illumination) which is reflected by the appropriate object. Higher values indicate higher PMD signal strengths and thus a lower amount of noise on the corresponding distance measurements. The amplitude value is directly derived from the PMD phase measurements without normalisation to exposure time. In multiple exposure mode, the lack of normalisation may lead (depending on the chosen exposure times) to inhomogeneous amplitude image impression, if a certain pixel is taken from the short exposure time and some of its neighbours are not.Invalid PMD pixels (e.g. due to saturation) have an amplitude value of 0.Data type: 16-bit unsigned integer
GRAYSCALE_IMAGE104Each pixel of the amplitude matrix denotes the amount of modulated light which is reflected by the appropriate object (i.e. the light from the camera's active illumination). Higher values indicate higher PMD signal strengths and thus a lower amount of noise on the corresponding distance measurements. The amplitude value is directly derived from the PMD phase measurements without normalisation to exposure time.
Constant Value Description
CARTESIAN_X_COMPONENT200 The X matrix denotes the X component of the Cartesian coordinate of a PMD 3D measurement. The origin of the camera's coordinate system is in the middle of the lens' front glass, if the extrinsic parameters are all set to 0.Data type: 16-bit signed integerUnit: millimetres
CARTESIAN_Y_COMPONENT201 The Y matrix denotes the Y component of the Cartesian coordinate of a PMD 3D measurement. The origin of the camera's coordinate system is in the middle of the lens' front glass, if the extrinsic parameters are all set to 0.Data type: 16-bit signed integerUnit: millimetres
CARTESIAN_Z_COMPONENT202 The Z matrix denotes the Z component of the Cartesian coordinate of a PMD 3D measurement. The origin of the camera's coordinate system is in the middle of the lens' front glass, if the extrinsic parameters are all set to 0.Data type: 16-bit signed integerUnit: millimetres
CARTESIAN_ALL 203 CARTESIAN_X_COMPONENT,CARTESIAN_Y_COMPONENT,CARTESIAN_Z_COMPONENT
UNIT_VECTOR_ALL 223 The unit vector matrix contains 3 values [ex, ey, ez] for each PMD pixel, i.e. the data layout is [ex_1,ey_1,ez_1, ... ex_N, ey_N, ez_N], where N is the number of PMD pixels.Data type: 32-bit floating point number (3x per pixel)
CONFIDENCE_IMAGE 300 See Additional Information for Image Data (→ 14.3.4)
DIAGNOSTIC 302 See Receiving Images (→ 14.3.2)
JSON_DIAGNOSTIC 305 Items with JSON formatted diagnostic data is formed like this:{"AcquisitionDuration": 20.391,"EvaluationDuration": 37.728,"FrameDuration": 37.728,"FrameRate": 15.202,"TemperatureIllu": 52.9}Unit for durations: millimetresUnit for framerates: HzUnit for temperature: °C
EXTRINSIC_CALIB 400The transformation from one cartesian coordinate system to another is defined by a 6 degrees of freedom vector (DOF): [trans_x, trans_y, trans_z, rot_x, rot_y, rot_z]. Let R be the product of the common "clockwise" 3D-rotation matrices: R = Rx*Ry*Rz The transformation of a point P is specified by P_t = R*P + [trans_x, trans_y, trans_z] .The device extrinsic calibration can be set by the user, but it may be changed by an automatic calibration feature of the device.Data type: 32-bit floating point number (little endian)Unit for trans_x, trans_y, trans_z: millimetresUnit for rot_x, rot_y, rot_z: °
JSON_MODEL 500 Model data in JSON
MODEL_ROIMASK 501 ROI mask for internal debugging purposes
SNAPSHOT_IMAGE 600Snapshot image

Pixel format:

Constant Value Description
FORMAT_8U 0 8-bit unsigned integer
FORMAT_8S 1 8-bit signed integer
FORMAT_16U 2 16-bit unsigned integer
FORMAT_16S 3 16-bit signed integer
FORMAT_32U 4 32-bit unsigned integer
FORMAT_32S 5 32-bit signed integer
FORMAT_32F 6 32-bit floating point number
FORMAT_64U 7 64-bit unsigned integer
FORMAT_64F 8 64-bit floating point number
Reserved9 N/A
FORMAT_32F_3 10Vector with 3x32-bit floating point number

14.3.4 Additional Information for CONFIDENCE\_IMAGE

Further information for the confidence image:

Bit Value Description
0 1 = pixel invalid Pixel invalidThe pixel is invalid. To determine whether a pixel is valid or not only this bit needs to be checked. The reason why the bit is invalid is recorded in the other confidence bits.
1 1 = pixel saturated Pixel is saturatedContributes to pixel validity: yes
2 1 = bad A-B symmetry A-B pixel symmetryThe A-B symmetry value of the four phase measurements is above threshold.Remark: This symmetry value is used to detect motion artefacts. Noise (e.g. due to strong ambient light or very short integration times) or PMD interference may also contribute.Contributes to pixel validity: yes
3 1 = amplitude below minimum amplitude thresholdAmplitude limitsThe amplitude value is below minimum amplitude threshold.Contributes to pixel validity: yes
4+5 Bit 5, bit 40 0 = unused0 1 = shortest exposure time (only used in 3 exposure mode)1 0 = middle exposure time in 3 exposure mode, short exposure in double exposure mode1 1 = longest exposure time (always 1 in single exposure mode)Exposure time indicatorThe two bits indicate which exposure time was used in a multiple exposure measurement.Contributes to pixel validity: no
6 1 = pixel is clipped Clipping box on 3D dataIf clipping is active this bit indicates that the pixel coordinates are outside the defined volume.Contributes to pixel validity: yes
7 1 = suspect/defective pixel Suspect pixelThis pixel has been marked as "suspect" or "defective" and values have been replaced by interpolated values from the surroundings.Contributes to pixel validity: no

14.3.5 Configuration of PCIC Output

The user has the possibility to define his own PCIC output. This configuration is only valid for the current PCIC connection. It does not affect any other connection and will get lost after disconnecting.

For configuring the PCIC output a "flexible" layouter concept is used, represented by a JSON string. The format of the default configuration is as follows:

{
    "layouter": "flexible",
    "format": { "dataencoding": "ascii" },
    "elements": [
    { "type": "string", "value": "star", "id": "start_string" },
    { "type": "blob", "id": "normalized_amplitude_image" },
    { "type": "blob", "id": "x_image" },
    { "type": "blob", "id": "y_image" },
    { "type": "blob", "id": "z_image" },
    { "type": "blob", "id": "confidence_image" },
    { "type": "blob", "id": "diagnostic_data" },
    { "type": "string", "value": "stop", "id": "end_string" }
]
} 

This string can be retrieved by the C? command, altered and sent back using the c command.

The layout software has the following main object properties:

Name Description Details
layouter Defines the basic data output format.So far only “flexible” is supportedType: string
format Defines format details, the definitions in the main object are the defaults for any of the following data elements (e.g. if it says dataencoding=binary, all data elements should be binary encoded instead of ASCII).Type: object
elements List of data elements which must be written. Type: array of objects

The actual data is defined within the “elements” properties and may consist of these settings:

Name Description Details
type Defines the type of data which must be written.The data might be stored in a different type (e.g. stored as integer but should be output as Float32)The type "records" will need some special handling.Type: string
id Defines an identifier for this data element.If there is no fixed value (property "value"), the data should be retrieved via id.Type: string
value Optional property for defining a fixed output value. Type: any JSON value
format Type-depending option for fine-tuning the output format.E.g. cut an integer to less than 4 bytes.Type: object

Available values for the type property:

Type Descriptionon
records Defines that this element represents a list of records.
string Data is written as string.
text encoding should be UTF8 if there is nothing else specified in format properties.
float32 Data is written as floating point number.
uint32 Data is written as integer.
int32 Data is written as integer.
uint16 Limits the output to two bytes in binary encoding, besides the binary limitation it acts like uint32.
int16 Limits the output to two bytes in binary encoding, besides the binary limitation it acts like int32.
uint8 Limits the output to one byte in binary encoding, besides the binary limitation it acts like uint32.
int8 Limits the output to one byte in binary encoding, besides the binary limitation it acts like int32.
blob Data is written as a BLOB (byte by byte as if it came from the data provider).

Depending on the desired data format the user may tune his output data with further "format" properties.

Common format properties:

Format propertiesAllowed values Default
dataencoding "ascii" or "binary" can be defined in top-level-object and overwritten by element objects."ascii"
scale "float value with decimal separator" to scale the results for output byte width1.0
offset "float value with decimal separator" 0.0

Binary format properties:

Format properties Allowed values Default
orderLittle, big and networkLittle

ASCII format properties:

Format properties Allowed values Default
width Output width.If the resulting value exceeds the width field the result will not be truncated.0
fill Fill character " "
precision Precisionis the number of digits behind the decimal separator. 6
displayformat Fixed, scientific Fixed
alignment Left, right Right
decimalseparator 7-bit characters for e.g. "." "."
base Defines if the output should be:binary (2)octal (8)decimal (10)hexadecimal (16)10

Example of a format configuration of the temperature (id: temp_illu) element.

  1. Illumination temperature like this "33,5_":
c000000226{ "layouter": "flexible", "format": { "dataencoding": "ascii" }, "elements": [ { "type": "float32", "id": "temp_illu", "format": { "width": 7, "precision": 1, "fill": "_", "alignment": "left", "decimal separator": "," } ] } 
  1. Illumination temperature as binary (16-bit integer, 1/10 °C):
c000000194{ "layouter": "flexible", "format": { "dataencoding": "ascii" }, "elements": [ { "type": "int16", "id": "temp_illu", "format": { "dataencoding": "binary", "order": "network", "scale": 10 } } ] } 
  1. Illumination temperature in °F (e.g. "92.3 Fahrenheit"):
c000000227{ "layouter": "flexible", "format": { "dataencoding": "ascii" }, "elements": [ { "type": "float32", "id": "temp_illu", "format": { "precision": 1, "scale": 1.8, "offset": 32 } }, { "type": "string", "value": "Fahrenheit" } ] } 

The following element IDs are available:

ID Description Native data type
activeapp_id Active application, shows which of the 32 application-configurations is currently active32-bit unsigned integer
all_cartesian_vector_matricesAll Cartesian images (X+Y+Z) concatenated to one package16-bit signed integer
all_unit_vector_matricesMatrix of unit vectors. Each element consists of a 3 component vector [e_x, e_y, e_z]Float32
amplitude_image PMD raw amplitude image 16-bit unsignedinteger
confidence_image Confidence image 8-bit unsignedinteger
distance_image Radial distance image 16-bit unsignedintegerunit: millimetres
evaltime Evaluation time for current frame in milliseconds 32-bit unsignedinteger
extrinsic_calibration Extrinsic calibration, consisting of 3 translation parameters (unit: millimeters) and 3 angles(unit: degree): [t_x, t_y, t_z, alpha_x, alpha_y, alpha_z]Float32
framerate Current frame rate in Hz Float32
normalized_amplitude_imageNormalized amplitude image16-bit unsigned integer
temp_front1Invalid temperature, the output is 3276.7Float32, unit: °C
temp_illuTemperature measured in the device while capturing this resultMeasured on the illumination boardFloat32, unit: °C
x_imagey_imagez_imageCartesian coordinates for each pixelEach dimension is a separate image16-bit signed integer

For the main object on devices with statistics feature the following IDs are available:

ID Description Native data type
statistics_overall_count Allows theuser to output the statistics value with the result of the frame, maps to ModelResults: adv_statistics.number_of_framesuint32
statistics_passed_count Allows theuser to output the statistics value with the result of the frame, maps to ModelResults: adv_statistics.number_of_passed_framesuint32
statistics_failed_count Allows the useruser to output the statistics value with the result of the frame, maps to ModelResults: adv_statistics.number_of_failed_framesuint32
statistics_aborted_count Allows theuser to output the statistics value with the result of the frame, maps to ModelResults: adv_statistics.number_of_aborted_framesuint32
statistics_acquisition_time_min Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_acquisition.minfloat32
statistics_acquisition_time_mean Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_acquisition.meanfloat32
statistics_acquisition_time_max Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_acquisition.maxfloat32
statistics_evaluation_time_min Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_evaluation.minfloat32
statistics_evaluation_time_mean Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_evaluation.meanfloat32
statistics_evaluation_time_max Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_evaluation.maxfloat32
statistics_frame_duration_min Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_duration.minfloat32
statistics_frame_duration_mean Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_duration.meanfloat32
statistics_frame_duration_max Allows the user to output the statistics value with the result of the frame,maps to ModelResults: adv_statistics.frame_duration.maxfloat32

14.4 Process Interface Command Reference

IFM O3D313 - Process Interface Command Reference - 1

All received messages which are sent because of the following commands will be sent without "start"/"stop" at the beginning or ending of the string.

14.4.1 a Command (activate application)

Commanda
Description Activates the selectedapplication
Type Action
Reply *
! • Application not available• <application number> contains wrong value• External application switching activated• Device is in an invalid state for this command, e.g. configuration mode
? Invalid command length
Note2 digits for the application number as decimal value

14.4.2 A? Command (occupancy of application list)

CommandA?
Description Requests the occupancy of the application list
Type Request
Replyapplication...? Invalid command length
? Invalid command length
! Invalid state (e.g. no applicationactive)
Notechar string with 3 digits for the amount of applications saved on the device as decimal numbertabulator (0x09)2 digits for the active application2 digits for the application numberThe active application is repeated within the application list.The active application is repeated within the application list.

14.4.3 c Command (upload PCIC output configuration)

Commandc
Description Uploads a PCIC outputconfiguration lasting this session
Type Action
Reply *
! • Error in configuration• Wrong data length
? Invalid command length
Note9 digits as decimal value for the data lengthconfiguration data

14.4.4 C? Command (retrieve current PCIC configuration)

CommandC?
Description Retrieves the current PCIC configuration
Type Request
Reply
? Invalid command length
Note9 digits as decimal value for the data lengthconfiguration data

14.4.5 E? Command (request current error state)

CommandE?
Description Requests the current error state
Type Request
Reply
! Invalid state (e.g. configuration mode)
? Invalid command length
Note •

14.4.6 G? Command (request device information)

CommandG?
Description Requests device information
Type Request
Reply
Note •IFM ELECTRONIC•Tabulator (0x09)e.g. O3D300•UTF8 Unicode string•UTF8 Unicode string•UTF8 Unicode string•IP address of the device as ASCII character stinge.g. 192.168.0.96•port number of the XML-RPC•subnet mask of the device as ASCIIe.g. 192.168.0.96•gateway of the device as ASCIIe.g 192.168.0.96•MAC adress of the device as ASCIIe.g. AA:AA:AA:AA:AA•ASCII string "0" for off and "1" for on

14.4.7 H? Command (return a list of available commands)

CommandH?
Description Returns a list of available commands
Type Request
Reply H? - show this listt - execute TriggerT? - execute Trigger and wait for datao- sets IO stateO?- get IO stateI?- get last image of defined typeA? - get application listp- activate / deactivate data outputa-set active applicationE? - get last errorV? - get current protocol versionv- sets protocol versionc- configures process date formattingC? - show current configurationG? - show device informationS? - show statisticsL? - retrieves the connection IDf- set parameter value

14.4.8 I? Command (request last image taken)

CommandI?
Description Request last image taken
Type Request
Reply
! • No image available• Wrong ID
? • Invalid command length
Note2 digits for the image typechar string with exactly 9 digits as decimal number for the image data size in bytesimage dataValid image ID:01 - amplitude image02 - normalised amplitude image03 - distance image04 - X image (distance information)05 - Y image (distance information)06 - Z image (distance information)07 - confidence image (status information)08 - extrinsic calibration09 - unit_vector_matrix_ex, ey,ez10 - last result output as formatted for this connection11 - all distance images: X, Y, and Z

14.4.9 o Command (set logic state of a ID)

Commando
Description Sets the logic state of a specific ID
Type Action
Reply *
! Invalid state (e.g. configuration mode)
? Invalid command length
Note •
2 digits for digital output:"01" for IO1"02" for IO2"03" for IO3•1 digit for the state:"0" for logic state low"1" for logic state high

14.4.10 O? Command (request state of a ID)

CommandO?
Description Requests the state of a specific ID
Type Request
Reply
! • Invalid state (e.g. configuration mode)• Wrong ID
? Invalid command length
Note •The camera supports ID 1 and ID 2.The sensor supports ID 1, ID 2 and ID 3.
2 digits for digital output:"01" for IO1"02" for IO2"03" for IO3•1 digit for the state:"0" for logic state low"1" for logic state high

14.4.11 p Command (turn PCIC output on or off)

Commandp
Description Turns the PCIC outputon or off
Type Action
Reply *
!contains wrong value
? Invalid command length
Note1 digit0: deactivates all asynchronous output1: activates asynchronous result output2: activates asynchronous error output3: activates asynchronous error and data output4: activates asynchronous notifications5: activates asynchronous notifications and asynchronous result6: activates asynchronous notifications and asynchronous error output7: activates all outputsOn device restart the value configured within the application is essential for the output of data.This command can be executed in any device state.By default the error codes will not be provided by the device.

14.4.12 S? Command (request current decoding statistics)

CommandS?
Description Requests current decoding statistics
Type Request
Replyresults><t><number of positive decodings><t><number of false decodings>
! No application active
Note

14.4.13 t Command (execute asynchronous trigger)

Commandt
Description Executes trigger. The result data is send asynchronously
Type Action
Reply * Trigger was executed, the devicecaptures an image and evaluates the result.
! • Device is busy with anevaluation• Device is in an invalid state for this command, e.g. configuration mode• Device is set to a different trigger source• No active application

14.4.14 T? Command (execute synchronous trigger)

CommandT?
Description Executes trigger. The result data is send synchronously
Type Request
Reply Process data within theconfigured layoutTrigger was executed, the device captures an image, evaluates the result and sends the process data.
! • Device is busy with anevaluation• Device is in an invalid state for this command, e.g. configuration mode• Device is set to a different trigger source• No active application

14.4.15 v Command (set current protocol version)

Commandv
Description Sets the current protocol version. The device configuration is not affected
Type Action
Reply *
! Invalid version
? Invalid command length
Note2 digits for the protocol version(→ 14.3.1)

IFM O3D313 - v Command (set current protocol version) - 1

The default protocol version is „V3“.

14.4.16 V? Command (request current protocol version)

CommandV?
Description Requests current protocol version
Type Request
Replyminversion>
Note2 digits for the currently set versionspace sign: 0x202 digits for the available min and max version that can be set

14.5 Error codes

By default the error codes will not be provided by the device. The p command can activate their provision ( 14.4.11).

Error code ID Description
100000001 Maximum number of connections exceeded
110001001 Boot timeout
110001002 Fatal software error
110001003 Unknown hardware
110001006 Trigger overrun
110002000 Short circuit on Ready for Trigger
110002001 Short circuit on OUT1
110002002 Short circuit on OUT2
110002003 Reverse feeding
110003000 Vled overvoltage
110003001 Vled undervoltage
110003002 Vmod overvoltage
110003003 Vmod undervoltage
110003004 Mainboard overvoltage
110003005 Mainboard undervoltage
110003006 Supply overvoltage
110003007 Supply undervoltage
110003008 VFEMon alarm
110003009 PMIC supply alarm
110004000 Illumination overtemperature

14.6 XML-RPC Command Reference

14.6.1 Parameter API

IFM O3D313 - Parameter API - 1

The parameters setParameter, getParameter, getAllParameters and getAllParameterLimits are implemented in the following RPC objects:

  • Device
  • Network
  • Application
  • ImagerConfig
  • Filter
  • Model

setParameter

Method namesetParameter
Description Sets a parameter to a specific value
Input parameters 1. Name of parameter:string2. New value: string
Output parameters Empty string (compatibility with classic XmlRPC client)

getParameter

Method namegetParameter
Description Returns the current value of the parameter
Input parameters Name of parameter: string
Output parameters Value of parameter: string

getAllParameters

Method namegetAllParameters
Description Returns all parametersof the object in one data structure
Input parameters None
Output parameters 1. Struct (namecontains the parameter name, value contains the stringified parameter value)

getAllParameterLimits

Method namegetAllParameterLimits
Description Returns limits of all numeric parameters, that have limits defined on the device
Input parameters None
Output parameters 1. Struct of Structs (name in first struct is the parameter name, substructs contains: min :string, max :string)E.g.{"ExposureTime1": { "min": "123", "max": "432" }, "ExposureTime2": { "min": "123", "max": "432" }}

Parameter string encoding

Non-string parameters must be encoded in the following format.

Type Stringified
bool "true" /"false"
setParameter method also accepts "1"/"0", getter methods must always return "true"/"false"
int decimal (e.g "-1234" / "1234")
Values should be in the range of int32 (-2^31 .. 2^31)
double English floating point notation (optional with exponent)

IFM O3D313 - Parameter string encoding - 1

Structured types (array or structs) can't be put into parameter storage in an general way. Encoding of arrays must specified on specific parameters.

14.6.2 Main Object

getParameter

Method namegetParameter
Description Getter for the device-global parameters
Input parameters Name of a device parameter: string
Output parameters Value of the requested parameter: string

getAllParameters

Method namegetAllParameters
Description Getter for the parametersdescribed here.This is an additional getter outside of edit sessions, so it is possible to read device information without login.
Input parameters none
Output parameters Struct (name contains the parameter name, value contains the stringified parameter value)

getSWVersion

Method namegetSWVersion
Description Returns version information of all software components
Input parameters none
Output parameters Struct of strings (e.g. { "IFM_Software": "0.01.07", "Frontend": "01.05.02", ... }) *mandatory keys: "IFM_Software" "Linux" "Main_Application" "Diagnostic_Controller" "Algorithm_Version" "Calibration_Version" "Calibration_Device"

getHWInfo

Method namegetHWInfo
Description Returns hardware information of all components
Input parameters none
Output parameters Struct of strings (e.g. {"MACAddress": "00:02:01:40:06:C9", "Frontend": "#!01_F340_001...", ... }) *mandatory keys:"MACAddress" "Connector" "Diagnose" "Frontend" "Illumination" "Mainboard"

getApplicationList

Method namegetApplicationList
Description Delivers basic information of all applications stored on the device.
Input parameters none
Output parameters Array of structs(Index: int, Id: int, Name: string, Description: string)

requestSession

Method namerequestSession
Description Requests a session object for access to the configuration and for changing the device operating mode.This blocks parallel editing and allows protection of editing with a password.The ID could optionally be defined by the external system but it must be the defined format (32char "hex").If it is called with only one parameter, the device will generate a session ID.The session will start with a default timeout ("SessionTimeout" device parameter), the timeout can be extended by calling "heartbeat".The device will stay in RUN mode.If password is disabled on the device, the value given as password parameter is ignored.
Input parameters 1. Password: string2. Session ID: string (optional)
Output parameters Session ID: string

reboot

Method namereboot
Description Reboot system, parameter defines which mode/system will be booted
Input parameters Type of system that should be booted after shutdown: int0: Productive mode1: Recovery mode
Output parameters Output: string

systemCommand

Method namesystemCommand
Description Performs a generic command on the device.
Input parameters 1. Command: string2. Parameter: string
Output parameters Output: string

14.6.3 Session Object

heartbeat

Method nameheartbeat
Description Extends the life time ofthe edit session.If the given value is outside the range of "SessionTimeout", the saved default timeout will be used.
Input parameters Requested timeoutint interval till next heartbeat, in seconds: int
Output parameters The used timeoutint interval, in seconds: int

cancelSession

Method namecancelSession
Description Explicit stop of this sessionIf an application is still in edit mode, it will implicitly do the same as "stopEditingApplication".
Input parameters none
Output parameters Empty string (compatibility with classic XmlRPC client)

exportConfig

Method nameexportConfig
Description Exports the whole configuration of the sensor device
Input parameters none
Output parameters Configuration as a data BLOB: binary/base64

importConfig

Method nameimportConfig
Description Imports whole configuration with the option to skip specific parts
Input parameters 1. Configuration as a data BLOB: binary/base642. Flags describing which parts should be loaded:0x0001: Includes configuration (Name, Description, Location, ...)0x0002: Includes network configuration (IP, DHCP, ...)0x0010: Includes all application configurations
Output parameters Empty string (compatibility with classic XmlRPC client)

exportApplication

Method nameexportApplication
Description Exports one application config
Input parameters Application index
Output parameters Application config as a data BLOB: binary/base64

importApplication

Method nameimportApplication
Description Imports an applicationconfig and creates a new application with it.The device will put the new application on the first free index.
Input parameters Application configas one data BLOB: binary/base64
Output parameters Index of new application

setOperatingMode

Method namesetOperatingMode
Description Changes the operating mode of the device.Setting this to "edit" will enable the "edit mode object" on RPC.
Input parameters Mode: integer0: Run mode1: Edit mode
Output parameters Empty string (compatibility with classic XmlRPC client)

setTemporaryApplicationParameters

Method namesetTemporaryApplicationParameters
Description Set application parameters in run mode.The parameter names follow a prefix scheme similarly to the object hierarchy within the XMLRPC interface. For exampleparameters of the application object have no prefix,parameters of the imager configuration object have the prefix "imager_001/","parameters of the model with ID 2 have the prefix "model_002/"The parameters "imager_001/ExposureTime", "imager_001/ExposureTimeRatio" and "imager_001/Channel" of the imager configuration are supported. All additional parameters are ignored.If a parameter appears more than once in the parameter list, the behavior is undefined which value is chosen for the parameter. Exposure times are clamped to their allowed range, depending on the exposure mode.The complete set of parameters depending on the exposure mode must be provided. For example"ExposureTime" only for single exposure modes,"ExposureTime" and "ExposureTimeRatio" for double exposure modes.Otherwise the behavior is undefined. "Channel" parameter values outside of the allowed range of the used exposure mode are ignored, and for non-numeric values the behavior is undefined.Example:setTemporaryApplicationParameters [{"imager_001/ExposureTime":"100"}]
Input parameters Parameter list (struct containing key value pairs, consisting of keys: parameter names and values: new parameter values)
Output parameters Empty string (compatibility with classic XmlRPC client)

IFM O3D313 - Session Object - 1

The changes are not persistent and are lost when entering edit mode or turning the device off.

14.6.4 Edit Mode Object

factoryReset

Method namefactoryReset
Description Resets all configurations to factory settings
Input parameters none
Output parameters Empty string (compatibility with classic XmlRPC client)

IFM O3D313 - Edit Mode Object - 1

A factory reset will delete all applications which are saved on the camera.

editApplication

Method nameeditApplication
Description Puts a specified application into the edit status. This will attach an application object to the RPC interface. The name of the object will be application independent. This does not change the "ActiveApplication" parameter.
Input parameters Application index: int
Output parameters Empty string (compatibility with classic XmlRPC client)

stopEditingApplication

Method namestopEditingApplication
Description Tells the device that editing this application was finished.
Input parameters none
Output parameters Empty string (compatibility with classic XmlRPC client)

createApplication

Method namecreateApplication
Description Creates an "empty" application. The embedded side should initialise all needed parameters and structures.
Input parameters none
Output parameters Index of new application: int

copyApplication

Method namecopyApplication
Description Creates a new applicationtion by copying the configuration of another application.The device will generate an ID for the new application and put it on a free index.
Input parameters Index of the application which should be copied: int
Output parameters Index of new application: int

deleteApplication

Method namedeleteApplication
Description Deletes the applicationfrom sensorIf the deleted application was the active one, the sensor will have no active application anymore until the user picks one.
Input parameters Index of applicationint
Output parameters Empty string (compatibility with classic XmlRPC client)

moveApplications

Method namemoveApplications
Description Moves applications toother index.There must be all applications in the new list, none of them duplicated and no index used twice.The ID is a fixed value that stays the same as long as the application stays on the sensor.The index could be changed and is used to address the application via PCIC, XML-RPC and digital IO.
Input parameters Array of structs (Id: int, Index: int)
Output parameters Empty string (compatibility with classic XmlRPC client)

14.6.5 Device Config Object

activatePassword

Method nameactivatePassword
Description Sets a password and activates it for the next edit session.Making this change persistently requires to call "save" on device config.
Input parameters Password: string
Output parameters Empty string (compatibility with classic XmlRPC client)

disablePassword

Method namedisablePassword
Description Disables the passwordprotection.Making this change persistently requires to call "save" on device config.
Input parameters none
Output parameters Empty string (compatibility with classic XmlRPC client)

save

Method namesave
Description Stores current configuration in persistent memory.
Input parameters none
Output parameters Empty string (compatibility with classic XmlRPC client)

Parameters of device config

Methods for parameter access are defined here:

*has limits: parameters with this marker are listed in the reply of getAllParameterLimits method.

Parameter name Data type Description
Name String (utf8) User-defined name of the device (max. 64 characters).
Description String (utf8) User-defined description of the device (max. 500 characters).
ActiveApplication Int*has limitsIndex of active applicationThis applies only to RUN mode:* defines the application active on startup (if static-application switching is disabled)* contains the current active application (could also be changed via PCIC command)* 0 means no application is active
PcicTcpPort Int TCP/IP port for PCIC connections.
PcicProtocolVersion Int*has limitsSub-protocol of PCIC, see specification of PCIC.
IOLogicType Int*has limitsDefines logic type of all digital pins.Allowed values:0: NPN1: PNP
IODebouncing Bool Applies to all inputs
IOExternApplicationSwitchInt*has limitsAllowed values:0: off1: static via I/O2: pulse driven via I/O3: pulse driven via trigger
SessionTimeout Int*has limitsNumber of seconds which a session stays before a call to "heartbeat" method is needed
ServiceReportFailedBuffer Int*has limitsNumber of buffers reserved for failed results
ServiceReportPassedBuffer Int*has limitsNumber of buffers reserved for passed results
ExtrinsicCalibTransX DoubleUnit: millimetresExtrinsic calibration, transition in X direction
ExtrinsicCalibTransY DoubleUnit: millimetresExtrinsic calibration, transition in Y direction
ExtrinsicCalibTransZ DoubleUnit: millimetresExtrinsic calibration, transition in Z direction
ExtrinsicCalibRotX DoubleUnit: degreesExtrinsic calibration, rotation around X axis
ExtrinsicCalibRotY DoubleUnit: degreesExtrinsic calibration, rotation around Y axis
ExtrinsicCalibRotZ DoubleUnit: degreesExtrinsic calibration, rotation around Z axis
IPAddressConfig Int readonly: The GUI requires to know if the device is on a discovery IP address for multiple-use cases. This information was extended to reflect all kinds of IP-address situations.Allowed values:0: Static (IP address explicitly defined inside the device)1: DHCP (using a DHCP server in the network)2: LinkLocal (configured to DHCP, but no server which provided an address)3: Discovery (changed by IP4Discovery mechanism)
PasswordActivated Bool rea only: Is true if the password protection is enabled
OperatingModeInt readonly: Mode of device (RUN, EDIT)see "setOperatingMode" (the setter is outside the edit mode but inside session)
DeviceTypeStringreadonly: Delivers a type description, unique by imager, evaluation logic and device interface.
ArticleNumber Stringreadonly: Official catalogue number
ArticleStatusStringreadonly: Official two-letter status code
UpTimeDoublereadonly: Hours since last reboot
ImageTimestampReferenceIntUnit:microsecondsreadonly: This returns the current timestamp as a reference for the timestamps in the received images.
TemperatureFront1 DoubleUnit: celsiusInvalid temperature, the output is 3276.7
TemperatureFront2 DoubleUnit: celsiusInvalid temperature, the output is 3276.7
Temperaturellu DoubleUnit: celsiusreadonly: Temperature measured in the device.Measured on the illumination board.

Default values of device config parameters

The default values of the device configuration parameters are:

Parameter name Data type Description
Name String (utf8) "New sensor"
Description String (utf8) ""
ActiveApplication Int*has limits0
PcicTcpPort Int 50010
PcicProtocolVersion Int*has limits3
IOLogicType Int*has limits1
IODebouncing Booltrue
IOExternApplicationSwitchInt*has limits0
SessionTimeoutInt*has limits30
ExtrinsicCalibTransXDoubleUnit: millimetres0.0
ExtrinsicCalibTransYDoubleUnit: millimetres0.0
ExtrinsicCalibTransZDoubleUnit: millimetres0.0
ExtrinsicCalibRotXDoubleUnit: degrees0.0
ExtrinsicCalibRotYDoubleUnit: degrees0.0
ExtrinsicCalibRotZDoubleUnit: degrees0.0
IPAddressConfigInt 0
PasswordActivated Boolfalse
OperatingMode Int 0
ServiceReportFailedBufferInt 15
ServiceReportPassedBufferInt 15

For all other device config parameters there are no defined default values because they are either device-dependent (DeviceType, ArticleNumber, ArticleStatus) or volatile (UpTime, ImageTimestampReference).

Minimum and maximum values of device config parameters

The minimum and maximum values of the device configuration parameters are:

Parameter name Minimum value Maximum value
ActiveApplication 0 32
PcicProtocolVersion 1 4
IOLogicType 0 1
IOExternApplicationSwitch 0 3
SessionTimeout 5 300

14.6.6 Device/Network Config Object

saveAndActivateConfig

Method namesaveAndActivateConfig
Description Reinitialise the networkinterface so that it uses the configuration which was set by the other RPC methods.There will be no XMLRPC reply because the network interface is instantly reset.
Input parameters none
Output parameters Empty string (compatibility with classic XmlRPC client)

14.6.7 Application Config Object

save

Method namesave
Description Stores current configuration in persistent memory.This is also be possible if the application is not yet in an "activatable" status.
Input parameters none
Output parameters Empty string (compatibility with classic XmlRPC client)

forceTrigger

Method nameforceTrigger
Description Executes a software trigger of currently active application.
Input parameters none
Output parameters Empty string (compatibility with classic XmlRPC client)

Validate

Method namevalidate
Description Validates the application. This means it checks if the application can be activated.
Input parameters none
Output parameters Array of fault structs (Id: int, Text: string)
Fault scenarios none

Parameters of application

Methods for parameter access are defined here:

Parameter name Data type Description
Name String (utf8) User-definedname of theapplication(max. 64 characters).
Description String (utf8) User-defined descriptiontion of the application(max. 500 characters).
TriggerMode Int*has limitsAllowed values:1: free run2: process interface3: positive edge4: negative edge5: positive and negative edge
PcicTcpResultSchema String It defines which images and result data will be sent.It will also define the order of data elements and additional separators.Contains single-enabling/disabling of Amplitudelmage,IntensityImage, DistanceImage, XImage, YImage,ZImage,Confidencelmage, DiagnosticData ( 14.3.5)
LogicGraph String JSON string describing a flow graph which allows to program the logic between model results and output pins.
Type String Internal use
TemplateInfo String A generic JSON storage,where the GUI could store additional data about the used template GUI (versions and additional parameter decisions).This data should not be used by the device, it should only be stored on the device.

*has limits: parameters with this marker are listed in the reply of getAllParameterLimits method

Default values of application parameters

The default values of application parameters are:

Parameter name Data type Description
Name String (utf8) "new application"
Description String (utf8) '''
TriggerMode Int*has limits1
PcicTcpResultSchema String '''
LogicGraph String '''
Type String "Camera"
TemplateInfo String '''

Minimum and maximum values of application parameters

The minimum and maximum values of application parameters are:

Parameter name Minimum value Maximum value
TriggerMode 1 5

14.6.8 Application/Imager Config Object

changeType

Method namechangeType
Description Changes the type of imager configuration. This changes setting of available parameters and might also change available RPC methods.
Input parameters Type: string
Output parameters Empty string (compatibility with classic XmlRPC client)

availableTypes

Method nameavailableTypes
Description Lists all available imager configuration types.
Input parameters none
Output parameters Array of strings

Parameters of all types of application imager config

Methods for parameter access are defined here:

*has limits: parameters with this marker are listed in the reply of getAllParameterLimits method

Parameter name Data type Description
Type String readonly: Type of imager configurationsee Change Type Method
FrameRate Double*has limitsTarget frame rate in frames per second for free run mode.
ClippingLeft Double*has limitsLower value of clipping area in width
ClippingTopDouble *has limitsLower value of clipping area in height
ClippingRightDouble *has limitsUpper value of clipping area in width
ClippingBottom Double*has limitsUpper value of clipping area in height
ContinuousAutoExposureBoolEnables the continuous adaptation of the integration time during decoding
SpatialFilterType Int*has limitsAllowed values:0: off1: median filter2: mean filter3: bilateral filter
TemporalFilterType Int*has limitsAllowed values:0: off1: temporal mean filter2: adaptive exponential filter
EnableFilterDistanceImage Bool Activates the filter for the distance image
EnableFilterAmplitudeImage Bool Activates the filter for the amplitude image
SymmetryThreshold Double*has limits
MinimumAmplitude Double*has limitsDefines the minimum amplitude used for the validity of a pixel.
TwoFreqMaxLineDistPercentage Double *has limits
ThreeFreqMax2FLineDistPercentage Double *has limits
ThreeFreqMax3FLineDistPercentage Double *has limits
EnableAmplitudeCorrection Bool Enables the correction of the amplitude values
EnableRectificationDistanceImage Bool Enables the rectification of the distance image
EnableRectificationAmplitudeImage Bool Enables the rectification of the normalized amplitude image
ExposureTimeList String readonly: A list of all current exposure times separated by ";"It should contain 3 values in "*_high" types, 2 values in "*_moderate" types and 1 value in "*_low" types. The list is sorted in ascending order.
MaxAllowedLEDFrameRateDouble readonlyMaximum allowed frame rate for current settings, which complies with the LED duty cycle
ResolutionInt *has limitsResolution of output image:0: 176 x 132 (2x2 binning)1: 352 x 264 (no binning), only available for 100k camera
EnableFastFrequencyBoolEnables rolling evaluation in multi-frequency modes (parameter will be ignored in single-frequency modes)
ClippingCuboidJSONObject describing the clipping cuboid
AutoExposureReferenceType Int*has limitsSelect part of the image to be used for continuous autoexposure:0: whole image1: ROIs (→ AutoExposureReferenceROI)2: Reference Point (→ AutoExposureReferencePointX and AutoExposureReferencePointY)
AutoExposureReferenceROI String ROI definition for AutoExposureReferenceType "1"
AutoExposureReferencePointX Int*has limitsX coordinate of reference point used for AutoExposureReferenceType "2"
AutoExposureReferencePointY Int*has limitsY coordinate of reference point used for AutoExposureReferenceType "2"
AutoExposureMaxExposureTime Int*has limitsMaximum exposure time that should be used when continuous autoexposure is activated (→ AutoExposureReferenceType)

Default values of common imager config parameters

The default values of the common imager configuration parameters are:

Parameter name Data type Description
Type String "under5m_low"
FrameRate Double 5.0
ContinuousAutoExposure Boolfalse
SpatialFilterTypeInt0
TemporalFilterTypeInt0
EnableFilterDistanceImageBooltrue
EnableFilterAmplitudeImageBooltrue
SymmetryThresholdDouble 0.4
MinimumAmplitudeDouble 42
TwoFreqMaxLineDistPercentage Double 80
ThreeFreqMax2FLineDistPercentageDouble 80
ThreeFreqMax3FLineDistPercentageDouble 80
EnableAmplitudeCorrectionBooltrue
EnableRectificationDistanceImageBoolfalse
EnableRectificationAmplitudeImageBoolfalse
ResolutionInt0
EnableFastFrequencyBoolfalse
ClippingCuboidString{"XMin": -3.402823e+38, "XMax": 3.402823e+38,"YMin": -3.402823e+38, "YMax": 3.402823e+38,"ZMin": -3.402823e+38, "ZMax": 3.402823e+38}'
AutoExposureReferenceType Int0
AutoExposureReferenceROIString{"ROIs":[{"id":0,"group":0,"type":"Rect","width":130,"height":100,"angle":0,"center_x":88,"center_y":66}]}'
AutoExposureReferencePointX Int88
AutoExposureReferencePointY Int66
AutoExposureMaxExposureTime Int 10000

Minimum and maximum values of common imager config parameters

The minimum and maximum values of the common imager configuration parameters are:

Parameter name Minimum value Maximum value
FrameRate 0.0167 30.0
SpatialFilterType 0 3
TemporalFilterType 0 2
SymmetryThreshold 0
MinimumAmplitude 0
TwoFreqMaxLineDistPercentage 0 100
ThreeFreqMax2FLineDistPercentage 0 100
ThreeFreqMax3FLineDistPercentage 0 100
Resolution0 1
AutoExposureReferenceType0 2
AutoExposureReferencePointX1 352
AutoExposureReferencePointY1 264
AutoExposureMaxExposureTime1010000

Parameters only in "under5m\_low"-type of application imager config

Parameter nameData type Description
ExposureTimeInt*has limitsTime for the exposureThe 2nd exposure time will be calculated based on the first one.
ExposureTimeRatioInt*has limitsRatio of long exposure time to short exposure time.
ChannelInt*has limitsAllowed values:0: non-group use (like channel1 but additional GUI option)1: channel12: channel23: channel3

Default values of the "under5m\_low" mode parameters

Parameter nameData type Default value
ExposureTimeInt 1000
ChannelInt 0

Minimum and maximum values of the "under5m_low" mode parameters

Parameter name Minimum value Maximum value
ExposureTime 1 10000
Channel 0 3

Parameters only in "under5m_moderate"-type of application imager config

Parameter name Data type Description
ExposureTime Int*has limitsTime for the long exposureThe 2nd exposure time will be calculated based on the first one.
Channel Int*has limitsAllowed values:0: non-group use (like channel1)1: channel12: channel23: channel3

Default values of the "under5m_moderate" mode parameters

Parameter name Data type Default value
ExposureTime Int 1000
ExposureTimeRatio Int 40
Channel Int 0

Minimum and maximum values of the "under5m_moderate" mode parameters

Parameter name Minimum value Maximum value
ExposureTime 1 10000
ExposureTimeRatio 2 50
Channel 0 3

Parameters only in "under5m_high"-type of application imager config

Parameter name Data type Description
Channel Int*has limitsAllowed values:0: non-group use (like channel1 but additional GUI option)1: channel12: channel23: channel3

Default values of the "under5m_high" mode parameters

Parameter name Data type Default value
Channel Int 0

Minimum and maximum values of the "under5m_high" mode parameters

Parameter name Minimum value Maximum value
Channel 0 3

Parameters only in "upto30m_low"-type of application imager config

Parameter name Data type Description
ExposureTime Int*has limitsTime for the long exposure
Channel Int*has limitsAllowed values:0: non-group use (like channel1)1: channel12: channel23: channel3

Default values of the "upto30m_low" mode parameters

Parameter name Data type Default value
ExposureTime Int 1000
Channel Int 0

Minimum and maximum values of the "upto30m_low" mode parameters

Parameter name Minimum value Maximum value
ExposureTime 1 10000
Channel 0 3

Parameters only in "upto30m_moderate"-type of application imager config

Parameter name Data type Description
ExposureTime Int*has limitsTime for the long exposureThe 2nd exposure time will be calculated based on the first one.
ExposureTimeRatio Int*has limitsRatio of long exposure time to short exposure time
Channel Int*has limitsAllowed values:0: non-group use (like channel1 but additional GUI option)1: channel12: channel23: channel3

Default values of the "upto30m_moderate" mode parameters

Parameter name Data type Default value
ExposureTime Int 1000
ExposureTimeRatio Int 40
Channel Int 0

Minimum and maximum values of the "upto30m_moderate" mode parameters

Parameter name Minimum value Maximum value
ExposureTime 1 10000
ExposureTimeRatio 2 50
Channel 0 3

Parameters only in "upto30m_high"-type of application imager config

Parameter name Data type Description
Channel Int*has limitsAllowed values:0: non-group use (like channel1 but additional GUI option)1: channel12: channel23: channel3

Default values of the "upto30m_high" mode parameters

Parameter name Data type Default value
Channel Int 0

Minimum and maximum values of the "upto30m_high" mode parameters

Parameter name Minimum value Maximum value
Channel 0 3

14.6.9 Image Settings and Filter Parameters

To set the spatial or temporal filter use the general "setter" method.

Parameters of spatial median, spatial mean and spatial bilateral filter

Parameter name Data type Description
MaskSize Int Allowed values:0: 3x31: 5x5

Parameters of temporal mean filter

Parameter name Data type Description
NumberOfImages Int Limit: 2..25
Table of contents Click a title to access it
Manual assistant
Powered by Anthropic
Waiting for your message
Product information

Brand : IFM

Model : O3D313

Category : Video camera