O3D301 - Video camera IFM - Free user manual and instructions
Find the device manual for free O3D301 IFM in PDF.
Questions des utilisateurs sur O3D301 IFM
0 question sur cet appareil. Repondez a celles que vous connaissez ou posez la votre.
Poser une nouvelle question sur cet appareil
Download the instructions for your Video camera in PDF format for free! Find your manual O3D301 - IFM and take your electronic device back in hand. On this page are published all the documents necessary for the use of your device. O3D301 by IFM.
USER MANUAL O3D301 IFM
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).Caméra 3D
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. 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. Every command which is sent via the XML-RPC interface must end with carriage return <CR> and linefeed <LF>. 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:
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: Main API Session EditMode ApplicationConfig requestSession(...) setOperatingMode(1) editApplication(1) DeviceConfig NetworkConfig ImagerConfig23 Caméra 3D
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. DeviceCong Object Object-URI e.g.: /api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/device/ Device/NetworkCong Object Object URI e.g.: /api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/device/network/ Application Cong Object (editable application) Object URI e.g.: /api/rpc/v1/com.ifm.efector/session_d21c80db5bc1069932fbb9a3bd841d0b/edit/application/ Main API Session EditMode ApplicationConfig cancelSession(...) removes itself from RPC. Session will also be removed, if heartbeat(...) is not called at the right time setOperatingMode(0) will remove EditMode from RPC stopEditApplication() will remove ApplicationConfig from RPCCaméra 3D
Application/Imager Cong 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.25 Caméra 3D
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: <Ticket><length>CR LF <Ticket><content>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. <code> is a placeholder for code) [ ] Optional argument (possible but not required) Command Description <content> It is the command to the device (e.g. trigger the unit). <ticket> 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. <length> It is a character string beginning with the letter 'L' followed by 9 digits. It indicates the length of the following data (<ticket><content>CR LF) in bytes. They are different protocol versions available: Version Input format Output format V1 <Content>CR LF as input V2 <Ticket><Content>CR LF as input V3 <Ticket><Length>CR LF<Ticket><Content>CR LF as input V4 <Content>CR LF <length>CR LF<Content>CR LF 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 number Description 0000 Asynchronous results 0001 Asynchronous error messages / codes 0010 Asynchronous notifications / message codesCaméra 3D
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 image Output format: 16-bit unsigned integer 1 image Distance image Output format: 16-bit integer. Unit: mm. 1 image X image Output format: 16-bit signed integer. Unit: mm. 1 image Y image Output format: 16-bit signed integer. Unit: mm. 1 image Z image Output format: 16-bit signed integer. Unit: mm. 1 image Confidence image Output format: 8-bit unsigned integer 1 image Diagnostic data Stop sequence String "stop" (4 bytes) Ticket signature <CR><LF>
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 Name Description Size [byte] 0x0000 CHUNK_TYPE Defines the type of the chunk. For each distinct chunk an own type is defined.
0x0004 CHUNK_SIZE Size of the whole image chunk in bytes. After this count of bytes the next chunk starts.
0x0008 HEADER_SIZE Number of bytes starting from 0x0000 until PIXEL_DATA.
Offset Name Description Size [byte] 0x001C TIME_STAMP Time stamp in microseconds (deprecated) 4 0x0020 FRAME_COUNT Frame counter 4 0x0024 STATUS_CODE Errors of the device 4 0x0028 TIME_STAMP_SEC Time stamp in seconds 4 0x002C TIME_STAMP_NSEC Time stamp in nanoseconds 4 0x0030 PIXEL_DATA The pixel data in the given type and dimension of the image. Padded to 4-byte boundary.
Available chunk types: Constant Value Description RADIAL_DISTANCE_ IMAGE 100 Each 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_ IMAGE 101 Each 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_IMAGE 103 Each 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_IMAGE 104 Each 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.Caméra 3D
Constant Value Description CARTESIAN_X_ COMPONENT 200 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 integer Unit: millimetres CARTESIAN_Y_ COMPONENT 201 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 integer Unit: millimetres CARTESIAN_Z_ COMPONENT 202 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 integer Unit: 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 formated like this:
Unit for durations: millimetres Unit for framerates: Hz Unit for temperature: °C29 Caméra 3D
Constant Value Description EXTRINSIC_CALIB 400 The 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 extrinisic 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: millimetres Unit 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 600 Snapshot 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 Reserved 9 N/A FORMAT_32F_3 10 Vector with 3x32-bit floating point numberCaméra 3D
14.3.4 Additional Information for CONFIDENCE_IMAGE
Further information for the confidence image: Bit Value Description 0 1 = pixel invalid Pixel invalid The 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 saturated Contributes to pixel validity: yes 2 1 = bad A-B symmetry A-B pixel symmetry The 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 threshold Amplitude limits The amplitude value is below minimum amplitude threshold. Contributes to pixel validity: yes 4+5 Bit 5, bit 4 0 0 = unused 0 1 = shortest exposure time (only used in 3 exposure mode) 1 0 = middle exposure time in 3 exposure mode, short exposure in double exposure mode 1 1 = longest exposure time (always 1 in single exposure mode) Exposure time indicator The 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 data If 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 pixel This pixel has been marked as "suspect" or "defective" and values have been replaced by interpolated values from the surroundings. Contributes to pixel validity: no31 Caméra 3D
14.3.5 Conguration 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:
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 supported Type: 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: objectCaméra 3D
Available values for the type property: Type Description records Defines that this element represents a list of records. If type is set to "records", there must be an "elements" property. The "elements" property defines which data should be written per record. string Data is written as string. Most of the time this will be used with "value" property to write fixed start, end or delimiter text. Text encoding should be UTF8 if there is nothing else specified in format properties. float32 Data is written as floating point number. This has a lot of formatting options (at least with "flexible" layout software) See following section about format properties. uint32 Data is written as integer. This has a lot of formatting options (at least with "flexible" layout software) See following section about format properties. int32 Data is written as integer. This has a lot of formatting options (at least with "flexible" layout software) See following section about format properties. 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). (Binary Large Object) Depending on the desired data format the user may tune his output data with further “format” properties. Common format properties: Format properties Allowed 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 width
1. Illumination temperature like this "33,5___":
2. Illumination temperature as binary (16-bit integer, 1/10 °C):
The following element IDs are available: ID Description Native data type activeapp_id Active application, shows which of the 32 application- configurations is currently active 32-bit unsigned integer all_cartesian_vector_ matrices All Cartesian images (X+Y+Z) concatenated to one package 16-bit signed integer all_unit_vector_matrices Matrix 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 unsigned integer confidence_image Confidence image 8-bit unsigned integer distance_image Radial distance image 16-bit unsigned integer unit: millimetres evaltime Evaluation time for current frame in milliseconds 32-bit unsigned integer extrinsic_calibration Extrinsic calibration, constisting 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_ image Normalized amplitude image 16-bit unsigned integer temp_front1 Invalid temperature, the output is 3276.7 Float32, unit: °C temp_illu Temperature measured in the device while capturing this result Measured on the illumination board Float32, unit: °C x_image y_image z_image Cartesian coordinates for each pixel Each dimension is a separate image 16-bit signed integer35 Caméra 3D
For the main object on devices with statistics feature the following IDs are available: ID Description Native data type statistics_overall_count Allows the user to output the statistics value with the result of the frame, maps to ModelResults: adv_statistics.number_of_frames uint32 statistics_passed_count Allows the user to output the statistics value with the result of the frame, maps to ModelResults: adv_statistics.number_of_passed_frames uint32 statistics_failed_count Allows the user to output the statistics value with the result of the frame, maps to ModelResults: adv_statistics.number_of_failed_frames uint32 statistics_aborted_count Allows the user to output the statistics value with the result of the frame, maps to ModelResults: adv_statistics.number_of_aborted_frames uint32 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.min float32 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.mean float32 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.max float32 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.min float32 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.mean float32 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.max float32 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.min float32 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.mean float32 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.max float32Caméra 3D
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)
Command a<application number> Description Activates the selected application 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 Note <application number> 2 digits for the application number as decimal value
14.4.2 A? Command (occupancy of application list)
Description Requests the occupancy of the application list Type Request Reply <amount><t><number active application><t>
<number><t><number> ? Invalid command length ! Invalid state (e.g. no application active) Note <amount> char string with 3 digits for the amount of applications saved on the device as decimal number <t> tabulator (0x09) <number active application> 2 digits for the active application <number> 2 digits for the application number The active application is repeated within the application list.37 Caméra 3D
14.4.4 C? Command (retrieve current PCIC conguration)
14.4.5 E? Command (request current error state)
14.4.6 G? Command (request device information)
14.4.7 H? Command (return a list of available commands)
14.4.8 I? Command (request last image taken)
04 - X image (distance
05 - Y image (distance
07 - confidence image (status
10 - last result output as
formatted for this connection
14.4.10 O? Command (request state of a ID)
Command O<IO-ID>? Description Requests the state of a specific ID Type Request Reply <IO-ID><IO-state> ! ● Invalid state (e.g. configuration mode) ● Wrong ID ? Invalid command length Note ● <IO-ID> 2 digits for digital output: "01" for IO1 "02" for IO2 "03" for IO3 ● <IO-state> 1 digit for the state: "0" for logic state low "1" for logic state high The camera supports ID 1 and ID 2. The sensor supports ID 1, ID 2 and ID 3.
14.4.11 p Command (turn PCIC output on or o)
Command p<state> Description Turns the PCIC output on or off Type Action Reply * ! <state> contains wrong value ? Invalid command length Note <state> 1 digit 0: deactivates all asynchronous output 1: activates asynchronous result output 2: activates asynchronous error output 3: activates asynchronous error and data output 4: activates asynchronous notifications 5: activates asynchronous notifications and asynchronous result 6: activates asynchronous notifications and asynchronous error output 7: activates all outputs On 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.Caméra 3D
14.4.12 S? Command (request current decoding statistics)
Description Requests current decoding statistics Type Request Reply <number of results><t><number of positive decodings><t><number of false decodings> ! No application active Note <t> tabulator (0x09) <number of results> Images taken since application start. 10 digits decimal value with leading 0s <number of positive decodings> Number of decodings leading to a positive result. 10 digits decimal value with leading 0s <number of false decodings> Number of decodings leading to a negative result. 10 digits decimal value with leading 0s
Description Executes trigger. The result data is send asynchronously Type Action Reply * Trigger was executed, the device captures an image and evaluates the result. ! ● Device is busy with an evaluation ● Device is in an invalid state for this command, e.g. configuration mode ● Device is set to a different trigger source ● No active application43 Caméra 3D
14.4.14 T? Command (execute synchronous trigger)
Description Executes trigger. The result data is send synchronously Type Request Reply Process data within the configured layout Trigger was executed, the device captures an image, evaluates the result and sends the process data. ! ● Device is busy with an evaluation ● 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.16 V? Command (request current protocol version)
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) E.g. "1.2", ".3", "4.5e6", "-7E-8", "-inf", "nan" Structured types (array or structs) can't be put into parameter storage in an general way. Encoding of arrays must specified on specific parameters.
requestSession Method name requestSession 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: string
2. Flags describing which parts should be loaded:
copyApplication Method name copyApplication Description Creates a new application 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 name deleteApplication Description Deletes the application from sensor If the deleted application was the active one, the sensor will have no active application anymore until the user picks one. Input parameters Index of application: int Output parameters Empty string (compatibility with classic XmlRPC client) moveApplications Method name moveApplications Description Moves applications to other 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)
- 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 limits Sub-protocol of PCIC, see specification of PCIC. IOLogicType Int *has limits Defines logic type of all digital pins. Allowed values: 0: NPN 1: PNP IODebouncing Bool Applies to all inputs IOExternApplicationSwitch Int *has limits Allowed values: 0: off 1: static via I/O 2: pulse driven via I/O 3: pulse driven via triggerCaméra 3D
Parameter name Data type Description SessionTimeout Int *has limits Number of seconds which a session stays before a call to "heartbeat" method is needed ServiceReportFailedBuffer Int *has limits Number of buffers reserved for failed results ServiceReportPassedBuffer Int *has limits Number of buffers reserved for passed results ExtrinsicCalibTransX Double Unit: millimetres Extrinsic calibration, transition in X direction ExtrinsicCalibTransY Double Unit: millimetres Extrinsic calibration, transition in Y direction ExtrinsicCalibTransZ Double Unit: millimetres Extrinsic calibration, transition in Z direction ExtrinsicCalibRotX Double Unit: degrees Extrinsic calibration, rotation around X axis ExtrinsicCalibRotY Double Unit: degrees Extrinsic calibration, rotation around Y axis ExtrinsicCalibRotZ Double Unit: degrees Extrinsic 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 readonly: Is true if the password protection is enabled OperatingMode Int readonly: Mode of device (RUN, EDIT) see "setOperatingMode" (the setter is outside the edit mode but inside session) DeviceType String readonly: Delivers a type description, unique by imager, evaluation logic and device interface. ArticleNumber String readonly: Official catalogue number ArticleStatus String readonly: Official two-letter status code UpTime Double readonly: Hours since last reboot ImageTimestampReference Int Unit: microseconds readonly: This returns the current timestamp as a reference for the timestamps in the received images. TemperatureFront1 Double Unit: celsius Invalid temperature, the output is 3276.755 Caméra 3D
saveAndActivateCong Method name saveAndActivateConfig Description Reinitialise the network interface 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)
Parameters of application Methods for parameter access are defined here: Parameter name Data type Description Name String (utf8) User-defined name of the application (max. 64 characters). Description String (utf8) User-defined description of the application (max. 500 characters). TriggerMode Int *has limits Allowed values: 1: free run 2: process interface 3: positive edge 4: negative edge 5: 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 AmplitudeImage, IntensityImage, DistanceImage, XImage, YImage, ZImage, ConfidenceImage, 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 limits
Parameter name Data type Description SpatialFilterType Int *has limits Allowed values: 0: off 1: median filter 2: mean filter 3: bilateral filter TemporalFilterType Int *has limits Allowed values: 0: off 1: temporal mean filter 2: 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 limits Defines 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. MaxAllowedLEDFrameRate Double readonly Maximum allowed frame rate for current settings, which complies with the LED duty cycle Resolution Int *has limits Resolution of output image: 0: 176 x 132 (2x2 binning) 1: 352 x 264 (no binning), only available for 100k camera EnableFastFrequency Bool Enables rolling evaluation in multi-frequency modes (parameter will be ignored in single-frequency modes) ClippingCuboid JSON Object describing the clipping cuboidCaméra 3D
EasyManual