diff --git a/latest/.doctrees/cli_link.doctree b/latest/.doctrees/cli_link.doctree index f6e7e893..50a52e50 100644 Binary files a/latest/.doctrees/cli_link.doctree and b/latest/.doctrees/cli_link.doctree differ diff --git a/latest/.doctrees/content/README.doctree b/latest/.doctrees/content/README.doctree index d92feb94..69594137 100644 Binary files a/latest/.doctrees/content/README.doctree and b/latest/.doctrees/content/README.doctree differ diff --git a/latest/.doctrees/examples/o3r/2d_data/2d_data.doctree b/latest/.doctrees/content/basic_lib_usage/2d_data/2d_data.doctree similarity index 58% rename from latest/.doctrees/examples/o3r/2d_data/2d_data.doctree rename to latest/.doctrees/content/basic_lib_usage/2d_data/2d_data.doctree index 8d2ed00e..8b5ffe29 100644 Binary files a/latest/.doctrees/examples/o3r/2d_data/2d_data.doctree and b/latest/.doctrees/content/basic_lib_usage/2d_data/2d_data.doctree differ diff --git a/latest/.doctrees/examples/o3r/configuration/configuration.doctree b/latest/.doctrees/content/basic_lib_usage/configuration/configuration.doctree similarity index 50% rename from latest/.doctrees/examples/o3r/configuration/configuration.doctree rename to latest/.doctrees/content/basic_lib_usage/configuration/configuration.doctree index 302d999a..36873238 100644 Binary files a/latest/.doctrees/examples/o3r/configuration/configuration.doctree and b/latest/.doctrees/content/basic_lib_usage/configuration/configuration.doctree differ diff --git a/latest/.doctrees/content/basic_lib_usage/deserialize/deserialize.doctree b/latest/.doctrees/content/basic_lib_usage/deserialize/deserialize.doctree new file mode 100644 index 00000000..7330edd8 Binary files /dev/null and b/latest/.doctrees/content/basic_lib_usage/deserialize/deserialize.doctree differ diff --git a/latest/.doctrees/examples/o3r/getting_data/getting_data.doctree b/latest/.doctrees/content/basic_lib_usage/getting_data/getting_data.doctree similarity index 73% rename from latest/.doctrees/examples/o3r/getting_data/getting_data.doctree rename to latest/.doctrees/content/basic_lib_usage/getting_data/getting_data.doctree index e319e374..d072a830 100644 Binary files a/latest/.doctrees/examples/o3r/getting_data/getting_data.doctree and b/latest/.doctrees/content/basic_lib_usage/getting_data/getting_data.doctree differ diff --git a/latest/.doctrees/content/basic_lib_usage/index.doctree b/latest/.doctrees/content/basic_lib_usage/index.doctree new file mode 100644 index 00000000..40c57043 Binary files /dev/null and b/latest/.doctrees/content/basic_lib_usage/index.doctree differ diff --git a/latest/.doctrees/examples/logging/logging.doctree b/latest/.doctrees/content/basic_lib_usage/logging/logging.doctree similarity index 96% rename from latest/.doctrees/examples/logging/logging.doctree rename to latest/.doctrees/content/basic_lib_usage/logging/logging.doctree index d3fc6130..4c9b7369 100644 Binary files a/latest/.doctrees/examples/logging/logging.doctree and b/latest/.doctrees/content/basic_lib_usage/logging/logging.doctree differ diff --git a/latest/.doctrees/content/basic_lib_usage/viewer/README.doctree b/latest/.doctrees/content/basic_lib_usage/viewer/README.doctree new file mode 100644 index 00000000..3f47e39a Binary files /dev/null and b/latest/.doctrees/content/basic_lib_usage/viewer/README.doctree differ diff --git a/latest/.doctrees/content/cmdline_configuring.doctree b/latest/.doctrees/content/cmdline_configuring.doctree index 903e2b9b..595bbbfd 100644 Binary files a/latest/.doctrees/content/cmdline_configuring.doctree and b/latest/.doctrees/content/cmdline_configuring.doctree differ diff --git a/latest/.doctrees/examples/oem/ifm3d-on-VPU/README.doctree b/latest/.doctrees/content/examples_list.doctree similarity index 66% rename from latest/.doctrees/examples/oem/ifm3d-on-VPU/README.doctree rename to latest/.doctrees/content/examples_list.doctree index 5d39a951..428a40b3 100644 Binary files a/latest/.doctrees/examples/oem/ifm3d-on-VPU/README.doctree and b/latest/.doctrees/content/examples_list.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/CHANGELOG.doctree b/latest/.doctrees/content/ifm3d-examples/CHANGELOG.doctree new file mode 100644 index 00000000..d967531a Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/CHANGELOG.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/README.doctree b/latest/.doctrees/content/ifm3d-examples/README.doctree new file mode 100644 index 00000000..aa5dc100 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/README.doctree b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/README.doctree new file mode 100644 index 00000000..e984b4dc Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/doc/ex-multi_camera_grabber.doctree b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/doc/ex-multi_camera_grabber.doctree new file mode 100644 index 00000000..9c759e8f Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/doc/ex-multi_camera_grabber.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/image_rectification/python/README.doctree b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/image_rectification/python/README.doctree new file mode 100644 index 00000000..907f4f0c Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/image_rectification/python/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/intrinsics_to_cartesian/python/README.doctree b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/intrinsics_to_cartesian/python/README.doctree new file mode 100644 index 00000000..901675be Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/intrinsics_to_cartesian/python/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/README.doctree b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/README.doctree new file mode 100644 index 00000000..9b26924c Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/ppm-io-master/README.doctree b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/ppm-io-master/README.doctree new file mode 100644 index 00000000..66abdac8 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/ppm-io-master/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/README.doctree new file mode 100644 index 00000000..9b4d210b Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/README.doctree new file mode 100644 index 00000000..048a8514 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/README.doctree differ diff --git a/latest/.doctrees/examples/o3r/ifm3d_playground/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/core/ifm3d_playground/README.doctree similarity index 90% rename from latest/.doctrees/examples/o3r/ifm3d_playground/README.doctree rename to latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/core/ifm3d_playground/README.doctree index 445c078d..073497a8 100644 Binary files a/latest/.doctrees/examples/o3r/ifm3d_playground/README.doctree and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/core/ifm3d_playground/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/ods/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/ods/README.doctree new file mode 100644 index 00000000..9daf42a1 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/cpp/ods/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/README.doctree new file mode 100644 index 00000000..0cf25709 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-base/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-base/README.doctree new file mode 100644 index 00000000..3cd5c604 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-base/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/README.doctree new file mode 100644 index 00000000..0c52ea62 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/Readme.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/Readme.doctree new file mode 100644 index 00000000..2710c0ef Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/Readme.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/README.doctree new file mode 100644 index 00000000..104efa21 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/README.doctree new file mode 100644 index 00000000..214fdf30 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/README.doctree differ diff --git a/latest/.doctrees/examples/o3r/viewer/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/viewer.doctree similarity index 77% rename from latest/.doctrees/examples/o3r/viewer/README.doctree rename to latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/viewer.doctree index ef1ad33b..7edb8e33 100644 Binary files a/latest/.doctrees/examples/o3r/viewer/README.doctree and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/viewer.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/ods/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/ods/README.doctree new file mode 100644 index 00000000..4afaa7fe Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/ods/README.doctree differ diff --git a/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/README.doctree new file mode 100644 index 00000000..c2fb88c6 Binary files /dev/null and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/README.doctree differ diff --git a/latest/.doctrees/examples/o3r/oem/ssh/README.doctree b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/extrinsic_calibration/static_camera_calibration/README.doctree similarity index 64% rename from latest/.doctrees/examples/o3r/oem/ssh/README.doctree rename to latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/extrinsic_calibration/static_camera_calibration/README.doctree index fd6fa188..87e1310e 100644 Binary files a/latest/.doctrees/examples/o3r/oem/ssh/README.doctree and b/latest/.doctrees/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/extrinsic_calibration/static_camera_calibration/README.doctree differ diff --git a/latest/.doctrees/content/installation_instructions/install_from_source_windows.doctree b/latest/.doctrees/content/installation_instructions/install_from_source_windows.doctree index 4cec67f7..9bbc1734 100644 Binary files a/latest/.doctrees/content/installation_instructions/install_from_source_windows.doctree and b/latest/.doctrees/content/installation_instructions/install_from_source_windows.doctree differ diff --git a/latest/.doctrees/content/migration_guide/v1_3_0.doctree b/latest/.doctrees/content/migration_guide/v1_3_0.doctree index d5fb2534..cbb4ffe7 100644 Binary files a/latest/.doctrees/content/migration_guide/v1_3_0.doctree and b/latest/.doctrees/content/migration_guide/v1_3_0.doctree differ diff --git a/latest/.doctrees/content/stlimage.doctree b/latest/.doctrees/content/stlimage.doctree index 2324bf65..216d64d3 100644 Binary files a/latest/.doctrees/content/stlimage.doctree and b/latest/.doctrees/content/stlimage.doctree differ diff --git a/latest/.doctrees/environment.pickle b/latest/.doctrees/environment.pickle index daaa9fd2..d9c67add 100644 Binary files a/latest/.doctrees/environment.pickle and b/latest/.doctrees/environment.pickle differ diff --git a/latest/.doctrees/examples/examples_list.doctree b/latest/.doctrees/examples/examples_list.doctree deleted file mode 100644 index a8b27169..00000000 Binary files a/latest/.doctrees/examples/examples_list.doctree and /dev/null differ diff --git a/latest/.doctrees/examples/index.doctree b/latest/.doctrees/examples/index.doctree deleted file mode 100644 index 612a7801..00000000 Binary files a/latest/.doctrees/examples/index.doctree and /dev/null differ diff --git a/latest/.doctrees/examples/o3r/deserialize/deserialize.doctree b/latest/.doctrees/examples/o3r/deserialize/deserialize.doctree deleted file mode 100644 index 3f3ad657..00000000 Binary files a/latest/.doctrees/examples/o3r/deserialize/deserialize.doctree and /dev/null differ diff --git a/latest/.doctrees/examples/o3r/multi_head/multi_head.doctree b/latest/.doctrees/examples/o3r/multi_head/multi_head.doctree deleted file mode 100644 index c92867fb..00000000 Binary files a/latest/.doctrees/examples/o3r/multi_head/multi_head.doctree and /dev/null differ diff --git a/latest/.doctrees/index.doctree b/latest/.doctrees/index.doctree index cc8463b3..f1dc115e 100644 Binary files a/latest/.doctrees/index.doctree and b/latest/.doctrees/index.doctree differ diff --git a/latest/_autosummary/ifm3dpy.Awaitable.html b/latest/_autosummary/ifm3dpy.Awaitable.html index ba74dca3..56f978e3 100644 --- a/latest/_autosummary/ifm3dpy.Awaitable.html +++ b/latest/_autosummary/ifm3dpy.Awaitable.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.FrameAwaitable.html b/latest/_autosummary/ifm3dpy.FrameAwaitable.html index d0834522..823858df 100644 --- a/latest/_autosummary/ifm3dpy.FrameAwaitable.html +++ b/latest/_autosummary/ifm3dpy.FrameAwaitable.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.Calibration.html b/latest/_autosummary/ifm3dpy.deserialize.Calibration.html index 02c8ffca..4a1b56f3 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.Calibration.html +++ b/latest/_autosummary/ifm3dpy.deserialize.Calibration.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.ExtrinsicOpticToUser.html b/latest/_autosummary/ifm3dpy.deserialize.ExtrinsicOpticToUser.html index 8743b6c9..8ebafa21 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.ExtrinsicOpticToUser.html +++ b/latest/_autosummary/ifm3dpy.deserialize.ExtrinsicOpticToUser.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.O3DExposureTimes.html b/latest/_autosummary/ifm3dpy.deserialize.O3DExposureTimes.html index 0f0c958a..ba884437 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.O3DExposureTimes.html +++ b/latest/_autosummary/ifm3dpy.deserialize.O3DExposureTimes.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.O3DExtrinsicCalibration.html b/latest/_autosummary/ifm3dpy.deserialize.O3DExtrinsicCalibration.html index 7dfaa19b..a99e21a6 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.O3DExtrinsicCalibration.html +++ b/latest/_autosummary/ifm3dpy.deserialize.O3DExtrinsicCalibration.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.O3DILLUTemperature.html b/latest/_autosummary/ifm3dpy.deserialize.O3DILLUTemperature.html index ce6d0f22..56f3023a 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.O3DILLUTemperature.html +++ b/latest/_autosummary/ifm3dpy.deserialize.O3DILLUTemperature.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.O3DInstrinsicCalibration.html b/latest/_autosummary/ifm3dpy.deserialize.O3DInstrinsicCalibration.html index 8ebe4600..6638f53c 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.O3DInstrinsicCalibration.html +++ b/latest/_autosummary/ifm3dpy.deserialize.O3DInstrinsicCalibration.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.O3DInverseInstrinsicCalibration.html b/latest/_autosummary/ifm3dpy.deserialize.O3DInverseInstrinsicCalibration.html index 2109b456..0fa2543c 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.O3DInverseInstrinsicCalibration.html +++ b/latest/_autosummary/ifm3dpy.deserialize.O3DInverseInstrinsicCalibration.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.ODSInfoV1.html b/latest/_autosummary/ifm3dpy.deserialize.ODSInfoV1.html index 57d64b2a..895579b5 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.ODSInfoV1.html +++ b/latest/_autosummary/ifm3dpy.deserialize.ODSInfoV1.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.ODSOccupancyGridV1.html b/latest/_autosummary/ifm3dpy.deserialize.ODSOccupancyGridV1.html index c47349fa..cc55429c 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.ODSOccupancyGridV1.html +++ b/latest/_autosummary/ifm3dpy.deserialize.ODSOccupancyGridV1.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.RGBInfoV1.html b/latest/_autosummary/ifm3dpy.deserialize.RGBInfoV1.html index 6e0606f1..fe6d5de9 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.RGBInfoV1.html +++ b/latest/_autosummary/ifm3dpy.deserialize.RGBInfoV1.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.TOFInfoV3.html b/latest/_autosummary/ifm3dpy.deserialize.TOFInfoV3.html index b0e26916..7e5f96f1 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.TOFInfoV3.html +++ b/latest/_autosummary/ifm3dpy.deserialize.TOFInfoV3.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.TOFInfoV4.html b/latest/_autosummary/ifm3dpy.deserialize.TOFInfoV4.html index 57ebfc03..441f18fe 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.TOFInfoV4.html +++ b/latest/_autosummary/ifm3dpy.deserialize.TOFInfoV4.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.deserialize.html b/latest/_autosummary/ifm3dpy.deserialize.html index 3534d792..f90b52c2 100644 --- a/latest/_autosummary/ifm3dpy.deserialize.html +++ b/latest/_autosummary/ifm3dpy.deserialize.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.Device.html b/latest/_autosummary/ifm3dpy.device.Device.html index d3882609..f7ca7220 100644 --- a/latest/_autosummary/ifm3dpy.device.Device.html +++ b/latest/_autosummary/ifm3dpy.device.Device.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.Error.html b/latest/_autosummary/ifm3dpy.device.Error.html index 36356aa4..bd5be271 100644 --- a/latest/_autosummary/ifm3dpy.device.Error.html +++ b/latest/_autosummary/ifm3dpy.device.Error.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.LegacyDevice.html b/latest/_autosummary/ifm3dpy.device.LegacyDevice.html index bc983a5c..2de7e67a 100644 --- a/latest/_autosummary/ifm3dpy.device.LegacyDevice.html +++ b/latest/_autosummary/ifm3dpy.device.LegacyDevice.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.O3D.html b/latest/_autosummary/ifm3dpy.device.O3D.html index 3ec93ef4..095f522d 100644 --- a/latest/_autosummary/ifm3dpy.device.O3D.html +++ b/latest/_autosummary/ifm3dpy.device.O3D.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.O3R.html b/latest/_autosummary/ifm3dpy.device.O3R.html index 545b4b65..378f62ea 100644 --- a/latest/_autosummary/ifm3dpy.device.O3R.html +++ b/latest/_autosummary/ifm3dpy.device.O3R.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.O3X.html b/latest/_autosummary/ifm3dpy.device.O3X.html index 925a2e58..f815e11f 100644 --- a/latest/_autosummary/ifm3dpy.device.O3X.html +++ b/latest/_autosummary/ifm3dpy.device.O3X.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.PortInfo.html b/latest/_autosummary/ifm3dpy.device.PortInfo.html index 1b49a57f..fcf7ffd6 100644 --- a/latest/_autosummary/ifm3dpy.device.PortInfo.html +++ b/latest/_autosummary/ifm3dpy.device.PortInfo.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.SemVer.html b/latest/_autosummary/ifm3dpy.device.SemVer.html index c7768b54..d10871f6 100644 --- a/latest/_autosummary/ifm3dpy.device.SemVer.html +++ b/latest/_autosummary/ifm3dpy.device.SemVer.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.device.html b/latest/_autosummary/ifm3dpy.device.html index 4ddfc63a..180c226b 100644 --- a/latest/_autosummary/ifm3dpy.device.html +++ b/latest/_autosummary/ifm3dpy.device.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.framegrabber.Frame.html b/latest/_autosummary/ifm3dpy.framegrabber.Frame.html index d1ec645d..00bea1f3 100644 --- a/latest/_autosummary/ifm3dpy.framegrabber.Frame.html +++ b/latest/_autosummary/ifm3dpy.framegrabber.Frame.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.framegrabber.FrameGrabber.html b/latest/_autosummary/ifm3dpy.framegrabber.FrameGrabber.html index cbad476f..647a3159 100644 --- a/latest/_autosummary/ifm3dpy.framegrabber.FrameGrabber.html +++ b/latest/_autosummary/ifm3dpy.framegrabber.FrameGrabber.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.framegrabber.buffer_id.html b/latest/_autosummary/ifm3dpy.framegrabber.buffer_id.html index 6defee1b..1408edcf 100644 --- a/latest/_autosummary/ifm3dpy.framegrabber.buffer_id.html +++ b/latest/_autosummary/ifm3dpy.framegrabber.buffer_id.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.framegrabber.html b/latest/_autosummary/ifm3dpy.framegrabber.html index 8ee280c3..0309e1ae 100644 --- a/latest/_autosummary/ifm3dpy.framegrabber.html +++ b/latest/_autosummary/ifm3dpy.framegrabber.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.html b/latest/_autosummary/ifm3dpy.html index 2ef86ac8..bb509dfd 100644 --- a/latest/_autosummary/ifm3dpy.html +++ b/latest/_autosummary/ifm3dpy.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.logging.LogEntry.html b/latest/_autosummary/ifm3dpy.logging.LogEntry.html index 55eac068..1beefbd5 100644 --- a/latest/_autosummary/ifm3dpy.logging.LogEntry.html +++ b/latest/_autosummary/ifm3dpy.logging.LogEntry.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.logging.LogFormatterJson.html b/latest/_autosummary/ifm3dpy.logging.LogFormatterJson.html index 28ff6e7d..3a7ac515 100644 --- a/latest/_autosummary/ifm3dpy.logging.LogFormatterJson.html +++ b/latest/_autosummary/ifm3dpy.logging.LogFormatterJson.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.logging.LogFormatterText.html b/latest/_autosummary/ifm3dpy.logging.LogFormatterText.html index d998b363..67e1dd28 100644 --- a/latest/_autosummary/ifm3dpy.logging.LogFormatterText.html +++ b/latest/_autosummary/ifm3dpy.logging.LogFormatterText.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.logging.LogLevel.html b/latest/_autosummary/ifm3dpy.logging.LogLevel.html index 22996a96..6fb14b42 100644 --- a/latest/_autosummary/ifm3dpy.logging.LogLevel.html +++ b/latest/_autosummary/ifm3dpy.logging.LogLevel.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.logging.LogWriter.html b/latest/_autosummary/ifm3dpy.logging.LogWriter.html index 1e9e9d7d..49bb3214 100644 --- a/latest/_autosummary/ifm3dpy.logging.LogWriter.html +++ b/latest/_autosummary/ifm3dpy.logging.LogWriter.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.logging.Logger.html b/latest/_autosummary/ifm3dpy.logging.Logger.html index 29356ea7..d7c89634 100644 --- a/latest/_autosummary/ifm3dpy.logging.Logger.html +++ b/latest/_autosummary/ifm3dpy.logging.Logger.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.logging.html b/latest/_autosummary/ifm3dpy.logging.html index 21c4b260..484283f9 100644 --- a/latest/_autosummary/ifm3dpy.logging.html +++ b/latest/_autosummary/ifm3dpy.logging.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.run.html b/latest/_autosummary/ifm3dpy.run.html index c1b9d307..881d38c5 100644 --- a/latest/_autosummary/ifm3dpy.run.html +++ b/latest/_autosummary/ifm3dpy.run.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.swupdater.SWUpdater.html b/latest/_autosummary/ifm3dpy.swupdater.SWUpdater.html index 895050d9..9b51c1c8 100644 --- a/latest/_autosummary/ifm3dpy.swupdater.SWUpdater.html +++ b/latest/_autosummary/ifm3dpy.swupdater.SWUpdater.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_autosummary/ifm3dpy.swupdater.html b/latest/_autosummary/ifm3dpy.swupdater.html index a362d567..25928ccc 100644 --- a/latest/_autosummary/ifm3dpy.swupdater.html +++ b/latest/_autosummary/ifm3dpy.swupdater.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/_downloads/178240cfa3d90132ff57517a72d31d46/ex-pcicclient_set_io.cpp b/latest/_downloads/178240cfa3d90132ff57517a72d31d46/ex-pcicclient_set_io.cpp new file mode 100644 index 00000000..37384f42 --- /dev/null +++ b/latest/_downloads/178240cfa3d90132ff57517a72d31d46/ex-pcicclient_set_io.cpp @@ -0,0 +1,94 @@ +// -*- c++ -*- +/* + * Copyright (C) 2017 Kuhn & Völkel GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// ex-pcicclient_set_io.cpp +// +// Shows how to use the PCICClient module to control the IOs state +// of the camera. +// + +#include +#include +#include +#include +#include + + +// Camera configuration string: +// * Create and activate application with index 1 +// * Set LogicGraph to control IOs state via PCIC interface +const char *config = R"CONFIG( +{ + "ifm3d": + { + "Device": + { + "ActiveApplication": "1" + }, + "Apps": + [ + { + "Name": "PCICClient Example", + "Description": "Manipulates digital IOs", + "Index" : "1", + "LogicGraph": "{\n \"IOMap\": {\n \"OUT1\": \"PCIC_OUT\",\n \"OUT2\": \"PCIC_OUT\"\n },\n \"blocks\": {\n \"B00001\": {\n \"pos\": {\n \"x\": 262,\n \"y\": 132\n },\n \"properties\": {\n },\n \"type\": \"PIN_EVENT_PCIC_O_CMD\"\n },\n \"B00003\": {\n \"pos\": {\n \"x\": 600,\n \"y\": 75\n },\n \"properties\": {\n \"pulse_duration\": 0\n },\n \"type\": \"DIGITAL_OUT1\"\n },\n \"B00005\": {\n \"pos\": {\n \"x\": 600,\n \"y\": 200\n },\n \"properties\": {\n \"pulse_duration\": 0\n },\n \"type\": \"DIGITAL_OUT2\"\n }\n },\n \"connectors\": {\n \"C00000\": {\n \"dst\": \"B00003\",\n \"dstEP\": 0,\n \"src\": \"B00001\",\n \"srcEP\": 0\n },\n \"C00001\": {\n \"dst\": \"B00005\",\n \"dstEP\": 0,\n \"src\": \"B00001\",\n \"srcEP\": 0\n }\n }\n}\n" + } + ] + } +} +)CONFIG"; + +int main(int argc, char** argv) +{ + // Create camera + ifm3d::Camera::Ptr cam = std::make_shared(); + + // Configure camera to allow user defined IO state + cam->FromJSONStr(config); + + // Create pcic interface + ifm3d::PCICClient::Ptr pcic = std::make_shared(cam); + + // Start setting IOs (and led flashing) + pcic->Call("o010"); // OUT1 off + pcic->Call("o020"); // OUT2 off + for(int i = 0; i < 10; ++i) + { + std::cout << "Pass " << (i+1) << "/" << 10 << std::endl; + + pcic->Call("o011"); // OUT1 on + std::cout << "State: " << pcic->Call("O01?") << " " << pcic->Call("O02?") << std::endl; + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + pcic->Call("o021"); // OUT2 on + std::cout << "State: " << pcic->Call("O01?") << " " << pcic->Call("O02?") << std::endl; + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + pcic->Call("o010"); // OUT1 off + std::cout << "State: " << pcic->Call("O01?") << " " << pcic->Call("O02?") << std::endl; + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + pcic->Call("o020"); // OUT2 off + std::cout << "State: " << pcic->Call("O01?") << " " << pcic->Call("O02?") << std::endl; + std::this_thread::sleep_for(std::chrono::milliseconds(100)); + + std::cout << std::endl; + } + + return 0; +} diff --git a/latest/_downloads/1c4abee94807a36434d74b9abd9251c2/ex-multi_camera_grabber.cpp b/latest/_downloads/1c4abee94807a36434d74b9abd9251c2/ex-multi_camera_grabber.cpp new file mode 100644 index 00000000..947ef5d5 --- /dev/null +++ b/latest/_downloads/1c4abee94807a36434d74b9abd9251c2/ex-multi_camera_grabber.cpp @@ -0,0 +1,120 @@ +/* + * Copyright (C) 2018 ifm electronics, gmbh + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// ex-multi_camera_grabber.cpp +// +// Capture frames from multiple ifm 3D cameras which are configured to be triggered through software, +// and display the time stamp of the frame received. +// also measues the time taken to receive the set of frames. +// +// Prerequisites: +// *) Each ifm 3D camera should be configured to use "Process Interface" for trigger. +// *) You Should be able to ping each of the 3D camera from the PC on which this code executes. +// *) Incase your network uses a proxy, you will need to configure your system to bypass the proxy for the used IP's. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace +{ + //CHANGE IP addreses to those of camera's avaialible!!!! + const auto CAMERA0 = "192.168.0.70"; + const auto CAMERA1 = "192.168.0.71"; + const auto CAMERA2 = "192.168.0.72"; + + //Add the IP of cameras to be used. + const std::array camera_ips = {CAMERA0, CAMERA1, CAMERA2}; + + //Utility function to format the timestamp + std::string formatTimestamp(ifm3d::TimePointT timestamp) + { + std::time_t time = std::chrono::system_clock::to_time_t( + std::chrono::time_point_cast( + timestamp)); + + std::chrono::milliseconds milli = std::chrono::duration_cast( + timestamp.time_since_epoch() - std::chrono::duration_cast( + timestamp.time_since_epoch())); + + std::ostringstream s; + s << std::put_time(std::localtime(&time), "%Y-%m-%d %H:%M:%S") + << ":" << std::setw(3) << std::setfill('0') << milli.count(); + + return s.str(); + } +} + + +int main(int argc, const char **argv) +{ + std::chrono::system_clock::time_point start, end; + + //vectors for the objects to be used. + std::vector cameras; + std::vector frame_grabbers; + std::vector image_buffers; + + // Create ifm3d objects of Camera, ImageBuffer and FrameGrabber for each of the camera devices. + for(auto camera_ip:camera_ips) + { + auto cam = ifm3d::Camera::MakeShared(camera_ip); + cameras.push_back(cam); + image_buffers.push_back(std::make_shared()); + frame_grabbers.push_back(std::make_shared(cam)); + + } + + int count = 0; + while (count++ < 10) + { + //for each of the camera device, software trigger is sent and wait for frame is done sequentially. + start = std::chrono::system_clock::now(); + for(int index = 0; indexSWTrigger(); + if (!frame_grabber->WaitForFrame(image_buffer.get(), 1000)) + { + std::cerr << "Timeout waiting for camera("<TimeStamp(); + std::cout << "got camera("< duration_ms = (end - start); + std::cout << "total get time in ms: " << duration_ms.count()<< std::endl; + } + + return 0; +} diff --git a/latest/_downloads/4772efb72001809b0e37f615d891d7f5/time_sync.cpp b/latest/_downloads/4772efb72001809b0e37f615d891d7f5/time_sync.cpp deleted file mode 100644 index fb6d6151..00000000 --- a/latest/_downloads/4772efb72001809b0e37f615d891d7f5/time_sync.cpp +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright 2021-present ifm electronic, gmbh - * SPDX-License-Identifier: Apache-2.0 - * - * This example mimics a multi-camera synchronization with no trigger - * functionality: two camera heads are switched to "RUN" mode - * simultaneously. Frames are grabbed from each head in parallel. - * The timestamps are used to calculate and display the time delay - * between the reception of the frames from the two heads. - */ -#include -#include -#include -#include -#include -#include - -#include -#include - -std::mutex mutex; - -std::string formatTimestamp(ifm3d::TimePointT timestamp) -{ - /** - * This function formats the timestamps for proper display - * a.k.a converts to local time - */ - using namespace std::chrono; - std::time_t time = std::chrono::system_clock::to_time_t( - std::chrono::time_point_cast( - timestamp)); - - milliseconds milli = duration_cast( - timestamp.time_since_epoch() - duration_cast( - timestamp.time_since_epoch())); - - std::ostringstream s; - s << std::put_time(std::localtime(&time), "%Y-%m-%d %H:%M:%S") - << ":" << std::setw(3) << std::setfill('0') << milli.count(); - - return s.str(); -} - -int getFrameTime(ifm3d::FrameGrabber::Ptr fg, ifm3d::TimePointT &t, int &ready){ - /** - * Grab frame from a camera head and update global variable - * with the timestamp of the frame. - * When the frame has been captured, switches the global variable ready - * to release the display thread. - */ - int i = 0; - while (true) { - auto frame = fg->WaitForFrame(); - if (frame.wait_for(std::chrono::milliseconds(1000)) != std::future_status::ready) - { - std::cerr << "Timeout waiting for camera!" << std::endl; - return -1; - } - else { - i+=1; - if (i == 10){ - std::lock_guard guard(mutex); - t = frame.get()->TimeStamps().front(); - i = 0; - ready = 1; - } - } - } - return 1; -} - -int main(){ - ////////////////////////// - // Declare the objects: - ////////////////////////// - // Declare the device object (one object only, corresponding to the VPU) - auto o3r = std::make_shared(); - ifm3d::json conf = o3r->Get(); - // Declare the FrameGrabber and ImageBuffer objects. - // One FrameGrabber per camera head (define the port number). - auto fg0 = std::make_shared(o3r, 50012); - auto fg1 = std::make_shared(o3r, 50013); - - //Start the framegrabbber with empty schema - fg0->Start({}); - fg1->Start({}); - - std::thread thread0; - std::thread thread1; - ////////////////////////// - // Set framerate: - ////////////////////////// - o3r->Set(ifm3d::json::parse(R"({"ports":{"port2":{"acquisition": {"framerate": 10}}, - "port3":{"acquisition": {"framerate": 10}}}})")); - - - ////////////////////////// - // Start the cameras at - // the same time - ///////////////////////// - o3r->Set(ifm3d::json::parse(R"({"ports":{"port2":{"state": "CONF"}, - "port3":{"state": "CONF"}}})")); - std::this_thread::sleep_for(std::chrono::seconds(1)); - o3r->Set(ifm3d::json::parse(R"({"ports":{"port2":{"state": "RUN"}, - "port3":{"state": "RUN"}}})")); - std::this_thread::sleep_for(std::chrono::milliseconds(500)); - - // Check which frame comes first: - std::vector timestamps; - std::vector fgs; - fgs.push_back(fg0); fgs.push_back(fg1); - for (auto fg: fgs) { - auto frame = fg->WaitForFrame(); - if (frame.wait_for(std::chrono::milliseconds(1000)) != std::future_status::ready) - { - std::cerr << "Timeout waiting for camera!" << std::endl; - return -1; - } - else { - timestamps.push_back(frame.get()->TimeStamps().front()); - } - } - ifm3d::TimePointT t0; - ifm3d::TimePointT t1; - auto ready0 = 0; - auto ready1 = 0; - // Start grabbing frames in the right order - if (abs(std::chrono::duration_cast(timestamps[0] - timestamps[1]).count())>=50) - { - thread1 = std::thread{ getFrameTime, fg1, std::ref(t1), std::ref(ready1) }; - thread0 = std::thread{ getFrameTime, fg0, std::ref(t0), std::ref(ready0)}; - } - else { - thread0 = std::thread{ getFrameTime, fg0, std::ref(t0), std::ref(ready0) }; - thread1 = std::thread{ getFrameTime, fg1, std::ref(t1), std::ref(ready1) }; - } - using namespace std::chrono_literals; - // Display delay - while (true){ - std::this_thread::sleep_for(10ms); - if (ready0 == 1 && ready1 == 1){ - std::lock_guard guard0(mutex); - ready0 = 0 ; ready1 = 0; - fmt::print("Delay (ms): {}\n", abs(std::chrono::duration_cast(t0 - t1).count())); - } - } - - thread0.join(); - thread1.join(); - - return 0; -} \ No newline at end of file diff --git a/latest/_downloads/4a5387122df65ea4eefd234a52ca9b16/ex-timestamp.cpp b/latest/_downloads/4a5387122df65ea4eefd234a52ca9b16/ex-timestamp.cpp new file mode 100644 index 00000000..f71a9023 --- /dev/null +++ b/latest/_downloads/4a5387122df65ea4eefd234a52ca9b16/ex-timestamp.cpp @@ -0,0 +1,74 @@ +/* + * Copyright (C) 2018 ifm syntron gmbh + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// ex-timetamp.cpp +// +// Request some frames from the camera and write the timestamps to stdout +// + +#include +#include +#include +#include +#include +#include +#include + +std::string formatTimestamp(ifm3d::TimePointT timestamp) +{ + using namespace std::chrono; + std::time_t time = std::chrono::system_clock::to_time_t( + std::chrono::time_point_cast( + timestamp)); + + milliseconds milli = duration_cast( + timestamp.time_since_epoch() - duration_cast( + timestamp.time_since_epoch())); + + std::ostringstream s; + s << std::put_time(std::localtime(&time), "%Y-%m-%d %H:%M:%S") + << ":" << std::setw(3) << std::setfill('0') << milli.count(); + + return s.str(); +} + +int main(int argc, const char **argv) +{ + auto cam = ifm3d::Camera::MakeShared(); + + ifm3d::ImageBuffer::Ptr img = std::make_shared(); + ifm3d::FrameGrabber::Ptr fg = + std::make_shared( + cam, ifm3d::IMG_AMP|ifm3d::IMG_CART); + + for (int i = 0; i < 10; i++) + { + if (!fg->WaitForFrame(img.get(), 1000)) + { + std::cerr << "Error getting frame from camera" << std::endl; + continue; + } + + ifm3d::TimePointT timestamp = img->TimeStamp(); + std::cout << "Timestamp of frame " + << std::setw(2) << std::setfill('0') + << (i+1) << ": " << formatTimestamp(timestamp) + << std::endl; + } + + return 0; +} diff --git a/latest/_downloads/5d5476cc52e7759bbc638f78cede3645/ex-getmac.cpp b/latest/_downloads/5d5476cc52e7759bbc638f78cede3645/ex-getmac.cpp new file mode 100644 index 00000000..e297d9dc --- /dev/null +++ b/latest/_downloads/5d5476cc52e7759bbc638f78cede3645/ex-getmac.cpp @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2016 Love Park Robotics, LLC + * Copyright (C) 2017 ifm syntron gmbh + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// ex-getmac.cpp +// +// Request the MAC address from the camera. The MAC address can be used as +// a unique identifier. +// + +#include +#include + +int main(int argc, const char **argv) +{ + // get access to the camera + auto cam = ifm3d::Camera::MakeShared(); + + // get the JSON configuration data from the camera + auto jsonConfig = cam->ToJSON(); + + // print out the MAC address + std::cout << "The MAC address of the camera: " + << jsonConfig["ifm3d"]["Net"]["MACAddress"] + << std::endl; + + return 0; +} diff --git a/latest/_downloads/60a536fcd8b18c8a3a4fcf3cc59c5b36/ex-fast_app_switch.cpp b/latest/_downloads/60a536fcd8b18c8a3a4fcf3cc59c5b36/ex-fast_app_switch.cpp new file mode 100644 index 00000000..ff1d297f --- /dev/null +++ b/latest/_downloads/60a536fcd8b18c8a3a4fcf3cc59c5b36/ex-fast_app_switch.cpp @@ -0,0 +1,286 @@ +/* + * Copyright (C) 2017 Love Park Robotics, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// ex-fast_app_switch.cpp +// +// Shows how to switch between two applications on the camera using PCIC, +// which should (theoretically) be fast. It also prints out some high-level +// latency metrics. Please NOTE: this is not a micro-benchmarking test suite, +// just a first order approximation of the expected latency. +// + +#include +#include +#include +#include +#include +#include "ifm3d/fg.h" +#include +#include + +template +double timeit(T func) +{ + std::vector times; + times.reserve(N); + + for (std::size_t i = 0; i < N; ++i) + { + auto start = std::chrono::steady_clock::now(); + func(); + auto stop = std::chrono::steady_clock::now(); + + auto diff = std::chrono::duration(stop - start).count(); + times.push_back(diff); + } + + double median = 0.; + std::sort(times.begin(), times.end()); + + if (N > 0) + { + if (N % 2 == 0) + { + median = (times.at(N / 2 - 1) + times.at(N / 2)) / 2; + } + else + { + median = times.at(N / 2); + } + } + + return median; +} + + +int main(int argc, const char **argv) +{ + constexpr std::size_t N = 20; + + std::string json_streaming = + R"( + { + "ifm3d": + { + "Device": + { + "ActiveApplication": "1" + }, + "Apps": + [ + { + "Name": "23k", + "TriggerMode": "1", + "Index": "1", + "Type": "Camera", + "Imager": + { + "ExposureTime": "5000", + "FrameRate": "5", + "MinimumAmplitude": "42", + "Resolution": "0", + "SpatialFilterType": "0", + "SymmetryThreshold": "0", + "TemporalFilterType": "0", + "Type": "upto30m_moderate" + } + }, + { + "Name": "100k", + "TriggerMode": "1", + "Index": "2", + "Type": "Camera", + "Imager": + { + "ExposureTime": "5000", + "FrameRate": "5", + "MinimumAmplitude": "42", + "Resolution": "1", + "SpatialFilterType": "0", + "SymmetryThreshold": "0", + "TemporalFilterType": "0", + "Type": "upto30m_moderate" + } + } + ] + } + } + )"; + + std::string json_swtrigger = + R"( + { + "ifm3d": + { + "Device": + { + "ActiveApplication": "1" + }, + "Apps": + [ + { + "TriggerMode": "2", + "Index": "1" + }, + { + "TriggerMode": "2", + "Index": "2" + } + ] + } + } + )"; + + // instantiate the camera and set the configuration + auto cam = ifm3d::Camera::MakeShared(); + while (cam->ApplicationList().size() < 2) + { + cam->FromJSONStr(R"({"Apps":[{}]})"); + } + + std::cout << "Setting camera configuration: " << std::endl + << json_streaming << std::endl; + cam->FromJSONStr(json_streaming); + + // instantiate our framegrabber + auto fg = std::make_shared(cam); + + // create our image buffer to hold frame data from the camera + auto img = std::make_shared(); + + // instantiate our pcic interface + auto pcic = std::make_shared(cam); + + //----------------------------------------------------- + // OK, let's run some tests.... + //----------------------------------------------------- + + auto acquire_frame = + [fg, img](cv::Mat& cloud, int resolution, bool sw = false) -> void + { + for (int i = 0; i < 5; ++i) + { + if (sw) + { + fg->SWTrigger(); + } + + if (!fg->WaitForFrame(img.get(), 1000)) + { + std::cerr << "Timeout waiting for camera!" << std::endl; + std::abort(); + } + + cloud = img->XYZImage(); + + if (resolution == 23) + { + // 23k + if ((cloud.rows == 132) && (cloud.cols == 176)) + { + return; + } + } + else + { + // 100k + if ((cloud.rows == 264) && (cloud.cols == 352)) + { + return; + } + } + } + + std::cerr << "Acquired frame is of incorrect resolution!" << std::endl; + std::abort(); + }; + + auto assert_pcic_ok = [](std::string const& res) -> void + { + if (res != "*") + { + std::cerr << "PCIC switch failed!" << std::endl; + std::abort(); + } + }; + + cv::Mat cloud; + std::string res; + + // + // Toggle back and forth N times (NOTE: 2xN switches per loop) + // ... in streaming mode + // + std::cout << "OK, running streaming benchmarks..." << std::endl; + std::cout << "Test 0: Streaming mode, toggling 23K <-> 100k " + << N << "x (" << 2 * N << " switches)" << std::endl; + double switch0 = + timeit([&res, pcic, assert_pcic_ok, acquire_frame, &cloud]() + { + res = pcic->Call("a02"); + assert_pcic_ok(res); + acquire_frame(cloud, 100); + + res = pcic->Call("a01"); + assert_pcic_ok(res); + acquire_frame(cloud, 23); + }); + + // + // Run same test as above but in s/w trigger mode + // + std::cout << "Setting camera configuration: " << std::endl + << json_swtrigger << std::endl; + cam->FromJSONStr(json_swtrigger); + std::cout << "OK, running s/w trigger benchmarks..." << std::endl; + + std::cout << "Test 1: S/W trigger mode, toggling 23K <-> 100k " + << N << "x (" << 2 * N << " switches)" << std::endl; + double switch1 = + timeit([&res, pcic, assert_pcic_ok, acquire_frame, &cloud]() + { + res = pcic->Call("a02"); + assert_pcic_ok(res); + acquire_frame(cloud, 100, true); + + res = pcic->Call("a01"); + assert_pcic_ok(res); + acquire_frame(cloud, 23, true); + }); + + // + // Show our results + // + + std::cout << std::endl + << "*********************************************************" + << std::endl << std::endl; + + std::cout << "Streaming mode, median exec time = " << switch0 << " secs (" + << switch0 / 2. << " secs per switch + image acquisition)" + << std::endl; + + std::cout << "S/W trigger mode, median exec time = " << switch1 << " secs (" + << switch1 / 2. << " secs per switch + image acquisition)" + << std::endl; + + std::cout << std::endl + << "*********************************************************" + << std::endl; + + return 0; +} diff --git a/latest/_downloads/75351d860c66a9c42413098e7bc7d884/ex-simpleImage_ppm_io.cpp b/latest/_downloads/75351d860c66a9c42413098e7bc7d884/ex-simpleImage_ppm_io.cpp new file mode 100644 index 00000000..081617f8 --- /dev/null +++ b/latest/_downloads/75351d860c66a9c42413098e7bc7d884/ex-simpleImage_ppm_io.cpp @@ -0,0 +1,171 @@ +/* + * Copyright (C) 2018 ifm electronic, gmbh + * + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + // + // ex-simpleimage_ppm_io.cpp + // + // This example shows how to get the images from ifm3dlib without opencv and PCL dependency + // and how to write the ppm images with the data from device. This example scales the data + // from camera to unsigned char for storing in the ppm file. For Scaling Distance data + // Maximum distance is considered as 2.5m or 2500mm whereas for amplitude data min and max values are calculated + // from data (auto scaling) + +#include +#include +#include +#include +#include +#include +#include +#include + + + +using namespace std; + + + +bool writePPMFile(ifm3d::SimpleImageBuffer::Img &img, std::string const& filename) +{ + auto const write_width = (size_t)img.width; + auto const write_height = (size_t)img.height; + auto write_pixels = vector(write_width * write_height * 3); // 3 for RGB channels + auto pixel_index = size_t{ 0 }; + for (auto col = size_t{ 0 }; col < write_height; ++col) { + for (auto row = size_t{ 0 }; row < write_width; ++row) { + write_pixels[pixel_index * 3 + 0] = static_cast(*(img.data.data() + pixel_index)); + write_pixels[pixel_index * 3 + 1] = static_cast(*(img.data.data() + pixel_index)); + write_pixels[pixel_index * 3 + 2] = static_cast(*(img.data.data() + pixel_index)); + ++pixel_index; + } + } + try + { + thinks::ppm::writeRgbImage(filename, write_width, write_height, write_pixels); + } + catch (exception e) + { + std::cerr << e.what(); + return false; + } + return true; +} +// scales the data with min max values +template +void scaleImageToRGB(ifm3d::SimpleImageBuffer::Img &input, ifm3d::SimpleImageBuffer::Img &confidence, ifm3d::SimpleImageBuffer::Img &output, double min = 0.0f, double max = 0.0f) +{ + output.width = input.width; + output.height = input.height; + output.format = ifm3d::pixel_format::FORMAT_8U; + output.data.resize(output.width*output.height); + + float scalingFactor = 255.0 / ((max - min) != 0 ? (max - min) : 1); + + for (int index = 0; index < input.width * input.height; index++) + { + T value = *((T*)(input.data.data()) + index); + if ((*(confidence.data.data() + index) & 0x01) == 0x00) // checking valid pixel + *(output.data.data() + index) = (uint8_t)((value - min)* scalingFactor); + else + { + *(output.data.data() + index) = 0; // All invalid pixels + } + } +} + +// find the min max of the data +template < typename T > +void findMinAndMax(ifm3d::SimpleImageBuffer::Img &input, ifm3d::SimpleImageBuffer::Img &confidence, double &min, double &max) +{ + max = 0; + min = (double)INT_MAX; + for (int index = 0; index < input.width * input.height; index++) + { + T value = *((T*)(input.data.data()) + index); + if ((*(confidence.data.data() + index) & 0x01) == 0x00) + { + min = std::min((T)min, value); + } + if ((*(confidence.data.data() + index) & 0x01) == 0x00) + { + max = std::max((T)max, value); + } + } +} + +int main(int argc, const char **argv) +{ + auto cam = ifm3d::Camera::MakeShared(); + + ifm3d::SimpleImageBuffer::Ptr img = std::make_shared(); + ifm3d::FrameGrabber::Ptr fg = + std::make_shared( + cam, ifm3d::IMG_AMP | ifm3d::IMG_CART | ifm3d::IMG_RDIS); + + if (!fg->WaitForFrame(img.get(), 1000)) + { + std::cerr << "Timeout waiting for camera!" << std::endl; + return -1; + } + // acquiring data from the device + ifm3d::SimpleImageBuffer::Img confidence = img->ConfidenceImage(); + ifm3d::SimpleImageBuffer::Img amplitude = img->AmplitudeImage(); + ifm3d::SimpleImageBuffer::Img distance = img->DistanceImage(); + + // for storing scaled output + ifm3d::SimpleImageBuffer::Img distance_scaled; + ifm3d::SimpleImageBuffer::Img amplitude_scaled; + + double min = 0.0; + double max = 0.0; + // max and mindistance for scaling distance image uint8 format + auto const max_distance = 2.5; + auto const min_distance = 0.0; + // for 32F data O3X camera + if (distance.format == ifm3d::pixel_format::FORMAT_32F) + { + scaleImageToRGB(distance, confidence, distance_scaled, min_distance, max_distance); + findMinAndMax(amplitude, confidence, min, max); + scaleImageToRGB(amplitude, confidence, amplitude_scaled, min, max); + } + //for 16u data O3D camera + else if(distance.format == ifm3d::pixel_format::FORMAT_16U) + { //if data format is 16U then distances are in millimeters, Hence max distance is multiplied by 1000. + scaleImageToRGB(distance, confidence, distance_scaled, min_distance, max_distance * 1000); + findMinAndMax(amplitude, confidence, min, max); + scaleImageToRGB(amplitude, confidence, amplitude_scaled, min, max); + } + else + { + std::cerr << "Unknown Format" << std::endl; + } + + //writing images too ppm format + if (!writePPMFile(distance_scaled, "distanceImage.ppm")) + { + std::cerr << "Not able to write the distance data in ppm format" << std::endl; + return -1; + } + + if (!writePPMFile(amplitude_scaled, "amplitudeImage.ppm")) + { + std::cerr << "Not able to write the amplitude data in ppm format" << std::endl; + return -1; + } + + std::cout << "Done with simpleimage ppmio example" << std::endl; + return 0; +} diff --git a/latest/_downloads/bd95fc74c0931a6bbc83b6600b12c0bb/ex-pcicclient_async_messages.cpp b/latest/_downloads/bd95fc74c0931a6bbc83b6600b12c0bb/ex-pcicclient_async_messages.cpp new file mode 100644 index 00000000..e671ed43 --- /dev/null +++ b/latest/_downloads/bd95fc74c0931a6bbc83b6600b12c0bb/ex-pcicclient_async_messages.cpp @@ -0,0 +1,92 @@ +// -*- c++ -*- +/* + * Copyright (C) 2017 Kuhn & Völkel GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// ex-pcicclient_async_messages.cpp +// +// Shows how to use the PCICClient module to receive asynchronous +// notification (and error) messages from the camera. +// + +#include +#include +#include +#include +#include + +// Camera configuration string: +// * Create two applications with indices 1 and 2 +// and activate application with index 2 +const char *config = R"CONFIG( +{ + "ifm3d": + { + "Device": + { + "ActiveApplication": "2" + }, + "Apps": + [ + { + "Name": "PCICClient Example 2a", + "Description": "First application", + "Index" : "1" + }, + { + "Name": "PCICClient Example 2b", + "Description": "Second application", + "Index" : "2" + } + ] + } +} +)CONFIG"; + + +int main(int argc, char** argv) +{ + // Create camera + ifm3d::Camera::Ptr cam = std::make_shared(); + + // Configure two applications on the camera +// cam->FromJSONStr(config); + + // Create pcic interface + ifm3d::PCICClient::Ptr pcic = std::make_shared(cam); + + // Set notification (and error) callbacks, which simply print received messages + pcic->SetNotificationCallback([](const std::string& notification) + { + std::cout << "Notification: " << notification << std::endl; + }); + + pcic->SetErrorCallback([](const std::string& error) + { + std::cout << "Error: " << error << std::endl; + }); + + // Switch between applications (and receive notification 000500000) + std::cout << "Switch to application 1" << std::endl; + pcic->Call("a01"); + std::this_thread::sleep_for(std::chrono::seconds(1)); + + std::cout << "Switch to application 2" << std::endl; + pcic->Call("a02"); + std::this_thread::sleep_for(std::chrono::seconds(1)); + + return 0; +} diff --git a/latest/_downloads/ddd652e302f29584910cad75d2331818/ex-exposure_times.cpp b/latest/_downloads/ddd652e302f29584910cad75d2331818/ex-exposure_times.cpp new file mode 100644 index 00000000..dfe68d90 --- /dev/null +++ b/latest/_downloads/ddd652e302f29584910cad75d2331818/ex-exposure_times.cpp @@ -0,0 +1,165 @@ +/* + * Copyright (C) 2016 Love Park Robotics, LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// ex-exposure_times.cpp +// +// Shows how to change imager exposure times on the fly while streaming in +// pixel data and validating the setting of the exposure times registered to +// the frame data. +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, const char **argv) +{ + // example configuration for the camera we will use for exemplary purpose + // we will use a double exposure imager. + std::string json = R"( + { + "ifm3d": + { + "Device": + { + "ActiveApplication": "1" + }, + "Apps": + [ + { + "TriggerMode": "1", + "Index": "1", + "Imager": + { + "ExposureTime": "5000", + "ExposureTimeList": "125;5000", + "ExposureTimeRatio": "40", + "Type":"under5m_moderate" + } + } + ] + } + } + )"; + + + // instantiate the camera and set the configuration + ifm3d::Camera::Ptr cam = std::make_shared(); + std::cout << "Setting camera configuration: " << std::endl + << json << std::endl; + + + // create our image buffer to hold frame data from the camera + ifm3d::ImageBuffer::Ptr img = std::make_shared(); + + // instantiate our framegrabber and be sure to explicitly tell it to + // stream back the exposure times registered to the frame data + ifm3d::FrameGrabber::Ptr fg = + std::make_shared( + cam, ifm3d::DEFAULT_SCHEMA_MASK|ifm3d::EXP_TIME|ifm3d::ILLU_TEMP); + + // a vector to hold the exposure times (we will just print them to the + // screen) + std::vector exposure_times; + + // a map use to modulate the `ExposureTime` and `ExposureTimeRatio` + // on-the-fly. We seed it with data consistent with our config above + std::unordered_map params = + { + {"imager_001/ExposureTime", "5000"}, + {"imager_001/ExposureTimeRatio", "40"} + }; + + // create a session with the camera so we can modulate the exposure times + cam->RequestSession(); + + // set our session timeout -- + // + // NOTE: I'm going to do nothing with this here. However, in a *real* + // application, you will have to send `Heartbeats` at least every `hb_secs` + // seconds to the camera. The best technique for doing that is left as an + // exercise for the reader. + int hb_secs = cam->Heartbeat(300); + + // now we start looping over the image data, every 20 frames, we will + // change the exposure times, after 100 frames we will exit. + int i = 0; + while (true) + { + if (! fg->WaitForFrame(img.get(), 1000)) + { + std::cerr << "Timeout waiting for camera!" << std::endl; + continue; + } + + // get the exposure times registered to the frame data + exposure_times = img->ExposureTimes(); + auto illu_temp = img->IlluTemp(); + + // depending on your imager config, you can have up to 3 exposure + // times. I'll print all three for exemplary purposes, but we know there + // are only two valid ones based on our double exposure imager + // configuration from above. We expect the third to be 0. + std::cout << "Exposure Time 0: " << exposure_times.at(0) + << std::endl; + std::cout << "Exposure Time 1: " << exposure_times.at(1) + << std::endl; + std::cout << "Exposure Time 2: " << exposure_times.at(2) + << std::endl; + std::cout << "Illu Temp: " << illu_temp + << std::endl; + std::cout << "---" << std::endl; + + i++; + + if (i == 100) + { + break; + } + + if (i % 20 == 0) + { + std::cout << "Setting long exposure time to: "; + if (exposure_times.at(1) == 5000) + { + std::cout << 10000 << std::endl; + params["imager_001/ExposureTime"] = "10000"; + } + else + { + std::cout << 5000 << std::endl; + params["imager_001/ExposureTime"] = "5000"; + } + + cam->SetTemporaryApplicationParameters(params); + } + } + + // + // In a long-running program, you will need to take care to + // clean up your session if necessary. Here we don't worry about it because + // the camera dtor will do that for us. + // + std::cout << "et voila." << std::endl; + return 0; +} diff --git a/latest/_downloads/e3f3c0903788d9405a5b19d99301bd53/ex-file_io.cpp b/latest/_downloads/e3f3c0903788d9405a5b19d99301bd53/ex-file_io.cpp new file mode 100644 index 00000000..fb93490d --- /dev/null +++ b/latest/_downloads/e3f3c0903788d9405a5b19d99301bd53/ex-file_io.cpp @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2016 Love Park Robotics, LLC + * Copyright (C) 2017 ifm syntron gmbh + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distribted on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// +// ex-file_io.cpp +// +// Capture a frame from the camera, and write the data out to files. For +// exemplary purposes, we will write the amplitdue and radial distance images +// to PNG files. NOTE: we have removed the PCL I/O from this example for now as +// we are trying to deprecate PCL from our library. +// + +#include +#include +#include +#include +#include +#include + +int main(int argc, const char **argv) +{ + auto cam = ifm3d::Camera::MakeShared(); + + ifm3d::ImageBuffer::Ptr img = std::make_shared(); + ifm3d::FrameGrabber::Ptr fg = + std::make_shared( + cam, ifm3d::IMG_AMP|ifm3d::IMG_CART|ifm3d::IMG_RDIS); + + if (! fg->WaitForFrame(img.get(), 1000)) + { + std::cerr << "Timeout waiting for camera!" << std::endl; + return -1; + } + + imwrite("amplitude.png", img->AmplitudeImage()); + imwrite("radial_distance.png", img->DistanceImage()); + + return 0; +} diff --git a/latest/_downloads/efe3699e16207ab287d02227ab95546b/LICENSE b/latest/_downloads/efe3699e16207ab287d02227ab95546b/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/latest/_downloads/efe3699e16207ab287d02227ab95546b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/latest/_images/registration1.drawio.svg b/latest/_images/registration1.drawio.svg new file mode 100644 index 00000000..92a73448 --- /dev/null +++ b/latest/_images/registration1.drawio.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + 3D sensor +
    +
    +
    +
    + + 3D sensor + +
    +
    + + + + + + + + + + + + +
    +
    +
    + 2D sensor +
    +
    +
    +
    + + 2D sensor + +
    +
    + + + + + + + + + + + +
    +
    +
    + User coordinate system +
    +
    +
    +
    + + User coordi... + +
    +
    + + + + + +
    +
    +
    + Point cloud +
    +
    +
    +
    + + Point cloud + +
    +
    +
    + + + + + Text is not SVG - cannot display + + + +
    \ No newline at end of file diff --git a/latest/_sources/content/README.md.txt b/latest/_sources/content/README.md.txt index 2c15f232..4164b540 100644 --- a/latest/_sources/content/README.md.txt +++ b/latest/_sources/content/README.md.txt @@ -65,6 +65,10 @@ Note that we provide 2 tags, *stable* always points to the latest tagged version For more details on the available containers, see [here](ifm3d/doc/sphinx/content/installation_instructions/install_docker:Docker%20dev%20container). For more details on docker and the O3R platform see [here](documentation/O3R/Docker/README:Docker%20on%20O3R). +## Examples + +Examples for the ifm3d library can be found in the [ifm3d-examples](https://github.com/ifm/ifm3d-examples) repository. + ## Report a bug and check the known issues Please see the [GitHub Issue Tracker](https://github.com/ifm/ifm3d/issues), or contact `support.robotics@ifm.com`. diff --git a/latest/_sources/examples/o3r/2d_data/2d_data.md.txt b/latest/_sources/content/basic_lib_usage/2d_data/2d_data.md.txt similarity index 90% rename from latest/_sources/examples/o3r/2d_data/2d_data.md.txt rename to latest/_sources/content/basic_lib_usage/2d_data/2d_data.md.txt index e76bb879..c4804e16 100644 --- a/latest/_sources/examples/o3r/2d_data/2d_data.md.txt +++ b/latest/_sources/content/basic_lib_usage/2d_data/2d_data.md.txt @@ -63,13 +63,14 @@ cv::waitKey(0); ## The full example :::::{tabs} ::::{group-tab} Python -:::{literalinclude} 2d_data.py +:::{literalinclude} ../../ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/2d_data.py + :language: python ::: :::: ::::{group-tab} C++ -:::{literalinclude} 2d_data.cpp +:::{literalinclude} ../../ifm3d-examples/ovp8xx/cpp/core/2d_data/2d_data.cpp :language: cpp ::: :::: diff --git a/latest/_sources/examples/o3r/configuration/configuration.md.txt b/latest/_sources/content/basic_lib_usage/configuration/configuration.md.txt similarity index 89% rename from latest/_sources/examples/o3r/configuration/configuration.md.txt rename to latest/_sources/content/basic_lib_usage/configuration/configuration.md.txt index 9a23a010..08b8c7f0 100644 --- a/latest/_sources/examples/o3r/configuration/configuration.md.txt +++ b/latest/_sources/content/basic_lib_usage/configuration/configuration.md.txt @@ -68,7 +68,10 @@ json conf = o3r->Get(); ## Write a new configuration -To set a new configuration, you need to provide said configuration in JSON formatting. The provided configuration can be a subset or the full configuration, as long as it follows the proper JSON hierarchy. +To set a new configuration, you need to provide said configuration in JSON formatting. The provided configuration can be a subset or the full configuration, as long as it follows the proper JSON hierarchy. +:::{note} +For the O3R platform, you can refer to [the JSON schema documentation](https://ifm3d.com/latest/Technology/configuration.html#json-schema) +::: :::::{tabs} ::::{group-tab} Python @@ -88,13 +91,13 @@ Note: we use [string literals](https://en.cppreference.com/w/cpp/language/string ## The full example :::::{tabs} ::::{group-tab} Python -:::{literalinclude} configuration.py +:::{literalinclude} ../../ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/configuration.py :language: python ::: :::: ::::{group-tab} C++ -:::{literalinclude} configuration.cpp +:::{literalinclude} ../../ifm3d-examples/ovp8xx/cpp/core/configuration/configuration.cpp :language: cpp ::: :::: diff --git a/latest/_sources/examples/o3r/deserialize/deserialize.md.txt b/latest/_sources/content/basic_lib_usage/deserialize/deserialize.md.txt similarity index 89% rename from latest/_sources/examples/o3r/deserialize/deserialize.md.txt rename to latest/_sources/content/basic_lib_usage/deserialize/deserialize.md.txt index c1045a58..e3c4959e 100644 --- a/latest/_sources/examples/o3r/deserialize/deserialize.md.txt +++ b/latest/_sources/content/basic_lib_usage/deserialize/deserialize.md.txt @@ -13,12 +13,12 @@ The usage of the deserializer is the same for all the buffers mentioned above: c :::::{tabs} :::: {group-tab} Python -:::{literalinclude} deserialize.py +:::{literalinclude} ../../ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/deserialize.py :language: python ::: :::: :::: {group-tab} C++ -:::{literalinclude} deserialize.cpp +:::{literalinclude} ../../ifm3d-examples/ovp8xx/cpp/core/deserialize/deserialize.cpp :language: cpp ::: :::: diff --git a/latest/_sources/examples/o3r/getting_data/getting_data.md.txt b/latest/_sources/content/basic_lib_usage/getting_data/getting_data.md.txt similarity index 94% rename from latest/_sources/examples/o3r/getting_data/getting_data.md.txt rename to latest/_sources/content/basic_lib_usage/getting_data/getting_data.md.txt index d52b3ff3..7753ff6a 100644 --- a/latest/_sources/examples/o3r/getting_data/getting_data.md.txt +++ b/latest/_sources/content/basic_lib_usage/getting_data/getting_data.md.txt @@ -160,13 +160,13 @@ auto rgb = frame->get_buffer(ifm3d::buffer_id::JPEG_IMAGE); ### Using a callback :::::{tabs} ::::{group-tab} Python -:::{literalinclude} getting_data_callback.py +:::{literalinclude} ../../ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/getting_data_callback.py :language: python ::: :::: ::::{group-tab} C++ -:::{literalinclude} getting_data_callback.cpp +:::{literalinclude} ../../ifm3d-examples/ovp8xx/cpp/core/getting_data/getting_data_callback.cpp :language: cpp ::: :::: @@ -175,13 +175,13 @@ auto rgb = frame->get_buffer(ifm3d::buffer_id::JPEG_IMAGE); ### Using the polling mode :::::{tabs} ::::{group-tab} Python -:::{literalinclude} getting_data.py +:::{literalinclude} ../../ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/getting_data.py :language: python ::: :::: ::::{group-tab} C++ -:::{literalinclude} getting_data.cpp +:::{literalinclude} ../../ifm3d-examples/ovp8xx/cpp/core/getting_data/getting_data.cpp :language: cpp ::: :::: diff --git a/latest/_sources/content/basic_lib_usage/index.md.txt b/latest/_sources/content/basic_lib_usage/index.md.txt new file mode 100644 index 00000000..21fed904 --- /dev/null +++ b/latest/_sources/content/basic_lib_usage/index.md.txt @@ -0,0 +1,10 @@ +# Basic Library Usage + +:::{toctree} +How to: configure the camera +How to: receive an image +How to: view the images +How to: handle rgb data <2d_data/2d_data> +How to: use the deserializer module +How to: configure the logging +::: \ No newline at end of file diff --git a/latest/_sources/examples/logging/logging.md.txt b/latest/_sources/content/basic_lib_usage/logging/logging.md.txt similarity index 100% rename from latest/_sources/examples/logging/logging.md.txt rename to latest/_sources/content/basic_lib_usage/logging/logging.md.txt diff --git a/latest/_sources/content/basic_lib_usage/viewer/README.md.txt b/latest/_sources/content/basic_lib_usage/viewer/README.md.txt new file mode 100644 index 00000000..f59b6459 --- /dev/null +++ b/latest/_sources/content/basic_lib_usage/viewer/README.md.txt @@ -0,0 +1,5 @@ +# ifm3dpy Viewer + +:::{note} +This example was moved to [the ifm3d-examples repository](https://github.com/ifm/ifm3d-examples). +::: \ No newline at end of file diff --git a/latest/_sources/content/cmdline_configuring.md.txt b/latest/_sources/content/cmdline_configuring.md.txt index 67840368..5bc67595 100644 --- a/latest/_sources/content/cmdline_configuring.md.txt +++ b/latest/_sources/content/cmdline_configuring.md.txt @@ -4,7 +4,7 @@ Configuring the parameters of an ifm 3D camera is accomplished in ifm3d in one of two ways: 1) via the `ifm3d` command line tool; 2) via the `ifm3d` library's `camera` module API. We show below how to do so with the command line tool. -Please refer to [this doc](ifm3d/doc/sphinx/content/examples/o3r/configuration/configuration:How%20to%3A%20configure%20the%20camera) for instructions on configuring the camera through `ifm3d` library. +Please refer to [this doc](content/basic_lib_usage/configuration/configuration.md) for instructions on configuring the camera through `ifm3d` library. The primary mechanism for using the `ifm3d` command line tool to configure an ifm 3D camera is to utilize the `dump` and `config` subcommands to `ifm3d`. The diff --git a/latest/_sources/content/examples_list.md.txt b/latest/_sources/content/examples_list.md.txt new file mode 100644 index 00000000..f824b5f0 --- /dev/null +++ b/latest/_sources/content/examples_list.md.txt @@ -0,0 +1,3 @@ +# Available examples + +Examples in Python and C++ are available in the [ifm3d-examples](https://github.com/ifm/ifm3d-examples) repository. We recommend that you clone the complete repository and read the instructions in the READMEs for details on each example. \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/CHANGELOG.md.txt b/latest/_sources/content/ifm3d-examples/CHANGELOG.md.txt new file mode 100644 index 00000000..f1848605 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/CHANGELOG.md.txt @@ -0,0 +1,20 @@ +# Changelog for ifm3d-examples + +## UNRELEASED +- Update the examples for O3D3xx and O3X1xx for ifm3d 1.4.3. + +## 1.1.0 +- Add a Dockerfile example for CAN usage on the OVP, +- Add a Python example on how to activate the CAN interface on the OVP, +- Add a Python example to get data from the IMU and another to deserialize it, +- Add a Python example to generate SSH keys, +- Add a Python example to update a JSON configuration from one firmware version to another, +- Improve the Python firmware utils example (code cleanup, bootup monitoring, ...), +- Update the versions of the required Python packages. + + +## 1.0.0 +- Initial release: added examples in Python and C++ for the OVP8xx devices, + +## 0.1.0 +- This is a release for examples for O3D and O3X devices using ifm3d < 1.0.0 (tested with ifm3d v0.11.0) \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/README.md.txt b/latest/_sources/content/ifm3d-examples/README.md.txt new file mode 100644 index 00000000..895b8606 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/README.md.txt @@ -0,0 +1,62 @@ +# ifm3d examples + +This project provides a collection of code examples for the O3 camera series of [ifm](https://www.ifm.com/), O3D3xx, O3X1xx and the O3R platform (OVP8xx along with the O3R22x cameras). + +These examples showcase the use of the [ifm3d library](https://api.ifm3d.com/stable/). + +## Supported languages + +Currently, we support the following languages: +| Name | Versions | +| ------ | -------------------------- | +| Python | 3.8, 3.9, 3.10, 3.11, 3.12 | +| C++ | GCC 7.5+, MSVC 2019+ | + +## Compatibility + +The examples have been tested in the following combination of versions: + +| ifm3d-examples version | O3R firmware | O3D firmware | O3X firmware | ifm3d library | Comment | +| ---------------------- | ------------- | -------------------- | ------------- | ------------- | ----------------------------------------------------------------------------------------------------------- | +| 0.1.0 | NA | 1.80.8656, 1.71.9079 | 1.1.190 | 0.11.0 | | +| 1.0.0 | 1.1.30 | Not supported | Not supported | 1.4.3 | | +| 1.1.0 | 1.1.30, 1.4.X | Not supported | Not supported | 1.4.3, 1.5.3 | Some of the examples are only applicable to the O3R firmware version 1.4.X (for example, the IMU and CAN examples). | + +Any other version might work but has not been explicitly tested. + +## Prerequisites +To use these examples, you need to install the ifm3d library. + +For the c++ library, follow the installation instructions on [api.ifm3d.com](https://api.ifm3d.com/stable/content/installation_instructions/index.html). + +For the Python library, install using pip: `pip install ifm3dpy`. + +For more details refer to [the ifm3d documentation on api.ifm3d.com](https://api.ifm3d.com/stable/index.html). + + +## o3d3xx-o3x1xx + +This folder contains examples for the O3D3XX and the O3X1XX camera series. + +## ovp8xx + +This folder contains examples for the O3R platform, which is composed of an OVP8xx compute unit and one or more O3R22x camera. + +## Getting Started + +To get started with this project, follow the instructions below: + +1. Clone the repository. +2. Navigate to o3d3xx-o3x1xx or ovp8xx, depending on the device you are interested in. +3. Choose a programming language and the example that aligns with your requirements. +4. Follow the instructions provided in the example's README file to set up and run the example, or open up the example file to read through the relevant setup. + +Most of the examples are amply commented out and sections that should be adapted to the user's specific setup are marked in the code. + +## Contributing + +Contributions are welcome! If you have any improvements or additional examples to share, please submit a pull request. + +## License + +This project is licensed under the Apache version 2.0 license. See the [LICENSE FILE](./LICENSE) for more details. diff --git a/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/README.md.txt b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/README.md.txt new file mode 100644 index 00000000..4077cb16 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/README.md.txt @@ -0,0 +1,83 @@ + +ifm3d Examples +============== +This project is formerly the `examples` sub-module of the +[ifm3d](https://github.com/ifm/ifm3d) project. It has been moved to a +standalone project to increase its efficacy as a teaching tool. Specifically, +beyond providing concrete code examples for interfacing to `ifm3d` it also +shows how to integrate `ifm3d` into an external project via `cmake`. This +project relies upon `ifm3d` version 0.9.0 or better. The remainder of the old +`README` now follows -- with minor edits. + +This directory contains example programs that utilize `ifm3d`. The +intention is to create standalone programs that illustrate one very specific +concept in order to serve the purpose of letting developers ramp up quickly +with using the library. The build infrastructure in this directory is minimal +and the programs are intended to be run in place. Additonally, unless +specifically stated otherwise, things like performance and robust error +handling are not demonstrated. The purpose is to clearly illustrate the task +without clouding it with the details of real-world software engineering -- +unless, of course, that was the point of the example. + +It is expected that this library of examples will grow over time in response to +common themes we see on the issue tracker. + +Building the examples +---------------------- + +Assuming you are starting from the top-level directory of this source +distribution: + + $ mkdir build + $ cd build + $ cmake .. + $ make + +### Windows examples +For Windows-based target, with Visual Studio 2017, assuming you are starting from the top-level directory of this source +distribution: + + $ mkdir build + $ cd build + $ cmake -Ax64 .. + $ cmake --build . --clean-first --config Release + +At this stage, projects are built and you will find *IFM3D_EXAMPLES.sln* in build folder. +Use Release / RelWithDebInfo configuration to run and investigate application examples. +Please add PATH variable to projects : + + PATH=%IFM3D_BUILD_DIR%\install\bin;%IFM3D_BUILD_DIR%\install\x64\vc%MSVC_MAJOR_VERSION%.%MSVC_MINOR_VERSION%\bin;%PATH% + +For instance, you can fill directly in VS *Project Properties* / *Debugging* / *Environment* with `PATH=C:\ifm3d\install\bin;C:\ifm3d\install\x64\vc14.1\bin;%PATH%` + +What is included? +----------------- + +* [ex-file_io](file_io/ex-file_io.cpp) Shows how to capture data from the camera and + write the images to disk. In this example, the amplitude and radial distance + image are written out as PNG files. We have removed the PCL-related example + as we are in the process of deprecating our support for PCL from the `ifm3d` + core. +* [ex-getmac](getmac/ex-getmac.cpp) + Request the MAC address from the camera. The MAC address can be used as + a unique identifier. +* [ex-timestamp](timestamp/ex-timestamp.cpp) + Request some frames from the camera and write the timestamps to stdout +* [ex-exposure_times](exposure_time/ex-exposure_times.cpp) Shows how to change imager + exposure times on the fly while streaming in pixel data and validating the + setting of the exposure times registered to the frame data. +* [ex-fast_app_switch](fast_app_switch/ex-fast_app_switch.cpp) Shows how to switch between two + applications on the camera using PCIC +* [ex-pcicclient_async_messages](pcicclient_async_messages/ex-pcicclient_async_messages.cpp) Shows how to + use the PCICClient module to receive asynchronous notification (and error) + messages from the camera. +* [ex-pcicclient_set_io](pcicclient_set_io/ex-pcicclient_set_io.cpp) Shows how to mutate the digial IO pins + on the O3D camera by the PCIC interface. +* [ex-simpleImage_ppm_io](simpleimage/example/ex-simpleImage_ppm_io.cpp) Shows how to write your own + image container which does not depend on PCL nor OpenCV. +* [ex-multi_camera_grabber](multi_camera_grabber/ex-multi_camera_grabber.cpp) demonstrate's how to accquire frames from multiple ifm 3D camera's, + see the example [documentation](doc/ex-multi_camera_grabber.md) for more details. + +LICENSE +------- +Please see the file called [LICENSE](LICENSE). diff --git a/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/doc/ex-multi_camera_grabber.md.txt b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/doc/ex-multi_camera_grabber.md.txt new file mode 100644 index 00000000..f22a8a8f --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/doc/ex-multi_camera_grabber.md.txt @@ -0,0 +1,67 @@ +ex-multi_camera_grabber +========================= + +The primary objective of this example is to demonstrate how to accquire frames from multiple ifm 3D camera's. + +The code in this example capture's frames from multiple 3D cameras which are configured to be triggered through software, +and display's the time stamp of the frame received. It also measues the time taken to receive the set of frames. + +The below diagram is representational image of the setup used for this example consisting of a PC and three 3D-camera all on the same network. +This can be used as a reference to setup your PC/3D-camera network. +multi_camera_setup +Inorder to try out this example following are the pre-requisites: + ++ Each camera used should be configured to use "Process Interface" for trigger. ++ Each of your camera need's to have an unique IP Address. ++ You should be able to ping each of the camera from the PC on which this code executes. ++ Incase your network uses a proxy, you will need to configure your system to bypass the proxy for the used IP's. + +Setting unique IP Address to your ifm 3D camera +-------------------------------------------------- +The following set of IP-addresses are utilised in the example code, these can be changed as per your setup. + ++ camera 1: 192.168.0.70 ++ camera 2: 192.168.0.71 ++ camera 3: 192.168.0.72 + +Incase your O3X/O3D camera's are having conflicts due the default IP 192.168.0.69 being set, +you can set a unique IP addresses for your camera using the ifm Vision Assistant or by just following the step by step guide below. + +Connect the first camera to the network and execute the following command: + +```commands +ifm3d --ip=192.168.0.69 dump > camera1_config.json +``` +Edit the JSON file with an editor of your choice to set the field **ifm3d.Net.StaticIPv4Address** to **192.168.0.70**. +Save the file. + +configure the new IP to your camera with the following command: + +```commands +ifm3d --ip=192.168.0.69 config < camera1_config.json +``` +After this add the second camera to the network and repeat the above steps to set the next IP to 192.168.0.71 and so on for the rest of the camera's. + +**Using jq** + +If you prefer to use jq, a single step command can be used to set IP address of the camera, +Connect the first camera to the network and execute the following command: + +```commands +ifm3d --ip=192.168.0.69 dump | jq ".ifm3d.Net.StaticIPv4Address=\"192.168.0.70\"" | ifm3d --ip=192.168.0.69 config +``` +this will set the IP of first camera to 192.168.0.70. + +After this add the second camera to the network, set the next IP with the below command and so on: + + +```commands +ifm3d --ip=192.168.0.69 dump | jq ".ifm3d.Net.StaticIPv4Address=\"192.168.0.71\"" | ifm3d --ip=192.168.0.69 config +``` + + + + + + + diff --git a/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/image_rectification/python/README.md.txt b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/image_rectification/python/README.md.txt new file mode 100644 index 00000000..a5f99a76 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/image_rectification/python/README.md.txt @@ -0,0 +1,8 @@ +# Image Rectification + +This Jupyter notebook demonstrates how to perform image rectification on an +O3D303's amplitude image, using the camera's inverse intrinsics and the camera +model of the O3D303. + +The O3D303 camera model is based on the model described in this document: +http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html diff --git a/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/intrinsics_to_cartesian/python/README.md.txt b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/intrinsics_to_cartesian/python/README.md.txt new file mode 100644 index 00000000..e73ad631 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/intrinsics_to_cartesian/python/README.md.txt @@ -0,0 +1,11 @@ +# Using Intrinsics and Unit Vectors + +This Jupyter notebook demonstrates how to use the intrinsic calibration of the +camera to calculate the unit vectors. + +It also demonstrates how to use the unit vectors (whether they were calculated +or obtained directly from the camera) to convert radial distance to cartesian +information in the camera coordinate frame. + +The O3D303 camera model is based on the model described in this document: +http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/parameters.html diff --git a/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/README.md.txt b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/README.md.txt new file mode 100644 index 00000000..50d800d2 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/README.md.txt @@ -0,0 +1,47 @@ + +ifm3d - Simple Image Container +=============================== + +`ifm3d`, through its modularity, also encourages the +creation of new image containers to be utilized within the overall `ifm3d` +ecosystem. The interface is explained is very well in +[ifm3d image conatiners](https://github.com/ifm/ifm3d/blob/master/doc/img_container.md) + +`simpleimage` container is an header only interface for ifm3d lib which is independent of any third party library. +Following are the structure used in this module for storing image, point and pointClouds +**Image** +```c++ +struct Img + { + std::vector data; + int width; + int height; + pixel_format format; + }; +``` +**point** +```c++ + struct Point + { + float x; + float y; + float z; + }; + ``` +**pointCloud** +```c++ + struct PointCloud + { + std::vector points; + int width; + int height; + }; +``` +[pixel_format](https://github.com/ifm/ifm3d/blob/master/modules/framegrabber/include/ifm3d/fg/byte_buffer.h) + +The example in this modules explains how to grab the data from the ifm 3d devices and saved a .ppm image using [ppm-io](https://github.com/thinks/ppm-io) module. To save the images the data is scaled to uint8 format. Amplitude image data is scaled by the minimum and maximum value in the grabbed amplitude data, whereas for Distance image the data is scaled in distance range from 0.0m to 2.5m, which means the data values after 2.5m will be shown as 255. + +simpleimage module is configured in such a way that it can be build outside ifm3d-example repository which can be helpful for build applications which do not want to add OPenCV or PCL as a dependency. + +If you have questions, feel free to ask on our +[issue tracker](https://github.com/ifm/ifm3d/issues). diff --git a/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/ppm-io-master/README.md.txt b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/ppm-io-master/README.md.txt new file mode 100644 index 00000000..5047ba9c --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/ppm-io-master/README.md.txt @@ -0,0 +1,54 @@ +# PPM IO +This repository implements reading and writing of images in the [PPM format](http://netpbm.sourceforge.net/doc/ppm.html). The PPM image format is extremely simple, making it ideal for small exploratory projects. The major benefit of this simplicity is that is it possible to implement the PPM file format without using external dependencies, such as compression libraries. All production code in this repository is implemented in a single [header file](https://github.com/thinks/ppm-io/blob/master/include/thinks/ppm.hpp), making it very simple to add to any existing project without having to set up additional linker rules. Also, the implementation uses only standard types and holds no state, meaning it should be fairly straight-forward to use the read and write functions. Detailed documentation is available in the source code. + +All code in this repository is released under the [MIT license](https://en.wikipedia.org/wiki/MIT_License). + +## Usage +The implementation supports both reading and writing of PPM images. We provide some brief usage examples here, also refer to the [tests](https://github.com/thinks/ppm-io/blob/master/test/include/thinks/testPpm.hpp) for further examples. + +Reading an image is done as follows. +```cpp +using namespace std; + +auto width = size_t{0}; +auto height = size_t{0}; +auto pixel_data = vector(); +auto ifs = ifstream("my_file.ppm", ios::binary); +thinks::ppm::readRgbImage(ifs, &width, &height, &pixel_data); +ifs.close(); +``` +The above version uses the stream interface. This interface is the most flexible, since it does not assume that the image is stored on disk. Also, this version is useful for testing since it allows the tests to run in memory avoiding file permission issues. However, since the image being stored on disk is probably the most likely scenario a convenience version is also available. +```cpp +using namespace std; + +auto width = size_t{0}; +auto height = size_t{0}; +auto pixel_data = vector(); +thinks::ppm::readRgbImage("my_file.ppm", &width, &height, &pixel_data); +``` + +Writing image files is done in a similar fashion. +```cpp +using namespace std; + +// Write a 10x10 image where all pixels have the value (128, 128, 128). +auto const width = size_t{10}; +auto const height = size_t{10}; +auto pixel_data = vector(width * height * 3, 128); +auto ofs = ofstream("my_file.ppm", ios::binary); +thinks::ppm::writeRgbImage(ofs, width, height, pixel_data); +ofs.close(); +``` +Again, there is a convenience version for writing to disk. +```cpp +using namespace std; + +// Write a 10x10 image where all pixels have the value (128, 128, 128). +auto const width = size_t{10}; +auto const height = size_t{10}; +auto pixel_data = vector(width * height * 3, 128); +thinks::ppm::writeRgbImage("my_file.ppm", width, height, pixel_data); +``` + +## Tests +This repository includes a simple [CMake project](https://github.com/thinks/ppm-io/blob/master/test/CMakeLists.txt) for running a small test suite. The test can be found in [this](https://github.com/thinks/ppm-io/blob/master/test/include/thinks/testPpm.hpp) header file. At present the test project builds and runs without errors. diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/README.md.txt new file mode 100644 index 00000000..38fa3666 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/README.md.txt @@ -0,0 +1,21 @@ +# ifm3d examples for OVP8xx + +This directory contains example codes in Python3 and C++ to help you start working with the O3R system. + +The available example codes are divided into three subdirectories: + +1. The core examples show you how to use the `ifm3d` API to obtain image data (2D, 3D, distance image, etc.), configure camera parameters, update the embedded firmware, and more. + +2. The ODS examples, demonstrates how to work with the Obstacle Detection System (ODS). This includes streaming data, analyzing the data, visualizing results, configuring the ODS, and using diagnostic scripts. + +3. Within the Toolbox, you find various helper scripts that showcase how to use the data for specific applications (only Python examples available at the moment). + +## Getting started +Each example folder contains a README.md which provides an overview of the available examples and some more detailed explanation of the concepts showed if necessary. We recommend reading through the examples READMEs and the examples code and comments to fully comprehend the concepts. + +A recommended order when getting started with the examples would be as follows: +- Start with the core examples, understanding how to collect data (`getting_data*` and `2d_data`) and how to configure the camera (`configuration`), +- Continue with the diagnostic example (`diagnostic`) to understand how to inspect the current state of the device and react to potential errors, +- Look through the deserialization examples (`deserialize*`) to understand how the non-image data is structured (calibration, camera information, etc). + +Once you have a good grasp of the core concepts and tools provided by the ifm3d API, you can move to the application specific examples: explore the ODS examples, the convenient tools in the toolbox or continue with the rest of the core examples. \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/cpp/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/cpp/README.md.txt new file mode 100644 index 00000000..76a20c75 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/cpp/README.md.txt @@ -0,0 +1,67 @@ +# C++ examples + +## Pre-requisites + +- The [ifm3d library >= v1.2.6](https://api.ifm3d.com/stable/content/installation_instructions/install_binary_package_index.html), +- Optional: + - The [`json-schema-validator`](https://github.com/pboettch/json-schema-validator) library, which depends on [`nlohmann-json` >= 3.8.x](https://github.com/nlohmann/json). We use this library to validate configurations before attempting to set them. The `json-schema-validator` library provides a more verbose error handling than ifm3d, which allows to identify precisely where the error is in the provided configuration. + - OpenCV is used to display data and convert data formats. Follow the instructions [here for Linux](https://docs.opencv.org/4.x/d7/d9f/tutorial_linux_install.html) and [here for Windows](https://docs.opencv.org/4.x/d3/d52/tutorial_windows_install.html) to install it. + +## Build the examples + +Follow the instructions below to build the examples. The commands might need to be updated to run on Windows. + +```bash +$ cd cpp +$ mkdir build +$ cd build +$ cmake .. +$ cmake --build . +``` + +This will create executables for all the examples in the sub-folders: +```bash +$ ls +CMakeCache.txt CMakeFiles cmake_install.cmake Configs core Makefile ods +$ ls core +2d_data cmake_install.cmake deserialize getting_data_callback Makefile +CMakeFiles configuration getting_data ifm3d_playground multi_head +$ ls ods +bootup_monitor cmake_install.cmake libods_config_lib.a ods_config ods_get_data +CMakeFiles diagnostic Makefile ods_demo +``` + +## Configuration +The examples are setup to "try their best" to run with the current configuration of the device. This means that when a port number is needed, the current configuration will be queried and the first available port used. In absence of configuration, the default IP address will be used. + +To change the IP address of the device, you can use an environment variable that will be retrieved in the code: + +```bash +# Edit with the IP address of your OVP8xx +# On Linux +$ export IFM3D_IP="192.168.0.69" +# On Windows (standard command prompt) +$ set IFM3D_IP=192.168.0.69 +# On Windows (PowerShell) +$ $env:IFM3D_IP = "192.168.0.69" +``` + +To change the port used, you need to open up the code and edit the port number manually. The structure is already there to be able to use a hardcoded port number, and you just need to uncomment it and edit with your setup. +For example, in the `getting_data_callback.cpp` example, you will see the following lines: +```cpp +///////////////////////////////////////////////////////// +// Alternatively, manually pick the port corresponding +// to your 3D camera (uncomment the line below and comment +// the block above) +///////////////////////////////////////////////////////// +// std::string port_nb = "port2"; +// if (o3r->Port(port_nb).type != "3D") { +// std::cerr << "Please provide a 3D port number." << std::endl; +// return -1; +// } +// uint16_t pcic_port = o3r->Port(port_nb).pcic_port; +// std::cout << "Using 3D port: " << port_nb << std::endl; +``` + +Uncomment the lines of code and replace the port number variable string `port_nb`. +Don't forget to compile the code again after making these changes. \ No newline at end of file diff --git a/latest/_sources/examples/o3r/ifm3d_playground/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/cpp/core/ifm3d_playground/README.md.txt similarity index 93% rename from latest/_sources/examples/o3r/ifm3d_playground/README.md.txt rename to latest/_sources/content/ifm3d-examples/ovp8xx/cpp/core/ifm3d_playground/README.md.txt index 88f509fb..eade3620 100644 --- a/latest/_sources/examples/o3r/ifm3d_playground/README.md.txt +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/cpp/core/ifm3d_playground/README.md.txt @@ -1,6 +1,6 @@ # ifm3d playground project -```ifm3d_playground``` provides the out of ifm3d source example with cmake configurations. +```ifm3d_playground``` provides the out of ifm3d source example with CMake configurations. User can copy ifm3d_playground folder out of the ifm3d source and can use following instructions to build the example and develop it further. diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/cpp/ods/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/cpp/ods/README.md.txt new file mode 100644 index 00000000..c239c7c2 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/cpp/ods/README.md.txt @@ -0,0 +1,18 @@ +# ODS examples + +## Overview + +The example files provided in this mini-library are intended to be used as teaching resources and as building block in more complex applications. The user is free to disassemble, extend, or do whatever they please with this code. All the functions needed to work with an ODS applications are part of the ifm3d library. The rest of the code is added to simplify readability, usage and error handling. +- `ods_config.h` and `ods_config_main.cpp` show how to get and set configurations on the O3R platform. The header files can be reused in other applications that need configurations functionalities. This example showcases the use of a JSON validator that provides verbose errors when wrong configurations are provided. +- `ods_get_data.h` and `ods_get_data_main.cpp` show how to properly start the data stream, implement a callback that will fill a queue with data, and retrieve data from the queue. Use the header file to make use of the data queue or of the data streamer in your application. + +In `ods_demo.cpp`, we show how all these pieces can be used together to form a complete ODS application: +- We configure two applications, one for the “front” view and one for the “back” view, +- We start streaming data from the front view and display it, +- After some seconds, we switch view to use the “back” view, and display the data, +- In parallel, we display the diagnostic messages as they are received from the O3R. + +>Note: The scripts mentioned above do not take into account all that is necessary for a production application to function long term. We de not handle deployment details, for instance using docker, or specific error handling strategies, like turning off cameras if overheating or restarting the data stream if it was interrupted. + +## Configuration +The examples use example JSON configuration files which contain dummy camera calibration and application parameters. These example files expect specific camera ports (3D cameras in ports 2 and 3). If your setup is different, edit the configuration files in `/ods/configs`. Make sure to recompile the code after changing the configuration files, because they are copied as part of the compilation process. \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/docker/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/docker/README.md.txt new file mode 100644 index 00000000..c947bb55 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/docker/README.md.txt @@ -0,0 +1,20 @@ +# Docker examples + +## Available examples + +The following example Dockerfiles are provided: +- `o3r-l4t-base` provides a base Dockerfile to build an image based on Ubuntu 18.04 containing the necessary libraries to enable GPU acceleration with CUDA. The `o3r-l4t-base` container is intended to be run on board the OVP8xx. +- `o3r-l4t-tensorrt` builds on top of the base L4T image and includes the TensorRT examples provided by NVIDIA ready to be run. The `o3r-l4t-tensorrt` container is intended to be run on board the OVP8xx. + +## EXCLUSION OF LIABILITY + +**DISCLAIMER**: + +This software and the accompanying files are provided "as is" and without warranties as to performance, merchantability, or any other warranties whether expressed or implied. The user must assume the entire risk of using the software. + +**LIABILITY**: + +In no event shall the author or contributors be liable for any special, incidental, indirect, or consequential damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this software, even if the author or contributors have been advised of the possibility of such damages. + +## Further documentation +See the respective documentation on the [ifm3d developer portal](https://ifm3d.com/latest/SoftwareInterfaces/Docker/index_docker.html). \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-base/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-base/README.md.txt new file mode 100644 index 00000000..16b773a1 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-base/README.md.txt @@ -0,0 +1,17 @@ +# `o3r-l4t-base` + +## EXCLUSION OF LIABILITY + +**DISCLAIMER**: + +This software and the accompanying files are provided "as is" and without warranties as to performance, merchantability, or any other warranties whether expressed or implied. The user must assume the entire risk of using the software. + +**LIABILITY**: + +In no event shall the author or contributors be liable for any special, incidental, indirect, or consequential damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this software, even if the author or contributors have been advised of the possibility of such damages. + +## Dockerfile content and usage objective +The Dockerfiles provided here serve as a sample code project for using (base) Docker containers on the OVP80x VPU hardware architecture. + +Please use the provided `build.sh`, `config.sh` and `run.sh` helper scripts to build and run the images and containers based on the Dockerfiles. +The helper files are not intended to be used as a deployment tool, but rather as a centralized text-based documentation tool of versions and dependencies. \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/README.md.txt new file mode 100644 index 00000000..84018ddf --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/README.md.txt @@ -0,0 +1,16 @@ +# `o3r-l4t-tensorrt` +## EXCLUSION OF LIABILITY + +**DISCLAIMER**: + +This software and the accompanying files are provided "as is" and without warranties as to performance, merchantability, or any other warranties whether expressed or implied. The user must assume the entire risk of using the software. + +**LIABILITY**: + +In no event shall the author or contributors be liable for any special, incidental, indirect, or consequential damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this software, even if the author or contributors have been advised of the possibility of such damages. + +## Dockerfile content and usage objective +The Dockerfiles provided here serve as a sample code project for using (base) Docker containers on the OVP80x VPU hardware architecture. + +Please use the provided `build.sh`, `config.sh` and `run.sh` helper scripts to build and run the images and containers based on the Dockerfiles. +The helper files are not intended to be used as a deployment tool, but rather as a centralized text-based documentation tool of versions and dependencies. \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/Readme.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/Readme.md.txt new file mode 100644 index 00000000..c509bd23 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/Readme.md.txt @@ -0,0 +1,11 @@ + +This Docker image provides some of the TensorRT examples provided by NVIDIA. The Dockerfile uses a multistage build which provides a way of separating the build and deploy stages. In the deployed image there are no build tools installed to keep the footprint small. + +## Testing the TensorRT capabilities + +During the build, the examples are copied to `/opt/ifm/tensorrt/` instead of the default location `/usr/src/tensorrt`, due to the fact that the NVIDIA Docker runtime overloads this folder with the data installed on the VPU, but the OS does not come with the examples preinstalled. + +```bash +./trtexec --deploy=/opt/ifm/tensorrt/data/mnist/mnist.prototxt --model=/opt/ifm/tensorrt/data/mnist/mnist.caffemodel --output=prob --batch=16 --saveEngine=/tmp/mnist16.trt +./trtexec --loadEngine=/tmp/mnist16.trt --batch=16 +``` diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/python/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/python/README.md.txt new file mode 100644 index 00000000..4d134c72 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/python/README.md.txt @@ -0,0 +1,24 @@ +# Python examples + +## Dependencies +Our examples rely on a number of other Python packages listed in the `requirements.txt` file. Before running the examples, install the dependencies with (from the `/python` folder): +```sh +$ pip install -r requirements.txt +``` + +## Package installation (optional) +You can skip this step if you are *only* going to use examples in the `core` or `toolbox` folders. + +The examples in this repository are available as a Python package that can be locally installed. +Examples in the ODS folder depend on each other and on core examples. Therefore, to simplify importing and reusing code, you will need to install the package. + +From the `/python` folder, run the following command: +```sh +$ pip install -e . +``` +This will install a packaged called `ovp8xxexamples`. + +You can now run the ODS examples. + +## Configuration +The examples are setup with some default values for variables like the IP address or the camera ports. If the example Python package was installed (see [section above](#package-installation-optional)), default values are defined in the `config.py` file. Otherwise, hardcoded default values are defined in each example, typically with the default IP address 192.168.0.69 and a 2D camera on port 0 and a 3D on port 2. To use a different setup than the default one, you will need to edit the `config.py` file or edit the individual examples with your configuration. \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/README.md.txt new file mode 100644 index 00000000..55e289e1 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/README.md.txt @@ -0,0 +1,57 @@ +# Core +In this directory you find multiple general O3R scripts that are explained below. + +## `2d_data.py` +Receiving RGB data with `ifm3dpy` is done similarly as 3D data: the core objects have to be instantiated, and a frame has to be retrieved. +The important part is how to access the RGB image and how to decode it for further use. +Once decoded, the image can be displayed using tools such as OpenCV. The example code in `2d_data.py` illustrates the explained process. + + +## `bootup_monitor.py` +The script `bootup_monitor.py` checks that the VPU completes it's boot sequence before attempting to initialize an application. + +## `can_activate.py` + +The CAN interface can only be activate through the JSON configuration with firmware version 1.4.X or higher. + +This examples shows how to activate or deactivate the `can0` interface. + +## `configuration.py` + +The O3R has multiple parameters that have an influence on the point cloud. Some of them affect the raw measurement and others modify how the data is converted into x,y,z, etc values. These parameters can be changed to better fit your applications and the script `configuration.py` presents how. You can refer to [this page](https://ifm3d.com/latest/Technology/3D/index_3d.html) for a detailed description of each parameter. + +The ifm3d API provides functions to read and set the configuration of the device. Note that JSON formatting is used for all the configurations. + +## `deserialize_rgb.py` + +Some of the data provided by the O3R platform needs to be deserialized to be used. +For more information on the data structures of each buffer please refer to the [Python API documentation](https://api.ifm3d.com/latest/_autosummary/ifm3dpy.deserialize.html). + +The usage of the deserializer is the same for all the deserializable buffers: create the object, and call the deserialize function. Follow the example code, `deserialize_rgb.py` for an example on deserializing the `RGBInfoV1` buffer. + +## `deserialize_imu.py` and `imu_data.py` + +The IMU data can only be accessed with firmware versions 1.4.X or higher, and ifm3d version 1.5.X or higher. + +These two examples show how to retrieve IMU data from the device and how to deserialize it. + +## `diagnostic.py` +The script `diagnostic.py` contains helper functions for retrieving diagnostics when requested or asynchronously. + +## `fw_update_utils.py` + +The script `fw_update_utils.py` demonstrates how to perform a firmware update for your O3R system. Additionally, the script includes several utility functions that provide information, such as determining the current firmware version. + +## `getting_data*.py` + +The recommended way to receive data is to use the callback function, as shown in the `getting_data_callback.py` script. You can register a callback function that will be executed for every received frame, until the program exits. Alternatively, wait for a frame: you just need to call the `WaitForFrame` function, as shown in the `getting_data.py` script. + +## `ifm3dpy_viewer.py` +In the `ifm3dpy_viewer.py` Python script, a full demonstration of how to view the different images is done. For more details refer to the [viewer documentation](viewer.md). + +## `multi_head.py` +The `multi_head.py` script demonstrates how to retrieve the list of camera heads connected to the VPU and their types. + +## `timestamps.py` + +The script `timestamps.py` demonstrate how to get the timestamps and the effect of `sNTP` on the timestamps. diff --git a/latest/_sources/examples/o3r/viewer/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/viewer.md.txt similarity index 99% rename from latest/_sources/examples/o3r/viewer/README.md.txt rename to latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/viewer.md.txt index 10fbe93d..51a91bb1 100644 --- a/latest/_sources/examples/o3r/viewer/README.md.txt +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/viewer.md.txt @@ -5,7 +5,6 @@ This is an example application for retrieving different kinds of images from an ## Download the code If you built ifm3d from source, you already have the code, in `ifm3d/examples/o3r/viewer`. If not, you can find the script [here](https://github.com/ifm/ifm3d/tree/main/examples/o3r/viewer). - ## Installation The recommended way is to use a virtual environment. @@ -75,6 +74,6 @@ python examples/python/viewer/ifm3dpy_viewer.py --pcic-port 50012 --image xyz ``` ### Display the JPEG image -``` +```sh python examples/python/viewer/ifm3dpy_viewer.py --pcic-port 50010 --image jpeg ``` diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/ods/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/ods/README.md.txt new file mode 100644 index 00000000..8a63d26b --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/ods/README.md.txt @@ -0,0 +1,15 @@ +# ODS + +## Overview +The ODS Python scripts will be briefly described below: + +- `ods_config.py` demonstrates how to set JSON configurations to the O3R system following the O3R schema. +- `ods_queue.py` handles the data queues of an ODS application. +- `ods_stream.py` provides functions showcasing how to receive data from the O3R platform +- `ods_visualization.py` is a script used for ODS visualization. +- `ods_demo.py` is using the other scripts to do a full demonstration of the ODS application. +- `transform_cell_to_user.py` showcases how to transform the occupancy grid cell index to coordinates in the user frame. + +## Configuration + +The examples use example JSON configuration files which contain dummy camera calibration and application parameters. These example files expect specific camera ports (3D cameras in ports 2 and 3). If your setup is different, edit the configuration files in `/ods/configs`. \ No newline at end of file diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/README.md.txt new file mode 100644 index 00000000..8ee4bc19 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/README.md.txt @@ -0,0 +1,25 @@ +# Toolbox + +Within the Toolbox, you find helper scripts, including: +- `collect_calibrations.py`: this is a helper script that gathers calibration information for all the connected heads. +- `h5_to_pcd_converter.py`: converts point cloud data from H5 files recorded with the ifmVisionAssistant to open3D PCD format. +- `registration_2d_3d.py`: shows how to find the color pixel corresponding to a distance pixel. See more details on the process below. +- `rot_human_read.py`: this script showcases two functions from the `o3r_algo_utilities` Python package that convert angles from Euler angles in radians to (roll, pitch, yaw) angles in degrees that are easier to interpret. +- `extrinsic_calibration/static_camera_calibration/calib_cam.py`: this is a script to use to perform the static calibration process using a checkerboard. Make sure to closely follow the instructions in the accompanying README. +- `update_settings_to_new_fw_schema.py`: this script can be used to update a configuration file from one firmware version to another, in the case where the schema was updated including breaking changes. The script will list out all the settings that were deleted and the user should check if these should be reapplied. This script expect a system with the same hardware configuration as the JSON configuration to be replicated. + +## `registration_2d_3d.py` + +This example shows how to find the closest pixel in the RGB image corresponding to each pixel in the distance image, in order to generate a colored point cloud. + +The process is done in several steps: + +1. Calculate the point cloud from the unit vectors of the 3D camera and the distance value for each pixels. Unit vectors are vectors of length 1 which point in the direction in which the pixel senses light. They are calculated using the intrinsic parameters of the optical system. This point cloud represents the surfaces visible to the TOF imager with (0, 0, 0) representing the center of the 3D optical frame. +2. Transform the point cloud to the user's coordinate system using the extrinsic calibration parameters of the camera. +3. Transform the point cloud to the 2D camera optical frame using the extrinsic calibration parameters of the 2D camera. Projecting the point cloud using the 2D camera's inverse intrinsic parameters will allow us to associate color information to the point cloud. + + +![2D/3D registration concept: point cloud ](_img/registration1.drawio.svg) + + +The same process would be used to associate an object identified in the 2D camera frame to specific points in the 3D point cloud. This is useful for example to associate a mask derived from human segmentation algorithms to the 3D point cloud for an accurate measure of proximity. diff --git a/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/extrinsic_calibration/static_camera_calibration/README.md.txt b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/extrinsic_calibration/static_camera_calibration/README.md.txt new file mode 100644 index 00000000..e2ef2ad7 --- /dev/null +++ b/latest/_sources/content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/extrinsic_calibration/static_camera_calibration/README.md.txt @@ -0,0 +1,3 @@ +# Static camera calibration + +This script is intended to be used along [the static calibration instructions on ifm3d.com](https://ifm3d.com/latest/SoftwareInterfaces/Toolbox/ExtrinsicCalibration/StaticCameraCalibration/README.html). \ No newline at end of file diff --git a/latest/_sources/content/installation_instructions/install_from_source_windows.md.txt b/latest/_sources/content/installation_instructions/install_from_source_windows.md.txt index d440d3f7..cb10a991 100644 --- a/latest/_sources/content/installation_instructions/install_from_source_windows.md.txt +++ b/latest/_sources/content/installation_instructions/install_from_source_windows.md.txt @@ -65,11 +65,6 @@ cmake --build . --config %CONFIG% --target install On successful execution of install step, user can disable the `BUILD_IN_DEPS` flag by appending ``` -DBUILD_IN_DEPS=OFF``` to CMake configure step, this will avoid building dependencies on every clean build. -### Building the Examples - -To build the [examples](https://ifm3d.com/sphinx-doc/build/html/ifm3d/doc/sphinx/content/examples/index.html), provide the path `IFM3D_BINARY_DIR` to `CMAKE_PREFIX_PATH` when running CMake configure stage. -To build the examples from source alongside the ifm3d library, enable the build with the `-DBUILD_EXAMPLES=ON`. - ### Running ifm3d command line tools After Building `ifm3d`, the binary files will be installed at ``%IFM3D_BUILD_DIR%\install\bin``. To run the ifm3d tool you need to add this @@ -87,5 +82,4 @@ $ ifm3d ### Using ifm3d-playground projects -After installing the ifm3d, one can use ifm3d-playground example, which shows basic CMake configuration required for using -installed ifm3d libraries [ifm3d playground example](https://github.com/ifm/ifm3d/tree/main/examples/o3r/ifm3d_playground) \ No newline at end of file +After installing the ifm3d, one can use [ifm3d-playground example available on GitHub](https://github.com/ifm/ifm3d-examples/tree/main/ovp8xx/cpp/core/ifm3d_playground), which shows basic CMake configuration required for using installed ifm3d libraries. \ No newline at end of file diff --git a/latest/_sources/content/migration_guide/v1_3_0.md.txt b/latest/_sources/content/migration_guide/v1_3_0.md.txt index 902c2dc6..8b6de733 100644 --- a/latest/_sources/content/migration_guide/v1_3_0.md.txt +++ b/latest/_sources/content/migration_guide/v1_3_0.md.txt @@ -1,5 +1,7 @@ # Migration Guide V1.3.0 +**There are no code changes required for customer code, however the default for logging changed, log messages will now be printed by default on the command line instead of a log file.** + ## Change of installed Python version in docker containers The default docker containers used to all contain the same Python version (3.9) regardless of the base image. Starting with this ifm3d version the installed Python will be replaced with the default of the corresponding Ubuntu version: @@ -10,7 +12,6 @@ The default docker containers used to all contain the same Python version (3.9) | Ubuntu 22.04 | Python 3.10.x | ## Replacement of glog with ifm3d::Logger -Version 1.3.0 marks the introduction of the ifm3d::Logger as a replacement for glog. - -There are no code changes required for customer code, however the default for logging changed, log messages will now be printed by default on the command line instead of a log file. Please see [](../../examples/logging/logging) for details on how to configure the logging behaviour. +Version 1.3.0 marks the introduction of the ifm3d::Logger as a replacement for glog. +There are no code changes required for customer code, however the default for logging changed, log messages will now be printed by default on the command line instead of a log file. Please see the [logger configuration docs](../../examples/logging/logging) for details on how to configure the logging behaviour. diff --git a/latest/_sources/content/stlimage.md.txt b/latest/_sources/content/stlimage.md.txt index b0da5f5c..d0d0b8ad 100644 --- a/latest/_sources/content/stlimage.md.txt +++ b/latest/_sources/content/stlimage.md.txt @@ -3,7 +3,7 @@ ```ifm3d::Buffer``` is designed to provide a C++ STL container that can hold buffer data of different types provided by ifm3d vision devices. Data is stored in sequential memory layout and ```ifm3d::Buffer``` provides a function template to access -the pixel. The pixel data type is defined in an enum [```ifm3d::pixel_format```](../../../modules/device/include/ifm3d/device/device.h#L69). +the pixel. The pixel data type is defined in an enumeration [```ifm3d::pixel_format```](../../../modules/device/include/ifm3d/device/device.h#L69). ```ifm3d::Buffer``` class does memory management and the user is free from the memory allocation and deallocation. The assignment operator and the copy constructor only copy the attributes and data is shared across the object. diff --git a/latest/_sources/examples/examples_list.md.txt b/latest/_sources/examples/examples_list.md.txt deleted file mode 100644 index 0fd567a8..00000000 --- a/latest/_sources/examples/examples_list.md.txt +++ /dev/null @@ -1,7 +0,0 @@ -## List of available examples for the 3D vision platforms - -The examples listed below show various applications using one of the ifm 3D perceptions platforms. Each example is intended to be used as inspiration and might not be up to date with the latest library updates. - -| File | Comments | Last updated on | -| ---- | -------- | --------------- | -| [time_sync.cpp](o3r/time_sync/time_sync.cpp) | DEPRECATED: camera heads are now automatically synchronized.
    Usage of timestamps and CONF/RUN modes for multi head application | March 2022 | \ No newline at end of file diff --git a/latest/_sources/examples/index.md.txt b/latest/_sources/examples/index.md.txt deleted file mode 100644 index 0a751542..00000000 --- a/latest/_sources/examples/index.md.txt +++ /dev/null @@ -1,16 +0,0 @@ -# Basic Library Usage -```{include} ../news/news_release.md -``` - -All ifm3d example scripts are, as their name implies, example scripts. -The customer may use these for testing, development, and deployment as permitted in their respective licenses. - -:::{toctree} -How to: configure the camera -How to: receive an image -How to: receive data from multiple heads -How to: view the images -How to: handle rgb data -How to: use the deserializer module -How to: configure the logging -::: \ No newline at end of file diff --git a/latest/_sources/examples/o3r/multi_head/multi_head.md.txt b/latest/_sources/examples/o3r/multi_head/multi_head.md.txt deleted file mode 100644 index 8ccaa5cb..00000000 --- a/latest/_sources/examples/o3r/multi_head/multi_head.md.txt +++ /dev/null @@ -1,4 +0,0 @@ -# How to: receive data from multiple heads -```{literalinclude} multi_head.cpp -:language: cpp -``` \ No newline at end of file diff --git a/latest/_sources/examples/o3r/oem/ssh/README.md.txt b/latest/_sources/examples/o3r/oem/ssh/README.md.txt deleted file mode 100644 index 3f59df13..00000000 --- a/latest/_sources/examples/o3r/oem/ssh/README.md.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Generating and uploading SSH keys - -This documentation was moved to [ifm3d.com](https://ifm3d.com/latest/Technology/VPU/ssh.html). \ No newline at end of file diff --git a/latest/_sources/examples/oem/ifm3d-on-VPU/README.md.txt b/latest/_sources/examples/oem/ifm3d-on-VPU/README.md.txt deleted file mode 100644 index 4817d6aa..00000000 --- a/latest/_sources/examples/oem/ifm3d-on-VPU/README.md.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Using the ifm3d locally on the VPU - -This documentation was moved to [ifm3d.com](https://ifm3d.com/latest/SoftwareInterfaces/Docker/deployVPU.html). \ No newline at end of file diff --git a/latest/_sources/index.md.txt b/latest/_sources/index.md.txt index ca6ea5e1..b19a91d2 100644 --- a/latest/_sources/index.md.txt +++ b/latest/_sources/index.md.txt @@ -7,12 +7,12 @@ Overview Installation instructions Migration Guide -Basic library usage +Basic library usage Command Line tool Manipulating images Python API C++ API -Examples +Examples Changelog <<< Back to O3R docs ::: diff --git a/latest/cli_link.html b/latest/cli_link.html index 7ae40eba..365de98c 100644 --- a/latest/cli_link.html +++ b/latest/cli_link.html @@ -23,7 +23,7 @@ - + @@ -48,12 +48,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • @@ -194,7 +194,7 @@

    Camera and Imager Configurationifm3d command line tool; 2) via the ifm3d library’s camera module API. We show below how to do so with the command line tool. -Please refer to this doc for instructions on configuring the camera through ifm3d library.

    +Please refer to
    this doc for instructions on configuring the camera through ifm3d library.

    The primary mechanism for using the ifm3d command line tool to configure an ifm 3D camera is to utilize the dump and config subcommands to ifm3d. The dump command serializes the camera state to JSON and prints it to stdout, diff --git a/latest/content/ChangeLog.html b/latest/content/ChangeLog.html index 3bd4db2c..7bd158f4 100644 --- a/latest/content/ChangeLog.html +++ b/latest/content/ChangeLog.html @@ -21,7 +21,7 @@ - + @@ -46,12 +46,12 @@

  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/README.html b/latest/content/README.html index 5d2737ce..5210d0af 100644 --- a/latest/content/README.html +++ b/latest/content/README.html @@ -47,12 +47,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • @@ -183,6 +183,10 @@

    Supported docker containershere.
    For more details on docker and the O3R platform see here.

    +
    +

    Examples

    +

    Examples for the ifm3d library can be found in the ifm3d-examples repository.

    +

    Report a bug and check the known issues

    Please see the GitHub Issue Tracker, or contact support.robotics@ifm.com.

    diff --git a/latest/examples/o3r/2d_data/2d_data.html b/latest/content/basic_lib_usage/2d_data/2d_data.html similarity index 51% rename from latest/examples/o3r/2d_data/2d_data.html rename to latest/content/basic_lib_usage/2d_data/2d_data.html index 1efdbce2..5a53b144 100644 --- a/latest/examples/o3r/2d_data/2d_data.html +++ b/latest/content/basic_lib_usage/2d_data/2d_data.html @@ -45,25 +45,24 @@
    -
    -

    Building the Examples

    -

    To build the examples, provide the path IFM3D_BINARY_DIR to CMAKE_PREFIX_PATH when running CMake configure stage. -To build the examples from source alongside the ifm3d library, enable the build with the -DBUILD_EXAMPLES=ON.

    -

    Running ifm3d command line tools

    After Building ifm3d, the binary files will be installed at @@ -177,8 +172,7 @@

    Running ifm3d command line tools

    Using ifm3d-playground projects

    -

    After installing the ifm3d, one can use ifm3d-playground example, which shows basic CMake configuration required for using -installed ifm3d libraries ifm3d playground example

    +

    After installing the ifm3d, one can use ifm3d-playground example available on GitHub, which shows basic CMake configuration required for using installed ifm3d libraries.

    diff --git a/latest/content/installation_instructions/install_linux_binary.html b/latest/content/installation_instructions/install_linux_binary.html index 3336b6f9..c6784b55 100644 --- a/latest/content/installation_instructions/install_linux_binary.html +++ b/latest/content/installation_instructions/install_linux_binary.html @@ -57,12 +57,12 @@
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/installation_instructions/install_linux_tegra.html b/latest/content/installation_instructions/install_linux_tegra.html index 49c006b9..29f4f2cf 100644 --- a/latest/content/installation_instructions/install_linux_tegra.html +++ b/latest/content/installation_instructions/install_linux_tegra.html @@ -45,12 +45,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/installation_instructions/install_py.html b/latest/content/installation_instructions/install_py.html index 6a301518..b652b589 100644 --- a/latest/content/installation_instructions/install_py.html +++ b/latest/content/installation_instructions/install_py.html @@ -53,12 +53,12 @@
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/installation_instructions/install_source_package_index.html b/latest/content/installation_instructions/install_source_package_index.html index 28b1a516..168e7892 100644 --- a/latest/content/installation_instructions/install_source_package_index.html +++ b/latest/content/installation_instructions/install_source_package_index.html @@ -57,12 +57,12 @@
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/installation_instructions/install_windows_binary.html b/latest/content/installation_instructions/install_windows_binary.html index d6414b3d..f4b503c5 100644 --- a/latest/content/installation_instructions/install_windows_binary.html +++ b/latest/content/installation_instructions/install_windows_binary.html @@ -57,12 +57,12 @@
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/migration_guide/index.html b/latest/content/migration_guide/index.html index 69f904e3..9718599f 100644 --- a/latest/content/migration_guide/index.html +++ b/latest/content/migration_guide/index.html @@ -53,12 +53,12 @@
  • v1.0.0
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/migration_guide/v1_0_0.html b/latest/content/migration_guide/v1_0_0.html index ae4e9e78..6c988e09 100644 --- a/latest/content/migration_guide/v1_0_0.html +++ b/latest/content/migration_guide/v1_0_0.html @@ -22,7 +22,7 @@ - + @@ -54,12 +54,12 @@
  • v1.0.0
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/migration_guide/v1_1_0.html b/latest/content/migration_guide/v1_1_0.html index 8535cb9b..bdda25c0 100644 --- a/latest/content/migration_guide/v1_1_0.html +++ b/latest/content/migration_guide/v1_1_0.html @@ -53,12 +53,12 @@
  • v1.0.0
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/migration_guide/v1_2_0.html b/latest/content/migration_guide/v1_2_0.html index 0d437d7c..544dd913 100644 --- a/latest/content/migration_guide/v1_2_0.html +++ b/latest/content/migration_guide/v1_2_0.html @@ -53,12 +53,12 @@
  • v1.0.0
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/migration_guide/v1_3_0.html b/latest/content/migration_guide/v1_3_0.html index 492075fc..d4f59bc0 100644 --- a/latest/content/migration_guide/v1_3_0.html +++ b/latest/content/migration_guide/v1_3_0.html @@ -53,12 +53,12 @@
  • v1.0.0
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • @@ -90,6 +90,7 @@

    Migration Guide V1.3.0

    +

    There are no code changes required for customer code, however the default for logging changed, log messages will now be printed by default on the command line instead of a log file.

    Change of installed Python version in docker containers

    The default docker containers used to all contain the same Python version (3.9) regardless of the base image. Starting with this ifm3d version the installed Python will be replaced with the default of the corresponding Ubuntu version:

    @@ -115,7 +116,7 @@

    Change of installed Python version in docker containers

    Replacement of glog with ifm3d::Logger

    Version 1.3.0 marks the introduction of the ifm3d::Logger as a replacement for glog.

    -

    There are no code changes required for customer code, however the default for logging changed, log messages will now be printed by default on the command line instead of a log file. Please see ifm3d::Logger - Logger for the ifm3d library for details on how to configure the logging behaviour.

    +

    There are no code changes required for customer code, however the default for logging changed, log messages will now be printed by default on the command line instead of a log file. Please see the logger configuration docs for details on how to configure the logging behaviour.

    diff --git a/latest/content/news/news_release.html b/latest/content/news/news_release.html index c15d80fb..af6bec44 100644 --- a/latest/content/news/news_release.html +++ b/latest/content/news/news_release.html @@ -45,12 +45,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/python.html b/latest/content/python.html index 513ddafc..91b15930 100644 --- a/latest/content/python.html +++ b/latest/content/python.html @@ -45,12 +45,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/content/stlimage.html b/latest/content/stlimage.html index ddd888e2..9dd97a44 100644 --- a/latest/content/stlimage.html +++ b/latest/content/stlimage.html @@ -47,12 +47,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • @@ -86,7 +86,7 @@

    ifm3d::Buffer- Basic C++ STL container for ifm3difm3d::Buffer is designed to provide a C++ STL container that can hold buffer data of different types provided by ifm3d vision devices. Data is stored in sequential memory layout and ifm3d::Buffer provides a function template to access -the pixel. The pixel data type is defined in an enum ifm3d::pixel_format. +the pixel. The pixel data type is defined in an enumeration ifm3d::pixel_format. ifm3d::Buffer class does memory management and the user is free from the memory allocation and deallocation. The assignment operator and the copy constructor only copy the attributes and data is shared across the object.

    diff --git a/latest/content/swcompat.html b/latest/content/swcompat.html index 0c30cc0d..7d4b4553 100644 --- a/latest/content/swcompat.html +++ b/latest/content/swcompat.html @@ -45,12 +45,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/docker/README.html b/latest/docker/README.html index 2746d1d8..cdc1250f 100644 --- a/latest/docker/README.html +++ b/latest/docker/README.html @@ -45,12 +45,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/examples/index.html b/latest/examples/index.html deleted file mode 100644 index 3e6aed69..00000000 --- a/latest/examples/index.html +++ /dev/null @@ -1,214 +0,0 @@ - - - - - - Basic Library Usage — ifm3d v1.5.3 documentation - - - - - - - - - - - - - - - - - - - - -
    - - -
    - - -
    -
    - - - - \ No newline at end of file diff --git a/latest/examples/o3r/deserialize/deserialize.html b/latest/examples/o3r/deserialize/deserialize.html deleted file mode 100644 index 4084d452..00000000 --- a/latest/examples/o3r/deserialize/deserialize.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - - - How to: deserialize O3R data — ifm3d v1.5.3 documentation - - - - - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -

    How to: deserialize O3R data

    -

    Some of the data provided by the O3R platform needs to be deserialized to be used. This is the case for:

    -
      -
    • the intrinsic calibration parameters (ifm3dpy.deserialize.Calibration), which provides details like which optical model is used (Fisheye, pinhole) and the values for each of the model’s parameters,

    • -
    • the extrinsic calibration (optics to user) parameters ( ifm3dpy.deserialize.ExtrinsicOpticToUser), which provides the transformations between the optical system and the reference point on the camera housing,

    • -
    • the ODS zone information (ifm3dpy.deserialize.ODSInfoV1), which contains the zone id being used and the occupancy of the zones,

    • -
    • the ODS occupancy grid information (ifm3dpy.deserialize.ODSOccupancyGridV1), which contains occupancy grid data and the transformation matrix,

    • -
    • the RGB information (ifm3dpy.deserialize.RGBInfoV1), which provides exposure times and calibration parameters for the O3R RGB cameras.

    • -
    -

    For more information on the data structures of each buffer please refer to the Python API documentation or the [C++ API documentation].

    -

    The usage of the deserializer is the same for all the buffers mentioned above: create the object, and call the deserialize function. Follow the example below for an example on deserializing the RGBInfoV1 buffer.

    -
    -
    #################################################################
    -# This examples shows how to use the deserializer module
    -# to extract data from the RGBInfoV1 buffer.
    -# The same principles can be applied to deserialize data from
    -# other buffers (see accompanying documentation for mode details)
    -#################################################################
    -# Import the relevant modules
    -from ifm3dpy.device import O3R
    -from ifm3dpy.framegrabber import FrameGrabber, buffer_id
    -from ifm3dpy.deserialize import RGBInfoV1
    -
    -###########################
    -# Choose the IP and port number
    -###########################
    -IP = "192.168.0.69"
    -PORT = "port0"
    -
    -###########################
    -# Create the O3R and FrameGrabber
    -# and choose which images
    -# to receive
    -###########################
    -o3r = O3R(IP)
    -# Assuming PORT is a 2D port
    -pcic_port = o3r.port(PORT).pcic_port
    -fg = FrameGrabber(cam=o3r, pcic_port=pcic_port)
    -# Define the images to receive when starting the data stream
    -fg.start([buffer_id.RGB_INFO])
    -try:
    -    # Get a frame
    -    [ok, frame] = fg.wait_for_frame().wait_for(500)
    -    # Retrieve the data from the relevant buffer
    -    if ok:
    -        rgb_info_buffer = frame.get_buffer(buffer_id.RGB_INFO)
    -    else:
    -        raise TimeoutError
    -except Exception as e:
    -    raise e
    -fg.stop()
    -###############################
    -# Extract data from the buffer
    -# Using the deserializer module
    -###############################
    -rgb_info = RGBInfoV1()
    -rgb_info_deser = rgb_info.deserialize(rgb_info_buffer)
    -print("Sample of data available in the RGBInfoV1 buffer:")
    -print(f"RGB info timestamp: {rgb_info_deser.timestamp_ns}")
    -print(f"Exposure time used for rgb images: {rgb_info_deser.exposure_time}")
    -print(
    -    f"RGB intrinsic calibration model id: {rgb_info_deser.intrinsic_calibration.model_id}"
    -)
    -print(
    -    f"RGB intrinsic calibration parameters: {rgb_info_deser.intrinsic_calibration.parameters}"
    -)
    -
    -
    -
    -
    - - -
    -
    - - - - - - - - - - Footer With Address And Links - - - - - - - -
    - - - - - -
    - - - - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/latest/examples/o3r/multi_head/multi_head.html b/latest/examples/o3r/multi_head/multi_head.html deleted file mode 100644 index 118961b1..00000000 --- a/latest/examples/o3r/multi_head/multi_head.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - - - How to: receive data from multiple heads — ifm3d v1.5.3 documentation - - - - - - - - - - - - - - - - - - - - -
    - - -
    - -
    -
    -
    - -
    -
    -
    -
    - -
    -

    How to: receive data from multiple heads

    -
    /*
    - * Copyright 2021-present ifm electronic, gmbh
    - * SPDX-License-Identifier: Apache-2.0
    - */
    -
    -/*How to: receive data from multiple heads
    - One feature of the O3R platform is to enable the use of multiple camera heads
    - of different types (2D, 3D, various resolutions, etc). In this example, we
    - show how to retrieve the pcic port number for each head connected to the VPU
    - along with its type, create `FrameGrabber` objects and get a frame for each.
    -*/
    -#include <ifm3d/device/o3r.h>
    -#include <chrono>
    -#include <iostream>
    -#include <iomanip>
    -#include <ifm3d/fg.h>
    -
    -using namespace std::chrono_literals;
    -
    -// This function formats the timestamps for proper display
    -// a.k.a converts to local time
    -std::string
    -formatTimestamp(ifm3d::TimePointT timestamp)
    -{
    -  using namespace std::chrono;
    -  std::time_t time = std::chrono::system_clock::to_time_t(
    -    std::chrono::time_point_cast<std::chrono::system_clock::duration>(
    -      timestamp));
    -
    -  milliseconds milli = duration_cast<milliseconds>(
    -    timestamp.time_since_epoch() -
    -    duration_cast<seconds>(timestamp.time_since_epoch()));
    -
    -  std::ostringstream s;
    -  s << std::put_time(std::localtime(&time), "%Y-%m-%d %H:%M:%S") << ":"
    -    << std::setw(3) << std::setfill('0') << milli.count();
    -
    -  return s.str();
    -}
    -
    -int
    -main()
    -{
    -
    -  // Declare the camera object
    -  auto o3r = std::make_shared<ifm3d::O3R>();
    -  // Retreive ports configuration
    -  ifm3d::json conf = o3r->Get();
    -  // Initialize the structures
    -  std::vector<ifm3d::FrameGrabber::Ptr> fgs;
    -
    -  std::cout << "Available connections:" << std::endl;
    -
    -  for (const auto& port : conf["ports"].items())
    -    {
    -      // Create lists of connected PCIC ports along with types
    -      ifm3d::json::json_pointer p1("/ports/" + port.key() +
    -                                      "/data/pcicTCPPort");
    -      const auto pcic = conf[p1];
    -      ifm3d::json::json_pointer p2("/ports/" + port.key() +
    -                                      "/info/features/type");
    -      const auto type = conf[p2];
    -      // Display connected port with type
    -      std::cout << "Port: " << port.key() << "\t PCIC: " << pcic
    -                << "\t Type: " << type << std::endl;
    -      // Create list of FrameGrabber and ImageBuffer objects for connected
    -      // ports
    -      auto fg = std::make_shared<ifm3d::FrameGrabber>(o3r, pcic);
    -
    -      // Start the framegrabber
    -      if (type=="2D"){
    -        fg->Start({ifm3d::buffer_id::JPEG_IMAGE});
    -      }
    -      else{
    -        fg->Start({ifm3d::buffer_id::XYZ});
    -      }
    -      fgs.push_back(fg);
    -    }
    -
    -  // Grab frames from each heads
    -  // The timestamp has two parts, the timestamp in seconds and the timestamp in
    -  // nanoseconds
    -  for (auto fg : fgs)
    -    {
    -      auto future = fg->WaitForFrame();
    -      if (future.wait_for(3s) != std::future_status::ready)
    -        {
    -          std::cerr << "Timeout waiting for camera!" << std::endl;
    -          return -1;
    -        }
    -      auto frame = future.get();
    -      std::cout << "Timestamp of frame " << std::setw(2) << std::setfill('0')
    -                << ": " << formatTimestamp(frame->TimeStamps()[0])
    -                << std::endl;
    -      
    -      fg->Stop();
    -    }
    -
    -  return 0;
    -}
    -
    -
    -
    - - -
    -
    - - - - - - - - - - Footer With Address And Links - - - - - - - -
    - - - - - -
    - - - - -
    -
    -
    -
    - - - - \ No newline at end of file diff --git a/latest/genindex.html b/latest/genindex.html index 5af24c64..1cb6de4f 100644 --- a/latest/genindex.html +++ b/latest/genindex.html @@ -46,12 +46,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/index.html b/latest/index.html index 106cce86..e5ec78c7 100644 --- a/latest/index.html +++ b/latest/index.html @@ -46,12 +46,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • @@ -112,14 +112,13 @@

    ifm3d libraryv1.0.0 -
  • Basic library usage diff --git a/latest/objects.inv b/latest/objects.inv index 8f49459a..aa0bdb5b 100644 Binary files a/latest/objects.inv and b/latest/objects.inv differ diff --git a/latest/py-modindex.html b/latest/py-modindex.html index 4c40a626..280f7b51 100644 --- a/latest/py-modindex.html +++ b/latest/py-modindex.html @@ -49,12 +49,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/python_api.html b/latest/python_api.html index e391f888..6dad5036 100644 --- a/latest/python_api.html +++ b/latest/python_api.html @@ -47,7 +47,7 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
      @@ -60,7 +60,7 @@
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/search.html b/latest/search.html index 59b0c330..d6a31614 100644 --- a/latest/search.html +++ b/latest/search.html @@ -49,12 +49,12 @@
  • Overview
  • Installation instructions
  • Migration Guide
  • -
  • Basic library usage
  • +
  • Basic library usage
  • Command Line tool
  • Manipulating images
  • Python API
  • C++ API
  • -
  • Examples
  • +
  • Examples
  • Changelog
  • <<< Back to O3R docs
  • diff --git a/latest/searchindex.js b/latest/searchindex.js index db886c76..f2018d8b 100644 --- a/latest/searchindex.js +++ b/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["_autosummary/ifm3dpy", "_autosummary/ifm3dpy.Awaitable", "_autosummary/ifm3dpy.FrameAwaitable", "_autosummary/ifm3dpy.deserialize", "_autosummary/ifm3dpy.deserialize.Calibration", "_autosummary/ifm3dpy.deserialize.ExtrinsicOpticToUser", "_autosummary/ifm3dpy.deserialize.O3DExposureTimes", "_autosummary/ifm3dpy.deserialize.O3DExtrinsicCalibration", "_autosummary/ifm3dpy.deserialize.O3DILLUTemperature", "_autosummary/ifm3dpy.deserialize.O3DInstrinsicCalibration", "_autosummary/ifm3dpy.deserialize.O3DInverseInstrinsicCalibration", "_autosummary/ifm3dpy.deserialize.ODSInfoV1", "_autosummary/ifm3dpy.deserialize.ODSOccupancyGridV1", "_autosummary/ifm3dpy.deserialize.RGBInfoV1", "_autosummary/ifm3dpy.deserialize.TOFInfoV3", "_autosummary/ifm3dpy.deserialize.TOFInfoV4", "_autosummary/ifm3dpy.device", "_autosummary/ifm3dpy.device.Device", "_autosummary/ifm3dpy.device.Error", "_autosummary/ifm3dpy.device.LegacyDevice", "_autosummary/ifm3dpy.device.O3D", "_autosummary/ifm3dpy.device.O3R", "_autosummary/ifm3dpy.device.O3X", "_autosummary/ifm3dpy.device.PortInfo", "_autosummary/ifm3dpy.device.SemVer", "_autosummary/ifm3dpy.framegrabber", "_autosummary/ifm3dpy.framegrabber.Frame", "_autosummary/ifm3dpy.framegrabber.FrameGrabber", "_autosummary/ifm3dpy.framegrabber.buffer_id", "_autosummary/ifm3dpy.logging", "_autosummary/ifm3dpy.logging.LogEntry", "_autosummary/ifm3dpy.logging.LogFormatterJson", "_autosummary/ifm3dpy.logging.LogFormatterText", "_autosummary/ifm3dpy.logging.LogLevel", "_autosummary/ifm3dpy.logging.LogWriter", "_autosummary/ifm3dpy.logging.Logger", "_autosummary/ifm3dpy.run", "_autosummary/ifm3dpy.swupdater", "_autosummary/ifm3dpy.swupdater.SWUpdater", "cli_link", "content/ChangeLog", "content/README", "content/cmdline_configuring", "content/cmdline_examples", "content/cmdline_overview", "content/installation_instructions/index", "content/installation_instructions/install_binary_package_index", "content/installation_instructions/install_docker", "content/installation_instructions/install_from_source_linux", "content/installation_instructions/install_from_source_windows", "content/installation_instructions/install_linux_binary", "content/installation_instructions/install_linux_tegra", "content/installation_instructions/install_py", "content/installation_instructions/install_source_package_index", "content/installation_instructions/install_windows_binary", "content/migration_guide/index", "content/migration_guide/v1_0_0", "content/migration_guide/v1_1_0", "content/migration_guide/v1_2_0", "content/migration_guide/v1_3_0", "content/news/news_release", "content/python", "content/stlimage", "content/swcompat", "cpp_api/annotated", "docker/README", "examples/examples_list", "examples/index", "examples/logging/logging", "examples/o3r/2d_data/2d_data", "examples/o3r/configuration/configuration", "examples/o3r/deserialize/deserialize", "examples/o3r/getting_data/getting_data", "examples/o3r/ifm3d_playground/README", "examples/o3r/multi_head/multi_head", "examples/o3r/oem/ssh/README", "examples/o3r/viewer/README", "examples/oem/ifm3d-on-VPU/README", "index", "python_api"], "filenames": ["_autosummary/ifm3dpy.rst", "_autosummary/ifm3dpy.Awaitable.rst", "_autosummary/ifm3dpy.FrameAwaitable.rst", "_autosummary/ifm3dpy.deserialize.rst", "_autosummary/ifm3dpy.deserialize.Calibration.rst", "_autosummary/ifm3dpy.deserialize.ExtrinsicOpticToUser.rst", "_autosummary/ifm3dpy.deserialize.O3DExposureTimes.rst", "_autosummary/ifm3dpy.deserialize.O3DExtrinsicCalibration.rst", "_autosummary/ifm3dpy.deserialize.O3DILLUTemperature.rst", "_autosummary/ifm3dpy.deserialize.O3DInstrinsicCalibration.rst", "_autosummary/ifm3dpy.deserialize.O3DInverseInstrinsicCalibration.rst", "_autosummary/ifm3dpy.deserialize.ODSInfoV1.rst", "_autosummary/ifm3dpy.deserialize.ODSOccupancyGridV1.rst", "_autosummary/ifm3dpy.deserialize.RGBInfoV1.rst", "_autosummary/ifm3dpy.deserialize.TOFInfoV3.rst", "_autosummary/ifm3dpy.deserialize.TOFInfoV4.rst", "_autosummary/ifm3dpy.device.rst", "_autosummary/ifm3dpy.device.Device.rst", "_autosummary/ifm3dpy.device.Error.rst", "_autosummary/ifm3dpy.device.LegacyDevice.rst", "_autosummary/ifm3dpy.device.O3D.rst", "_autosummary/ifm3dpy.device.O3R.rst", "_autosummary/ifm3dpy.device.O3X.rst", "_autosummary/ifm3dpy.device.PortInfo.rst", "_autosummary/ifm3dpy.device.SemVer.rst", "_autosummary/ifm3dpy.framegrabber.rst", "_autosummary/ifm3dpy.framegrabber.Frame.rst", "_autosummary/ifm3dpy.framegrabber.FrameGrabber.rst", "_autosummary/ifm3dpy.framegrabber.buffer_id.rst", "_autosummary/ifm3dpy.logging.rst", "_autosummary/ifm3dpy.logging.LogEntry.rst", "_autosummary/ifm3dpy.logging.LogFormatterJson.rst", "_autosummary/ifm3dpy.logging.LogFormatterText.rst", "_autosummary/ifm3dpy.logging.LogLevel.rst", "_autosummary/ifm3dpy.logging.LogWriter.rst", "_autosummary/ifm3dpy.logging.Logger.rst", "_autosummary/ifm3dpy.run.rst", "_autosummary/ifm3dpy.swupdater.rst", "_autosummary/ifm3dpy.swupdater.SWUpdater.rst", "cli_link.md", "content/ChangeLog.md", "content/README.md", "content/cmdline_configuring.md", "content/cmdline_examples.md", "content/cmdline_overview.md", "content/installation_instructions/index.md", "content/installation_instructions/install_binary_package_index.md", "content/installation_instructions/install_docker.md", "content/installation_instructions/install_from_source_linux.md", "content/installation_instructions/install_from_source_windows.md", "content/installation_instructions/install_linux_binary.md", "content/installation_instructions/install_linux_tegra.md", "content/installation_instructions/install_py.md", "content/installation_instructions/install_source_package_index.md", "content/installation_instructions/install_windows_binary.md", "content/migration_guide/index.md", "content/migration_guide/v1_0_0.md", "content/migration_guide/v1_1_0.md", "content/migration_guide/v1_2_0.md", "content/migration_guide/v1_3_0.md", "content/news/news_release.md", "content/python.md", "content/stlimage.md", "content/swcompat.md", "cpp_api/annotated.md", "docker/README.md", "examples/examples_list.md", "examples/index.md", "examples/logging/logging.md", "examples/o3r/2d_data/2d_data.md", "examples/o3r/configuration/configuration.md", "examples/o3r/deserialize/deserialize.md", "examples/o3r/getting_data/getting_data.md", "examples/o3r/ifm3d_playground/README.md", "examples/o3r/multi_head/multi_head.md", "examples/o3r/oem/ssh/README.md", "examples/o3r/viewer/README.md", "examples/oem/ifm3d-on-VPU/README.md", "index.md", "python_api.md"], "titles": ["ifm3dpy", "ifm3dpy.Awaitable", "ifm3dpy.FrameAwaitable", "ifm3dpy.deserialize", "ifm3dpy.deserialize.Calibration", "ifm3dpy.deserialize.ExtrinsicOpticToUser", "ifm3dpy.deserialize.O3DExposureTimes", "ifm3dpy.deserialize.O3DExtrinsicCalibration", "ifm3dpy.deserialize.O3DILLUTemperature", "ifm3dpy.deserialize.O3DInstrinsicCalibration", "ifm3dpy.deserialize.O3DInverseInstrinsicCalibration", "ifm3dpy.deserialize.ODSInfoV1", "ifm3dpy.deserialize.ODSOccupancyGridV1", "ifm3dpy.deserialize.RGBInfoV1", "ifm3dpy.deserialize.TOFInfoV3", "ifm3dpy.deserialize.TOFInfoV4", "ifm3dpy.device", "ifm3dpy.device.Device", "ifm3dpy.device.Error", "ifm3dpy.device.LegacyDevice", "ifm3dpy.device.O3D", "ifm3dpy.device.O3R", "ifm3dpy.device.O3X", "ifm3dpy.device.PortInfo", "ifm3dpy.device.SemVer", "ifm3dpy.framegrabber", "ifm3dpy.framegrabber.Frame", "ifm3dpy.framegrabber.FrameGrabber", "ifm3dpy.framegrabber.buffer_id", "ifm3dpy.logging", "ifm3dpy.logging.LogEntry", "ifm3dpy.logging.LogFormatterJson", "ifm3dpy.logging.LogFormatterText", "ifm3dpy.logging.LogLevel", "ifm3dpy.logging.LogWriter", "ifm3dpy.logging.Logger", "ifm3dpy.run", "ifm3dpy.swupdater", "ifm3dpy.swupdater.SWUpdater", "ifm3d - Command Line Tool", "Changelog", "ifm3d Overview", "Camera and Imager Configuration", "Examples", "ifm3d - Command Line Tool", "Installing the software", "Install binary package", "Docker development containers", "Installing ifm3d from source", "Building ifm3d from source on Windows", "Installing ifm3d from .deb file", "Linux for Tegra", "Python installation", "Install binary package", "Install using the ifm3d installer", "Migrating guide", "Migration Guide V1.0.0", "Migration Guide V1.1.0", "Migration Guide V1.2.0", "Migration Guide V1.3.0", "<no title>", "Python bindings for ifm3d", "ifm3d::Buffer- Basic C++ STL container for ifm3d", "ifm3d Software Compatibility Matrix", "C++ API Reference", "ifm3d - Docker", "List of available examples for the 3D vision platforms", "Basic Library Usage", "ifm3d::Logger - Logger for the ifm3d library", "How to: receive and use the 2D RGB image", "How to: configure the camera", "How to: deserialize O3R data", "How to: receive an image", "ifm3d playground project", "How to: receive data from multiple heads", "Generating and uploading SSH keys", "ifm3dpy Viewer", "Using the ifm3d locally on the VPU", "ifm3d library", "Python API Reference"], "terms": {"bind": [0, 40, 41, 48, 63], "ifm3d": [0, 19, 20, 22, 27, 29, 35, 36, 43, 47, 51, 55, 56, 57, 60, 67, 69, 70, 71, 72, 74, 75, 76], "librari": [0, 18, 39, 40, 41, 42, 48, 49, 50, 51, 54, 56, 58, 59, 63, 66, 70], "variabl": [0, 19, 20, 22, 40, 49, 54], "__version__": [0, 52], "The": [0, 13, 14, 15, 17, 19, 20, 21, 22, 23, 27, 30, 33, 38, 39, 40, 41, 42, 44, 47, 49, 50, 51, 52, 54, 56, 57, 58, 59, 60, 62, 65, 66, 67, 68, 71, 74, 76, 78], "version": [0, 13, 14, 15, 17, 19, 20, 21, 22, 24, 39, 40, 42, 44, 47, 48, 49, 51, 52, 56, 57, 58, 60, 63, 65, 78], "__package__": 0, "packag": [0, 40, 45, 49, 50, 51, 52, 54, 65, 78], "default_ip": 0, "default": [0, 17, 19, 20, 21, 22, 27, 28, 39, 40, 43, 44, 47, 54, 56, 58, 59, 62, 65, 68, 76], "ip": [0, 17, 19, 20, 21, 22, 36, 39, 43, 44, 65, 70, 71, 72, 76], "connect": [0, 17, 19, 20, 21, 22, 23, 27, 40, 42, 52, 56, 65, 70, 72, 74], "default_xmlrpc_port": 0, "xmlrpc": [0, 16, 17, 19, 20, 21, 22, 39, 40, 41, 43, 44, 48, 49, 76], "port": [0, 17, 19, 20, 21, 22, 23, 27, 38, 39, 40, 42, 43, 44, 52, 68, 69, 70, 71, 72, 74, 76], "default_password": 0, "password": [0, 17, 19, 20, 21, 22, 39, 43, 44, 63, 72], "o3d_time_support_major": 0, "constant": [0, 17, 19, 20, 21, 22], "queri": [0, 62, 70], "o3d": [0, 6, 7, 8, 9, 17, 19, 21, 22, 39, 40, 41, 42, 48, 49, 50, 54, 56, 62, 63, 65, 70, 72, 78], "time": [0, 13, 14, 15, 19, 20, 22, 30, 40, 42, 44, 56, 62, 63, 65, 69, 71, 72, 74], "support": [0, 19, 20, 22, 27, 39, 40, 42, 44, 48, 49, 54, 62, 63, 68], "o3d_time_support_minor": 0, "o3d_time_support_patch": 0, "o3d_tmp_params_support_major": 0, "temporari": [0, 19, 20, 21, 22, 40], "paramet": [0, 4, 5, 13, 14, 15, 17, 19, 20, 21, 22, 27, 36, 40, 44, 56, 62, 63, 70, 71, 72], "o3d_tmp_params_support_minor": 0, "o3d_tmp_params_support_patch": 0, "o3d_intrinsic_param_support_major": 0, "intrins": [0, 13, 14, 15, 40, 56, 62, 63, 71], "o3d_intrinsic_param_support_minor": 0, "o3d_intrinsic_param_support_patch": 0, "o3d_inverse_intrinsic_param_support_major": 0, "invers": [0, 13, 14, 15, 40, 62, 63], "o3d_inverse_intrinsic_param_support_minor": 0, "o3d_inverse_intrinsic_param_support_patch": 0, "function": [0, 3, 17, 19, 20, 21, 22, 27, 36, 38, 40, 41, 56, 57, 62, 68, 69, 70, 71, 72, 74], "class": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 56, 58, 62, 68, 70, 72], "base": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 47, 48, 50, 51, 52, 59, 62], "none": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 38, 68], "provid": [1, 2, 3, 16, 19, 20, 21, 22, 23, 25, 27, 29, 35, 36, 37, 39, 40, 41, 43, 48, 49, 51, 52, 54, 56, 62, 63, 65, 68, 70, 71, 72, 73], "mechan": [1, 2, 39, 42], "wait": [1, 2, 38, 40, 56, 57, 67, 71, 74], "complet": [1, 19, 20, 22, 40, 57, 58, 63], "task": [1, 39, 42, 44, 72], "__init__": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 38], "self": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 33, 34, 38, 68, 69], "method": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 38, 40, 56, 58, 62, 68, 72], "block": [1, 2, 15, 39, 40, 42], "until": [1, 2, 56, 57, 72], "result": [1, 2, 17, 19, 20, 21, 22, 27, 39, 40, 42, 57], "becom": [1, 2, 58], "avail": [1, 2, 17, 19, 20, 21, 22, 26, 27, 28, 39, 40, 41, 42, 44, 47, 49, 56, 60, 61, 71, 72, 74, 78], "wait_for": [1, 2, 56, 71, 72, 74], "timeout_m": [1, 2], "int": [1, 2, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 33, 36, 38, 62, 68, 69, 70, 71, 72, 74], "tupl": [1, 2, 36], "bool": [1, 2, 17, 19, 20, 21, 22, 26, 27, 38], "specifi": [1, 2, 17, 19, 20, 21, 22, 47, 56, 65], "timeout": [1, 2, 19, 20, 22, 38, 40, 56, 63, 71, 72, 74], "run": [1, 2, 17, 19, 20, 21, 22, 27, 39, 40, 42, 44, 48, 51, 52, 56, 63, 66, 69, 72, 78], "out": [1, 2, 17, 19, 20, 21, 22, 39, 40, 42, 44, 48, 65, 73], "return": [1, 2, 17, 18, 19, 20, 21, 22, 27, 36, 38, 40, 57, 62, 68, 69, 70, 71, 72, 74], "true": [1, 2, 17, 19, 20, 21, 22, 27, 38, 39, 40, 42, 43, 65], "wa": [1, 2, 40, 58, 72, 75, 77], "receiv": [1, 2, 26, 27, 40, 67, 71, 76, 78], "within": [1, 2, 41, 52, 68], "fals": [1, 2, 17, 19, 20, 21, 22, 39, 40, 42, 43, 52], "otherwis": [1, 2, 19, 20, 22, 70], "access": [2, 29, 35, 39, 40, 41, 42, 58, 65, 67, 68], "frame": [2, 13, 27, 38, 40, 58, 62, 63, 65, 67, 68, 69, 71, 74, 78], "object": [2, 17, 19, 20, 21, 22, 26, 31, 56, 68, 69, 70, 71, 72, 74], "definit": [3, 40, 41, 56], "struct": [3, 11, 12, 13, 14, 15, 24, 40, 41, 62], "sent": [3, 41, 56], "over": [3, 17, 19, 20, 21, 22, 40, 41, 65], "pcic": [3, 17, 19, 20, 21, 22, 23, 25, 27, 40, 41, 63, 72, 74, 76], "manag": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 37, 38, 40, 41, 62, 72], "an": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 25, 27, 38, 39, 40, 41, 42, 43, 44, 47, 51, 52, 54, 56, 62, 65, 67, 68, 70, 71, 76, 78], "instanc": [4, 5, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 27, 38, 39, 42, 47, 56, 63, 68, 69, 70, 72], "constructor": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 27, 38, 56, 62], "attribut": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 28, 30, 33, 40, 62], "properti": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 28, 30, 33, 39, 42], "model_id": [4, 71], "model": [4, 17, 19, 20, 21, 22, 39, 40, 42, 62, 71], "id": [4, 11, 19, 20, 22, 26, 27, 39, 40, 42, 43, 57, 63, 65, 71], "extrins": [5, 13, 14, 15, 40, 63, 71], "rot_x": 5, "rotx": [5, 39, 42, 52], "rot_i": 5, "roti": [5, 39, 42, 52], "rot_z": 5, "rotz": [5, 39, 42, 52], "trans_x": 5, "transx": [5, 39, 42, 52], "trans_i": 5, "transi": [5, 39, 42, 52], "trans_z": 5, "transz": [5, 39, 42, 52], "o3d_paramet": [6, 7, 8, 9], "data": [6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 21, 22, 25, 26, 27, 39, 40, 41, 42, 52, 58, 63, 65, 67, 68, 70, 78], "arrai": [6, 7, 8, 9, 11, 12, 19, 20, 22, 41, 62], "paramt": [6, 7, 8, 9, 13], "valu": [6, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 28, 33, 38, 39, 40, 42, 48, 62, 68, 70, 71], "static": [6, 7, 8, 9, 11, 12, 13, 14, 15, 24, 31, 32, 35, 40, 69], "arg0": [6, 7, 8, 9, 11, 12, 13, 14, 15, 24, 27, 35, 36], "numpi": [6, 7, 8, 9, 11, 12, 13, 14, 15, 40, 41], "ndarrai": [6, 7, 8, 9, 11, 12, 13, 14, 15], "uint8": [6, 7, 8, 9, 11, 12, 13, 14, 15], "buffer": [6, 7, 8, 9, 11, 12, 13, 14, 15, 26, 27, 39, 40, 44, 57, 63, 69, 71, 72], "alia": [10, 40], "o3dinstrinsiccalibr": [10, 78], "ods_info": 11, "timestamp_n": [11, 12, 13, 71], "timestamp": [11, 12, 13, 14, 15, 26, 40, 63, 66, 71, 74], "zone": [11, 71], "inform": [11, 19, 20, 21, 22, 23, 24, 40, 48, 68, 71], "n": [11, 15, 63], "zone_config_id": 11, "user": [11, 12, 14, 15, 19, 20, 22, 40, 48, 49, 58, 62, 68, 71, 73], "specif": [11, 17, 19, 20, 21, 22, 27, 39, 40, 42, 47, 50, 51, 56, 65, 68, 70, 72], "identifi": [11, 15, 69, 70, 71, 72, 74], "configur": [11, 16, 17, 19, 20, 21, 22, 29, 35, 40, 41, 44, 48, 49, 52, 54, 56, 58, 59, 67, 68, 72, 73, 74, 78], "zone_occupi": 11, "three": [11, 72], "uint8_t": [11, 62], "0": [11, 12, 13, 15, 17, 19, 20, 21, 22, 26, 36, 38, 39, 42, 43, 44, 47, 48, 49, 50, 52, 55, 62, 63, 65, 68, 69, 70, 71, 72, 74, 76, 78], "i": [11, 13, 15, 17, 19, 20, 21, 22, 26, 27, 36, 38, 39, 40, 41, 42, 43, 44, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 60, 61, 62, 63, 65, 66, 68, 69, 70, 71, 72, 74, 76, 78], "free": [11, 19, 20, 22, 49, 62], "1": [11, 12, 15, 19, 20, 22, 39, 42, 43, 44, 52, 55, 56, 58, 59, 62, 63, 65, 68, 69, 70, 71, 72, 74, 78], "occupi": 11, "height": [12, 39, 42, 52, 62, 68, 69, 72], "number": [12, 15, 17, 19, 20, 21, 22, 26, 40, 48, 58, 68, 71, 72, 74], "grid": [12, 71], "cell": 12, "imag": [12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 25, 26, 27, 40, 41, 44, 47, 56, 59, 62, 63, 65, 67, 71, 78], "width": [12, 39, 42, 52, 62, 68, 69, 72], "transform_cell_center_to_us": [12, 40], "matrix": [12, 41, 62, 71], "2x3": 12, "affin": 12, "map": 12, "between": [12, 41, 48, 49, 56, 71, 72], "coordin": [12, 40, 48, 62], "system": [12, 17, 18, 19, 20, 21, 22, 40, 50, 51, 63, 71], "e": [12, 17, 19, 20, 21, 22, 36, 58, 65, 71], "g": [12, 36, 49, 58, 65], "multipli": 12, "give": [12, 31, 32, 39, 44], "center": [12, 72], "upper": 12, "left": [12, 39, 43], "rgb_info": [13, 28, 57, 71], "exposure_tim": [13, 28, 62, 71], "actual": [13, 14, 15, 39, 40, 42, 44, 57], "exposur": [13, 14, 15, 19, 20, 22, 62, 71], "2d": [13, 39, 40, 42, 52, 56, 62, 71, 72, 74], "extrinsic_optic_to_us": [13, 14, 15, 40], "optic": [13, 14, 15, 71], "head": [13, 14, 15, 39, 42, 52, 66, 67, 68, 70, 72, 78], "frame_count": [13, 26], "count": [13, 17, 19, 20, 21, 22, 26, 74], "counter": [13, 40, 72], "initi": [13, 19, 20, 21, 22, 40, 63, 69, 70, 72, 74], "intrinsic_calibr": [13, 14, 15, 62, 71], "calibr": [13, 14, 15, 40, 56, 62, 71, 78], "inverse_intrinsic_calibr": [13, 14, 15, 28, 62], "given": [13, 18, 19, 20, 21, 22, 26, 34, 40, 62], "nano": [13, 14, 15], "second": [13, 14, 15, 19, 20, 22, 40, 68, 69, 74], "amp_normalization_factor": [14, 15], "amplitud": [14, 15, 40, 56, 67], "normal": [14, 15, 17, 19, 20, 21, 22, 40], "factor": [14, 15], "individu": [14, 15], "amplitude_resolut": [14, 15], "resolut": [14, 15, 39, 42, 52, 72, 74], "tof_info": [14, 15, 28, 57], "distance_resolut": [14, 15], "distanc": [14, 15, 40, 41, 56, 67, 72], "per": [14, 15, 40, 68, 72], "digit": [14, 15, 40, 41], "m": [14, 15, 52, 74, 76], "exposure_times_": [14, 15], "singl": [14, 15, 19, 20, 22, 30, 40, 43], "phase": [14, 15], "exposure_timestamps_n": [14, 15], "illu_temperatur": [14, 15], "illumin": [14, 15, 39, 40, 42, 62, 63], "temperatur": [14, 15, 39, 40, 42, 52, 56, 62, 63], "type": [14, 15, 17, 19, 20, 21, 22, 23, 27, 36, 39, 40, 42, 44, 48, 52, 56, 72, 74], "mode": [14, 15, 17, 19, 20, 21, 22, 27, 38, 39, 40, 42, 44, 52, 66, 67, 68, 71], "tofinfov3": [15, 40, 78], "measurement_block_index": 15, "current": [15, 17, 19, 20, 21, 22, 27, 39, 40, 41, 42, 43, 44, 58, 65, 67], "measur": [15, 70], "index": [15, 19, 20, 22, 26, 39, 42, 43, 44, 62, 65], "rang": [15, 19, 20, 22, 62], "where": [15, 39, 44, 62], "sub": [15, 40], "thi": [15, 17, 19, 20, 21, 22, 26, 27, 30, 35, 36, 39, 41, 42, 43, 44, 47, 48, 49, 50, 52, 54, 55, 56, 57, 58, 59, 61, 62, 65, 68, 69, 70, 71, 72, 74, 75, 76, 77], "us": [15, 17, 19, 20, 21, 22, 28, 36, 39, 41, 42, 43, 44, 47, 48, 50, 51, 52, 56, 58, 59, 62, 63, 65, 66, 67, 68, 70, 71, 73, 74, 76, 78], "cyclic": 15, "In": [15, 19, 20, 22, 39, 42, 43, 57, 74, 76], "non": [15, 40, 68], "alwai": [15, 40, 41, 52], "measurement_range_max": 15, "maximum": 15, "camera": [15, 16, 17, 19, 20, 21, 22, 27, 37, 38, 40, 41, 44, 48, 52, 63, 65, 66, 67, 68, 71, 72, 74, 78], "tof": [15, 41], "It": [15, 27, 36, 39, 40, 41, 42, 48, 49, 54, 56, 68, 72], "influenc": [15, 70], "measurement_range_min": 15, "minimum": [15, 17, 19, 20, 21, 22, 40], "implement": [16, 25, 27, 40, 41, 58, 63, 68], "protocol": [16, 25, 41], "pmd": [16, 41], "set": [16, 17, 18, 19, 20, 21, 22, 27, 35, 40, 41, 44, 49, 54, 56, 62, 63, 67, 68, 69, 70, 71], "except": [16, 17, 18, 19, 20, 21, 22, 27, 40, 71], "all": [17, 19, 20, 21, 22, 27, 39, 40, 41, 42, 44, 48, 50, 59, 60, 65, 67, 68, 70, 71, 72, 78], "str": [17, 18, 19, 20, 21, 22, 24, 27, 31, 32, 36, 38, 74], "192": [17, 19, 20, 21, 22, 36, 39, 42, 43, 44, 52, 65, 71, 76], "168": [17, 19, 20, 21, 22, 36, 39, 42, 43, 44, 52, 65, 71, 76], "69": [17, 19, 20, 21, 22, 36, 39, 42, 43, 44, 52, 65, 71, 76], "xmlrpc_port": [17, 19, 20, 21, 22, 72, 76], "80": [17, 19, 20, 21, 22, 39, 42, 43, 44, 51, 52, 76], "throw_if_unavail": 17, "string": [17, 18, 19, 20, 21, 22, 27, 36, 38, 39, 42, 52, 58, 62, 70, 74], "option": [17, 18, 19, 20, 21, 22, 24, 27, 38, 39, 40, 43, 44, 49, 63, 65, 67, 76], "address": [17, 19, 20, 21, 22, 39, 40, 43, 44, 65, 70, 72, 76], "uint": [17, 19, 20, 21, 22], "tcp": [17, 19, 20, 21, 22, 27, 72], "sensor": [17, 19, 20, 21, 22, 23, 39, 42, 43, 44, 52, 76], "": [17, 19, 20, 21, 22, 39, 40, 42, 43, 44, 47, 48, 52, 58, 65, 68, 70, 71, 72, 74], "server": [17, 19, 20, 21, 22, 65], "listen": [17, 19, 20, 21, 22], "requir": [17, 19, 20, 21, 22, 39, 40, 42, 47, 48, 49, 50, 54, 59, 62, 65, 67, 72], "establish": [17, 19, 20, 21, 22, 39, 40, 43, 44, 70], "edit": [17, 19, 20, 21, 22, 39, 40, 42, 43, 44, 49, 71], "session": [17, 19, 20, 21, 22, 39, 40, 43, 44, 63], "allow": [17, 19, 20, 21, 22, 27, 40, 56, 58, 63, 68], "mutat": [17, 19, 20, 21, 22, 39, 42, 44], "persist": [17, 19, 20, 21, 22, 39, 42], "those": [17, 19, 20, 21, 22, 40, 65], "chang": [17, 19, 20, 21, 22, 39, 41, 42, 48, 49, 51, 55, 56, 60, 62, 63, 65, 69, 70, 78], "am_i": [17, 19, 20, 21, 22], "famili": [17, 19, 20, 21, 22, 51], "device_famili": [17, 19, 20, 21, 22, 62], "check": [17, 19, 20, 21, 22, 26, 38, 39, 40, 42, 43, 65, 70, 72], "whether": [17, 19, 20, 21, 22, 65, 72], "one": [17, 19, 20, 21, 22, 39, 40, 42, 44, 47, 49, 51, 54, 56, 66, 68, 69, 72], "camerabas": [17, 19, 20, 21, 22, 40, 56], "boot_mod": [17, 19, 20, 21, 22], "enum": [17, 19, 20, 21, 22, 28, 33, 62, 68], "boot": [17, 19, 20, 21, 22, 39, 44, 70], "up": [17, 19, 20, 21, 22, 39, 40, 42, 48, 52, 58, 65, 66, 70], "member": [17, 19, 20, 21, 22, 28, 33], "product": [17, 19, 20, 21, 22, 38, 40, 41], "runtim": [17, 19, 20, 21, 22, 48], "firmwar": [17, 19, 20, 21, 22, 38, 39, 40, 41, 42, 44, 48, 63], "come": [17, 19, 20, 21, 22, 56], "recoveri": [17, 19, 20, 21, 22, 38, 39, 40, 44], "you": [17, 19, 20, 21, 22, 27, 39, 41, 43, 44, 47, 48, 49, 50, 51, 52, 54, 55, 56, 65, 68, 69, 70, 72, 76], "flash": [17, 19, 20, 21, 22, 38, 39, 44, 48, 63], "new": [17, 19, 20, 21, 22, 27, 40, 42, 44, 52, 56, 58, 67], "name": [17, 19, 20, 21, 22, 23, 28, 33, 39, 40, 41, 42, 43, 44, 48, 50, 52, 56, 65, 67, 70, 72], "check_minimum_firmware_vers": [17, 19, 20, 21, 22], "major": [17, 19, 20, 21, 22, 24, 39, 40, 42, 52], "minor": [17, 19, 20, 21, 22, 24, 39, 40, 42, 52, 63], "patch": [17, 19, 20, 21, 22, 39, 40, 42, 52, 63], "ifm": [17, 19, 20, 21, 22, 39, 40, 41, 42, 44, 47, 49, 51, 65, 66, 69, 70, 71, 72, 74], "softwar": [17, 19, 20, 21, 22, 27, 40, 48, 51, 56, 65], "greater": [17, 19, 20, 21, 22], "equal": [17, 19, 20, 21, 22, 68], "pass": [17, 19, 20, 21, 22, 27, 39, 40, 42, 44, 56, 62, 72], "unknown": [17, 19, 20, 21, 22, 39, 42], "o3x": [17, 19, 20, 21, 39, 40, 41, 42, 48, 49, 50, 54, 56, 62, 63, 65, 70, 72, 78], "o3r": [17, 19, 20, 22, 39, 40, 41, 42, 44, 47, 48, 49, 52, 56, 57, 58, 62, 63, 67, 68, 69, 70, 74, 76, 78], "device_paramet": [17, 19, 20, 21, 22], "kei": [17, 19, 20, 21, 22, 51, 74], "conveni": [17, 19, 20, 21, 22, 40, 58], "accessor": [17, 19, 20, 21, 22], "extract": [17, 19, 20, 21, 22, 27, 71], "No": [17, 19, 20, 21, 22, 40, 68, 69], "creat": [17, 18, 19, 20, 21, 22, 34, 40, 42, 44, 48, 52, 67, 68, 70, 71, 74], "request": [17, 19, 20, 21, 22, 40, 54], "rais": [17, 19, 20, 21, 22, 71, 72], "runtimeerror": [17, 18, 19, 20, 21, 22, 72], "device_typ": [17, 19, 20, 21, 22], "use_cach": [17, 19, 20, 21, 22], "obtain": [17, 19, 20, 21, 22, 62], "primari": [17, 19, 20, 21, 22, 39, 42, 51, 72], "intent": [17, 19, 20, 21, 22], "intern": [17, 19, 20, 21, 22, 39, 40, 44, 56, 62, 68], "usag": [17, 19, 20, 21, 22, 39, 40, 41, 42, 43, 44, 63, 65, 66, 71, 72, 78], "trigger": [17, 19, 20, 21, 22, 25, 27, 40, 41, 56, 63], "condit": [17, 19, 20, 21, 22, 27, 40], "logic": [17, 19, 20, 21, 22, 27], "hardwar": [17, 19, 20, 21, 22, 39, 41, 42, 51, 65, 72], "we": [17, 19, 20, 21, 22, 27, 39, 40, 41, 42, 43, 44, 48, 49, 51, 52, 54, 56, 58, 65, 69, 70, 74], "ar": [17, 19, 20, 21, 22, 27, 39, 40, 41, 42, 43, 44, 47, 48, 49, 50, 51, 54, 56, 57, 58, 59, 62, 63, 65, 66, 67, 68, 70, 72], "talk": [17, 19, 20, 21, 22], "howev": [17, 19, 20, 21, 22, 27, 39, 42, 58, 59, 65, 68], "like": [17, 19, 20, 21, 22, 70, 71], "applic": [17, 19, 20, 21, 22, 27, 36, 40, 42, 44, 63, 65, 66, 68, 70, 72, 76], "level": [17, 19, 20, 21, 22, 33, 35, 40, 67], "well": [17, 19, 20, 21, 22, 39, 41, 44], "so": [17, 19, 20, 21, 22, 39, 40, 42, 43, 48, 57, 58, 62, 69], "public": [17, 19, 20, 21, 22, 51, 68], "interfac": [17, 19, 20, 21, 22, 36, 40, 41, 48, 54, 58, 63, 68], "If": [17, 19, 20, 21, 22, 48, 49, 50, 51, 54, 56, 65, 70, 76], "cach": [17, 19, 20, 21, 22], "lookup": [17, 19, 20, 21, 22], "make": [17, 19, 20, 21, 22, 39, 40, 42, 49, 54, 65, 69, 72], "network": [17, 19, 20, 21, 22, 39, 40, 42, 44, 52, 65], "call": [17, 19, 20, 21, 22, 27, 34, 36, 39, 40, 42, 48, 51, 56, 57, 62, 65, 71, 72], "get": [17, 19, 20, 21, 22, 26, 35, 39, 40, 42, 44, 47, 48, 50, 51, 52, 56, 58, 62, 65, 68, 69, 70, 71, 72, 74], "real": [17, 19, 20, 21, 22], "onli": [17, 19, 20, 21, 22, 39, 40, 43, 47, 48, 56, 58, 62, 65, 68, 69, 70, 72], "reason": [17, 19, 20, 21, 22, 40, 56], "would": [17, 19, 20, 21, 22, 58], "expect": [17, 19, 20, 21, 22], "lifetim": [17, 19, 20, 21, 22, 72], "your": [17, 19, 20, 21, 22, 27, 39, 40, 41, 42, 48, 49, 50, 51, 52, 54, 55, 65, 68, 70, 71], "swap": [17, 19, 20, 21, 22, 48], "exampl": [17, 19, 20, 21, 22, 40, 41, 42, 44, 48, 51, 54, 67, 68, 71, 73, 74, 76, 78], "vice": [17, 19, 20, 21, 22, 48], "versa": [17, 19, 20, 21, 22, 48], "liter": [17, 19, 20, 21, 22, 58, 68, 70, 71, 72], "cabl": [17, 19, 20, 21, 22], "while": [17, 19, 20, 21, 22, 27, 39, 40, 42, 62, 69, 72], "still": [17, 19, 20, 21, 22, 27, 69], "aliv": [17, 19, 20, 21, 22, 68], "someth": [17, 19, 20, 21, 22, 56, 62, 68, 72], "worri": [17, 19, 20, 21, 22, 58], "about": [17, 19, 20, 21, 22, 23, 39, 40, 42, 48, 58, 68], "leav": [17, 19, 20, 21, 22], "should": [17, 19, 20, 21, 22, 27, 34, 40, 48, 49, 52, 54, 58, 65, 72, 76], "signfic": [17, 19, 20, 21, 22], "perform": [17, 19, 20, 21, 22, 39, 42, 44, 56, 68, 72], "increas": [17, 19, 20, 21, 22, 40], "firmware_vers": [17, 19, 20, 21, 22], "semver": [17, 19, 20, 21, 22, 58, 78], "instal": [17, 19, 20, 21, 22, 39, 40, 42, 44, 49, 51, 65, 67, 73, 78], "force_trigg": [17, 19, 20, 21, 22], "send": [17, 19, 20, 21, 22, 40], "w": [17, 19, 20, 21, 22, 40], "doe": [17, 19, 20, 21, 22, 27, 40, 62], "ha": [17, 19, 20, 21, 22, 39, 41, 42, 51, 56, 57, 64, 69, 70, 72, 74], "been": [17, 19, 20, 21, 22, 40, 57, 58, 64, 65], "develop": [17, 19, 20, 21, 22, 48, 49, 54, 65, 67, 73], "specfici": [17, 19, 20, 21, 22], "For": [17, 19, 20, 21, 22, 39, 41, 42, 44, 47, 54, 56, 58, 62, 65, 68, 70, 71, 72], "noop": [17, 19, 20, 21, 22, 27], "from_json": [17, 19, 20, 21, 22], "json": [17, 19, 20, 21, 22, 31, 39, 40, 42, 44, 52, 62, 63, 70, 71, 74], "dict": [17, 19, 20, 21, 22, 27], "_the_": [17, 19, 20, 21, 22], "wai": [17, 19, 20, 21, 22, 36, 39, 42, 56, 62, 65, 72, 76], "tune": [17, 19, 20, 21, 22, 39, 42], "etc": [17, 19, 20, 21, 22, 39, 42, 51, 56, 70, 72, 74], "A": [17, 19, 20, 21, 22, 27, 38, 40, 48, 58, 60, 62, 68, 72, 78], "encod": [17, 19, 20, 21, 22, 39, 42, 43, 72], "appli": [17, 19, 20, 21, 22, 39, 42, 44, 58, 71], "encourag": [17, 19, 20, 21, 22, 72], "log": [17, 19, 20, 21, 22, 40, 59, 63, 67, 78], "file": [17, 19, 20, 21, 22, 30, 38, 39, 41, 42, 48, 49, 54, 59, 63, 65, 66, 68], "best": [17, 19, 20, 21, 22, 39, 42], "effort": [17, 19, 20, 21, 22, 39, 42], "made": [17, 19, 20, 21, 22, 57, 72], "descript": [17, 19, 20, 21, 22, 39, 40, 41, 42, 43, 44, 48, 56, 65, 70], "possibl": [17, 19, 20, 21, 22, 40, 72], "error": [17, 19, 20, 21, 22, 27, 33, 36, 58, 68, 78], "occur": [17, 19, 20, 21, 22, 27, 30], "import_flag": [17, 19, 20, 21, 22], "import": [17, 19, 20, 21, 22, 39, 40, 44, 52, 56, 58, 63, 68, 69, 70, 71, 72], "flag": [17, 19, 20, 21, 22, 27, 40, 49, 63, 65], "when": [17, 19, 20, 21, 22, 27, 34, 40, 47, 49, 56, 57, 58, 71], "vision": [17, 19, 20, 21, 22, 39, 40, 41, 44, 62, 72], "assist": [17, 19, 20, 21, 22, 39, 40, 41, 44], "global": [17, 19, 20, 21, 22, 39, 40, 43, 44, 58], "net": [17, 19, 20, 21, 22, 39, 42, 51], "app": [17, 19, 20, 21, 22, 39, 40, 42, 43, 44], "associ": [17, 19, 20, 21, 22, 39, 42], "mfilt_mask_s": [17, 19, 20, 21, 22], "median": [17, 19, 20, 21, 22], "filter": [17, 19, 20, 21, 22], "mask": [17, 19, 20, 21, 22, 27, 39, 40, 44], "size": [17, 19, 20, 21, 22, 40, 69], "_3x3": [17, 19, 20, 21, 22], "_5x5": [17, 19, 20, 21, 22], "operating_mod": [17, 19, 20, 21, 22], "oper": [17, 19, 20, 21, 22, 58, 62, 68], "stream": [17, 19, 20, 21, 22, 25, 27, 39, 40, 41, 42, 65, 68, 69, 71, 72], "pixel": [17, 19, 20, 21, 22, 25, 27, 40, 41, 63, 72], "reboot": [17, 19, 20, 21, 22, 38, 39, 40, 44], "upon": [17, 19, 20, 21, 22, 48, 56, 65, 72], "restart": [17, 19, 20, 21, 22], "spatial_filt": [17, 19, 20, 21, 22], "spatial": [17, 19, 20, 21, 22], "off": [17, 19, 20, 21, 22, 40, 48, 49, 68], "mean": [17, 19, 20, 21, 22, 65, 68, 72], "bilater": [17, 19, 20, 21, 22], "temporal_filt": [17, 19, 20, 21, 22], "tempor": [17, 19, 20, 21, 22], "adaptive_exp": [17, 19, 20, 21, 22], "to_json": [17, 19, 20, 21, 22], "contain": [17, 19, 20, 21, 22, 39, 40, 42, 48, 49, 50, 63, 65, 71, 72], "state": [17, 19, 20, 21, 22, 36, 39, 40, 41, 42, 44, 52, 69, 70], "compat": [17, 19, 20, 21, 22, 39, 40, 41, 44], "python": [17, 19, 20, 21, 22, 36, 39, 40, 41, 42, 48, 54, 56, 57, 63, 65, 68, 69, 70, 71, 72, 76, 78], "modul": [17, 19, 20, 21, 22, 36, 39, 40, 41, 42, 48, 50, 56, 63, 67, 71, 78], "trace_log": [17, 19, 20, 21, 22], "list": [17, 19, 20, 21, 22, 26, 27, 36, 39, 40, 43, 44, 47, 48, 51, 52, 56, 58, 60, 62, 65, 74, 78], "deliv": [17, 19, 20, 21, 22, 58], "trace": [17, 19, 20, 21, 22, 39, 40, 44, 63, 68], "from": [17, 19, 20, 21, 22, 26, 27, 38, 39, 40, 42, 43, 44, 45, 51, 52, 54, 56, 58, 62, 63, 67, 68, 69, 70, 71, 72, 78], "entri": [17, 19, 20, 21, 22, 30, 31, 32, 34, 68], "retriev": [17, 19, 20, 21, 22, 40, 56, 69, 71, 72, 74, 76], "each": [17, 19, 20, 21, 22, 40, 47, 56, 66, 70, 71, 74], "tracelog": [17, 19, 20, 21, 22, 40], "trigger_mod": [17, 19, 20, 21, 22], "acquisit": [17, 19, 20, 21, 22, 25, 27, 39, 41, 42, 44, 52], "free_run": [17, 19, 20, 21, 22], "sw": [17, 19, 20, 21, 22, 27], "who_am_i": [17, 19, 20, 21, 22], "wrapper": [18, 40, 41, 48, 72], "encount": [18, 19, 20, 22, 65], "code": [18, 27, 40, 48, 49, 55, 58, 59, 67, 69, 70, 72], "ifm3d_no_error": 18, "ifm3d_xmlrpc_failur": 18, "ifm3d_xmlrpc_timeout": 18, "ifm3d_json_error": 18, "ifm3d_no_active_appl": 18, "ifm3d_subcommand_error": 18, "ifm3d_io_error": 18, "ifm3d_thread_interrupt": 18, "ifm3d_pcic_bad_repli": 18, "ifm3d_unsupported_op": 18, "ifm3d_img_chunk_not_found": 18, "ifm3d_pixel_format_error": 18, "ifm3d_unsupported_devic": 18, "ifm3d_recovery_connection_error": 18, "ifm3d_update_error": 18, "ifm3d_pcicclient_unsupported_devic": 18, "ifm3d_header_version_mismatch": 18, "ifm3d_intrinsic_calibration_unsupported_devic": 18, "ifm3d_intrinsic_calibration_unsupported_firmwar": 18, "ifm3d_inverse_intrinsic_calibration_unsupported_devic": 18, "ifm3d_inverse_intrinsic_calibration_unsupported_firmwar": 18, "ifm3d_curl_error": 18, "ifm3d_curl_timeout": 18, "ifm3d_curl_abort": 18, "ifm3d_swupdate_bad_st": 18, "ifm3d_confidence_image_format_not_support": 18, "ifm3d_distance_noise_image_unsupported_devic": 18, "ifm3d_distance_noise_image_unsupported_firmwar": 18, "ifm3d_invalid_port": 18, "ifm3d_tool_command_unsupported_devic": 18, "ifm3d_unsupported_schema_on_devic": 18, "ifm3d_buffer_id_not_avail": 18, "ifm3d_network_error": 18, "ifm3d_system_error": 18, "ifm3d_corrupted_struct": 18, "ifm3d_device_port_incompatible_with_organ": 18, "ifm3d_device_port_not_support": 18, "ifm3d_xmlrpc_obj_not_found": 18, "ifm3d_invalid_param": 18, "ifm3d_invalid_value_typ": 18, "ifm3d_value_out_of_rang": 18, "ifm3d_readonly_param": 18, "ifm3d_session_already_act": 18, "ifm3d_invalid_password": 18, "ifm3d_invalid_sessionid": 18, "ifm3d_could_not_reboot": 18, "ifm3d_invalid_format": 18, "ifm3d_invalid_device_typ": 18, "ifm3d_invalid_import_flag": 18, "ifm3d_invalid_app_index": 18, "ifm3d_app_in_edit_mod": 18, "ifm3d_max_app_limit": 18, "ifm3d_no_app_in_edit_mod": 18, "ifm3d_cannot_sw_trigg": 18, "ifm3d_invalid_imager_typ": 18, "ifm3d_unsupported_app_typ": 18, "ifm3d_pin_already_in_us": 18, "ifm3d_no_such_model_or_roi": 18, "ifm3d_temporal_filter_trigger_conflict": 18, "ifm3d_eeprom_fail": 18, "ifm3d_import_export_in_progress": 18, "ifm3d_invalid_net_config": 18, "ifm3d_led_duty_cycle_viol": 18, "ifm3d_auto_exposure_not_support": 18, "ifm3d_invalid_firmware_vers": 18, "ifm3d_proxy_auth_requir": 18, "ifm3d_pixel_format_not_support": 18, "msg": 18, "what": [18, 39, 42], "messag": [18, 19, 20, 22, 27, 35, 39, 40, 43, 44, 59, 65, 68, 76], "represent": 18, "includ": [18, 40, 58, 62, 63, 68, 69, 70, 71, 72, 74], "with_traceback": 18, "tb": 18, "__traceback__": 18, "active_appl": [19, 20, 22], "activ": [19, 20, 22, 35, 39, 43, 65, 67], "neg": [19, 20, 22], "indic": [19, 20, 21, 22, 68], "mark": [19, 20, 21, 22, 39, 40, 43, 57, 59], "application_list": [19, 20, 22], "basic": [19, 20, 22, 39, 40, 42, 48, 49, 54, 72, 78], "store": [19, 20, 22, 62, 69, 72], "dictionari": [19, 20, 22], "follow": [19, 20, 21, 22, 39, 41, 42, 43, 47, 48, 49, 50, 51, 52, 54, 56, 57, 58, 62, 65, 68, 69, 70, 71, 72, 73], "application_typ": [19, 20, 22], "valid": [19, 20, 22, 39, 42, 43, 72], "element": [19, 20, 22, 39, 42], "suitabl": [19, 20, 22, 41], "createappl": [19, 20, 22], "cancel_sess": [19, 20, 22], "arg": [19, 20, 22, 23, 26, 30, 31, 32, 35, 39, 43, 44], "kwarg": [19, 20, 22, 23, 26, 30, 31, 32, 35], "overload": [19, 20, 22], "explictli": [19, 20, 22], "stop": [19, 20, 22, 27, 39, 40, 42, 56, 57, 68, 69, 71, 72, 74], "success": [19, 20, 22, 38, 49], "failur": [19, 20, 22, 40], "On": [19, 20, 22, 49], "detail": [19, 20, 22, 40, 41, 47, 49, 54, 55, 56, 58, 59, 60, 68, 70, 71, 76, 78], "sid": [19, 20, 22], "attempt": [19, 20, 22, 39, 42], "cancel": [19, 20, 22, 40], "particular": [19, 20, 22, 39, 44, 48], "copy_appl": [19, 20, 22], "idx": [19, 20, 22], "copi": [19, 20, 22, 39, 40, 41, 42, 44, 58, 62, 69, 73], "anoth": [19, 20, 22, 39, 42], "gener": [19, 20, 22, 27, 40, 41, 58, 68], "put": [19, 20, 22, 39, 44, 58], "create_appl": [19, 20, 22], "To": [19, 20, 22, 39, 42, 43, 44, 47, 48, 49, 54, 56, 58, 62, 65, 70, 72], "figur": [19, 20, 22], "availableapplicationtyp": [19, 20, 22], "creation": [19, 20, 22, 68], "embed": [19, 20, 22, 40, 48, 63], "necessari": [19, 20, 22, 39, 42, 48], "mai": [19, 20, 22, 39, 40, 42, 43, 48, 50, 51, 67, 68, 72], "_activatable_": [19, 20, 22], "That": [19, 20, 22], "can": [19, 20, 22, 39, 41, 42, 43, 44, 47, 48, 49, 50, 52, 54, 56, 58, 62, 63, 65, 68, 69, 70, 71, 72, 73, 76], "save": [19, 20, 21, 22, 39, 42, 52], "cannot": [19, 20, 22, 57], "By": [19, 20, 22, 40, 48, 58, 68], "delete_appl": [19, 20, 22], "delet": [19, 20, 22, 39, 43, 44], "export_ifm_app": [19, 20, 22], "export": [19, 20, 22, 39, 40, 44], "byte": [19, 20, 22], "write": [19, 20, 22, 34, 62, 67, 68, 71], "repres": [19, 20, 22, 26, 30], "serial": [19, 20, 22, 39, 42, 44], "tool": [19, 20, 22, 36, 40, 41, 42, 48, 50, 51, 52, 63, 65, 68, 78], "export_ifm_config": [19, 20, 22], "entir": [19, 20, 22, 39, 42], "format": [19, 20, 21, 22, 27, 31, 32, 39, 40, 42, 44, 56, 58, 62, 63, 68, 69, 70, 72, 74], "factory_reset": [19, 20, 21, 22], "back": [19, 20, 21, 22, 78], "which": [19, 20, 21, 22, 39, 40, 42, 44, 47, 48, 49, 51, 54, 56, 57, 62, 68, 71, 72, 76], "ship": [19, 20, 21, 22, 39, 44], "factori": [19, 20, 21, 22, 39, 44], "heartbeat": [19, 20, 22], "hb": [19, 20, 22], "next": [19, 20, 21, 22, 63, 65], "interv": [19, 20, 22], "keep": [19, 20, 21, 22, 40], "imager_typ": [19, 20, 22], "import_ifm_app": [19, 20, 22], "va": [19, 20, 22], "raw": [19, 20, 22, 62, 70], "zip": [19, 20, 22], "d": [19, 20, 22, 51, 65, 74], "note": [19, 20, 21, 22, 27, 36, 39, 40, 41, 42, 43, 44, 48, 50, 52, 54, 56, 57, 58, 63, 65, 69, 70, 72], "base64": [19, 20, 22], "tranmiss": [19, 20, 22], "xml": [19, 20, 22, 40], "rpc": [19, 20, 22, 40], "import_ifm_config": [19, 20, 22], "request_sess": [19, 20, 22], "order": [19, 20, 22, 27, 39, 42, 56, 57], "perman": [19, 20, 22], "need": [19, 20, 22, 27, 39, 40, 42, 43, 48, 49, 54, 56, 58, 62, 65, 68, 70, 71, 72], "sesson": [19, 20, 22], "ani": [19, 20, 22, 39, 40, 42, 54, 58, 62, 72], "think": [19, 20, 22], "mutex": [19, 20, 22], "ask": [19, 20, 22], "alreadi": [19, 20, 22, 58, 76], "taken": [19, 20, 22], "thrown": [19, 20, 22, 27], "most": [19, 20, 22, 27], "typic": [19, 20, 22, 41, 47, 48, 49, 72], "case": [19, 20, 22, 39, 40, 43, 51, 68, 71], "end": [19, 20, 22, 72], "involv": [19, 20, 22], "fromjson": [19, 20, 22, 40], "under": [19, 20, 22, 40, 60, 78], "hood": [19, 20, 22], "behalf": [19, 20, 22], "gracefulli": [19, 20, 22], "close": [19, 20, 22, 40], "There": [19, 20, 22, 51, 59, 65], "who": [19, 20, 22], "plan": [19, 20, 22, 48, 65], "fly": [19, 20, 22, 63], "framegrabb": [19, 20, 22, 39, 40, 41, 44, 48, 50, 51, 57, 58, 62, 63, 65, 67, 68, 69, 71, 74, 78], "manual": [19, 20, 22, 27, 39, 40, 42, 58], "expos": [19, 20, 22, 40, 41, 48, 63], "implicitli": [19, 20, 22, 56], "max_heartbeat": [19, 20, 22], "after": [19, 20, 22, 39, 40, 43, 49, 54, 56], "successfulli": [19, 20, 22], "issu": [19, 20, 22, 39, 40, 42, 43, 44, 68], "accept": [19, 20, 22, 39, 42, 44], "see": [19, 20, 22, 27, 39, 40, 41, 42, 43, 44, 48, 54, 56, 58, 59, 65, 69, 71], "ifm3d_session_id": [19, 20, 22, 40], "environ": [19, 20, 22, 40, 48, 49, 52, 54, 67], "throw": [19, 20, 22], "error_t": [19, 20, 22, 40], "session_id": [19, 20, 22], "set_current_tim": [19, 20, 22], "epoch_sec": [19, 20, 22], "sinc": [19, 20, 22, 39, 40, 42, 43], "unix": [19, 20, 22, 39, 43, 65], "epoch": [19, 20, 22, 39, 43], "less": [19, 20, 22, 63], "than": [19, 20, 22, 40, 51, 72], "implic": [19, 20, 22], "set_temporary_application_paramet": [19, 20, 22], "param": [19, 20, 22], "lost": [19, 20, 22], "enter": [19, 20, 22], "turn": [19, 20, 22, 62], "exposuretim": [19, 20, 22, 39, 42], "exposuretimeratio": [19, 20, 22, 39, 42], "addit": [19, 20, 22, 40, 48, 49, 63], "ignor": [19, 20, 22, 68], "now": [19, 20, 22, 39, 40, 42, 43, 44, 52, 57, 58, 59, 61, 62, 63, 65, 66], "clamp": [19, 20, 22], "depend": [19, 20, 22, 40, 63, 65, 72], "must": [19, 20, 22, 68, 72], "both": [19, 20, 22, 39, 41, 44, 47, 65], "doubl": [19, 20, 22, 39, 43, 70], "behavior": [19, 20, 22], "undefin": [19, 20, 22, 27], "unit_vector": [19, 20, 22], "fetch": [19, 20, 22, 40, 49], "unit": [19, 20, 22, 40, 48, 62, 63, 65, 72], "vector": [19, 20, 22, 62, 72, 74], "binari": [19, 20, 22, 39, 40, 42, 45, 49, 50, 54, 65, 78], "blob": [19, 20, 22, 39, 42], "legacydevic": [20, 22, 40, 58, 78], "experiment": [20, 22, 40, 41, 51, 63, 65], "own": [20, 22, 40, 41, 51, 54, 68], "risk": [20, 22, 40, 41], "keep_network_set": 21, "wether": 21, "path": [21, 40, 49, 54, 73], "empti": [21, 39, 42], "whole": [21, 39, 44, 68], "fragment": 21, "get_diagnost": 21, "content": [21, 62], "diagnost": [21, 28, 39, 40, 42, 52], "memori": [21, 62, 63, 70, 72], "get_diagnostic_filter_schema": 21, "schema": [21, 27, 39, 40, 42, 44, 52, 56, 67, 68], "express": 21, "getfilt": 21, "get_diagnostic_filt": 21, "accord": [21, 26, 58, 68], "get_init": 21, "get_schema": 21, "portinfo": [21, 78], "physic": [21, 72], "reboot_to_recoveri": [21, 38, 58], "remov": [21, 56, 57, 58, 62, 63], "json_point": [21, 74], "scope": 21, "limit": [21, 56], "regular": 21, "appd": 21, "compon": 21, "za": 21, "z0": 21, "9": [21, 39, 41, 42, 52, 59, 63], "_": [21, 39, 42, 50], "pointer": [21, 40, 62, 70, 71, 72], "reset": [21, 39, 40, 44], "insid": [21, 57, 68], "defin": [21, 40, 47, 56, 58, 62, 68, 70, 71, 72], "init": 21, "nor": 21, "sticki": 21, "resolve_config": [21, 40], "part": [21, 40, 48, 56, 58, 65, 69, 70, 74], "partial": 21, "save_init": 21, "transit": 21, "config": [21, 43, 44, 49, 52, 69, 70, 73], "overwrit": 21, "achiev": 21, "merg": 21, "temporai": 21, "pcic_port": [23, 27, 62, 69, 71, 72], "assign": [23, 40, 62, 68], "conntect": 23, "hold": [24, 62, 72], "build": [24, 39, 40, 42, 47, 50, 51, 54, 63, 73], "prereleas": 24, "build_meta": 24, "pars": [24, 40, 58, 63, 70], "devic": [26, 27, 38, 39, 40, 41, 42, 43, 44, 48, 49, 50, 51, 52, 54, 57, 58, 63, 68, 69, 70, 71, 72, 74, 78], "algorithm": 26, "output": [26, 36, 39, 40, 42, 44, 52, 58, 63, 65, 70], "get_buff": [26, 56, 69, 71, 72], "buffer_id": [26, 27, 40, 56, 58, 62, 68, 69, 71, 72, 74, 78], "get_buffer_count": 26, "total": 26, "has_buff": 26, "datetim": 26, "cam": [27, 38, 56, 71, 72], "grab": [27, 38, 40, 63, 72, 74], "uint16": 27, "is_mask": 27, "is_run": 27, "worker": [27, 72], "thread": [27, 68, 69, 71, 72], "on_async_error": 27, "callback": [27, 38, 40, 57, 67, 69], "callabl": [27, 38], "enabl": [27, 40, 48, 49, 62, 63, 72, 74], "async": [27, 56], "execut": [27, 36, 40, 48, 49, 56, 68, 72], "whenev": 27, "avali": 27, "argument": [27, 39, 40, 43, 44, 65, 76], "on_async_notif": 27, "notif": [27, 40], "payload": 27, "on_error": 27, "on_new_fram": [27, 56, 69, 72], "set_mask": 27, "disabl": [27, 40, 49, 64], "confidence_imag": [27, 28, 39, 40, 42, 68], "start": [27, 39, 42, 48, 59, 62, 67, 68, 69, 71, 74], "sequenc": [27, 39, 43], "union": 27, "pcic_format": 27, "await": [27, 56, 57, 72, 78], "resolv": [27, 40], "readi": [27, 40, 71, 72, 74], "futureawait": 27, "uint64": 27, "organ": [27, 28], "pcicformat": 27, "asynchron": [27, 40], "make_schema": 27, "rare": 27, "usecas": 27, "cover": 27, "reli": [27, 51], "some": [27, 39, 40, 42, 63, 70, 71, 72], "rule": [27, 40], "thei": [27, 40, 41, 58], "miss": [27, 40], "abl": [27, 49, 54, 72], "framgrabb": [27, 57], "sw_trigger": [27, 40], "sure": [27, 39, 42, 49, 65, 69, 70, 72], "triggermod": [27, 39, 42], "effect": [27, 68], "simpli": [27, 39, 42, 43, 65, 72], "via": [27, 39, 40, 42, 65, 72], "wait_for_fram": [27, 56, 71, 72], "do": [27, 39, 42, 51, 56, 62, 68, 70], "recommend": [27, 36, 40, 48, 49, 51, 52, 54, 56, 72, 76], "tight": 27, "framegrab": 27, "loop": [27, 40, 56, 62, 72], "know": [27, 72], "cost": 27, "incur": 27, "frameawait": [27, 78], "radial_distance_imag": [28, 68, 72], "norm_amplitude_imag": [28, 68, 72], "amplitude_imag": [28, 72], "grayscale_imag": 28, "radial_distance_nois": 28, "reflect": [28, 39, 40, 42], "cartesian_x_compon": 28, "cartesian_y_compon": 28, "cartesian_z_compon": 28, "cartesian_al": 28, "unit_vector_al": [28, 62], "monochrom_2d_12bit": 28, "monochrom_2d": 28, "jpeg_imag": [28, 69, 72, 74], "json_diagnost": 28, "extrinsic_calib": 28, "intrinsic_calib": 28, "o3r_distance_image_info": [28, 57], "o3r_rgb_image_info": [28, 57], "json_model": [28, 40, 62, 63], "algo_debug": 28, "o3r_ods_occupancy_grid": 28, "o3r_ods_info": 28, "o3r_result_json": [28, 40], "o3r_result_array2d": [28, 40], "o3r_result_imu": [28, 40], "xyz": [28, 40, 56, 57, 68, 72, 74, 76], "illumination_temp": [28, 62], "facil": [29, 35], "logentri": [31, 32, 34, 68, 78], "human": 32, "readabl": [32, 70], "text": [32, 39, 42], "line": [32, 36, 40, 41, 42, 48, 52, 57, 59, 63, 65, 78], "critic": [33, 68], "warn": [33, 40, 65, 68], "info": [33, 39, 42, 52, 68, 70, 71, 74], "debug": [33, 40, 49, 68], "verbos": [33, 63, 68], "custom": [34, 40, 59, 63, 67, 68], "writer": [34, 35, 68], "written": 34, "log_level": 35, "below": [35, 39, 40, 42, 48, 52, 54, 56, 62, 65, 66, 69, 71], "discard": 35, "set_log_level": 35, "loglevel": [35, 68, 78], "set_writ": [35, 68], "logwrit": [35, 68, 78], "command": [36, 40, 41, 42, 43, 47, 48, 50, 52, 59, 63, 65, 76, 78], "script": [36, 40, 41, 63, 65, 67, 68, 76], "monitor": 36, "progress": [36, 38, 41, 47, 48, 49], "handl": [36, 40, 56, 67, 68, 72, 78], "instead": [36, 40, 56, 59], "pleas": [36, 39, 40, 41, 42, 44, 48, 49, 50, 54, 58, 59, 60, 70, 71, 78], "directli": [36, 40, 48, 72], "correspond": [36, 41, 56, 59, 62, 68, 69, 72], "mainli": [36, 48], "intend": [36, 39, 44, 55, 56, 66], "integr": [36, 58], "cli": 36, "exist": [36, 39, 40, 44, 48, 58, 68], "consol": [36, 68], "argv": [36, 62], "py": [36, 40, 65, 76], "l": [36, 39, 43, 44, 65], "util": [37, 39, 40, 41, 42, 48, 51, 63, 65, 68], "subsystem": [37, 41], "cb": 38, "float": [38, 40, 62], "swupdate_recovery_port": 38, "8080": 38, "updat": [38, 39, 40, 44, 48, 49, 50, 51, 55, 58, 63, 66], "uint16_t": [38, 62], "commun": [38, 39, 44, 49, 70], "flash_firmwar": [38, 58], "swu_fil": 38, "timeout_milli": 38, "swu": [38, 39, 40, 42, 52], "long": [38, 63, 70], "millisecond": [38, 74], "upload": [38, 40, 51, 65], "rtype": 38, "reboot_to_product": [38, 58], "wait_for_product": [38, 58], "till": 38, "wait_for_recoveri": [38, 58], "same": [39, 40, 42, 44, 56, 59, 71, 72], "introspect": [39, 41, 44], "carri": [39, 42, 44, 65], "evok": [39, 44], "subcommand": [39, 40, 42, 43, 44, 63], "help": [39, 40, 43, 44, 48, 65, 76], "20": [39, 42, 43, 44, 48, 49, 50, 54, 59, 63, 65], "h": [39, 40, 43, 44, 62, 65, 68, 69, 70, 71, 72, 74, 76], "produc": [39, 42, 43, 44], "exit": [39, 43, 44, 65, 72, 76], "These": [39, 44, 62, 65, 70], "common": [39, 40, 44, 48, 68], "variou": [39, 44, 48, 51, 66, 74], "situat": [39, 44, 65], "desir": [39, 42, 44, 51, 56], "also": [39, 41, 42, 44, 47, 48, 49, 54, 56, 62, 70, 72], "cp": [39, 43, 44], "bootstrap": [39, 43, 44], "discov": [39, 40, 44], "hz": [39, 44, 65], "comput": [39, 44, 48, 72], "frequenc": [39, 44], "jitter": [39, 40, 44, 63], "collect": [39, 44], "statist": [39, 44], "construct": [39, 44, 62], "passwd": [39, 40, 44], "potenti": [39, 40, 44, 68], "rm": [39, 43, 44, 65], "analyz": [39, 44], "swupdat": [39, 40, 41, 44, 48, 50, 51, 63, 78], "ensur": [39, 44, 48, 49, 68, 70], "beforehand": [39, 44], "bug": [39, 40, 44, 63], "report": [39, 40, 44, 57], "http": [39, 40, 44, 49, 51], "github": [39, 40, 41, 44, 48, 49], "com": [39, 41, 44, 49, 51, 61, 75, 77], "As": [39, 44, 65], "abov": [39, 42, 44, 48, 49, 50, 54, 56, 62, 71, 72], "program": [39, 40, 44, 72], "control": [39, 44, 65, 68, 72], "platform": [39, 41, 42, 44, 47, 49, 56, 63, 71, 72, 74, 76], "wish": [39, 44], "2": [39, 41, 42, 43, 44, 55, 62, 63, 68, 69, 70, 71, 72, 74, 78], "3": [39, 41, 42, 43, 44, 48, 49, 50, 51, 52, 54, 55, 58, 60, 62, 63, 65, 68, 71, 72, 74, 78], "exemplari": [39, 42, 44, 65], "purpos": [39, 42, 44, 48, 52, 65, 68], "let": [39, 42, 43, 44, 52, 56, 70], "sourc": [39, 40, 44, 45, 51, 54, 67, 73, 78], "shown": [39, 42, 44], "take": [39, 42, 44, 58, 60, 69, 78], "concept": [39, 42, 44, 56], "deprec": [39, 40, 44, 56, 57, 58, 66], "walk": [39, 44, 55], "through": [39, 40, 41, 42, 44, 48, 49, 55, 56, 72], "coupl": [39, 44], "simpl": [39, 40, 44, 48, 63, 72], "exhaust": [39, 44], "tutori": [39, 40, 44, 49], "rather": [39, 44, 51, 72], "sens": [39, 40, 44, 72], "how": [39, 40, 42, 44, 48, 49, 54, 55, 56, 59, 65, 67, 78], "broadli": [39, 44], "3d": [39, 41, 42, 65, 69, 72, 74], "accomplish": [39, 42], "two": [39, 41, 42, 65, 74], "api": [39, 40, 41, 42, 56, 61, 70, 71, 78], "show": [39, 40, 42, 49, 54, 65, 66, 68, 71, 74, 76], "refer": [39, 41, 42, 47, 48, 56, 62, 68, 70, 71, 72], "doc": [39, 40, 42, 58, 63, 78], "instruct": [39, 40, 42, 48, 49, 50, 54, 65, 73, 78], "print": [39, 42, 52, 59, 68, 70, 71, 72], "stdout": [39, 42], "consum": [39, 40, 42], "either": [39, 40, 42], "stdin": [39, 40, 42], "interpret": [39, 42], "said": [39, 42, 70], "have": [39, 40, 42, 48, 56, 57, 58, 62, 65, 69, 70, 76], "remaind": [39, 42], "document": [39, 40, 41, 42, 47, 48, 56, 58, 61, 63, 64, 70, 71, 75, 76, 77], "narr": [39, 42], "hope": [39, 42], "demonstr": [39, 42], "leverag": [39, 42], "o3d303": [39, 42, 72], "techniqu": [39, 42], "here": [39, 41, 42, 47, 48, 49, 54, 56, 65, 76], "addition": [39, 42, 58, 72], "jq": [39, 42, 43, 50], "processor": [39, 42], "linux": [39, 40, 42, 45, 46, 47, 48, 50, 53, 63, 65, 78], "pipelin": [39, 40, 42], "standard": [39, 40, 42, 62], "grep": [39, 42], "sed": [39, 42], "awk": [39, 42], "perl": [39, 42], "could": [39, 40, 42], "decompos": [39, 42], "wherebi": [39, 42, 72], "o": [39, 42, 47, 50, 52, 54, 65], "redirect": [39, 42, 68], "discret": [39, 42], "step": [39, 42, 43, 48, 49, 50, 65], "again": [39, 42], "assum": [39, 42, 56, 70, 71, 72], "ubuntu": [39, 40, 42, 47, 50, 51, 59, 63, 65], "sudo": [39, 42, 48, 50, 51], "apt": [39, 40, 42, 48, 50, 51, 65], "476707713": [39, 42, 43], "autoexposuremaxexposuretim": [39, 42], "10000": [39, 42], "autoexposurereferencepointx": [39, 42], "88": [39, 42], "autoexposurereferencepointi": [39, 42], "66": [39, 42], "autoexposurereferenceroi": [39, 42], "roi": [39, 42], "group": [39, 42], "rect": [39, 42], "130": [39, 42], "100": [39, 42, 43, 62], "angl": [39, 42], "center_x": [39, 42], "center_i": [39, 42], "autoexposurereferencetyp": [39, 42], "channel": [39, 42], "clippingbottom": [39, 42], "131": [39, 42], "clippingcuboid": [39, 42], "xmin": [39, 42], "402823e": [39, 42], "38": [39, 42], "xmax": [39, 42], "ymin": [39, 42], "ymax": [39, 42], "zmin": [39, 42], "zmax": [39, 42], "clippingleft": [39, 42], "clippingright": [39, 42], "175": [39, 42], "clippingtop": [39, 42], "continuousautoexposur": [39, 42], "enableamplitudecorrect": [39, 42], "enablefastfrequ": [39, 42], "enablefilteramplitudeimag": [39, 42], "enablefilterdistanceimag": [39, 42], "enablerectificationamplitudeimag": [39, 42], "enablerectificationdistanceimag": [39, 42], "5000": [39, 42], "exposuretimelist": [39, 42], "125": [39, 42], "40": [39, 42], "framer": [39, 42, 52], "5": [39, 41, 42, 60, 63, 65, 68, 78], "maxallowedledframer": [39, 42], "23": [39, 42, 52, 63], "minimumamplitud": [39, 42], "42": [39, 40, 42], "spatialfilt": [39, 42], "spatialfiltertyp": [39, 42], "symmetrythreshold": [39, 42], "4": [39, 42, 47, 49, 51, 52, 63, 65, 68, 69, 70], "temporalfilt": [39, 42], "temporalfiltertyp": [39, 42], "threefreqmax2flinedistpercentag": [39, 42], "threefreqmax3flinedistpercentag": [39, 42], "twofreqmaxlinedistpercentag": [39, 42], "under5m_moder": [39, 42], "usesimplebin": [39, 42], "logicgraph": [39, 42], "iomap": [39, 42], "out1": [39, 42], "rft": [39, 42], "out2": [39, 42], "aqufin": [39, 42], "b00001": [39, 42], "po": [39, 42], "x": [39, 40, 42, 48, 54, 56, 59, 62, 70], "200": [39, 42], "y": [39, 42, 50, 62, 70, 74], "pin_event_image_acquisition_finish": [39, 42], "b00002": [39, 42], "75": [39, 42], "pin_event_ready_for_trigg": [39, 42], "b00003": [39, 42], "600": [39, 42], "pulse_dur": [39, 42], "digital_out1": [39, 42], "b00005": [39, 42], "digital_out2": [39, 42], "connector": [39, 42], "c00000": [39, 42], "dst": [39, 42], "dstep": [39, 42], "src": [39, 42], "srcep": [39, 42], "c00001": [39, 42], "sampl": [39, 42, 43, 65, 71], "pciceipresultschema": [39, 42], "layout": [39, 42, 62], "flexibl": [39, 42], "dataencod": [39, 42], "big": [39, 40, 42], "star": [39, 42], "start_str": [39, 42], "record": [39, 42, 68], "int16": [39, 42], "boxfound": [39, 42], "scale": [39, 42], "1000": [39, 42, 52], "length": [39, 42], "xmidtop": [39, 42], "ymidtop": [39, 42], "zmidtop": [39, 42], "yawangl": [39, 42], "qualitylength": [39, 42], "qualitywidth": [39, 42], "qualityheight": [39, 42], "end_str": [39, 42], "pcicpnioresultschema": [39, 42], "pcictcpresultschema": [39, 42], "ascii": [39, 42], "normalized_amplitude_imag": [39, 42], "distance_imag": [39, 42, 68], "x_imag": [39, 42], "y_imag": [39, 42], "z_imag": [39, 42], "diagnostic_data": [39, 42], "templateinfo": [39, 42], "activeappl": [39, 42, 43], "articlenumb": [39, 42], "articlestatu": [39, 42], "ad": [39, 42, 47, 58, 63, 65], "devicetyp": [39, 42], "enableacquisitionfinishedpc": [39, 42], "ethernetfieldbu": [39, 42], "ethernetfieldbusendian": [39, 42], "evaluationfinishedminholdtim": [39, 42], "10": [39, 41, 42, 52, 59, 62, 63, 65, 68, 69], "extrinsiccalibrotx": [39, 42], "extrinsiccalibroti": [39, 42], "extrinsiccalibrotz": [39, 42], "extrinsiccalibtransx": [39, 42], "extrinsiccalibtransi": [39, 42], "extrinsiccalibtransz": [39, 42], "iodebounc": [39, 42], "ioexternapplicationswitch": [39, 42], "iologictyp": [39, 42], "ipaddressconfig": [39, 42, 52], "imagetimestamprefer": [39, 42], "1520963818": [39, 42], "operatingmod": [39, 42], "pniodevicenam": [39, 42], "passwordactiv": [39, 42], "pcicprotocolvers": [39, 42], "pcictcpport": [39, 42, 52, 68, 72, 74], "50010": [39, 42, 52, 62, 69, 76], "saverestorestatsonapplswitch": [39, 42], "servicereportfailedbuff": [39, 42], "15": [39, 42, 52, 63], "servicereportpassedbuff": [39, 42], "sessiontimeout": [39, 42], "30": [39, 40, 42, 63], "temperaturefront1": [39, 42], "3276": [39, 42], "7": [39, 41, 42, 43, 63], "temperaturefront2": [39, 42], "temperatureimx6": [39, 42], "7179985046387": [39, 42], "temperatureillu": [39, 42], "47": [39, 42], "uptim": [39, 42, 52], "61972222222222": [39, 42], "macaddress": [39, 42], "00": [39, 42, 52], "02": [39, 42, 52], "01": [39, 42, 52], "7d": [39, 42], "96": [39, 42], "networkspe": [39, 42, 52], "staticipv4address": [39, 42, 52], "staticipv4gatewai": [39, 42, 52], "201": [39, 42, 52], "staticipv4subnetmask": [39, 42, 52], "255": [39, 42, 52, 62], "usedhcp": [39, 42, 52], "currenttim": [39, 42, 52], "1520963816": [39, 42], "ntpserver": [39, 42, 43], "startingsynchron": [39, 42], "stat": [39, 42], "synchronizationactiv": [39, 42, 43], "sync": [39, 42, 63], "waitsynctri": [39, 42], "date": [39, 42, 43, 66], "mon": [39, 42, 43], "11": [39, 41, 42, 49, 63], "55": [39, 42], "08": [39, 42], "2018": [39, 42, 43], "hwinfo": [39, 42], "02_a300_c40_02452814_008023176": [39, 42], "diagnos": [39, 42], "02_d322_c32_03038544_008023267": [39, 42], "frontend": [39, 42], "02_f342_c34_17_00049_008023607": [39, 42], "02_i300_001_03106810_008001175": [39, 42], "mainboard": [39, 42], "02_m381_003_03181504_008022954": [39, 42], "miraseri": [39, 42], "0e30": [39, 42], "59af": [39, 42], "0ef7": [39, 42], "0244": [39, 42], "swversion": [39, 42, 52, 70], "algorithm_vers": [39, 42], "45": [39, 42], "calibration_devic": [39, 42], "calibration_vers": [39, 42], "diagnostic_control": [39, 42], "v1": [39, 40, 42, 48, 49, 55, 60, 78], "9dbc4ca5ef": [39, 42], "dirti": [39, 40, 42], "eldk": [39, 42], "goldeneye_yocto": [39, 42], "releas": [39, 42, 47, 49, 50, 51, 54, 60, 63, 73, 78], "2fo3d": [39, 42], "2frb_1": [39, 42], "06d9c894636352a6c93711c7284d02b0c794a527": [39, 42], "ifm_recoveri": [39, 42], "unvers": [39, 42], "ifm_softwar": [39, 42], "1138": [39, 42, 63], "14": [39, 42, 63], "34": [39, 42], "rt31": [39, 42], "yocto": [39, 42], "00009": [39, 42], "ge4ab4d94f288": [39, 42], "jenkin": [39, 42], "dettlx190": [39, 42], "gcc": [39, 40, 41, 42], "smp": [39, 42], "preempt": [39, 42], "rt": [39, 42], "tue": [39, 42, 43], "mar": [39, 42, 43], "13": [39, 42, 43, 52, 63], "16": [39, 42, 43, 49, 63, 65], "06": [39, 42], "07": [39, 42], "cet": [39, 42], "main_appl": [39, 42], "ifm3d_vers": [39, 42], "900": [39, 42], "clock": [39, 42, 52], "1581108383428570624": [39, 42], "17739000000000": [39, 42], "0301": [39, 42, 52], "devicetreebinaryblob": [39, 42, 52], "tegra186": [39, 42, 52], "quill": [39, 42, 52], "p3310": [39, 42, 52], "c03": [39, 42, 52], "dtb": [39, 42, 52], "featur": [39, 40, 41, 42, 52, 74], "partnumb": [39, 42, 52], "m03975": [39, 42, 52], "productionst": [39, 42, 52], "aa": [39, 42, 52], "serialnumb": [39, 42, 52], "000201234159": [39, 42], "vendor": [39, 42, 52], "0001": [39, 42, 52], "authorized_kei": [39, 42, 52], "maceth0": [39, 42, 52], "04": [39, 42, 52, 59, 63, 65], "4b": [39, 42, 52], "ea": [39, 42, 52], "9f": [39, 42, 52], "35": [39, 42], "maceth1": [39, 42, 52], "41": [39, 42, 52], "59": [39, 42], "errormessag": [39, 42, 52], "errornumb": [39, 42, 52], "kernel": [39, 42, 52], "140": [39, 42, 52], "l4t": [39, 40, 42, 47, 51, 52, 59], "r32": [39, 42, 52], "gc35f5eb9d1d9": [39, 42, 52], "221": [39, 42, 52], "v0": [39, 42, 47, 48, 49, 50, 52, 54], "12": [39, 42, 52, 63, 65], "port0": [39, 42, 52, 69, 71, 72], "algodebugconfig": [39, 42, 52], "availablepcicoutput": [39, 42, 52, 57], "2301": [39, 42, 52], "devicetreebinarybloboverlai": [39, 42, 52], "001": [39, 42, 52], "ov9782": [39, 42, 52], "dtbo": [39, 42, 52], "fov": [39, 42, 52], "horizont": [39, 42, 52], "127": [39, 42, 52], "vertic": [39, 42, 52], "800": [39, 42, 52], "1280": [39, 42, 52], "m03933": [39, 42], "sensorid": [39, 42, 52], "ov9782_127x80_noillu_csampl": [39, 42, 52], "000000000280": [39, 42], "experimental_autoexposure2d": [39, 42, 52], "process": [39, 40, 42, 52, 56, 65, 70, 72], "extrinsicheadtous": [39, 42, 52], "port2": [39, 42, 68, 72], "exposurelong": [39, 42], "exposureshort": [39, 42], "400": [39, 42], "offset": [39, 42], "50012": [39, 42, 62, 72, 76], "3101": [39, 42], "irs2381c": [39, 42], "60": [39, 42, 63], "172": [39, 42], "224": [39, 42], "irs2381c_60x45_4x2w_60x45_c2": [39, 42], "standard_range4m": [39, 42], "diparam": [39, 42], "anffiltersizediv2": [39, 42], "enabledynamicsymmetri": [39, 42], "enablestraylight": [39, 42], "enabletemporalfilt": [39, 42], "excessivecorrectionthreshamp": [39, 42], "excessivecorrectionthreshdist": [39, 42], "maxdistnois": [39, 42], "maxsymmetri": [39, 42], "mediansizediv2": [39, 42], "minamplitud": [39, 42], "minreflect": [39, 42], "mixedpixelfiltermod": [39, 42], "mixedpixelthresholdrad": [39, 42], "push": [39, 42], "more": [39, 40, 41, 42, 47, 48, 56, 58, 71, 76], "sometim": [39, 42], "look": [39, 40, 42, 43, 58, 60, 70, 78], "answer": [39, 42], "question": [39, 42], "want": [39, 41, 42, 48, 62, 65], "493": [39, 42], "further": [39, 42, 69, 73], "programmat": [39, 40, 42], "editor": [39, 42], "done": [39, 40, 42, 62, 65, 68, 69, 72], "compliant": [39, 42], "befor": [39, 40, 42, 58, 65, 70, 72], "illustr": [39, 42], "prior": [39, 42], "view": [39, 42, 67, 78], "first": [39, 40, 42, 43, 49, 52, 56, 69, 70], "instanti": [39, 42, 56, 68, 69, 72], "fp": [39, 42], "echo": [39, 42, 43, 51], "our": [39, 42, 43, 58, 65], "break": [39, 42, 51, 60, 68, 78], "down": [39, 42], "did": [39, 42], "fill": [39, 42], "pipe": [39, 42], "them": [39, 41, 42, 47, 49, 58, 70], "paradigm": [39, 42], "just": [39, 42, 43, 58, 65, 72], "complex": [39, 42], "sever": [39, 40, 42, 47, 49], "onc": [39, 40, 42, 57, 65, 69], "fed": [39, 42], "new_set": [39, 42], "One": [39, 42, 50, 68, 72, 74], "advantag": [39, 42], "power": [39, 42, 68], "port1": [39, 42, 70, 72], "select": [39, 42, 49, 56], "summari": [39, 42], "declar": [39, 42, 68, 69, 72, 74], "whose": [39, 43], "476707714": [39, 43], "scratch": [39, 43], "1755226334": [39, 43], "took": [39, 43], "easili": [39, 43, 58], "right": [39, 43], "too": [39, 43, 58, 72], "its": [39, 40, 43, 48, 49, 56, 72, 74], "sec": [39, 43], "local": [39, 40, 43, 65, 74], "18": [39, 43, 59, 63, 65], "22": [39, 43, 59, 63], "49": [39, 43], "edt": [39, 43], "synchron": [39, 43, 66], "21": [39, 43], "44": [39, 43], "And": [39, 43], "09": [39, 43], "notabl": 40, "project": 40, "adher": 40, "semant": 40, "p": [40, 76], "acknowledg": 40, "add": [40, 49, 51, 54, 63], "curl": [40, 48, 49], "v3": [40, 49], "chunk": 40, "abil": [40, 63], "metadata": 40, "multipl": [40, 47, 48, 62, 63, 67, 70, 78], "getbuff": [40, 56, 62, 68, 69, 71, 72], "getbuffercount": 40, "deb": [40, 48, 51, 63, 65], "dockerfil": [40, 65], "prefix": 40, "websocket": 40, "third": [40, 68], "parti": [40, 68], "fetchcontent_declar": 40, "discoveri": 40, "docker": [40, 45, 78], "deploy": [40, 67], "deseri": [40, 41, 48, 67, 78], "unabl": 40, "leaf": 40, "wrap": 40, "saveinit": 40, "o3d3xx": [40, 62, 63], "extend": [40, 62], "cxxopt": 40, "fetchcont": 40, "onerror": 40, "ifm3d_swupdate_curl_timeout": 40, "transact": 40, "link": [40, 68], "pypi": [40, 52], "page": [40, 50, 65, 70], "wrongli": 40, "replac": 40, "glog": [40, 50], "logger": [40, 63, 78], "migrat": [40, 60, 78], "guid": [40, 60, 78], "move": [40, 58, 63, 75, 77], "accordingli": [40, 58], "hpp": [40, 69], "being": [40, 48, 65, 71, 72], "correctli": [40, 65], "caus": [40, 68], "subsequ": 40, "distribut": [40, 48, 51], "stub": 40, "wheel": 40, "mac": [40, 70], "crash": 40, "futur": [40, 49, 57, 58, 71, 72, 74], "waitforfram": [40, 62, 71, 72, 74], "segment": 40, "fault": 40, "typo": 40, "rgbinfov1": [40, 71, 78], "tofinfov4": [40, 78], "extrisic_optic_to_us": 40, "asyncnotif": 40, "asyncerror": 40, "handler": 40, "ifm3dpi": [40, 45, 48, 54, 56, 58, 67, 68, 69, 70, 71, 72, 78], "firewal": 40, "window": [40, 45, 46, 53, 54, 63, 65, 76, 78], "ci": 40, "job": 40, "framecount": 40, "split": [40, 58], "submodul": [40, 58], "codebas": [40, 58], "convert": [40, 62, 69, 70, 74], "snake_cas": [40, 58], "fail": [40, 68], "hash": 40, "mismatch": 40, "certain": 40, "prevent": [40, 68, 72], "ed": 40, "previous": [40, 56], "ped": 40, "transfor_cell_center_to_us": 40, "resolveconfig": 40, "cmake": [40, 48, 49, 50, 54, 63, 73], "target": [40, 48, 49, 51, 54, 73], "endless": [40, 56], "ticket": 40, "without": [40, 50, 56, 58, 65, 69, 72], "upgrad": [40, 50], "nlohmann": [40, 58], "namespac": [40, 58, 68, 70, 71, 72, 74], "automat": [40, 48, 66], "anymor": 40, "unless": 40, "reboottorecoveri": [40, 58], "odsinfov1": [40, 71, 78], "odsoccupancygridv1": [40, 71, 78], "std": [40, 56, 57, 62, 63, 68, 69, 70, 71, 72, 74], "void": [40, 56, 57, 68, 69, 72], "xyz_imag": 40, "were": [40, 57, 58], "zxy": [40, 57], "correct": [40, 57], "auto": [40, 56, 62, 68, 69, 70, 71, 72, 74], "closur": 40, "stale": 40, "od": [40, 71], "confid": [40, 62], "nois": [40, 62], "visibl": 40, "playground": 40, "renam": [40, 58], "c": [40, 41, 48, 49, 50, 51, 54, 56, 58, 63, 68, 69, 70, 71, 72, 76, 78], "camerao3d": [40, 56], "camerao3r": [40, 56], "camerao3x": [40, 56], "respect": [40, 65, 67], "image_id": 40, "oss": 40, "complianc": 40, "architectur": [40, 47], "fishey": [40, 71], "distort": 40, "lib": 40, "ethernet": 40, "latest": [40, 41, 47, 48, 49, 60, 65, 66, 78], "190": 40, "absdiststraylightthreshold": 40, "enablestraylightcorrect": 40, "enablenoiseestim": 40, "compensateambientlightdrift": 40, "distnoisethreshold": 40, "relampstraylightthreshold": 40, "fw": 40, "166": 40, "detect": 40, "convers": [40, 69], "compil": [40, 49, 54, 63], "duse_legacy_coordin": 40, "ON": [40, 48, 49], "old": [40, 57, 58, 62], "behaviour": [40, 59], "o3rcamera": [40, 56], "407": 40, "proxi": 40, "authent": 40, "dockerhub": [40, 41], "ifmrobot": [40, 41], "ghcr": [40, 41, 47], "io": [40, 41, 47], "broken": 40, "xyzimag": 40, "getinit": 40, "arm64": [40, 47], "stlimag": 40, "stl": 40, "header": [40, 48, 50, 63, 68], "ifm3dpy_view": [40, 76], "last": [40, 66], "tag": [40, 41, 47, 48, 49, 65], "commit": 40, "iso3d": 40, "iso3x": 40, "iso3r": 40, "whoami": [40, 62], "ami": 40, "compress": [40, 56], "introduc": [40, 63], "ipv4": 40, "hardcod": 40, "clang": [40, 63], "licens": [40, 63, 67, 69, 70, 71, 72, 74], "spdx": [40, 63, 69, 70, 71, 72, 74], "asio": 40, "boost": [40, 63], "fg": [40, 56, 62, 68, 69, 71, 72, 74], "behind": 40, "nat": 40, "router": 40, "ntp": [40, 63], "action": [40, 56], "v": [40, 48, 65], "2019": [40, 41, 49, 54], "bugfix": [40, 63], "284": 40, "vs2019": 40, "283": 40, "usr": [40, 48, 50], "opencv": [40, 51, 56, 63, 69], "5309": [40, 63], "156": [40, 63], "ro": [40, 41], "repositori": [40, 48, 49, 51], "python2": 40, "focal": 40, "fossa": 40, "snap": 40, "tegra": [40, 47], "jetpack": [40, 51], "improv": [40, 63], "workflow": [40, 49], "revert": 40, "framegrabberudp": [40, 63], "viabl": 40, "udp": [40, 63], "libcurl": 40, "32bit": 40, "spuriou": 40, "wake": 40, "computecartesian": 40, "test": [40, 48, 52, 63, 65, 67], "properli": [40, 48, 70], "blank": 40, "invalid": 40, "pip": [40, 48, 52, 67], "pytest": 40, "race": 40, "pcicclient": [40, 41, 48, 51], "setup": [40, 65], "honor": 40, "cross": [40, 63], "consumpt": [40, 63], "match": 40, "other": [40, 48, 54, 62, 63, 70, 71], "switch": [40, 68], "invok": 40, "r": [40, 50, 70, 76], "inverseintrinsicparamschema": 40, "due": [40, 48, 68], "suspect": 40, "investig": 40, "re": [40, 70], "open": [40, 49, 52], "build_shared_lib": [40, 48], "stderr": 40, "parameter": [40, 65], "easier": [40, 52, 70], "msvc": [40, 41], "concurr": 40, "against": [40, 65], "pybind11": [40, 41, 48, 63, 68], "infrastructur": 40, "111": [40, 63], "ifm3d_proto_debug": 40, "low": 40, "period": 40, "bad": [40, 63], "regardless": [40, 59, 72], "consult": 40, "themselv": 40, "discrimin": 40, "transform": [40, 71], "nan": 40, "whatev": 40, "sentinel": 40, "103": 40, "2114": [40, 63], "107": 40, "translat": [40, 63], "thu": [40, 51], "avoid": [40, 49, 72], "violat": 40, "odr": 40, "driver": [40, 63], "known": [40, 68], "explicitli": [40, 47, 63, 72], "optim": [40, 51], "increment": 40, "speedup": 40, "troubleshoot": 40, "prerequisit": 40, "ifm3d_trac": 40, "top": [40, 51], "cmakelist": 40, "txt": [40, 76], "drop": [40, 63], "viewer": [40, 63, 65], "decreas": 40, "pcl": [40, 63, 65], "framework": [40, 48, 63], "significantli": 40, "refactor": 40, "folder": [40, 50, 73, 76], "imagebuff": [40, 72, 74], "conform": 40, "publish": 40, "regress": [40, 63], "regard": 40, "surfac": 40, "better": [40, 63, 70], "broke": 40, "regist": [40, 63, 67, 69], "silent": 40, "client": [40, 48, 63, 72], "libo3d3xx": 40, "dump": [40, 43, 44, 52, 63, 70], "capabl": 40, "contrib": 40, "bash": [40, 63, 65, 76], "bump": 40, "put_tim": [40, 63, 74], "render": [40, 65], "point": [40, 41, 56, 62, 67, 70, 71], "cloud": [40, 41, 56, 67, 70], "color": 40, "longer": 40, "try": [40, 52, 71], "much": 40, "respons": [40, 68], "plug": [40, 70], "choos": [40, 56, 71], "modif": 40, "thank": [40, 65], "aaronhoi": 40, "robot": [40, 41, 51, 72], "hi": 40, "work": [40, 41, 47, 48, 49, 52, 62, 65, 68], "dpkg": [40, 48, 50], "dep": 40, "debian": [40, 50], "becaus": 40, "share": [40, 48, 62, 63, 72], "across": [40, 62, 63], "shlibdep": [40, 48], "u": [40, 65], "alpha": 40, "percept": [41, 66, 72], "ros2": 41, "comprehens": 41, "rgb": [41, 56, 67, 71, 72, 78], "main": [41, 47, 48, 49, 51, 56, 57, 58, 62, 68, 69, 70, 71, 72, 74], "branch": [41, 47, 48, 49], "probabl": 41, "full": [41, 47, 48, 49, 56, 62, 67], "gui": [41, 63], "mirror": 41, "8": [41, 50, 59, 62, 63, 69], "direct": [41, 72], "actuat": 41, "manipul": [41, 56, 78], "interact": 41, "shell": [41, 52, 76], "fleet": 41, "nativ": 41, "zero": 41, "section": [41, 47, 48, 62, 65], "pull": [41, 47, 48], "stabl": [41, 47], "OR": [41, 52, 56, 62, 72], "built": [41, 49, 51, 54, 65, 76], "nightli": [41, 47, 48, 49], "tracker": 41, "contact": 41, "relev": [47, 70, 71], "93": [47, 48, 56, 63], "suffix": 47, "amd64": 47, "aarch64": 47, "nvidia": [47, 51], "combin": 47, "build_module_framegrabb": 48, "build_module_tool": 48, "build_module_deseri": 48, "build_module_pybind11": 48, "use_legacy_coordin": 48, "legaci": 48, "92": [48, 63], "axi": 48, "build_module_swupdat": 48, "build_sdk_pkg": 48, "build_exampl": 48, "build_doc": 48, "build_module_pciccli": 48, "build_in_dep": [48, 49], "download": [48, 54, 67], "machin": 48, "meta": 48, "googletest": [48, 49], "libxmlrpc": [48, 50], "clone": [48, 49], "consist": [48, 49], "found": [48, 49, 65], "usual": 48, "idiom": 48, "mkdir": [48, 49, 73], "cd": [48, 49, 50, 73], "dcmake_install_prefix": [48, 49], "along": [48, 49, 56, 62, 74], "speed": [48, 63], "ninja": 48, "gninja": 48, "dynam": 48, "repackag": 48, "readelf": 48, "binutil": 48, "ldd": 48, "libc": 48, "bin": [48, 49, 54, 65, 76], "offici": [48, 52, 63], "awai": 48, "altern": [48, 51, 63, 67, 69], "ifm3d_": 48, "_amd64": 48, "experienc": 48, "puzzl": 48, "partit": 48, "approach": [48, 58, 65], "tradit": 48, "cpack_debian_package_shlibdep": 48, "around": [48, 69], "exploit": 48, "priori": 48, "certainli": 48, "proper": [48, 70, 74], "chain": 48, "place": [48, 58, 65, 72], "visual": [49, 54, 65], "studio": [49, 54], "newer": 49, "git": [49, 65], "microsoft": 49, "2017": [49, 54], "suffici": [49, 62], "Be": [49, 65], "desktop": 49, "90": 49, "onward": 49, "prompt": 49, "ifm3d_cmake_gener": 49, "ifm3d_build_dir": 49, "dir": 49, "dcmake_windows_export_all_symbol": 49, "dbuild_sdk_pkg": 49, "dcmake_prefix_path": [49, 73], "dcmake_build_typ": 49, "dbuild_in_dep": 49, "all_build": [49, 73], "append": 49, "everi": [49, 56, 72], "clean": [49, 52], "ifm3d_binary_dir": [49, 54], "cmake_prefix_path": 49, "stage": 49, "alongsid": 49, "dbuild_exampl": 49, "directori": [49, 54, 65], "ubuntu_vers": 50, "_deb": 50, "xz": 50, "tar": 50, "libssl": 50, "dev": [50, 62, 68, 70], "libcurl4": 50, "openssl": 50, "libgoogl": 50, "libproj": 50, "essenti": 50, "coreutil": 50, "differ": [50, 56, 62, 68, 72, 74, 76], "flavour": 50, "unzip": 50, "ifm3d_1": 50, "1_amd64": 50, "shall": 51, "caution": 51, "might": [51, 58, 66, 72], "jetson": 51, "gpu": 51, "soc": 51, "few": [51, 65], "overrid": [51, 68], "core": [51, 69, 72, 76], "sh": 51, "nexu": [51, 65], "robotics_l4t_jetpack_4_4_arm64": 51, "melod": 51, "robotics_l4t_jetpack_4_3_arm64": 51, "adv": 51, "keyserv": 51, "hkp": 51, "pool": 51, "sk": 51, "recv": 51, "8ab59d3a2bd7b692": 51, "python3": [51, 76], "venv": [52, 76], "virtual": [52, 67], "verifi": [52, 70], "quickli": [52, 65], "displai": [52, 65, 67, 70, 72, 74], "freez": 52, "ex": [52, 54, 76], "Then": 52, "vpu": [52, 56, 68, 69, 70, 72, 74], "shorten": 52, "indent": [52, 70], "1581090739817663072": 52, "94000000000": 52, "tabletop2": 52, "000201234176": 52, "d1": 52, "76": 52, "m03976": 52, "000000000281": 52, "ifm3d_windows_x": 54, "locat": [54, 58], "programfil": 54, "brought": 55, "children": 56, "o3dcamera": 56, "o3xcamera": 56, "remain": 56, "unchang": 56, "find": [56, 76], "inherit": [56, 72], "diagram": 56, "simplifi": 56, "make_shar": [56, 62, 68, 69, 70, 71, 72, 74], "default_pcic_port": 56, "recept": 56, "bandwidth": [56, 72], "subset": [56, 70], "radial_dist": [56, 62], "ptr": [56, 62, 68, 69, 72, 74], "def": [56, 68, 69, 72], "similar": 56, "previou": [56, 62, 72], "punctual": 56, "especi": 56, "soon": [56, 72], "ok": [56, 71, 72], "500": [56, 71, 72], "500m": [56, 72], "asyncio": [56, 72], "coroutin": 56, "noth": 56, "input": [56, 72], "jpeg": [56, 62, 67, 69], "align": [57, 58], "shutdown": 57, "deadlock": 57, "finish": 57, "With": [58, 62], "grow": 58, "everyth": 58, "begin": 58, "confus": 58, "overwhelm": 58, "therefor": 58, "akin": 58, "tabl": [58, 62], "fulli": 58, "pascalcas": 58, "rest": 58, "waitforrecoveri": 58, "reboottoproduct": 58, "waitforproduct": 58, "flashfirmwar": 58, "lead": 58, "problem": 58, "tri": 58, "solv": 58, "doesn": 58, "t": [58, 62, 65, 74], "interfer": 58, "suppli": 58, "fairli": 58, "easi": [58, 65], "qualifi": 58, "j": [58, 62], "_json": 58, "_json_point": [58, 68, 72], "ambigu": 58, "json_use_global_udl": 58, "togeth": 58, "6": [59, 63, 68], "introduct": 59, "changelog": [60, 78], "design": [62, 68], "sequenti": 62, "pixel_format": [62, 69], "alloc": [62, 72], "dealloc": [62, 72], "row": 62, "col": 62, "nchannel": 62, "8u": 62, "format_8u": [62, 69], "x10": 62, "bit": 62, "structur": [62, 71, 72, 74], "posit": 62, "50": 62, "postion": 62, "z": [62, 70], "pixel_t": 62, "buffer_": 62, "iter": 62, "iteratoradapt": 62, "forward": 62, "format_16u": [62, 69], "multi": [62, 66], "point3d": 62, "cout": [62, 70, 71, 72, 74], "val": 62, "deduc": 62, "iostream": [62, 68, 69, 70, 71, 72, 74], "argc": 62, "const": [62, 68, 69, 71, 72, 74], "char": 62, "makeshar": [62, 70, 72], "poll": [62, 67], "amp_buff": 62, "dist_buff": 62, "endl": [62, 70, 71, 72, 74], "static_cast": 62, "dataformat": [62, 69], "wherea": 62, "format_32f": [62, 69], "amp": 62, "format_16": [62, 69], "point3d_32f": 62, "xyz_data": 62, "summar": 62, "radial": 62, "raw_amplitud": 62, "na": 62, "cartesian": 62, "int16_t": 62, "grayscal": 62, "grai": 62, "distance_nois": 62, "unit16_t": 62, "img_jpeg": 62, "unit8_t": 62, "timepointt": [62, 74], "beta": 63, "fix": [63, 72], "62": 63, "973": 63, "host": 63, "769": 63, "1506": 63, "1522": 63, "122": 63, "126": 63, "disk": 63, "cpu": 63, "2848": 63, "25": 63, "4073": 63, "4123": 63, "fine": 63, "17": 63, "7020": 63, "expand": 63, "arch": 63, "Not": 63, "earli": 63, "adopt": 63, "refin": 65, "subject": 65, "notic": [65, 72], "patienc": 65, "eas": 65, "quick": 65, "fresh": 65, "post": 65, "safe": [65, 69], "skip": 65, "docker_fil": 65, "vtag": 65, "run_test": 65, "subirectori": 65, "recurs": 65, "omit": 65, "master": 65, "dure": 65, "live": 65, "subdirectori": 65, "evalu": 65, "bring": 65, "appropri": 65, "maintain": 65, "ifm3d1604": 65, "inspect": 65, "ti": 65, "c8c9865efb14": 65, "351437496": 65, "95815": 65, "captur": 65, "xhost": 65, "consid": [65, 76], "insecur": 65, "urg": 65, "read": [65, 67, 72], "man": 65, "decid": 65, "secur": 65, "concern": 65, "root": [65, 76], "tmp": 65, "x11": 65, "rw": 65, "b79de0545832": 65, "pointcloud": 65, "ifm3d1804": 65, "330fc18969c4": 65, "33508": 65, "f98b659d1e71": 65, "ifm3d2004": 65, "inspir": 66, "comment": 66, "time_sync": 66, "cpp": 66, "conf": [66, 70, 74], "march": 66, "2022": [66, 69], "impli": 67, "permit": 67, "decod": 67, "facilit": 68, "sink": 68, "termin": 68, "logformattertext": [68, 78], "mylogwrit": 68, "my_logg": 68, "__name__": [68, 72], "__main__": [68, 72], "happen": 68, "kept": 68, "throughout": 68, "singleton": 68, "pattern": 68, "setloglevel": 68, "lower": 68, "macro": 68, "log_debug": 68, "log_info": 68, "log_warn": 68, "log_error": 68, "log_crit": 68, "log_verbos": 68, "fmt": 68, "chrono": [68, 69, 71, 72, 74], "fg_pcic_port": [68, 72], "grabber": [68, 72], "onnewfram": [68, 69, 72], "this_thread": [68, 69, 72], "sleep_for": [68, 69, 72], "destin": 68, "databas": 68, "abstract": 68, "setlogwrit": 68, "spdlog": 68, "logwriterspdlog": 68, "level_enum": 68, "spdlog_level": 68, "getloglevel": 68, "err": 68, "source_loc": 68, "getfil": 68, "getlin": 68, "getfunc": 68, "getmessag": 68, "similarli": 69, "rgb_decod": 69, "cv2": 69, "imdecod": 69, "imread_unchang": 69, "cv": 69, "mat": 69, "startwindowthread": 69, "namedwindow": 69, "window_norm": 69, "imshow": 69, "waitkei": 69, "sleep": [69, 72], "copyright": [69, 70, 71, 72, 74], "present": [69, 70, 71, 72, 74], "electron": [69, 70, 71, 72, 74], "gmbh": [69, 70, 71, 72, 74], "apach": [69, 70, 71, 72, 74], "distance_image_info": 69, "opencv2": 69, "highgui": 69, "lut": 69, "unordered_map": 69, "lut_typ": 69, "cv_8u": 69, "format_8": 69, "cv_8": 69, "cv_16u": 69, "cv_16": 69, "format_32": 69, "cv_32": 69, "cv_32f": 69, "format_32f3": 69, "format_64f": 69, "cv_64f": 69, "lut_siz": 69, "ownership": [69, 72], "destroi": 69, "convertimagetomatnocopi": 69, "img": 69, "dispos": 69, "convertimagetomatcopi": 69, "memcpi": 69, "rgb_img": 69, "rgb_cv": 69, "affect": 70, "modifi": 70, "fit": 70, "concret": 70, "subclass": 70, "cast": 70, "dev_o3r": 70, "static_pointer_cast": 70, "init_statu": 70, "getinitstatu": 70, "dynamic_pointer_cast": 70, "nullptr": 70, "statu": 70, "attach": 70, "aspect": 70, "hierarchi": 70, "great_o3r": 70, "my_o3r": 70, "littl": 70, "2021": [70, 71, 72, 74], "iomanip": [70, 74], "fstream": 70, "setw": [70, 74], "my_new_o3r": 70, "pinhol": 71, "extrinsicoptictous": [71, 78], "hous": 71, "occup": 71, "mention": 71, "principl": 71, "accompani": 71, "rgb_info_buff": 71, "els": [71, 72, 74], "timeouterror": 71, "rgb_info_des": 71, "f": [71, 72], "chrono_liter": [71, 72, 74], "WITH": 71, "future_statu": [71, 72, 74], "cerr": [71, 72, 74], "model_paramet": 71, "acquir": 72, "o3xxxx": 72, "seri": 72, "continu": 72, "act": 72, "At": 72, "portx": 72, "intuit": 72, "distinct": 72, "xml_rpc": 72, "moment": 72, "unus": 72, "Its": 72, "shared_ptr": 72, "actor": 72, "inde": 72, "probe": 72, "determin": 72, "mani": 72, "reduc": 72, "dist": 72, "shape": 72, "1500": 72, "1500m": 72, "ifm3d_playground": 73, "k": 74, "formattimestamp": 74, "time_t": 74, "system_clock": 74, "to_time_t": 74, "time_point_cast": 74, "durat": 74, "milli": 74, "duration_cast": 74, "time_since_epoch": 74, "ostringstream": 74, "localtim": 74, "setfil": 74, "retreiv": 74, "item": 74, "p1": 74, "p2": 74, "push_back": 74, "nanosecond": 74, "kind": 76, "my_venv": 76, "posix": 76, "zsh": 76, "fish": 76, "csh": 76, "tcsh": 76, "powershel": 76, "ps1": 76, "cmd": 76, "bat": 76, "overview": 78, "o3dexposuretim": 78, "o3dextrinsiccalibr": 78, "o3dillutemperatur": 78, "o3dinverseinstrinsiccalibr": 78, "logformatterjson": 78}, "objects": {"": [[0, 0, 0, "-", "ifm3dpy"]], "ifm3dpy": [[1, 1, 1, "", "Awaitable"], [2, 1, 1, "", "FrameAwaitable"], [3, 0, 0, "-", "deserialize"], [16, 0, 0, "-", "device"], [25, 0, 0, "-", "framegrabber"], [29, 0, 0, "-", "logging"], [36, 5, 1, "", "run"], [37, 0, 0, "-", "swupdater"]], "ifm3dpy.Awaitable": [[1, 2, 1, "", "__init__"], [1, 2, 1, "", "wait"], [1, 2, 1, "", "wait_for"]], "ifm3dpy.FrameAwaitable": [[2, 2, 1, "", "__init__"], [2, 2, 1, "", "wait"], [2, 2, 1, "", "wait_for"]], "ifm3dpy.deserialize": [[4, 1, 1, "", "Calibration"], [5, 1, 1, "", "ExtrinsicOpticToUser"], [6, 1, 1, "", "O3DExposureTimes"], [7, 1, 1, "", "O3DExtrinsicCalibration"], [8, 1, 1, "", "O3DILLUTemperature"], [9, 1, 1, "", "O3DInstrinsicCalibration"], [10, 4, 1, "", "O3DInverseInstrinsicCalibration"], [11, 1, 1, "", "ODSInfoV1"], [12, 1, 1, "", "ODSOccupancyGridV1"], [13, 1, 1, "", "RGBInfoV1"], [14, 1, 1, "", "TOFInfoV3"], [15, 1, 1, "", "TOFInfoV4"]], "ifm3dpy.deserialize.Calibration": [[4, 2, 1, "", "__init__"], [4, 3, 1, "", "model_id"], [4, 3, 1, "", "parameters"]], "ifm3dpy.deserialize.ExtrinsicOpticToUser": [[5, 2, 1, "", "__init__"], [5, 3, 1, "", "rot_x"], [5, 3, 1, "", "rot_y"], [5, 3, 1, "", "rot_z"], [5, 3, 1, "", "trans_x"], [5, 3, 1, "", "trans_y"], [5, 3, 1, "", "trans_z"]], "ifm3dpy.deserialize.O3DExposureTimes": [[6, 2, 1, "", "__init__"], [6, 3, 1, "", "data"], [6, 2, 1, "", "deserialize"]], "ifm3dpy.deserialize.O3DExtrinsicCalibration": [[7, 2, 1, "", "__init__"], [7, 3, 1, "", "data"], [7, 2, 1, "", "deserialize"]], "ifm3dpy.deserialize.O3DILLUTemperature": [[8, 2, 1, "", "__init__"], [8, 3, 1, "", "data"], [8, 2, 1, "", "deserialize"]], "ifm3dpy.deserialize.O3DInstrinsicCalibration": [[9, 2, 1, "", "__init__"], [9, 3, 1, "", "data"], [9, 2, 1, "", "deserialize"]], "ifm3dpy.deserialize.ODSInfoV1": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "deserialize"], [11, 3, 1, "", "timestamp_ns"], [11, 3, 1, "", "zone_config_id"], [11, 3, 1, "", "zone_occupied"]], "ifm3dpy.deserialize.ODSOccupancyGridV1": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "deserialize"], [12, 3, 1, "", "height"], [12, 3, 1, "", "image"], [12, 3, 1, "", "timestamp_ns"], [12, 3, 1, "", "transform_cell_center_to_user"], [12, 3, 1, "", "width"]], "ifm3dpy.deserialize.RGBInfoV1": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "deserialize"], [13, 3, 1, "", "exposure_time"], [13, 3, 1, "", "extrinsic_optic_to_user"], [13, 3, 1, "", "frame_counter"], [13, 3, 1, "", "intrinsic_calibration"], [13, 3, 1, "", "inverse_intrinsic_calibration"], [13, 3, 1, "", "timestamp_ns"], [13, 3, 1, "", "version"]], "ifm3dpy.deserialize.TOFInfoV3": [[14, 2, 1, "", "__init__"], [14, 3, 1, "", "amp_normalization_factors"], [14, 3, 1, "", "amplitude_resolution"], [14, 2, 1, "", "deserialize"], [14, 3, 1, "", "distance_resolution"], [14, 3, 1, "", "exposure_times_s"], [14, 3, 1, "", "exposure_timestamps_ns"], [14, 3, 1, "", "extrinsic_optic_to_user"], [14, 3, 1, "", "illu_temperature"], [14, 3, 1, "", "imager"], [14, 3, 1, "", "intrinsic_calibration"], [14, 3, 1, "", "inverse_intrinsic_calibration"], [14, 3, 1, "", "mode"], [14, 3, 1, "", "version"]], "ifm3dpy.deserialize.TOFInfoV4": [[15, 2, 1, "", "__init__"], [15, 3, 1, "", "amp_normalization_factors"], [15, 3, 1, "", "amplitude_resolution"], [15, 2, 1, "", "deserialize"], [15, 3, 1, "", "distance_resolution"], [15, 3, 1, "", "exposure_times_s"], [15, 3, 1, "", "exposure_timestamps_ns"], [15, 3, 1, "", "extrinsic_optic_to_user"], [15, 3, 1, "", "illu_temperature"], [15, 3, 1, "", "imager"], [15, 3, 1, "", "intrinsic_calibration"], [15, 3, 1, "", "inverse_intrinsic_calibration"], [15, 3, 1, "", "measurement_block_index"], [15, 3, 1, "", "measurement_range_max"], [15, 3, 1, "", "measurement_range_min"], [15, 3, 1, "", "mode"], [15, 3, 1, "", "version"]], "ifm3dpy.device": [[17, 1, 1, "", "Device"], [18, 1, 1, "", "Error"], [19, 1, 1, "", "LegacyDevice"], [20, 1, 1, "", "O3D"], [21, 1, 1, "", "O3R"], [22, 1, 1, "", "O3X"], [23, 1, 1, "", "PortInfo"], [24, 1, 1, "", "SemVer"]], "ifm3dpy.device.Device": [[17, 2, 1, "", "__init__"], [17, 2, 1, "", "am_i"], [17, 1, 1, "", "boot_mode"], [17, 2, 1, "", "check_minimum_firmware_version"], [17, 1, 1, "", "device_family"], [17, 2, 1, "", "device_parameter"], [17, 2, 1, "", "device_type"], [17, 2, 1, "", "firmware_version"], [17, 2, 1, "", "force_trigger"], [17, 2, 1, "", "from_json"], [17, 1, 1, "", "import_flags"], [17, 3, 1, "", "ip"], [17, 1, 1, "", "mfilt_mask_size"], [17, 1, 1, "", "operating_mode"], [17, 2, 1, "", "reboot"], [17, 1, 1, "", "spatial_filter"], [17, 1, 1, "", "temporal_filter"], [17, 2, 1, "", "to_json"], [17, 2, 1, "", "trace_logs"], [17, 1, 1, "", "trigger_mode"], [17, 2, 1, "", "who_am_i"], [17, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.Device.boot_mode": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.device_family": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.import_flags": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.mfilt_mask_size": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.operating_mode": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.spatial_filter": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.temporal_filter": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.trigger_mode": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Error": [[18, 2, 1, "", "__init__"], [18, 3, 1, "", "code"], [18, 3, 1, "", "message"], [18, 3, 1, "", "what"], [18, 2, 1, "", "with_traceback"]], "ifm3dpy.device.LegacyDevice": [[19, 2, 1, "", "__init__"], [19, 2, 1, "", "active_application"], [19, 2, 1, "", "am_i"], [19, 2, 1, "", "application_list"], [19, 2, 1, "", "application_types"], [19, 1, 1, "", "boot_mode"], [19, 2, 1, "", "cancel_session"], [19, 2, 1, "", "check_minimum_firmware_version"], [19, 2, 1, "", "copy_application"], [19, 2, 1, "", "create_application"], [19, 2, 1, "", "delete_application"], [19, 1, 1, "", "device_family"], [19, 2, 1, "", "device_parameter"], [19, 2, 1, "", "device_type"], [19, 2, 1, "", "export_ifm_app"], [19, 2, 1, "", "export_ifm_config"], [19, 2, 1, "", "factory_reset"], [19, 2, 1, "", "firmware_version"], [19, 2, 1, "", "force_trigger"], [19, 2, 1, "", "from_json"], [19, 2, 1, "", "heartbeat"], [19, 2, 1, "", "imager_types"], [19, 1, 1, "", "import_flags"], [19, 2, 1, "", "import_ifm_app"], [19, 2, 1, "", "import_ifm_config"], [19, 3, 1, "", "ip"], [19, 1, 1, "", "mfilt_mask_size"], [19, 1, 1, "", "operating_mode"], [19, 3, 1, "", "password"], [19, 2, 1, "", "reboot"], [19, 2, 1, "", "request_session"], [19, 3, 1, "", "session_id"], [19, 2, 1, "", "set_current_time"], [19, 2, 1, "", "set_temporary_application_parameters"], [19, 1, 1, "", "spatial_filter"], [19, 1, 1, "", "temporal_filter"], [19, 2, 1, "", "to_json"], [19, 2, 1, "", "trace_logs"], [19, 1, 1, "", "trigger_mode"], [19, 2, 1, "", "unit_vectors"], [19, 2, 1, "", "who_am_i"], [19, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.LegacyDevice.boot_mode": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.device_family": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.import_flags": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.mfilt_mask_size": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.operating_mode": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.spatial_filter": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.temporal_filter": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.trigger_mode": [[19, 3, 1, "", "name"]], "ifm3dpy.device.O3D": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "active_application"], [20, 2, 1, "", "am_i"], [20, 2, 1, "", "application_list"], [20, 2, 1, "", "application_types"], [20, 1, 1, "", "boot_mode"], [20, 2, 1, "", "cancel_session"], [20, 2, 1, "", "check_minimum_firmware_version"], [20, 2, 1, "", "copy_application"], [20, 2, 1, "", "create_application"], [20, 2, 1, "", "delete_application"], [20, 1, 1, "", "device_family"], [20, 2, 1, "", "device_parameter"], [20, 2, 1, "", "device_type"], [20, 2, 1, "", "export_ifm_app"], [20, 2, 1, "", "export_ifm_config"], [20, 2, 1, "", "factory_reset"], [20, 2, 1, "", "firmware_version"], [20, 2, 1, "", "force_trigger"], [20, 2, 1, "", "from_json"], [20, 2, 1, "", "heartbeat"], [20, 2, 1, "", "imager_types"], [20, 1, 1, "", "import_flags"], [20, 2, 1, "", "import_ifm_app"], [20, 2, 1, "", "import_ifm_config"], [20, 3, 1, "", "ip"], [20, 1, 1, "", "mfilt_mask_size"], [20, 1, 1, "", "operating_mode"], [20, 3, 1, "", "password"], [20, 2, 1, "", "reboot"], [20, 2, 1, "", "request_session"], [20, 3, 1, "", "session_id"], [20, 2, 1, "", "set_current_time"], [20, 2, 1, "", "set_temporary_application_parameters"], [20, 1, 1, "", "spatial_filter"], [20, 1, 1, "", "temporal_filter"], [20, 2, 1, "", "to_json"], [20, 2, 1, "", "trace_logs"], [20, 1, 1, "", "trigger_mode"], [20, 2, 1, "", "unit_vectors"], [20, 2, 1, "", "who_am_i"], [20, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.O3D.boot_mode": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.device_family": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.import_flags": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.mfilt_mask_size": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.operating_mode": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.spatial_filter": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.temporal_filter": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.trigger_mode": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3R": [[21, 2, 1, "", "__init__"], [21, 2, 1, "", "am_i"], [21, 1, 1, "", "boot_mode"], [21, 2, 1, "", "check_minimum_firmware_version"], [21, 1, 1, "", "device_family"], [21, 2, 1, "", "device_parameter"], [21, 2, 1, "", "device_type"], [21, 2, 1, "", "factory_reset"], [21, 2, 1, "", "firmware_version"], [21, 2, 1, "", "force_trigger"], [21, 2, 1, "", "from_json"], [21, 2, 1, "", "get"], [21, 2, 1, "", "get_diagnostic"], [21, 2, 1, "", "get_diagnostic_filter_schema"], [21, 2, 1, "", "get_diagnostic_filtered"], [21, 2, 1, "", "get_init"], [21, 2, 1, "", "get_schema"], [21, 1, 1, "", "import_flags"], [21, 3, 1, "", "ip"], [21, 1, 1, "", "mfilt_mask_size"], [21, 1, 1, "", "operating_mode"], [21, 2, 1, "", "port"], [21, 2, 1, "", "ports"], [21, 2, 1, "", "reboot"], [21, 2, 1, "", "reboot_to_recovery"], [21, 2, 1, "", "remove"], [21, 2, 1, "", "reset"], [21, 2, 1, "", "resolve_config"], [21, 2, 1, "", "save_init"], [21, 2, 1, "", "set"], [21, 1, 1, "", "spatial_filter"], [21, 1, 1, "", "temporal_filter"], [21, 2, 1, "", "to_json"], [21, 2, 1, "", "trace_logs"], [21, 1, 1, "", "trigger_mode"], [21, 2, 1, "", "who_am_i"], [21, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.O3R.boot_mode": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.device_family": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.import_flags": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.mfilt_mask_size": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.operating_mode": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.spatial_filter": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.temporal_filter": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.trigger_mode": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3X": [[22, 2, 1, "", "__init__"], [22, 2, 1, "", "active_application"], [22, 2, 1, "", "am_i"], [22, 2, 1, "", "application_list"], [22, 2, 1, "", "application_types"], [22, 1, 1, "", "boot_mode"], [22, 2, 1, "", "cancel_session"], [22, 2, 1, "", "check_minimum_firmware_version"], [22, 2, 1, "", "copy_application"], [22, 2, 1, "", "create_application"], [22, 2, 1, "", "delete_application"], [22, 1, 1, "", "device_family"], [22, 2, 1, "", "device_parameter"], [22, 2, 1, "", "device_type"], [22, 2, 1, "", "export_ifm_app"], [22, 2, 1, "", "export_ifm_config"], [22, 2, 1, "", "factory_reset"], [22, 2, 1, "", "firmware_version"], [22, 2, 1, "", "force_trigger"], [22, 2, 1, "", "from_json"], [22, 2, 1, "", "heartbeat"], [22, 2, 1, "", "imager_types"], [22, 1, 1, "", "import_flags"], [22, 2, 1, "", "import_ifm_app"], [22, 2, 1, "", "import_ifm_config"], [22, 3, 1, "", "ip"], [22, 1, 1, "", "mfilt_mask_size"], [22, 1, 1, "", "operating_mode"], [22, 3, 1, "", "password"], [22, 2, 1, "", "reboot"], [22, 2, 1, "", "request_session"], [22, 3, 1, "", "session_id"], [22, 2, 1, "", "set_current_time"], [22, 2, 1, "", "set_temporary_application_parameters"], [22, 1, 1, "", "spatial_filter"], [22, 1, 1, "", "temporal_filter"], [22, 2, 1, "", "to_json"], [22, 2, 1, "", "trace_logs"], [22, 1, 1, "", "trigger_mode"], [22, 2, 1, "", "unit_vectors"], [22, 2, 1, "", "who_am_i"], [22, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.O3X.boot_mode": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.device_family": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.import_flags": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.mfilt_mask_size": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.operating_mode": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.spatial_filter": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.temporal_filter": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.trigger_mode": [[22, 3, 1, "", "name"]], "ifm3dpy.device.PortInfo": [[23, 2, 1, "", "__init__"], [23, 3, 1, "", "pcic_port"], [23, 3, 1, "", "port"], [23, 3, 1, "", "type"]], "ifm3dpy.device.SemVer": [[24, 2, 1, "", "Parse"], [24, 2, 1, "", "__init__"]], "ifm3dpy.framegrabber": [[26, 1, 1, "", "Frame"], [27, 1, 1, "", "FrameGrabber"], [28, 1, 1, "", "buffer_id"]], "ifm3dpy.framegrabber.Frame": [[26, 2, 1, "", "__init__"], [26, 2, 1, "", "frame_count"], [26, 2, 1, "", "get_buffer"], [26, 2, 1, "", "get_buffer_count"], [26, 2, 1, "", "get_buffers"], [26, 2, 1, "", "has_buffer"], [26, 2, 1, "", "timestamps"]], "ifm3dpy.framegrabber.FrameGrabber": [[27, 2, 1, "", "__init__"], [27, 2, 1, "", "is_masking"], [27, 2, 1, "", "is_running"], [27, 2, 1, "", "on_async_error"], [27, 2, 1, "", "on_async_notification"], [27, 2, 1, "", "on_error"], [27, 2, 1, "", "on_new_frame"], [27, 2, 1, "", "set_masking"], [27, 2, 1, "", "start"], [27, 2, 1, "", "stop"], [27, 2, 1, "", "sw_trigger"], [27, 2, 1, "", "wait_for_frame"]], "ifm3dpy.framegrabber.buffer_id": [[28, 2, 1, "", "__init__"], [28, 3, 1, "", "name"]], "ifm3dpy.logging": [[30, 1, 1, "", "LogEntry"], [31, 1, 1, "", "LogFormatterJson"], [32, 1, 1, "", "LogFormatterText"], [33, 1, 1, "", "LogLevel"], [34, 1, 1, "", "LogWriter"], [35, 1, 1, "", "Logger"]], "ifm3dpy.logging.LogEntry": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "file"]], "ifm3dpy.logging.LogFormatterJson": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "format"]], "ifm3dpy.logging.LogFormatterText": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "format"]], "ifm3dpy.logging.LogLevel": [[33, 2, 1, "", "__init__"], [33, 3, 1, "", "name"]], "ifm3dpy.logging.LogWriter": [[34, 2, 1, "", "__init__"], [34, 2, 1, "", "write"]], "ifm3dpy.logging.Logger": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "log_level"], [35, 2, 1, "", "set_log_level"], [35, 2, 1, "", "set_writer"]], "ifm3dpy.swupdater": [[38, 1, 1, "", "SWUpdater"]], "ifm3dpy.swupdater.SWUpdater": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "flash_firmware"], [38, 2, 1, "", "reboot_to_productive"], [38, 2, 1, "", "reboot_to_recovery"], [38, 2, 1, "", "wait_for_productive"], [38, 2, 1, "", "wait_for_recovery"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"ifm3dpi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 52, 76], "await": 1, "frameawait": 2, "deseri": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 71], "calibr": 4, "extrinsicoptictous": 5, "o3dexposuretim": 6, "o3dextrinsiccalibr": 7, "o3dillutemperatur": 8, "o3dinstrinsiccalibr": 9, "o3dinverseinstrinsiccalibr": 10, "odsinfov1": 11, "odsoccupancygridv1": 12, "rgbinfov1": 13, "tofinfov3": 14, "tofinfov4": 15, "devic": [16, 17, 18, 19, 20, 21, 22, 23, 24, 56, 62], "error": [18, 40], "legacydevic": 19, "o3d": 20, "o3r": [21, 71, 72], "o3x": 22, "portinfo": 23, "semver": 24, "framegrabb": [25, 26, 27, 28, 56, 72], "frame": [26, 56, 72], "buffer_id": [28, 57], "log": [29, 30, 31, 32, 33, 34, 35, 68], "logentri": 30, "logformatterjson": 31, "logformattertext": 32, "loglevel": 33, "logwrit": 34, "logger": [35, 59, 68], "run": [36, 49, 54, 65], "swupdat": [37, 38, 58], "paramet": [38, 39, 42], "ifm3d": [39, 40, 41, 42, 44, 48, 49, 50, 54, 58, 59, 61, 62, 63, 65, 68, 73, 77, 78], "command": [39, 44, 49, 54], "line": [39, 44, 49, 54], "tool": [39, 44, 49, 54], "overview": [39, 41, 44, 48], "camera": [39, 42, 43, 56, 70], "imag": [39, 42, 69, 72, 76], "configur": [39, 42, 70], "dump": [39, 42], "config": [39, 42], "set": [39, 42, 43, 72], "singl": [39, 42], "multipl": [39, 42, 74], "exampl": [39, 43, 49, 62, 66, 69, 70, 72], "creat": [39, 43, 62, 76], "new": [39, 43, 60, 70, 76, 78], "applic": [39, 43], "ntp": [39, 43], "server": [39, 43], "connect": [39, 43], "time": [39, 43], "changelog": 40, "unreleas": 40, "1": [40, 57], "5": 40, "3": [40, 59], "2024": 40, "04": 40, "05": 40, "fix": 40, "2": [40, 58], "02": 40, "20": 40, "ad": 40, "07": 40, "0": [40, 56, 57, 58, 59], "yank": 40, "dure": 40, "releas": [40, 41], "us": [40, 49, 54, 69, 72, 77], "chang": [40, 57, 58, 59], "4": 40, "2023": 40, "09": 40, "28": 40, "15": 40, "08": 40, "31": 40, "06": 40, "22": 40, "16": 40, "6": 40, "03": 40, "17": 40, "2022": 40, "12": 40, "10": 40, "14": 40, "93": 40, "92": 40, "2021": 40, "91": 40, "90": 40, "01": 40, "18": 40, "remov": 40, "between": 40, "13": 40, "11": 40, "9": 40, "8": 40, "7": 40, "thi": 40, "file": [40, 50], "ha": 40, "start": [40, 56, 72], "track": 40, "version": [41, 59], "support": 41, "languag": 41, "organ": 41, "softwar": [41, 45, 63], "instal": [41, 45, 46, 48, 50, 52, 53, 54, 59, 76], "instruct": 41, "docker": [41, 47, 59, 65], "contain": [41, 47, 59, 62], "report": 41, "bug": 41, "check": [41, 52], "known": 41, "issu": 41, "licens": 41, "binari": [46, 53], "packag": [46, 48, 53], "develop": 47, "from": [48, 49, 50, 74, 76], "sourc": [48, 49, 76], "avail": [48, 66], "build": [48, 49, 65], "flag": 48, "depend": [48, 49, 50], "The": [48, 69, 70, 72], "default": 48, "debian": 48, "window": 49, "playground": [49, 54, 73], "project": [49, 54, 73], "deb": 50, "download": [50, 76], "third": 50, "parti": 50, "linux": 51, "tegra": 51, "python": [52, 58, 59, 61, 79], "usag": [54, 67, 76], "migrat": [55, 56, 57, 58, 59], "guid": [55, 56, 57, 58, 59], "v1": [56, 57, 58, 59], "now": 56, "stlimag": 56, "buffer": [56, 62], "stream": 56, "data": [56, 62, 69, 71, 72, 74], "regist": [56, 72], "callback": [56, 72], "onnewfram": 56, "receiv": [56, 69, 72, 74], "poll": [56, 72], "waitforfram": 56, "access": [56, 62, 69, 72], "xyz_imag": 57, "coordin": 57, "renam": 57, "api": [57, 64, 79], "interfac": 57, "modul": 58, "structur": 58, "name": 58, "bind": [58, 61], "json": 58, "replac": 59, "glog": 59, "basic": [62, 67], "c": [62, 64], "stl": 62, "object": 62, "pixel": 62, "templat": 62, "compat": [62, 63], "algorithm": 62, "grab": 62, "distanc": [62, 76], "amplitud": [62, 76], "xyz": 62, "n": 62, "channel": 62, "schema": [62, 72], "type": 62, "matrix": 63, "refer": [64, 79], "non": 65, "ro": 65, "user": 65, "list": 66, "3d": 66, "vision": 66, "platform": 66, "librari": [67, 68, 78], "level": 68, "how": [69, 70, 71, 72, 74], "2d": 69, "rgb": 69, "decod": 69, "displai": [69, 76], "option": 69, "full": [69, 70, 72], "read": 70, "current": 70, "write": 70, "an": 72, "altern": 72, "wait": 72, "mode": 72, "head": 74, "gener": 75, "upload": 75, "ssh": 75, "kei": 75, "viewer": 76, "code": 76, "virtual": 76, "environ": 76, "activ": 76, "pip": 76, "requir": 76, "point": 76, "cloud": 76, "jpeg": 76, "local": 77, "vpu": 77}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"ifm3dpy": [[0, "module-ifm3dpy"]], "ifm3dpy.Awaitable": [[1, "ifm3dpy-awaitable"]], "ifm3dpy.FrameAwaitable": [[2, "ifm3dpy-frameawaitable"]], "ifm3dpy.deserialize": [[3, "module-ifm3dpy.deserialize"]], "ifm3dpy.deserialize.Calibration": [[4, "ifm3dpy-deserialize-calibration"]], "ifm3dpy.deserialize.ExtrinsicOpticToUser": [[5, "ifm3dpy-deserialize-extrinsicoptictouser"]], "ifm3dpy.deserialize.O3DExposureTimes": [[6, "ifm3dpy-deserialize-o3dexposuretimes"]], "ifm3dpy.deserialize.O3DExtrinsicCalibration": [[7, "ifm3dpy-deserialize-o3dextrinsiccalibration"]], "ifm3dpy.deserialize.O3DILLUTemperature": [[8, "ifm3dpy-deserialize-o3dillutemperature"]], "ifm3dpy.deserialize.O3DInstrinsicCalibration": [[9, "ifm3dpy-deserialize-o3dinstrinsiccalibration"]], "ifm3dpy.deserialize.O3DInverseInstrinsicCalibration": [[10, "ifm3dpy-deserialize-o3dinverseinstrinsiccalibration"]], "ifm3dpy.deserialize.ODSInfoV1": [[11, "ifm3dpy-deserialize-odsinfov1"]], "ifm3dpy.deserialize.ODSOccupancyGridV1": [[12, "ifm3dpy-deserialize-odsoccupancygridv1"]], "ifm3dpy.deserialize.RGBInfoV1": [[13, "ifm3dpy-deserialize-rgbinfov1"]], "ifm3dpy.deserialize.TOFInfoV3": [[14, "ifm3dpy-deserialize-tofinfov3"]], "ifm3dpy.deserialize.TOFInfoV4": [[15, "ifm3dpy-deserialize-tofinfov4"]], "ifm3dpy.device": [[16, "module-ifm3dpy.device"]], "ifm3dpy.device.Device": [[17, "ifm3dpy-device-device"]], "ifm3dpy.device.Error": [[18, "ifm3dpy-device-error"]], "ifm3dpy.device.LegacyDevice": [[19, "ifm3dpy-device-legacydevice"]], "ifm3dpy.device.O3D": [[20, "ifm3dpy-device-o3d"]], "ifm3dpy.device.O3R": [[21, "ifm3dpy-device-o3r"]], "ifm3dpy.device.O3X": [[22, "ifm3dpy-device-o3x"]], "ifm3dpy.device.PortInfo": [[23, "ifm3dpy-device-portinfo"]], "ifm3dpy.device.SemVer": [[24, "ifm3dpy-device-semver"]], "ifm3dpy.framegrabber": [[25, "module-ifm3dpy.framegrabber"]], "ifm3dpy.framegrabber.Frame": [[26, "ifm3dpy-framegrabber-frame"]], "ifm3dpy.framegrabber.FrameGrabber": [[27, "ifm3dpy-framegrabber-framegrabber"]], "ifm3dpy.framegrabber.buffer_id": [[28, "ifm3dpy-framegrabber-buffer-id"]], "ifm3dpy.logging": [[29, "module-ifm3dpy.logging"]], "ifm3dpy.logging.LogEntry": [[30, "ifm3dpy-logging-logentry"]], "ifm3dpy.logging.LogFormatterJson": [[31, "ifm3dpy-logging-logformatterjson"]], "ifm3dpy.logging.LogFormatterText": [[32, "ifm3dpy-logging-logformattertext"]], "ifm3dpy.logging.LogLevel": [[33, "ifm3dpy-logging-loglevel"]], "ifm3dpy.logging.LogWriter": [[34, "ifm3dpy-logging-logwriter"]], "ifm3dpy.logging.Logger": [[35, "ifm3dpy-logging-logger"]], "ifm3dpy.run": [[36, "ifm3dpy-run"]], "ifm3dpy.swupdater": [[37, "module-ifm3dpy.swupdater"]], "ifm3dpy.swupdater.SWUpdater": [[38, "ifm3dpy-swupdater-swupdater"]], "Parameter": [[38, "parameter"], [38, "id1"], [38, "id2"]], "ifm3d - Command Line Tool": [[39, "ifm3d-command-line-tool"], [44, "ifm3d-command-line-tool"]], "Overview": [[39, "overview"], [44, "overview"]], "Camera and Imager Configuration": [[39, "camera-and-imager-configuration"], [42, "camera-and-imager-configuration"]], "Dump": [[39, "dump"], [42, "dump"]], "Config": [[39, "config"], [42, "config"]], "Setting single parameters with ifm3d config": [[39, "setting-single-parameters-with-ifm3d-config"], [42, "setting-single-parameters-with-ifm3d-config"]], "Setting multiple parameters": [[39, "setting-multiple-parameters"], [42, "setting-multiple-parameters"]], "Examples": [[39, "examples"], [43, "examples"]], "Creating new applications": [[39, "creating-new-applications"], [43, "creating-new-applications"]], "Setting NTP-Server connection on the camera": [[39, "setting-ntp-server-connection-on-the-camera"], [43, "setting-ntp-server-connection-on-the-camera"]], "Setting the time on the camera": [[39, "setting-the-time-on-the-camera"], [43, "setting-the-time-on-the-camera"]], "Changelog": [[40, "changelog"]], "[Unreleased]": [[40, "unreleased"]], "1.5.3 - 2024-04-05": [[40, "id1"]], "Fixed": [[40, "fixed"], [40, "id3"], [40, "id5"], [40, "id7"], [40, "id9"], [40, "id11"], [40, "id13"], [40, "id18"], [40, "id21"], [40, "id54"], [40, "id57"], [40, "id61"]], "1.5.2 - 2024-02-20": [[40, "id2"]], "Added": [[40, "added"], [40, "id6"], [40, "id14"], [40, "id16"], [40, "id20"], [40, "id25"], [40, "id33"], [40, "id35"], [40, "id43"], [40, "id47"], [40, "id50"], [40, "id53"], [40, "id56"], [40, "id60"], [40, "id64"], [40, "id67"], [40, "id70"]], "1.5.1 - 2024-02-07": [[40, "id4"]], "1.5.0 - 2024-02-07 [YANKED] error during release - use 1.5.1": [[40, "yanked-error-during-release-use-1-5-1"]], "Changes": [[40, "changes"], [40, "id29"]], "1.4.3 - 2023-09-28": [[40, "id8"]], "1.4.2 - 2023-09-15": [[40, "id10"]], "1.4.1 - 2023-08-31": [[40, "id12"]], "1.4.0 - 2023-08-02": [[40, "id15"]], "Changed": [[40, "changed"], [40, "id22"], [40, "id36"], [40, "id41"], [40, "id58"], [40, "id62"], [40, "id68"]], "1.3.3 - 2023-06-22": [[40, "id17"]], "1.3.2 - 2023-06-16": [[40, "id19"]], "1.3.1 - 2023-06-16 [YANKED] error during release - use 1.3.2": [[40, "yanked-error-during-release-use-1-3-2"]], "1.3.0 - 2023-06-16 [YANKED] error during release - use 1.3.2": [[40, "id23"]], "1.2.6 - 2023-04-05": [[40, "id24"]], "Fixes": [[40, "fixes"], [40, "id27"], [40, "id30"], [40, "id32"], [40, "id37"], [40, "id39"], [40, "id42"], [40, "id45"], [40, "id48"], [40, "id51"]], "1.2.5 - 2023-04-03": [[40, "id26"]], "1.2.4 - 2023-03-28": [[40, "id28"]], "1.2.3 - 2023-03-17": [[40, "id31"]], "1.2.2 - 2023-03-06": [[40, "id34"]], "1.2.1 - 2023-02-09": [[40, "id38"]], "1.2.0 - 2023-02-03": [[40, "id40"]], "1.1.1 - 2022-12-09": [[40, "id44"]], "1.1.0 - 2022-12-02": [[40, "id46"]], "1.0.1 - 2022-10-14": [[40, "id49"]], "1.0.0 - 2022-09-08": [[40, "id52"]], "0.93.0 - 2022-02-17": [[40, "id55"]], "0.92.0 - 2021-10-22": [[40, "id59"]], "0.91.0 - 2021-10-05": [[40, "id63"]], "0.90.2 - 2021-09-16": [[40, "id65"]], "0.90.1 - 2021-08-17": [[40, "id66"]], "0.90.0 - 2021-01-18": [[40, "id69"]], "Removed": [[40, "removed"]], "Changes between ifm3d 0.18.0 and 0.20.0 [Unreleased]": [[40, "changes-between-ifm3d-0-18-0-and-0-20-0-unreleased"]], "Changes between ifm3d 0.17.0 and 0.18.0": [[40, "changes-between-ifm3d-0-17-0-and-0-18-0"]], "Changes between ifm3d 0.16.0 and 0.17.0": [[40, "changes-between-ifm3d-0-16-0-and-0-17-0"]], "Changes between ifm3d 0.15.1 and 0.16.0": [[40, "changes-between-ifm3d-0-15-1-and-0-16-0"]], "Changes between ifm3d 0.15.0 and 0.15.1": [[40, "changes-between-ifm3d-0-15-0-and-0-15-1"]], "Changes between ifm3d 0.14.1 and 0.15.0": [[40, "changes-between-ifm3d-0-14-1-and-0-15-0"]], "Changes between ifm3d 0.14.0 and 0.14.1": [[40, "changes-between-ifm3d-0-14-0-and-0-14-1"]], "Changes between ifm3d 0.13.0 and 0.14.0": [[40, "changes-between-ifm3d-0-13-0-and-0-14-0"]], "Changes between ifm3d 0.12.0 and 0.13.0": [[40, "changes-between-ifm3d-0-12-0-and-0-13-0"]], "Changes between ifm3d 0.11.2 and 0.12.0": [[40, "changes-between-ifm3d-0-11-2-and-0-12-0"]], "Changes between ifm3d 0.11.1 and 0.11.2": [[40, "changes-between-ifm3d-0-11-1-and-0-11-2"]], "Changes between ifm3d 0.11.0 and 0.11.1": [[40, "changes-between-ifm3d-0-11-0-and-0-11-1"]], "Changes between ifm3d 0.10.0 and 0.11.0": [[40, "changes-between-ifm3d-0-10-0-and-0-11-0"]], "Changes between ifm3d 0.9.3 and 0.10.0": [[40, "changes-between-ifm3d-0-9-3-and-0-10-0"]], "Changes between ifm3d 0.9.2 and 0.9.3": [[40, "changes-between-ifm3d-0-9-2-and-0-9-3"]], "Changes between ifm3d 0.9.1 and 0.9.2": [[40, "changes-between-ifm3d-0-9-1-and-0-9-2"]], "Changes between ifm3d 0.9.0 and 0.9.1": [[40, "changes-between-ifm3d-0-9-0-and-0-9-1"]], "Changes between ifm3d 0.8.3 and 0.9.0": [[40, "changes-between-ifm3d-0-8-3-and-0-9-0"]], "Changes between ifm3d 0.8.2 and 0.8.3": [[40, "changes-between-ifm3d-0-8-2-and-0-8-3"]], "Changes between ifm3d 0.8.1 and 0.8.2": [[40, "changes-between-ifm3d-0-8-1-and-0-8-2"]], "Changes between ifm3d 0.8.0 and 0.8.1": [[40, "changes-between-ifm3d-0-8-0-and-0-8-1"]], "Changes between ifm3d 0.7.0 and 0.8.0": [[40, "changes-between-ifm3d-0-7-0-and-0-8-0"]], "Changes between ifm3d 0.6.0 and 0.7.0": [[40, "changes-between-ifm3d-0-6-0-and-0-7-0"]], "Changes between ifm3d 0.5.0 and 0.6.0": [[40, "changes-between-ifm3d-0-5-0-and-0-6-0"]], "Changes between ifm3d 0.4.0 and 0.5.0": [[40, "changes-between-ifm3d-0-4-0-and-0-5-0"]], "Changes between ifm3d 0.3.3 and 0.4.0": [[40, "changes-between-ifm3d-0-3-3-and-0-4-0"]], "Changes between ifm3d 0.3.2 and 0.3.3": [[40, "changes-between-ifm3d-0-3-2-and-0-3-3"]], "Changes between ifm3d 0.3.1 and 0.3.2": [[40, "changes-between-ifm3d-0-3-1-and-0-3-2"]], "Changes between ifm3d 0.3.0 and 0.3.1": [[40, "changes-between-ifm3d-0-3-0-and-0-3-1"]], "Changes between ifm3d 0.2.0 and 0.3.0": [[40, "changes-between-ifm3d-0-2-0-and-0-3-0"]], "Changes between ifm3d 0.1.0 and 0.2.0": [[40, "changes-between-ifm3d-0-1-0-and-0-2-0"]], "This file has started tracking ifm3d at 0.1.0": [[40, "this-file-has-started-tracking-ifm3d-at-0-1-0"]], "ifm3d Overview": [[41, "ifm3d-overview"]], "Released Versions": [[41, "released-versions"]], "Supported languages": [[41, "supported-languages"]], "Organization of the Software": [[41, "organization-of-the-software"]], "Installation instructions": [[41, "installation-instructions"]], "Supported docker containers": [[41, "supported-docker-containers"]], "Report a bug and check the known issues": [[41, "report-a-bug-and-check-the-known-issues"]], "LICENSE": [[41, "license"]], "Installing the software": [[45, "installing-the-software"]], "Install binary package": [[46, "install-binary-package"], [53, "install-binary-package"]], "Docker development containers": [[47, "docker-development-containers"]], "Installing ifm3d from source": [[48, "installing-ifm3d-from-source"]], "Overview of the available build flags": [[48, "overview-of-the-available-build-flags"]], "Build Dependencies": [[48, "build-dependencies"]], "Building From Source": [[48, "building-from-source"]], "The default build": [[48, "the-default-build"]], "Build Debian packages from source": [[48, "build-debian-packages-from-source"]], "Dependencies": [[48, "dependencies"], [49, "dependencies"]], "Building Debian packages": [[48, "building-debian-packages"]], "Building ifm3d from source on Windows": [[49, "building-ifm3d-from-source-on-windows"]], "Build tools": [[49, "build-tools"]], "Source Dependencies": [[49, "source-dependencies"]], "Building source dependencies with ifm3d": [[49, "building-source-dependencies-with-ifm3d"]], "Building the Examples": [[49, "building-the-examples"]], "Running ifm3d command line tools": [[49, "running-ifm3d-command-line-tools"], [54, "running-ifm3d-command-line-tools"]], "Using ifm3d-playground projects": [[49, "using-ifm3d-playground-projects"], [54, "using-ifm3d-playground-projects"]], "Installing ifm3d from .deb file": [[50, "installing-ifm3d-from-deb-file"]], "Download ifm3d .deb files": [[50, "download-ifm3d-deb-files"]], "Install ifm3d third-party dependencies": [[50, "install-ifm3d-third-party-dependencies"]], "Install ifm3d .deb files": [[50, "install-ifm3d-deb-files"]], "Linux for Tegra": [[51, "linux-for-tegra"]], "Python installation": [[52, "python-installation"]], "Check the ifm3dpy installation": [[52, "check-the-ifm3dpy-installation"]], "Install using the ifm3d installer": [[54, "install-using-the-ifm3d-installer"]], "Installation": [[54, "installation"], [76, "installation"]], "Usage": [[54, "usage"], [76, "usage"]], "Migrating guide": [[55, "migrating-guide"]], "Migration Guide V1.0.0": [[56, "migration-guide-v1-0-0"]], "Camera (now Device)": [[56, "camera-now-device"]], "FrameGrabber and STLImage buffer": [[56, "framegrabber-and-stlimage-buffer"]], "Start streaming data with Start": [[56, "start-streaming-data-with-start"]], "Register a callback with OnNewFrame": [[56, "register-a-callback-with-onnewframe"]], "Receive a frame - polling with WaitForFrame": [[56, "receive-a-frame-polling-with-waitforframe"]], "Access the data": [[56, "access-the-data"], [69, "access-the-data"], [72, "access-the-data"]], "Migration Guide V1.1.0": [[57, "migration-guide-v1-1-0"]], "XYZ_IMAGE coordinates": [[57, "xyz-image-coordinates"]], "Renamed buffer_ids": [[57, "renamed-buffer-ids"]], "API Interface changes": [[57, "api-interface-changes"]], "Migration Guide V1.2.0": [[58, "migration-guide-v1-2-0"]], "Changes to the Python module structure": [[58, "changes-to-the-python-module-structure"]], "Naming changes to SWUpdater Python bindings": [[58, "naming-changes-to-swupdater-python-bindings"]], "Changes to ifm3d::json": [[58, "changes-to-ifm3d-json"]], "Migration Guide V1.3.0": [[59, "migration-guide-v1-3-0"]], "Change of installed Python version in docker containers": [[59, "change-of-installed-python-version-in-docker-containers"]], "Replacement of glog with ifm3d::Logger": [[59, "replacement-of-glog-with-ifm3d-logger"]], "News": [[60, null], [78, null]], "Python bindings for ifm3d": [[61, "python-bindings-for-ifm3d"]], "ifm3d::Buffer- Basic C++ STL container for ifm3d": [[62, "ifm3d-buffer-basic-c-stl-container-for-ifm3d"]], "Creating Buffer Object:": [[62, "creating-buffer-object"]], "Accessing the Pixel": [[62, "accessing-the-pixel"]], "Buffer Templates": [[62, "buffer-templates"]], "Compatibility with C++ STL Algorithms": [[62, "compatibility-with-c-stl-algorithms"]], "Example grabbing distance and amplitude in ifm3d::Buffer": [[62, "example-grabbing-distance-and-amplitude-in-ifm3d-buffer"]], "Example grabbing XYZ or n-channel ifm3d::Buffer": [[62, "example-grabbing-xyz-or-n-channel-ifm3d-buffer"]], "Device, Schema and data types for ifm3d::Buffer": [[62, "device-schema-and-data-types-for-ifm3d-buffer"]], "ifm3d Software Compatibility Matrix": [[63, "ifm3d-software-compatibility-matrix"]], "C++ API Reference": [[64, "c-api-reference"]], "ifm3d - Docker": [[65, "ifm3d-docker"]], "Building": [[65, "building"]], "Running": [[65, "running"]], "Non-ROS users": [[65, "non-ros-users"]], "List of available examples for the 3D vision platforms": [[66, "list-of-available-examples-for-the-3d-vision-platforms"]], "Basic Library Usage": [[67, "basic-library-usage"]], "ifm3d::Logger - Logger for the ifm3d library": [[68, "ifm3d-logger-logger-for-the-ifm3d-library"]], "Log Levels": [[68, "log-levels"]], "How to: receive and use the 2D RGB image": [[69, "how-to-receive-and-use-the-2d-rgb-image"]], "Decode the data": [[69, "decode-the-data"]], "Display (optional)": [[69, "display-optional"]], "The full example": [[69, "the-full-example"], [70, "the-full-example"], [72, "the-full-example"]], "How to: configure the camera": [[70, "how-to-configure-the-camera"]], "Read the current configuration": [[70, "read-the-current-configuration"]], "Write a new configuration": [[70, "write-a-new-configuration"]], "How to: deserialize O3R data": [[71, "how-to-deserialize-o3r-data"]], "How to: receive an image": [[72, "how-to-receive-an-image"]], "O3R, FrameGrabber and Frame": [[72, "o3r-framegrabber-and-frame"]], "Set the schema and start the FrameGrabber": [[72, "set-the-schema-and-start-the-framegrabber"]], "Receive an image": [[72, "receive-an-image"]], "Register a callback": [[72, "register-a-callback"]], "Alternatively: wait for a frame": [[72, "alternatively-wait-for-a-frame"]], "Using a callback": [[72, "using-a-callback"]], "Using the polling mode": [[72, "using-the-polling-mode"]], "ifm3d playground project": [[73, "ifm3d-playground-project"]], "How to: receive data from multiple heads": [[74, "how-to-receive-data-from-multiple-heads"]], "Generating and uploading SSH keys": [[75, "generating-and-uploading-ssh-keys"]], "ifm3dpy Viewer": [[76, "ifm3dpy-viewer"]], "Download the code": [[76, "download-the-code"]], "Create a new virtual environment": [[76, "create-a-new-virtual-environment"]], "Activate the virtual environment": [[76, "activate-the-virtual-environment"]], "Install ifm3dpy": [[76, "install-ifm3dpy"]], "From pip": [[76, "from-pip"]], "From Source": [[76, "from-source"]], "Install requirements": [[76, "install-requirements"]], "Display the distance image": [[76, "display-the-distance-image"]], "Display the amplitude image": [[76, "display-the-amplitude-image"]], "Display the point cloud": [[76, "display-the-point-cloud"]], "Display the JPEG image": [[76, "display-the-jpeg-image"]], "Using the ifm3d locally on the VPU": [[77, "using-the-ifm3d-locally-on-the-vpu"]], "ifm3d library": [[78, "ifm3d-library"]], "Python API Reference": [[79, "python-api-reference"]]}, "indexentries": {"ifm3dpy": [[0, "module-ifm3dpy"]], "module": [[0, "module-ifm3dpy"], [3, "module-ifm3dpy.deserialize"], [16, "module-ifm3dpy.device"], [25, "module-ifm3dpy.framegrabber"], [29, "module-ifm3dpy.logging"], [37, "module-ifm3dpy.swupdater"]], "awaitable (class in ifm3dpy)": [[1, "ifm3dpy.Awaitable"]], "__init__() (ifm3dpy.awaitable method)": [[1, "ifm3dpy.Awaitable.__init__"]], "wait() (ifm3dpy.awaitable method)": [[1, "ifm3dpy.Awaitable.wait"]], "wait_for() (ifm3dpy.awaitable method)": [[1, "ifm3dpy.Awaitable.wait_for"]], "frameawaitable (class in ifm3dpy)": [[2, "ifm3dpy.FrameAwaitable"]], "__init__() (ifm3dpy.frameawaitable method)": [[2, "ifm3dpy.FrameAwaitable.__init__"]], "wait() (ifm3dpy.frameawaitable method)": [[2, "ifm3dpy.FrameAwaitable.wait"]], "wait_for() (ifm3dpy.frameawaitable method)": [[2, "ifm3dpy.FrameAwaitable.wait_for"]], "ifm3dpy.deserialize": [[3, "module-ifm3dpy.deserialize"]], "calibration (class in ifm3dpy.deserialize)": [[4, "ifm3dpy.deserialize.Calibration"]], "__init__() (ifm3dpy.deserialize.calibration method)": [[4, "ifm3dpy.deserialize.Calibration.__init__"]], "model_id (ifm3dpy.deserialize.calibration property)": [[4, "ifm3dpy.deserialize.Calibration.model_id"]], "parameters (ifm3dpy.deserialize.calibration property)": [[4, "ifm3dpy.deserialize.Calibration.parameters"]], "extrinsicoptictouser (class in ifm3dpy.deserialize)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser"]], "__init__() (ifm3dpy.deserialize.extrinsicoptictouser method)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.__init__"]], "rot_x (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.rot_x"]], "rot_y (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.rot_y"]], "rot_z (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.rot_z"]], "trans_x (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.trans_x"]], "trans_y (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.trans_y"]], "trans_z (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.trans_z"]], "o3dexposuretimes (class in ifm3dpy.deserialize)": [[6, "ifm3dpy.deserialize.O3DExposureTimes"]], "__init__() (ifm3dpy.deserialize.o3dexposuretimes method)": [[6, "ifm3dpy.deserialize.O3DExposureTimes.__init__"]], "data (ifm3dpy.deserialize.o3dexposuretimes property)": [[6, "ifm3dpy.deserialize.O3DExposureTimes.data"]], "deserialize() (ifm3dpy.deserialize.o3dexposuretimes static method)": [[6, "ifm3dpy.deserialize.O3DExposureTimes.deserialize"]], "o3dextrinsiccalibration (class in ifm3dpy.deserialize)": [[7, "ifm3dpy.deserialize.O3DExtrinsicCalibration"]], "__init__() (ifm3dpy.deserialize.o3dextrinsiccalibration method)": [[7, "ifm3dpy.deserialize.O3DExtrinsicCalibration.__init__"]], "data (ifm3dpy.deserialize.o3dextrinsiccalibration property)": [[7, "ifm3dpy.deserialize.O3DExtrinsicCalibration.data"]], "deserialize() (ifm3dpy.deserialize.o3dextrinsiccalibration static method)": [[7, "ifm3dpy.deserialize.O3DExtrinsicCalibration.deserialize"]], "o3dillutemperature (class in ifm3dpy.deserialize)": [[8, "ifm3dpy.deserialize.O3DILLUTemperature"]], "__init__() (ifm3dpy.deserialize.o3dillutemperature method)": [[8, "ifm3dpy.deserialize.O3DILLUTemperature.__init__"]], "data (ifm3dpy.deserialize.o3dillutemperature property)": [[8, "ifm3dpy.deserialize.O3DILLUTemperature.data"]], "deserialize() (ifm3dpy.deserialize.o3dillutemperature static method)": [[8, "ifm3dpy.deserialize.O3DILLUTemperature.deserialize"]], "o3dinstrinsiccalibration (class in ifm3dpy.deserialize)": [[9, "ifm3dpy.deserialize.O3DInstrinsicCalibration"]], "__init__() (ifm3dpy.deserialize.o3dinstrinsiccalibration method)": [[9, "ifm3dpy.deserialize.O3DInstrinsicCalibration.__init__"]], "data (ifm3dpy.deserialize.o3dinstrinsiccalibration property)": [[9, "ifm3dpy.deserialize.O3DInstrinsicCalibration.data"]], "deserialize() (ifm3dpy.deserialize.o3dinstrinsiccalibration static method)": [[9, "ifm3dpy.deserialize.O3DInstrinsicCalibration.deserialize"]], "o3dinverseinstrinsiccalibration (in module ifm3dpy.deserialize)": [[10, "ifm3dpy.deserialize.O3DInverseInstrinsicCalibration"]], "odsinfov1 (class in ifm3dpy.deserialize)": [[11, "ifm3dpy.deserialize.ODSInfoV1"]], "__init__() (ifm3dpy.deserialize.odsinfov1 method)": [[11, "ifm3dpy.deserialize.ODSInfoV1.__init__"]], "deserialize() (ifm3dpy.deserialize.odsinfov1 static method)": [[11, "ifm3dpy.deserialize.ODSInfoV1.deserialize"]], "timestamp_ns (ifm3dpy.deserialize.odsinfov1 property)": [[11, "ifm3dpy.deserialize.ODSInfoV1.timestamp_ns"]], "zone_config_id (ifm3dpy.deserialize.odsinfov1 property)": [[11, "ifm3dpy.deserialize.ODSInfoV1.zone_config_id"]], "zone_occupied (ifm3dpy.deserialize.odsinfov1 property)": [[11, "ifm3dpy.deserialize.ODSInfoV1.zone_occupied"]], "odsoccupancygridv1 (class in ifm3dpy.deserialize)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1"]], "__init__() (ifm3dpy.deserialize.odsoccupancygridv1 method)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.__init__"]], "deserialize() (ifm3dpy.deserialize.odsoccupancygridv1 static method)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.deserialize"]], "height (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.height"]], "image (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.image"]], "timestamp_ns (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.timestamp_ns"]], "transform_cell_center_to_user (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.transform_cell_center_to_user"]], "width (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.width"]], "rgbinfov1 (class in ifm3dpy.deserialize)": [[13, "ifm3dpy.deserialize.RGBInfoV1"]], "__init__() (ifm3dpy.deserialize.rgbinfov1 method)": [[13, "ifm3dpy.deserialize.RGBInfoV1.__init__"]], "deserialize() (ifm3dpy.deserialize.rgbinfov1 static method)": [[13, "ifm3dpy.deserialize.RGBInfoV1.deserialize"]], "exposure_time (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.exposure_time"]], "extrinsic_optic_to_user (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.extrinsic_optic_to_user"]], "frame_counter (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.frame_counter"]], "intrinsic_calibration (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.intrinsic_calibration"]], "inverse_intrinsic_calibration (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.inverse_intrinsic_calibration"]], "timestamp_ns (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.timestamp_ns"]], "version (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.version"]], "tofinfov3 (class in ifm3dpy.deserialize)": [[14, "ifm3dpy.deserialize.TOFInfoV3"]], "__init__() (ifm3dpy.deserialize.tofinfov3 method)": [[14, "ifm3dpy.deserialize.TOFInfoV3.__init__"]], "amp_normalization_factors (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.amp_normalization_factors"]], "amplitude_resolution (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.amplitude_resolution"]], "deserialize() (ifm3dpy.deserialize.tofinfov3 static method)": [[14, "ifm3dpy.deserialize.TOFInfoV3.deserialize"]], "distance_resolution (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.distance_resolution"]], "exposure_times_s (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.exposure_times_s"]], "exposure_timestamps_ns (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.exposure_timestamps_ns"]], "extrinsic_optic_to_user (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.extrinsic_optic_to_user"]], "illu_temperature (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.illu_temperature"]], "imager (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.imager"]], "intrinsic_calibration (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.intrinsic_calibration"]], "inverse_intrinsic_calibration (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.inverse_intrinsic_calibration"]], "mode (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.mode"]], "version (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.version"]], "tofinfov4 (class in ifm3dpy.deserialize)": [[15, "ifm3dpy.deserialize.TOFInfoV4"]], "__init__() (ifm3dpy.deserialize.tofinfov4 method)": [[15, "ifm3dpy.deserialize.TOFInfoV4.__init__"]], "amp_normalization_factors (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.amp_normalization_factors"]], "amplitude_resolution (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.amplitude_resolution"]], "deserialize() (ifm3dpy.deserialize.tofinfov4 static method)": [[15, "ifm3dpy.deserialize.TOFInfoV4.deserialize"]], "distance_resolution (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.distance_resolution"]], "exposure_times_s (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.exposure_times_s"]], "exposure_timestamps_ns (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.exposure_timestamps_ns"]], "extrinsic_optic_to_user (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.extrinsic_optic_to_user"]], "illu_temperature (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.illu_temperature"]], "imager (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.imager"]], "intrinsic_calibration (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.intrinsic_calibration"]], "inverse_intrinsic_calibration (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.inverse_intrinsic_calibration"]], "measurement_block_index (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.measurement_block_index"]], "measurement_range_max (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.measurement_range_max"]], "measurement_range_min (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.measurement_range_min"]], "mode (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.mode"]], "version (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.version"]], "ifm3dpy.device": [[16, "module-ifm3dpy.device"]], "device (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device"]], "device.boot_mode (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.boot_mode"]], "device.device_family (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.device_family"]], "device.import_flags (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.import_flags"]], "device.mfilt_mask_size (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.mfilt_mask_size"]], "device.operating_mode (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.operating_mode"]], "device.spatial_filter (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.spatial_filter"]], "device.temporal_filter (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.temporal_filter"]], "device.trigger_mode (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.trigger_mode"]], "__init__() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.__init__"]], "am_i() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.am_i"]], "check_minimum_firmware_version() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.check_minimum_firmware_version"]], "device_parameter() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.device_parameter"]], "device_type() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.device_type"]], "firmware_version() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.firmware_version"]], "force_trigger() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.force_trigger"]], "from_json() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.from_json"]], "ip (ifm3dpy.device.device property)": [[17, "ifm3dpy.device.Device.ip"]], "name (ifm3dpy.device.device.boot_mode property)": [[17, "ifm3dpy.device.Device.boot_mode.name"]], "name (ifm3dpy.device.device.device_family property)": [[17, "ifm3dpy.device.Device.device_family.name"]], "name (ifm3dpy.device.device.import_flags property)": [[17, "ifm3dpy.device.Device.import_flags.name"]], "name (ifm3dpy.device.device.mfilt_mask_size property)": [[17, "ifm3dpy.device.Device.mfilt_mask_size.name"]], "name (ifm3dpy.device.device.operating_mode property)": [[17, "ifm3dpy.device.Device.operating_mode.name"]], "name (ifm3dpy.device.device.spatial_filter property)": [[17, "ifm3dpy.device.Device.spatial_filter.name"]], "name (ifm3dpy.device.device.temporal_filter property)": [[17, "ifm3dpy.device.Device.temporal_filter.name"]], "name (ifm3dpy.device.device.trigger_mode property)": [[17, "ifm3dpy.device.Device.trigger_mode.name"]], "reboot() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.reboot"]], "to_json() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.to_json"]], "trace_logs() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.trace_logs"]], "who_am_i() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.who_am_i"]], "xmlrpc_port (ifm3dpy.device.device property)": [[17, "ifm3dpy.device.Device.xmlrpc_port"]], "error (class in ifm3dpy.device)": [[18, "ifm3dpy.device.Error"]], "__init__() (ifm3dpy.device.error method)": [[18, "ifm3dpy.device.Error.__init__"]], "code (ifm3dpy.device.error property)": [[18, "ifm3dpy.device.Error.code"]], "message (ifm3dpy.device.error property)": [[18, "ifm3dpy.device.Error.message"]], "what (ifm3dpy.device.error property)": [[18, "ifm3dpy.device.Error.what"]], "with_traceback() (ifm3dpy.device.error method)": [[18, "ifm3dpy.device.Error.with_traceback"]], "legacydevice (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice"]], "legacydevice.boot_mode (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.boot_mode"]], "legacydevice.device_family (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.device_family"]], "legacydevice.import_flags (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.import_flags"]], "legacydevice.mfilt_mask_size (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.mfilt_mask_size"]], "legacydevice.operating_mode (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.operating_mode"]], "legacydevice.spatial_filter (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.spatial_filter"]], "legacydevice.temporal_filter (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.temporal_filter"]], "legacydevice.trigger_mode (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.trigger_mode"]], "__init__() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.__init__"]], "active_application() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.active_application"]], "am_i() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.am_i"]], "application_list() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.application_list"]], "application_types() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.application_types"]], "cancel_session() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.cancel_session"]], "check_minimum_firmware_version() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.check_minimum_firmware_version"]], "copy_application() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.copy_application"]], "create_application() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.create_application"]], "delete_application() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.delete_application"]], "device_parameter() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.device_parameter"]], "device_type() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.device_type"]], "export_ifm_app() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.export_ifm_app"]], "export_ifm_config() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.export_ifm_config"]], "factory_reset() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.factory_reset"]], "firmware_version() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.firmware_version"]], "force_trigger() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.force_trigger"]], "from_json() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.from_json"]], "heartbeat() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.heartbeat"]], "imager_types() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.imager_types"]], "import_ifm_app() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.import_ifm_app"]], "import_ifm_config() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.import_ifm_config"]], "ip (ifm3dpy.device.legacydevice property)": [[19, "ifm3dpy.device.LegacyDevice.ip"]], "name (ifm3dpy.device.legacydevice.boot_mode property)": [[19, "ifm3dpy.device.LegacyDevice.boot_mode.name"]], "name (ifm3dpy.device.legacydevice.device_family property)": [[19, "ifm3dpy.device.LegacyDevice.device_family.name"]], "name (ifm3dpy.device.legacydevice.import_flags property)": [[19, "ifm3dpy.device.LegacyDevice.import_flags.name"]], "name (ifm3dpy.device.legacydevice.mfilt_mask_size property)": [[19, "ifm3dpy.device.LegacyDevice.mfilt_mask_size.name"]], "name (ifm3dpy.device.legacydevice.operating_mode property)": [[19, "ifm3dpy.device.LegacyDevice.operating_mode.name"]], "name (ifm3dpy.device.legacydevice.spatial_filter property)": [[19, "ifm3dpy.device.LegacyDevice.spatial_filter.name"]], "name (ifm3dpy.device.legacydevice.temporal_filter property)": [[19, "ifm3dpy.device.LegacyDevice.temporal_filter.name"]], "name (ifm3dpy.device.legacydevice.trigger_mode property)": [[19, "ifm3dpy.device.LegacyDevice.trigger_mode.name"]], "password (ifm3dpy.device.legacydevice property)": [[19, "ifm3dpy.device.LegacyDevice.password"]], "reboot() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.reboot"]], "request_session() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.request_session"]], "session_id (ifm3dpy.device.legacydevice property)": [[19, "ifm3dpy.device.LegacyDevice.session_id"]], "set_current_time() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.set_current_time"]], "set_temporary_application_parameters() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.set_temporary_application_parameters"]], "to_json() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.to_json"]], "trace_logs() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.trace_logs"]], "unit_vectors() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.unit_vectors"]], "who_am_i() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.who_am_i"]], "xmlrpc_port (ifm3dpy.device.legacydevice property)": [[19, "ifm3dpy.device.LegacyDevice.xmlrpc_port"]], "o3d (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D"]], "o3d.boot_mode (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.boot_mode"]], "o3d.device_family (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.device_family"]], "o3d.import_flags (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.import_flags"]], "o3d.mfilt_mask_size (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.mfilt_mask_size"]], "o3d.operating_mode (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.operating_mode"]], "o3d.spatial_filter (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.spatial_filter"]], "o3d.temporal_filter (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.temporal_filter"]], "o3d.trigger_mode (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.trigger_mode"]], "__init__() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.__init__"]], "active_application() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.active_application"]], "am_i() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.am_i"]], "application_list() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.application_list"]], "application_types() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.application_types"]], "cancel_session() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.cancel_session"]], "check_minimum_firmware_version() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.check_minimum_firmware_version"]], "copy_application() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.copy_application"]], "create_application() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.create_application"]], "delete_application() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.delete_application"]], "device_parameter() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.device_parameter"]], "device_type() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.device_type"]], "export_ifm_app() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.export_ifm_app"]], "export_ifm_config() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.export_ifm_config"]], "factory_reset() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.factory_reset"]], "firmware_version() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.firmware_version"]], "force_trigger() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.force_trigger"]], "from_json() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.from_json"]], "heartbeat() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.heartbeat"]], "imager_types() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.imager_types"]], "import_ifm_app() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.import_ifm_app"]], "import_ifm_config() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.import_ifm_config"]], "ip (ifm3dpy.device.o3d property)": [[20, "ifm3dpy.device.O3D.ip"]], "name (ifm3dpy.device.o3d.boot_mode property)": [[20, "ifm3dpy.device.O3D.boot_mode.name"]], "name (ifm3dpy.device.o3d.device_family property)": [[20, "ifm3dpy.device.O3D.device_family.name"]], "name (ifm3dpy.device.o3d.import_flags property)": [[20, "ifm3dpy.device.O3D.import_flags.name"]], "name (ifm3dpy.device.o3d.mfilt_mask_size property)": [[20, "ifm3dpy.device.O3D.mfilt_mask_size.name"]], "name (ifm3dpy.device.o3d.operating_mode property)": [[20, "ifm3dpy.device.O3D.operating_mode.name"]], "name (ifm3dpy.device.o3d.spatial_filter property)": [[20, "ifm3dpy.device.O3D.spatial_filter.name"]], "name (ifm3dpy.device.o3d.temporal_filter property)": [[20, "ifm3dpy.device.O3D.temporal_filter.name"]], "name (ifm3dpy.device.o3d.trigger_mode property)": [[20, "ifm3dpy.device.O3D.trigger_mode.name"]], "password (ifm3dpy.device.o3d property)": [[20, "ifm3dpy.device.O3D.password"]], "reboot() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.reboot"]], "request_session() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.request_session"]], "session_id (ifm3dpy.device.o3d property)": [[20, "ifm3dpy.device.O3D.session_id"]], "set_current_time() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.set_current_time"]], "set_temporary_application_parameters() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.set_temporary_application_parameters"]], "to_json() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.to_json"]], "trace_logs() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.trace_logs"]], "unit_vectors() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.unit_vectors"]], "who_am_i() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.who_am_i"]], "xmlrpc_port (ifm3dpy.device.o3d property)": [[20, "ifm3dpy.device.O3D.xmlrpc_port"]], "o3r (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R"]], "o3r.boot_mode (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.boot_mode"]], "o3r.device_family (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.device_family"]], "o3r.import_flags (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.import_flags"]], "o3r.mfilt_mask_size (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.mfilt_mask_size"]], "o3r.operating_mode (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.operating_mode"]], "o3r.spatial_filter (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.spatial_filter"]], "o3r.temporal_filter (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.temporal_filter"]], "o3r.trigger_mode (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.trigger_mode"]], "__init__() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.__init__"]], "am_i() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.am_i"]], "check_minimum_firmware_version() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.check_minimum_firmware_version"]], "device_parameter() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.device_parameter"]], "device_type() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.device_type"]], "factory_reset() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.factory_reset"]], "firmware_version() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.firmware_version"]], "force_trigger() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.force_trigger"]], "from_json() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.from_json"]], "get() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get"]], "get_diagnostic() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_diagnostic"]], "get_diagnostic_filter_schema() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_diagnostic_filter_schema"]], "get_diagnostic_filtered() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_diagnostic_filtered"]], "get_init() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_init"]], "get_schema() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_schema"]], "ip (ifm3dpy.device.o3r property)": [[21, "ifm3dpy.device.O3R.ip"]], "name (ifm3dpy.device.o3r.boot_mode property)": [[21, "ifm3dpy.device.O3R.boot_mode.name"]], "name (ifm3dpy.device.o3r.device_family property)": [[21, "ifm3dpy.device.O3R.device_family.name"]], "name (ifm3dpy.device.o3r.import_flags property)": [[21, "ifm3dpy.device.O3R.import_flags.name"]], "name (ifm3dpy.device.o3r.mfilt_mask_size property)": [[21, "ifm3dpy.device.O3R.mfilt_mask_size.name"]], "name (ifm3dpy.device.o3r.operating_mode property)": [[21, "ifm3dpy.device.O3R.operating_mode.name"]], "name (ifm3dpy.device.o3r.spatial_filter property)": [[21, "ifm3dpy.device.O3R.spatial_filter.name"]], "name (ifm3dpy.device.o3r.temporal_filter property)": [[21, "ifm3dpy.device.O3R.temporal_filter.name"]], "name (ifm3dpy.device.o3r.trigger_mode property)": [[21, "ifm3dpy.device.O3R.trigger_mode.name"]], "port() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.port"]], "ports() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.ports"]], "reboot() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.reboot"]], "reboot_to_recovery() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.reboot_to_recovery"]], "remove() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.remove"]], "reset() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.reset"]], "resolve_config() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.resolve_config"]], "save_init() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.save_init"]], "set() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.set"]], "to_json() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.to_json"]], "trace_logs() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.trace_logs"]], "who_am_i() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.who_am_i"]], "xmlrpc_port (ifm3dpy.device.o3r property)": [[21, "ifm3dpy.device.O3R.xmlrpc_port"]], "o3x (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X"]], "o3x.boot_mode (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.boot_mode"]], "o3x.device_family (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.device_family"]], "o3x.import_flags (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.import_flags"]], "o3x.mfilt_mask_size (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.mfilt_mask_size"]], "o3x.operating_mode (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.operating_mode"]], "o3x.spatial_filter (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.spatial_filter"]], "o3x.temporal_filter (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.temporal_filter"]], "o3x.trigger_mode (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.trigger_mode"]], "__init__() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.__init__"]], "active_application() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.active_application"]], "am_i() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.am_i"]], "application_list() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.application_list"]], "application_types() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.application_types"]], "cancel_session() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.cancel_session"]], "check_minimum_firmware_version() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.check_minimum_firmware_version"]], "copy_application() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.copy_application"]], "create_application() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.create_application"]], "delete_application() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.delete_application"]], "device_parameter() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.device_parameter"]], "device_type() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.device_type"]], "export_ifm_app() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.export_ifm_app"]], "export_ifm_config() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.export_ifm_config"]], "factory_reset() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.factory_reset"]], "firmware_version() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.firmware_version"]], "force_trigger() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.force_trigger"]], "from_json() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.from_json"]], "heartbeat() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.heartbeat"]], "imager_types() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.imager_types"]], "import_ifm_app() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.import_ifm_app"]], "import_ifm_config() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.import_ifm_config"]], "ip (ifm3dpy.device.o3x property)": [[22, "ifm3dpy.device.O3X.ip"]], "name (ifm3dpy.device.o3x.boot_mode property)": [[22, "ifm3dpy.device.O3X.boot_mode.name"]], "name (ifm3dpy.device.o3x.device_family property)": [[22, "ifm3dpy.device.O3X.device_family.name"]], "name (ifm3dpy.device.o3x.import_flags property)": [[22, "ifm3dpy.device.O3X.import_flags.name"]], "name (ifm3dpy.device.o3x.mfilt_mask_size property)": [[22, "ifm3dpy.device.O3X.mfilt_mask_size.name"]], "name (ifm3dpy.device.o3x.operating_mode property)": [[22, "ifm3dpy.device.O3X.operating_mode.name"]], "name (ifm3dpy.device.o3x.spatial_filter property)": [[22, "ifm3dpy.device.O3X.spatial_filter.name"]], "name (ifm3dpy.device.o3x.temporal_filter property)": [[22, "ifm3dpy.device.O3X.temporal_filter.name"]], "name (ifm3dpy.device.o3x.trigger_mode property)": [[22, "ifm3dpy.device.O3X.trigger_mode.name"]], "password (ifm3dpy.device.o3x property)": [[22, "ifm3dpy.device.O3X.password"]], "reboot() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.reboot"]], "request_session() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.request_session"]], "session_id (ifm3dpy.device.o3x property)": [[22, "ifm3dpy.device.O3X.session_id"]], "set_current_time() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.set_current_time"]], "set_temporary_application_parameters() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.set_temporary_application_parameters"]], "to_json() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.to_json"]], "trace_logs() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.trace_logs"]], "unit_vectors() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.unit_vectors"]], "who_am_i() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.who_am_i"]], "xmlrpc_port (ifm3dpy.device.o3x property)": [[22, "ifm3dpy.device.O3X.xmlrpc_port"]], "portinfo (class in ifm3dpy.device)": [[23, "ifm3dpy.device.PortInfo"]], "__init__() (ifm3dpy.device.portinfo method)": [[23, "ifm3dpy.device.PortInfo.__init__"]], "pcic_port (ifm3dpy.device.portinfo property)": [[23, "ifm3dpy.device.PortInfo.pcic_port"]], "port (ifm3dpy.device.portinfo property)": [[23, "ifm3dpy.device.PortInfo.port"]], "type (ifm3dpy.device.portinfo property)": [[23, "ifm3dpy.device.PortInfo.type"]], "parse() (ifm3dpy.device.semver static method)": [[24, "ifm3dpy.device.SemVer.Parse"]], "semver (class in ifm3dpy.device)": [[24, "ifm3dpy.device.SemVer"]], "__init__() (ifm3dpy.device.semver method)": [[24, "ifm3dpy.device.SemVer.__init__"]], "ifm3dpy.framegrabber": [[25, "module-ifm3dpy.framegrabber"]], "frame (class in ifm3dpy.framegrabber)": [[26, "ifm3dpy.framegrabber.Frame"]], "__init__() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.__init__"]], "frame_count() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.frame_count"]], "get_buffer() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.get_buffer"]], "get_buffer_count() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.get_buffer_count"]], "get_buffers() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.get_buffers"]], "has_buffer() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.has_buffer"]], "timestamps() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.timestamps"]], "framegrabber (class in ifm3dpy.framegrabber)": [[27, "ifm3dpy.framegrabber.FrameGrabber"]], "__init__() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.__init__"]], "is_masking() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.is_masking"]], "is_running() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.is_running"]], "on_async_error() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.on_async_error"]], "on_async_notification() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.on_async_notification"]], "on_error() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.on_error"]], "on_new_frame() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.on_new_frame"]], "set_masking() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.set_masking"]], "start() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.start"]], "stop() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.stop"]], "sw_trigger() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.sw_trigger"]], "wait_for_frame() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.wait_for_frame"]], "__init__() (ifm3dpy.framegrabber.buffer_id method)": [[28, "ifm3dpy.framegrabber.buffer_id.__init__"]], "buffer_id (class in ifm3dpy.framegrabber)": [[28, "ifm3dpy.framegrabber.buffer_id"]], "name (ifm3dpy.framegrabber.buffer_id property)": [[28, "ifm3dpy.framegrabber.buffer_id.name"]], "ifm3dpy.logging": [[29, "module-ifm3dpy.logging"]], "logentry (class in ifm3dpy.logging)": [[30, "ifm3dpy.logging.LogEntry"]], "__init__() (ifm3dpy.logging.logentry method)": [[30, "ifm3dpy.logging.LogEntry.__init__"]], "file (ifm3dpy.logging.logentry property)": [[30, "ifm3dpy.logging.LogEntry.file"]], "logformatterjson (class in ifm3dpy.logging)": [[31, "ifm3dpy.logging.LogFormatterJson"]], "__init__() (ifm3dpy.logging.logformatterjson method)": [[31, "ifm3dpy.logging.LogFormatterJson.__init__"]], "format() (ifm3dpy.logging.logformatterjson static method)": [[31, "ifm3dpy.logging.LogFormatterJson.format"]], "logformattertext (class in ifm3dpy.logging)": [[32, "ifm3dpy.logging.LogFormatterText"]], "__init__() (ifm3dpy.logging.logformattertext method)": [[32, "ifm3dpy.logging.LogFormatterText.__init__"]], "format() (ifm3dpy.logging.logformattertext static method)": [[32, "ifm3dpy.logging.LogFormatterText.format"]], "loglevel (class in ifm3dpy.logging)": [[33, "ifm3dpy.logging.LogLevel"]], "__init__() (ifm3dpy.logging.loglevel method)": [[33, "ifm3dpy.logging.LogLevel.__init__"]], "name (ifm3dpy.logging.loglevel property)": [[33, "ifm3dpy.logging.LogLevel.name"]], "logwriter (class in ifm3dpy.logging)": [[34, "ifm3dpy.logging.LogWriter"]], "__init__() (ifm3dpy.logging.logwriter method)": [[34, "ifm3dpy.logging.LogWriter.__init__"]], "write() (ifm3dpy.logging.logwriter method)": [[34, "ifm3dpy.logging.LogWriter.write"]], "logger (class in ifm3dpy.logging)": [[35, "ifm3dpy.logging.Logger"]], "__init__() (ifm3dpy.logging.logger method)": [[35, "ifm3dpy.logging.Logger.__init__"]], "log_level() (ifm3dpy.logging.logger static method)": [[35, "ifm3dpy.logging.Logger.log_level"]], "set_log_level() (ifm3dpy.logging.logger static method)": [[35, "ifm3dpy.logging.Logger.set_log_level"]], "set_writer() (ifm3dpy.logging.logger static method)": [[35, "ifm3dpy.logging.Logger.set_writer"]], "run() (in module ifm3dpy)": [[36, "ifm3dpy.run"]], "ifm3dpy.swupdater": [[37, "module-ifm3dpy.swupdater"]], "swupdater (class in ifm3dpy.swupdater)": [[38, "ifm3dpy.swupdater.SWUpdater"]], "__init__() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.__init__"]], "flash_firmware() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.flash_firmware"]], "reboot_to_productive() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.reboot_to_productive"]], "reboot_to_recovery() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.reboot_to_recovery"]], "wait_for_productive() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.wait_for_productive"]], "wait_for_recovery() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.wait_for_recovery"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["_autosummary/ifm3dpy", "_autosummary/ifm3dpy.Awaitable", "_autosummary/ifm3dpy.FrameAwaitable", "_autosummary/ifm3dpy.deserialize", "_autosummary/ifm3dpy.deserialize.Calibration", "_autosummary/ifm3dpy.deserialize.ExtrinsicOpticToUser", "_autosummary/ifm3dpy.deserialize.O3DExposureTimes", "_autosummary/ifm3dpy.deserialize.O3DExtrinsicCalibration", "_autosummary/ifm3dpy.deserialize.O3DILLUTemperature", "_autosummary/ifm3dpy.deserialize.O3DInstrinsicCalibration", "_autosummary/ifm3dpy.deserialize.O3DInverseInstrinsicCalibration", "_autosummary/ifm3dpy.deserialize.ODSInfoV1", "_autosummary/ifm3dpy.deserialize.ODSOccupancyGridV1", "_autosummary/ifm3dpy.deserialize.RGBInfoV1", "_autosummary/ifm3dpy.deserialize.TOFInfoV3", "_autosummary/ifm3dpy.deserialize.TOFInfoV4", "_autosummary/ifm3dpy.device", "_autosummary/ifm3dpy.device.Device", "_autosummary/ifm3dpy.device.Error", "_autosummary/ifm3dpy.device.LegacyDevice", "_autosummary/ifm3dpy.device.O3D", "_autosummary/ifm3dpy.device.O3R", "_autosummary/ifm3dpy.device.O3X", "_autosummary/ifm3dpy.device.PortInfo", "_autosummary/ifm3dpy.device.SemVer", "_autosummary/ifm3dpy.framegrabber", "_autosummary/ifm3dpy.framegrabber.Frame", "_autosummary/ifm3dpy.framegrabber.FrameGrabber", "_autosummary/ifm3dpy.framegrabber.buffer_id", "_autosummary/ifm3dpy.logging", "_autosummary/ifm3dpy.logging.LogEntry", "_autosummary/ifm3dpy.logging.LogFormatterJson", "_autosummary/ifm3dpy.logging.LogFormatterText", "_autosummary/ifm3dpy.logging.LogLevel", "_autosummary/ifm3dpy.logging.LogWriter", "_autosummary/ifm3dpy.logging.Logger", "_autosummary/ifm3dpy.run", "_autosummary/ifm3dpy.swupdater", "_autosummary/ifm3dpy.swupdater.SWUpdater", "cli_link", "content/ChangeLog", "content/README", "content/basic_lib_usage/2d_data/2d_data", "content/basic_lib_usage/configuration/configuration", "content/basic_lib_usage/deserialize/deserialize", "content/basic_lib_usage/getting_data/getting_data", "content/basic_lib_usage/index", "content/basic_lib_usage/logging/logging", "content/basic_lib_usage/viewer/README", "content/cmdline_configuring", "content/cmdline_examples", "content/cmdline_overview", "content/examples_list", "content/ifm3d-examples/CHANGELOG", "content/ifm3d-examples/README", "content/ifm3d-examples/o3d3xx-o3x1xx/README", "content/ifm3d-examples/o3d3xx-o3x1xx/doc/ex-multi_camera_grabber", "content/ifm3d-examples/o3d3xx-o3x1xx/image_rectification/python/README", "content/ifm3d-examples/o3d3xx-o3x1xx/intrinsics_to_cartesian/python/README", "content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/README", "content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/ppm-io-master/README", "content/ifm3d-examples/ovp8xx/README", "content/ifm3d-examples/ovp8xx/cpp/README", "content/ifm3d-examples/ovp8xx/cpp/core/ifm3d_playground/README", "content/ifm3d-examples/ovp8xx/cpp/ods/README", "content/ifm3d-examples/ovp8xx/docker/README", "content/ifm3d-examples/ovp8xx/docker/o3r-l4t-base/README", "content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/README", "content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/Readme", "content/ifm3d-examples/ovp8xx/python/README", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/README", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/viewer", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/ods/README", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/README", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/extrinsic_calibration/static_camera_calibration/README", "content/installation_instructions/index", "content/installation_instructions/install_binary_package_index", "content/installation_instructions/install_docker", "content/installation_instructions/install_from_source_linux", "content/installation_instructions/install_from_source_windows", "content/installation_instructions/install_linux_binary", "content/installation_instructions/install_linux_tegra", "content/installation_instructions/install_py", "content/installation_instructions/install_source_package_index", "content/installation_instructions/install_windows_binary", "content/migration_guide/index", "content/migration_guide/v1_0_0", "content/migration_guide/v1_1_0", "content/migration_guide/v1_2_0", "content/migration_guide/v1_3_0", "content/news/news_release", "content/python", "content/stlimage", "content/swcompat", "cpp_api/annotated", "docker/README", "index", "python_api"], "filenames": ["_autosummary/ifm3dpy.rst", "_autosummary/ifm3dpy.Awaitable.rst", "_autosummary/ifm3dpy.FrameAwaitable.rst", "_autosummary/ifm3dpy.deserialize.rst", "_autosummary/ifm3dpy.deserialize.Calibration.rst", "_autosummary/ifm3dpy.deserialize.ExtrinsicOpticToUser.rst", "_autosummary/ifm3dpy.deserialize.O3DExposureTimes.rst", "_autosummary/ifm3dpy.deserialize.O3DExtrinsicCalibration.rst", "_autosummary/ifm3dpy.deserialize.O3DILLUTemperature.rst", "_autosummary/ifm3dpy.deserialize.O3DInstrinsicCalibration.rst", "_autosummary/ifm3dpy.deserialize.O3DInverseInstrinsicCalibration.rst", "_autosummary/ifm3dpy.deserialize.ODSInfoV1.rst", "_autosummary/ifm3dpy.deserialize.ODSOccupancyGridV1.rst", "_autosummary/ifm3dpy.deserialize.RGBInfoV1.rst", "_autosummary/ifm3dpy.deserialize.TOFInfoV3.rst", "_autosummary/ifm3dpy.deserialize.TOFInfoV4.rst", "_autosummary/ifm3dpy.device.rst", "_autosummary/ifm3dpy.device.Device.rst", "_autosummary/ifm3dpy.device.Error.rst", "_autosummary/ifm3dpy.device.LegacyDevice.rst", "_autosummary/ifm3dpy.device.O3D.rst", "_autosummary/ifm3dpy.device.O3R.rst", "_autosummary/ifm3dpy.device.O3X.rst", "_autosummary/ifm3dpy.device.PortInfo.rst", "_autosummary/ifm3dpy.device.SemVer.rst", "_autosummary/ifm3dpy.framegrabber.rst", "_autosummary/ifm3dpy.framegrabber.Frame.rst", "_autosummary/ifm3dpy.framegrabber.FrameGrabber.rst", "_autosummary/ifm3dpy.framegrabber.buffer_id.rst", "_autosummary/ifm3dpy.logging.rst", "_autosummary/ifm3dpy.logging.LogEntry.rst", "_autosummary/ifm3dpy.logging.LogFormatterJson.rst", "_autosummary/ifm3dpy.logging.LogFormatterText.rst", "_autosummary/ifm3dpy.logging.LogLevel.rst", "_autosummary/ifm3dpy.logging.LogWriter.rst", "_autosummary/ifm3dpy.logging.Logger.rst", "_autosummary/ifm3dpy.run.rst", "_autosummary/ifm3dpy.swupdater.rst", "_autosummary/ifm3dpy.swupdater.SWUpdater.rst", "cli_link.md", "content/ChangeLog.md", "content/README.md", "content/basic_lib_usage/2d_data/2d_data.md", "content/basic_lib_usage/configuration/configuration.md", "content/basic_lib_usage/deserialize/deserialize.md", "content/basic_lib_usage/getting_data/getting_data.md", "content/basic_lib_usage/index.md", "content/basic_lib_usage/logging/logging.md", "content/basic_lib_usage/viewer/README.md", "content/cmdline_configuring.md", "content/cmdline_examples.md", "content/cmdline_overview.md", "content/examples_list.md", "content/ifm3d-examples/CHANGELOG.md", "content/ifm3d-examples/README.md", "content/ifm3d-examples/o3d3xx-o3x1xx/README.md", "content/ifm3d-examples/o3d3xx-o3x1xx/doc/ex-multi_camera_grabber.md", "content/ifm3d-examples/o3d3xx-o3x1xx/image_rectification/python/README.md", "content/ifm3d-examples/o3d3xx-o3x1xx/intrinsics_to_cartesian/python/README.md", "content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/README.md", "content/ifm3d-examples/o3d3xx-o3x1xx/simpleimage/ppm-io-master/README.md", "content/ifm3d-examples/ovp8xx/README.md", "content/ifm3d-examples/ovp8xx/cpp/README.md", "content/ifm3d-examples/ovp8xx/cpp/core/ifm3d_playground/README.md", "content/ifm3d-examples/ovp8xx/cpp/ods/README.md", "content/ifm3d-examples/ovp8xx/docker/README.md", "content/ifm3d-examples/ovp8xx/docker/o3r-l4t-base/README.md", "content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/README.md", "content/ifm3d-examples/ovp8xx/docker/o3r-l4t-tensorrt/Readme.md", "content/ifm3d-examples/ovp8xx/python/README.md", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/README.md", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/core/viewer.md", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/ods/README.md", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/README.md", "content/ifm3d-examples/ovp8xx/python/ovp8xxexamples/toolbox/extrinsic_calibration/static_camera_calibration/README.md", "content/installation_instructions/index.md", "content/installation_instructions/install_binary_package_index.md", "content/installation_instructions/install_docker.md", "content/installation_instructions/install_from_source_linux.md", "content/installation_instructions/install_from_source_windows.md", "content/installation_instructions/install_linux_binary.md", "content/installation_instructions/install_linux_tegra.md", "content/installation_instructions/install_py.md", "content/installation_instructions/install_source_package_index.md", "content/installation_instructions/install_windows_binary.md", "content/migration_guide/index.md", "content/migration_guide/v1_0_0.md", "content/migration_guide/v1_1_0.md", "content/migration_guide/v1_2_0.md", "content/migration_guide/v1_3_0.md", "content/news/news_release.md", "content/python.md", "content/stlimage.md", "content/swcompat.md", "cpp_api/annotated.md", "docker/README.md", "index.md", "python_api.md"], "titles": ["ifm3dpy", "ifm3dpy.Awaitable", "ifm3dpy.FrameAwaitable", "ifm3dpy.deserialize", "ifm3dpy.deserialize.Calibration", "ifm3dpy.deserialize.ExtrinsicOpticToUser", "ifm3dpy.deserialize.O3DExposureTimes", "ifm3dpy.deserialize.O3DExtrinsicCalibration", "ifm3dpy.deserialize.O3DILLUTemperature", "ifm3dpy.deserialize.O3DInstrinsicCalibration", "ifm3dpy.deserialize.O3DInverseInstrinsicCalibration", "ifm3dpy.deserialize.ODSInfoV1", "ifm3dpy.deserialize.ODSOccupancyGridV1", "ifm3dpy.deserialize.RGBInfoV1", "ifm3dpy.deserialize.TOFInfoV3", "ifm3dpy.deserialize.TOFInfoV4", "ifm3dpy.device", "ifm3dpy.device.Device", "ifm3dpy.device.Error", "ifm3dpy.device.LegacyDevice", "ifm3dpy.device.O3D", "ifm3dpy.device.O3R", "ifm3dpy.device.O3X", "ifm3dpy.device.PortInfo", "ifm3dpy.device.SemVer", "ifm3dpy.framegrabber", "ifm3dpy.framegrabber.Frame", "ifm3dpy.framegrabber.FrameGrabber", "ifm3dpy.framegrabber.buffer_id", "ifm3dpy.logging", "ifm3dpy.logging.LogEntry", "ifm3dpy.logging.LogFormatterJson", "ifm3dpy.logging.LogFormatterText", "ifm3dpy.logging.LogLevel", "ifm3dpy.logging.LogWriter", "ifm3dpy.logging.Logger", "ifm3dpy.run", "ifm3dpy.swupdater", "ifm3dpy.swupdater.SWUpdater", "ifm3d - Command Line Tool", "Changelog", "ifm3d Overview", "How to: receive and use the 2D RGB image", "How to: configure the camera", "How to: deserialize O3R data", "How to: receive an image", "Basic Library Usage", "ifm3d::Logger - Logger for the ifm3d library", "ifm3dpy Viewer", "Camera and Imager Configuration", "Examples", "ifm3d - Command Line Tool", "Available examples", "Changelog for ifm3d-examples", "ifm3d examples", "ifm3d Examples", "ex-multi_camera_grabber", "Image Rectification", "Using Intrinsics and Unit Vectors", "ifm3d - Simple Image Container", "PPM IO", "ifm3d examples for OVP8xx", "C++ examples", "ifm3d playground project", "ODS examples", "Docker examples", "o3r-l4t-base", "o3r-l4t-tensorrt", "Testing the TensorRT capabilities", "Python examples", "Core", "ifm3dpy Viewer", "ODS", "Toolbox", "Static camera calibration", "Installing the software", "Install binary package", "Docker development containers", "Installing ifm3d from source", "Building ifm3d from source on Windows", "Installing ifm3d from .deb file", "Linux for Tegra", "Python installation", "Install binary package", "Install using the ifm3d installer", "Migrating guide", "Migration Guide V1.0.0", "Migration Guide V1.1.0", "Migration Guide V1.2.0", "Migration Guide V1.3.0", "<no title>", "Python bindings for ifm3d", "ifm3d::Buffer- Basic C++ STL container for ifm3d", "ifm3d Software Compatibility Matrix", "C++ API Reference", "ifm3d - Docker", "ifm3d library", "Python API Reference"], "terms": {"bind": [0, 40, 41, 78, 93], "ifm3d": [0, 19, 20, 22, 27, 29, 35, 36, 42, 43, 44, 45, 48, 50, 52, 56, 62, 64, 65, 70, 71, 74, 77, 81, 85, 86, 87, 90], "librari": [0, 18, 39, 40, 41, 43, 49, 54, 55, 59, 60, 62, 64, 65, 78, 79, 80, 81, 84, 86, 88, 93], "variabl": [0, 19, 20, 22, 40, 55, 62, 69, 79, 84], "__version__": [0, 82], "The": [0, 13, 14, 15, 17, 19, 20, 21, 22, 23, 27, 30, 33, 38, 39, 40, 41, 44, 46, 47, 49, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 77, 79, 80, 81, 82, 84, 86, 87, 88, 89, 90, 92, 95, 96], "version": [0, 13, 14, 15, 17, 19, 20, 21, 22, 24, 39, 40, 43, 49, 51, 53, 54, 55, 60, 66, 67, 70, 73, 77, 78, 79, 81, 82, 86, 87, 88, 90, 93, 95, 96], "__package__": 0, "packag": [0, 40, 43, 45, 53, 73, 75, 79, 80, 81, 82, 84, 95, 96], "default_ip": [0, 42, 43, 44, 45], "default": [0, 17, 19, 20, 21, 22, 27, 28, 39, 40, 43, 45, 47, 50, 51, 56, 62, 68, 69, 71, 77, 84, 86, 88, 89, 92, 95], "ip": [0, 17, 19, 20, 21, 22, 36, 39, 42, 43, 44, 45, 50, 51, 62, 69, 71, 95], "connect": [0, 17, 19, 20, 21, 22, 23, 27, 40, 43, 45, 49, 56, 70, 73, 82, 86, 95], "default_xmlrpc_port": 0, "xmlrpc": [0, 16, 17, 19, 20, 21, 22, 39, 40, 41, 50, 51, 71, 78, 79], "port": [0, 17, 19, 20, 21, 22, 23, 27, 38, 39, 40, 42, 43, 44, 45, 47, 49, 50, 51, 62, 64, 69, 71, 72, 82], "default_password": 0, "password": [0, 17, 19, 20, 21, 22, 39, 45, 50, 51, 93], "o3d_time_support_major": 0, "constant": [0, 17, 19, 20, 21, 22], "queri": [0, 43, 62, 92], "o3d": [0, 6, 7, 8, 9, 17, 19, 21, 22, 39, 40, 41, 43, 45, 49, 53, 54, 55, 56, 78, 79, 80, 84, 86, 92, 93, 95, 96], "time": [0, 13, 14, 15, 19, 20, 22, 30, 40, 44, 45, 49, 51, 55, 56, 86, 92, 93, 95], "support": [0, 19, 20, 22, 27, 39, 40, 47, 49, 51, 55, 60, 78, 79, 84, 92, 93], "o3d_time_support_minor": 0, "o3d_time_support_patch": 0, "o3d_tmp_params_support_major": 0, "temporari": [0, 19, 20, 21, 22, 40], "paramet": [0, 4, 5, 13, 14, 15, 17, 19, 20, 21, 22, 27, 36, 40, 43, 44, 45, 51, 57, 58, 61, 64, 70, 72, 73, 86, 92, 93], "o3d_tmp_params_support_minor": 0, "o3d_tmp_params_support_patch": 0, "o3d_intrinsic_param_support_major": 0, "intrins": [0, 13, 14, 15, 40, 44, 57, 73, 86, 92, 93], "o3d_intrinsic_param_support_minor": 0, "o3d_intrinsic_param_support_patch": 0, "o3d_inverse_intrinsic_param_support_major": 0, "invers": [0, 13, 14, 15, 40, 57, 73, 92, 93], "o3d_inverse_intrinsic_param_support_minor": 0, "o3d_inverse_intrinsic_param_support_patch": 0, "function": [0, 3, 17, 19, 20, 21, 22, 27, 36, 38, 40, 41, 42, 43, 44, 45, 47, 60, 64, 70, 72, 73, 86, 87, 92], "class": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 43, 45, 47, 86, 88, 92], "base": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 49, 50, 55, 57, 58, 65, 67, 77, 78, 80, 81, 82, 89, 92], "none": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 38, 47], "provid": [1, 2, 3, 16, 19, 20, 21, 22, 23, 25, 27, 29, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 47, 50, 54, 55, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 72, 78, 79, 81, 82, 84, 86, 92, 93, 95], "mechan": [1, 2, 39, 49], "wait": [1, 2, 38, 40, 44, 46, 70, 86, 87], "complet": [1, 19, 20, 22, 40, 52, 64, 70, 87, 88, 93], "task": [1, 39, 45, 49, 51, 55], "__init__": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 38], "self": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 33, 34, 38, 47], "method": [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 35, 38, 40, 42, 45, 47, 86, 88, 92], "block": [1, 2, 15, 39, 40, 44, 45, 49, 62, 64], "until": [1, 2, 45, 70, 86, 87], "result": [1, 2, 17, 19, 20, 21, 22, 27, 39, 40, 49, 61, 87], "becom": [1, 2, 88], "avail": [1, 2, 17, 19, 20, 21, 22, 26, 27, 28, 39, 40, 41, 42, 44, 45, 49, 51, 60, 61, 62, 69, 77, 79, 86, 90, 91, 96], "wait_for": [1, 2, 44, 45, 86], "timeout_m": [1, 2], "int": [1, 2, 17, 18, 19, 20, 21, 22, 24, 26, 27, 28, 33, 36, 38, 42, 43, 44, 45, 47, 59, 92], "tupl": [1, 2, 36], "bool": [1, 2, 17, 19, 20, 21, 22, 26, 27, 38], "specifi": [1, 2, 17, 19, 20, 21, 22, 77, 86, 95], "timeout": [1, 2, 19, 20, 22, 38, 40, 44, 45, 86, 93], "run": [1, 2, 17, 19, 20, 21, 22, 27, 39, 40, 43, 45, 49, 51, 54, 55, 60, 62, 65, 66, 67, 69, 78, 81, 82, 86, 93, 96], "out": [1, 2, 17, 19, 20, 21, 22, 39, 40, 49, 51, 54, 55, 56, 63, 65, 66, 67, 73, 78, 95], "return": [1, 2, 17, 18, 19, 20, 21, 22, 27, 36, 38, 40, 42, 43, 44, 45, 47, 62, 87, 92], "true": [1, 2, 17, 19, 20, 21, 22, 27, 38, 39, 40, 42, 49, 50, 95], "wa": [1, 2, 40, 42, 43, 44, 45, 48, 55, 64, 69, 73, 88], "receiv": [1, 2, 26, 27, 40, 44, 46, 55, 56, 64, 70, 71, 72, 96], "within": [1, 2, 41, 47, 59, 61, 73, 82], "fals": [1, 2, 17, 19, 20, 21, 22, 39, 40, 49, 50, 82], "otherwis": [1, 2, 19, 20, 22, 43, 45, 55, 69], "access": [2, 29, 35, 39, 40, 41, 46, 47, 49, 70, 88, 95], "frame": [2, 13, 27, 38, 40, 42, 44, 46, 47, 55, 56, 58, 70, 72, 73, 88, 92, 93, 95, 96], "object": [2, 17, 19, 20, 21, 22, 26, 31, 42, 43, 44, 45, 47, 56, 70, 73, 86], "definit": [3, 40, 41, 86], "struct": [3, 11, 12, 13, 14, 15, 24, 40, 41, 59, 92], "sent": [3, 41, 86], "over": [3, 17, 19, 20, 21, 22, 40, 41, 55, 95], "pcic": [3, 17, 19, 20, 21, 22, 23, 25, 27, 40, 41, 45, 55, 71, 93], "manag": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 37, 38, 40, 41, 45, 92], "an": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 25, 27, 38, 39, 40, 41, 43, 44, 46, 47, 49, 50, 51, 54, 55, 56, 57, 59, 60, 61, 62, 64, 65, 70, 71, 72, 73, 77, 81, 82, 84, 86, 92, 95, 96], "instanc": [4, 5, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 27, 38, 39, 42, 43, 45, 47, 49, 55, 64, 77, 86, 93], "constructor": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 27, 38, 86, 92], "attribut": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 28, 30, 33, 40, 92], "properti": [4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 28, 30, 33, 39, 49, 55], "model_id": [4, 44], "model": [4, 17, 19, 20, 21, 22, 39, 40, 44, 49, 57, 58, 68, 92], "id": [4, 11, 19, 20, 22, 26, 27, 39, 40, 44, 49, 50, 87, 93, 95], "extrins": [5, 13, 14, 15, 40, 44, 73, 93], "rot_x": 5, "rotx": [5, 39, 49, 82], "rot_i": 5, "roti": [5, 39, 49, 82], "rot_z": 5, "rotz": [5, 39, 49, 82], "trans_x": 5, "transx": [5, 39, 49, 82], "trans_i": 5, "transi": [5, 39, 49, 82], "trans_z": 5, "transz": [5, 39, 49, 82], "o3d_paramet": [6, 7, 8, 9], "data": [6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 21, 22, 25, 26, 27, 39, 40, 41, 43, 46, 47, 49, 53, 55, 59, 61, 62, 64, 68, 70, 72, 73, 82, 88, 93, 95, 96], "arrai": [6, 7, 8, 9, 11, 12, 19, 20, 22, 41, 92], "paramt": [6, 7, 8, 9, 13], "valu": [6, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 28, 33, 38, 39, 40, 43, 44, 45, 47, 49, 59, 60, 69, 70, 73, 78, 92], "static": [6, 7, 8, 9, 11, 12, 13, 14, 15, 24, 31, 32, 35, 40, 42, 73], "arg0": [6, 7, 8, 9, 11, 12, 13, 14, 15, 24, 27, 35, 36], "numpi": [6, 7, 8, 9, 11, 12, 13, 14, 15, 40, 41], "ndarrai": [6, 7, 8, 9, 11, 12, 13, 14, 15], "uint8": [6, 7, 8, 9, 11, 12, 13, 14, 15, 59], "buffer": [6, 7, 8, 9, 11, 12, 13, 14, 15, 26, 27, 39, 40, 42, 44, 45, 51, 70, 87, 93], "alia": [10, 40], "o3dinstrinsiccalibr": [10, 96], "ods_info": 11, "timestamp_n": [11, 12, 13, 44], "timestamp": [11, 12, 13, 14, 15, 26, 40, 44, 55, 93], "zone": [11, 44], "inform": [11, 19, 20, 21, 22, 23, 24, 40, 44, 47, 58, 61, 65, 66, 67, 70, 73, 78], "n": [11, 15, 93], "zone_config_id": 11, "user": [11, 12, 14, 15, 19, 20, 22, 40, 44, 47, 54, 63, 64, 65, 66, 67, 72, 73, 78, 79, 88, 92], "specif": [11, 17, 19, 20, 21, 22, 27, 39, 40, 43, 45, 47, 49, 54, 55, 61, 64, 72, 73, 77, 80, 81, 86, 95], "identifi": [11, 15, 42, 43, 44, 45, 55, 62, 73], "configur": [11, 16, 17, 19, 20, 21, 22, 29, 35, 40, 41, 42, 44, 45, 46, 47, 51, 53, 55, 56, 59, 61, 63, 73, 78, 79, 82, 84, 86, 88, 89, 96], "zone_occupi": 11, "three": [11, 45, 56, 61], "uint8_t": [11, 59, 60, 92], "0": [11, 12, 13, 15, 17, 19, 20, 21, 22, 26, 36, 38, 39, 42, 43, 44, 45, 47, 49, 50, 51, 54, 55, 56, 59, 60, 62, 69, 71, 73, 77, 78, 79, 80, 82, 85, 92, 93, 95, 96], "i": [11, 13, 15, 17, 19, 20, 21, 22, 26, 27, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 49, 50, 51, 53, 54, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 70, 71, 72, 73, 74, 77, 78, 79, 80, 81, 82, 84, 85, 86, 87, 90, 91, 92, 93, 95, 96], "free": [11, 19, 20, 22, 59, 64, 79, 92], "1": [11, 12, 15, 19, 20, 22, 39, 42, 44, 45, 47, 49, 50, 51, 54, 55, 56, 62, 70, 73, 82, 85, 86, 88, 89, 92, 93, 95, 96], "occupi": 11, "height": [12, 39, 42, 45, 47, 49, 59, 60, 82, 92], "number": [12, 15, 17, 19, 20, 21, 22, 26, 40, 42, 44, 45, 47, 62, 69, 78, 88], "grid": [12, 44, 72], "cell": [12, 72], "imag": [12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 25, 26, 27, 40, 41, 46, 51, 55, 56, 60, 61, 65, 66, 67, 68, 70, 73, 77, 86, 89, 92, 93, 95, 96], "width": [12, 39, 42, 45, 47, 49, 59, 60, 82, 92], "transform_cell_center_to_us": [12, 40], "matrix": [12, 41, 44, 92], "2x3": 12, "affin": 12, "map": 12, "between": [12, 41, 44, 45, 55, 78, 79, 86], "coordin": [12, 40, 58, 72, 73, 78, 92], "system": [12, 17, 18, 19, 20, 21, 22, 40, 44, 56, 61, 70, 72, 73, 80, 81, 93], "e": [12, 17, 19, 20, 21, 22, 36, 43, 45, 69, 88, 95], "g": [12, 36, 79, 88, 95], "multipli": 12, "give": [12, 31, 32, 39, 51], "center": [12, 45, 73], "upper": 12, "left": [12, 39, 50], "rgb_info": [13, 28, 44, 87], "exposure_tim": [13, 28, 44, 55, 92], "actual": [13, 14, 15, 39, 40, 49, 51, 87], "exposur": [13, 14, 15, 19, 20, 22, 44, 55, 92], "2d": [13, 39, 40, 44, 45, 49, 61, 69, 73, 82, 86, 92], "extrinsic_optic_to_us": [13, 14, 15, 40], "optic": [13, 14, 15, 44, 73], "head": [13, 14, 15, 39, 43, 45, 47, 49, 70, 73, 82], "frame_count": [13, 26], "count": [13, 17, 19, 20, 21, 22, 26], "counter": [13, 40, 45], "initi": [13, 19, 20, 21, 22, 40, 43, 45, 53, 70, 93], "intrinsic_calibr": [13, 14, 15, 44, 92], "calibr": [13, 14, 15, 40, 44, 58, 61, 64, 72, 73, 86, 92, 96], "inverse_intrinsic_calibr": [13, 14, 15, 28, 92], "given": [13, 18, 19, 20, 21, 22, 26, 34, 40, 92], "nano": [13, 14, 15], "second": [13, 14, 15, 19, 20, 22, 40, 47, 56, 64], "amp_normalization_factor": [14, 15], "amplitud": [14, 15, 40, 55, 57, 59, 86], "normal": [14, 15, 17, 19, 20, 21, 22, 40], "factor": [14, 15], "individu": [14, 15, 69], "amplitude_resolut": [14, 15], "resolut": [14, 15, 39, 45, 49, 82], "tof_info": [14, 15, 28, 87], "distance_resolut": [14, 15], "distanc": [14, 15, 40, 41, 45, 55, 58, 59, 61, 73, 86], "per": [14, 15, 40, 47, 56], "digit": [14, 15, 40, 41], "m": [14, 15, 71, 82], "exposure_times_": [14, 15], "singl": [14, 15, 19, 20, 22, 30, 40, 50, 56, 60], "phase": [14, 15], "exposure_timestamps_n": [14, 15], "illu_temperatur": [14, 15], "illumin": [14, 15, 39, 40, 49, 92, 93], "temperatur": [14, 15, 39, 40, 49, 82, 86, 92, 93], "type": [14, 15, 17, 19, 20, 21, 22, 23, 27, 36, 39, 40, 42, 44, 45, 49, 51, 60, 62, 70, 78, 82, 86], "mode": [14, 15, 17, 19, 20, 21, 22, 27, 38, 39, 40, 46, 47, 49, 51, 82], "tofinfov3": [15, 40, 96], "measurement_block_index": 15, "current": [15, 17, 19, 20, 21, 22, 27, 39, 40, 41, 46, 49, 50, 51, 54, 61, 62, 70, 88, 95], "measur": [15, 43, 70, 73], "index": [15, 19, 20, 22, 26, 39, 49, 50, 51, 72, 92, 95], "rang": [15, 19, 20, 22, 59, 92], "where": [15, 39, 51, 60, 62, 73, 92], "sub": [15, 40, 55, 62], "thi": [15, 17, 19, 20, 21, 22, 26, 27, 30, 35, 36, 39, 41, 42, 43, 44, 45, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 73, 74, 77, 78, 79, 80, 82, 84, 85, 86, 87, 88, 89, 91, 92, 95], "us": [15, 17, 19, 20, 21, 22, 28, 36, 39, 41, 43, 44, 46, 47, 49, 50, 51, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 77, 78, 80, 81, 82, 86, 88, 89, 92, 93, 95, 96], "cyclic": 15, "In": [15, 19, 20, 22, 39, 49, 50, 55, 62, 64, 65, 66, 67, 68, 70, 71, 87], "non": [15, 40, 47, 61], "alwai": [15, 40, 41, 82], "measurement_range_max": 15, "maximum": [15, 59], "camera": [15, 16, 17, 19, 20, 21, 22, 27, 37, 38, 40, 41, 42, 44, 45, 46, 47, 51, 54, 55, 57, 58, 61, 62, 64, 69, 70, 72, 73, 78, 82, 93, 95, 96], "tof": [15, 41, 73], "It": [15, 27, 36, 39, 40, 41, 45, 47, 49, 55, 56, 58, 78, 79, 84, 86], "influenc": [15, 43, 70], "measurement_range_min": 15, "minimum": [15, 17, 19, 20, 21, 22, 40, 59], "implement": [16, 25, 27, 40, 41, 47, 60, 64, 88, 93], "protocol": [16, 25, 41], "pmd": [16, 41], "set": [16, 17, 18, 19, 20, 21, 22, 27, 35, 40, 41, 43, 46, 47, 51, 54, 55, 60, 62, 64, 70, 72, 73, 79, 84, 86, 92, 93], "except": [16, 17, 18, 19, 20, 21, 22, 27, 40, 43, 45], "all": [17, 19, 20, 21, 22, 27, 39, 40, 41, 43, 44, 45, 47, 49, 51, 56, 60, 62, 64, 70, 73, 78, 80, 89, 90, 95, 96], "str": [17, 18, 19, 20, 21, 22, 24, 27, 31, 32, 36, 38], "192": [17, 19, 20, 21, 22, 36, 39, 43, 45, 49, 50, 51, 56, 62, 69, 71, 82, 95], "168": [17, 19, 20, 21, 22, 36, 39, 43, 45, 49, 50, 51, 56, 62, 69, 71, 82, 95], "69": [17, 19, 20, 21, 22, 36, 39, 43, 45, 49, 50, 51, 56, 62, 69, 71, 82, 95], "xmlrpc_port": [17, 19, 20, 21, 22, 45, 71], "80": [17, 19, 20, 21, 22, 39, 49, 50, 51, 54, 71, 81, 82], "throw_if_unavail": 17, "string": [17, 18, 19, 20, 21, 22, 27, 36, 38, 39, 42, 43, 44, 45, 49, 62, 82, 88, 92], "option": [17, 18, 19, 20, 21, 22, 24, 27, 38, 39, 40, 46, 50, 51, 62, 71, 79, 93, 95], "address": [17, 19, 20, 21, 22, 39, 40, 43, 45, 50, 51, 55, 62, 69, 71, 95], "uint": [17, 19, 20, 21, 22], "tcp": [17, 19, 20, 21, 22, 27, 45], "sensor": [17, 19, 20, 21, 22, 23, 39, 49, 50, 51, 71, 82], "": [17, 19, 20, 21, 22, 39, 40, 43, 44, 45, 47, 49, 50, 51, 54, 55, 56, 57, 70, 73, 77, 78, 82, 88, 95], "server": [17, 19, 20, 21, 22, 95], "listen": [17, 19, 20, 21, 22], "requir": [17, 19, 20, 21, 22, 39, 40, 45, 49, 53, 54, 69, 77, 78, 79, 80, 84, 89, 92, 95], "establish": [17, 19, 20, 21, 22, 39, 40, 43, 50, 51], "edit": [17, 19, 20, 21, 22, 39, 40, 49, 50, 51, 55, 56, 62, 64, 69, 72, 79], "session": [17, 19, 20, 21, 22, 39, 40, 50, 51, 93], "allow": [17, 19, 20, 21, 22, 27, 40, 47, 60, 62, 73, 86, 88, 93], "mutat": [17, 19, 20, 21, 22, 39, 49, 51, 55], "persist": [17, 19, 20, 21, 22, 39, 49], "those": [17, 19, 20, 21, 22, 40, 95], "chang": [17, 19, 20, 21, 22, 39, 41, 43, 49, 55, 56, 62, 64, 70, 73, 78, 79, 81, 85, 86, 90, 92, 93, 95, 96], "am_i": [17, 19, 20, 21, 22], "famili": [17, 19, 20, 21, 22, 81], "device_famili": [17, 19, 20, 21, 22, 92], "check": [17, 19, 20, 21, 22, 26, 38, 39, 40, 43, 45, 49, 50, 70, 73, 95], "whether": [17, 19, 20, 21, 22, 45, 58, 65, 66, 67, 95], "one": [17, 19, 20, 21, 22, 39, 40, 42, 45, 47, 49, 51, 53, 54, 55, 64, 69, 73, 77, 79, 81, 84, 86], "camerabas": [17, 19, 20, 21, 22, 40, 86], "boot_mod": [17, 19, 20, 21, 22], "enum": [17, 19, 20, 21, 22, 28, 33, 47], "boot": [17, 19, 20, 21, 22, 39, 43, 51, 70], "up": [17, 19, 20, 21, 22, 39, 40, 43, 49, 54, 55, 60, 62, 78, 82, 88, 95], "member": [17, 19, 20, 21, 22, 28, 33], "product": [17, 19, 20, 21, 22, 38, 40, 41, 60, 64], "runtim": [17, 19, 20, 21, 22, 68, 78], "firmwar": [17, 19, 20, 21, 22, 38, 39, 40, 41, 43, 49, 51, 53, 54, 61, 70, 73, 78, 93], "come": [17, 19, 20, 21, 22, 68, 86], "recoveri": [17, 19, 20, 21, 22, 38, 39, 40, 51], "you": [17, 19, 20, 21, 22, 27, 39, 41, 42, 43, 45, 47, 50, 51, 52, 54, 55, 56, 59, 61, 62, 69, 70, 71, 73, 77, 78, 79, 80, 81, 82, 84, 85, 86, 95], "flash": [17, 19, 20, 21, 22, 38, 39, 51, 78, 93], "new": [17, 19, 20, 21, 22, 27, 40, 46, 49, 51, 56, 59, 82, 86, 88], "name": [17, 19, 20, 21, 22, 23, 28, 33, 39, 40, 41, 43, 45, 49, 50, 51, 54, 78, 80, 82, 86, 95], "check_minimum_firmware_vers": [17, 19, 20, 21, 22], "major": [17, 19, 20, 21, 22, 24, 39, 40, 49, 60, 82], "minor": [17, 19, 20, 21, 22, 24, 39, 40, 49, 55, 82, 93], "patch": [17, 19, 20, 21, 22, 39, 40, 49, 82, 93], "ifm": [17, 19, 20, 21, 22, 39, 40, 41, 42, 43, 44, 45, 49, 51, 54, 55, 59, 68, 77, 79, 81, 95], "softwar": [17, 19, 20, 21, 22, 27, 40, 55, 56, 65, 66, 67, 78, 81, 86, 95], "greater": [17, 19, 20, 21, 22], "equal": [17, 19, 20, 21, 22, 47], "pass": [17, 19, 20, 21, 22, 27, 39, 40, 45, 49, 51, 86, 92], "unknown": [17, 19, 20, 21, 22, 39, 49], "o3x": [17, 19, 20, 21, 39, 40, 41, 43, 45, 49, 53, 54, 56, 78, 79, 80, 84, 86, 92, 93, 95, 96], "o3r": [17, 19, 20, 22, 39, 40, 41, 42, 43, 46, 47, 49, 51, 54, 61, 62, 64, 65, 70, 71, 72, 77, 78, 79, 82, 86, 87, 88, 92, 93, 96], "device_paramet": [17, 19, 20, 21, 22], "kei": [17, 19, 20, 21, 22, 53, 81], "conveni": [17, 19, 20, 21, 22, 40, 60, 61, 88], "accessor": [17, 19, 20, 21, 22], "extract": [17, 19, 20, 21, 22, 27, 44], "No": [17, 19, 20, 21, 22, 40, 42, 44, 45, 47], "creat": [17, 18, 19, 20, 21, 22, 34, 40, 43, 44, 45, 47, 49, 51, 55, 62, 70, 78, 82], "request": [17, 19, 20, 21, 22, 40, 54, 55, 70, 84], "rais": [17, 19, 20, 21, 22, 45], "runtimeerror": [17, 18, 19, 20, 21, 22, 45], "device_typ": [17, 19, 20, 21, 22], "use_cach": [17, 19, 20, 21, 22], "obtain": [17, 19, 20, 21, 22, 58, 61, 92], "primari": [17, 19, 20, 21, 22, 39, 45, 49, 56, 81], "intent": [17, 19, 20, 21, 22, 55], "intern": [17, 19, 20, 21, 22, 39, 40, 47, 51, 86, 92], "usag": [17, 19, 20, 21, 22, 39, 40, 41, 44, 45, 49, 50, 51, 53, 64, 70, 93, 95, 96], "trigger": [17, 19, 20, 21, 22, 25, 27, 40, 41, 56, 86, 93], "condit": [17, 19, 20, 21, 22, 27, 40], "logic": [17, 19, 20, 21, 22, 27], "hardwar": [17, 19, 20, 21, 22, 39, 41, 45, 49, 66, 67, 73, 81, 95], "we": [17, 19, 20, 21, 22, 27, 39, 40, 41, 42, 43, 49, 50, 51, 52, 54, 55, 60, 61, 62, 64, 78, 79, 81, 82, 84, 86, 88, 95], "ar": [17, 19, 20, 21, 22, 27, 39, 40, 41, 43, 45, 47, 49, 50, 51, 52, 54, 55, 56, 59, 61, 62, 64, 65, 66, 67, 68, 69, 70, 73, 77, 78, 79, 80, 81, 84, 86, 87, 88, 89, 92, 93, 95], "talk": [17, 19, 20, 21, 22], "howev": [17, 19, 20, 21, 22, 27, 39, 47, 49, 60, 88, 89, 95], "like": [17, 19, 20, 21, 22, 43, 44, 55, 60, 64, 69], "applic": [17, 19, 20, 21, 22, 27, 36, 40, 43, 45, 47, 49, 51, 54, 55, 59, 61, 64, 70, 71, 72, 93, 95], "level": [17, 19, 20, 21, 22, 33, 35, 40, 46, 55], "well": [17, 19, 20, 21, 22, 39, 41, 51, 59], "so": [17, 19, 20, 21, 22, 39, 40, 42, 49, 50, 56, 78, 87, 88, 92], "public": [17, 19, 20, 21, 22, 47, 81], "interfac": [17, 19, 20, 21, 22, 36, 40, 41, 47, 53, 55, 56, 59, 60, 70, 78, 84, 88, 93], "If": [17, 19, 20, 21, 22, 43, 45, 54, 56, 59, 64, 69, 71, 72, 78, 79, 80, 81, 84, 86, 95], "cach": [17, 19, 20, 21, 22], "lookup": [17, 19, 20, 21, 22], "make": [17, 19, 20, 21, 22, 39, 40, 42, 45, 49, 55, 60, 62, 64, 73, 79, 84, 95], "network": [17, 19, 20, 21, 22, 39, 40, 49, 51, 56, 82, 95], "call": [17, 19, 20, 21, 22, 27, 34, 36, 39, 40, 44, 45, 49, 55, 69, 70, 78, 81, 86, 87, 92, 95], "get": [17, 19, 20, 21, 22, 26, 35, 39, 40, 42, 43, 44, 45, 47, 49, 51, 53, 64, 70, 77, 78, 80, 81, 82, 86, 88, 92, 95], "real": [17, 19, 20, 21, 22, 55], "onli": [17, 19, 20, 21, 22, 39, 40, 42, 43, 45, 47, 50, 54, 59, 60, 61, 69, 70, 77, 78, 86, 88, 92, 95], "reason": [17, 19, 20, 21, 22, 40, 86], "would": [17, 19, 20, 21, 22, 61, 73, 88], "expect": [17, 19, 20, 21, 22, 55, 64, 72, 73], "lifetim": [17, 19, 20, 21, 22, 45], "your": [17, 19, 20, 21, 22, 27, 39, 40, 41, 42, 43, 44, 45, 47, 49, 54, 55, 62, 64, 69, 70, 72, 78, 79, 80, 81, 82, 84, 85, 95], "swap": [17, 19, 20, 21, 22, 78], "exampl": [17, 19, 20, 21, 22, 40, 44, 46, 47, 48, 49, 51, 56, 59, 60, 63, 68, 70, 71, 72, 73, 78, 79, 81, 84, 96], "vice": [17, 19, 20, 21, 22, 78], "versa": [17, 19, 20, 21, 22, 78], "liter": [17, 19, 20, 21, 22, 43, 44, 45, 47, 88], "cabl": [17, 19, 20, 21, 22], "while": [17, 19, 20, 21, 22, 27, 39, 40, 42, 45, 49, 55, 92], "still": [17, 19, 20, 21, 22, 27, 42], "aliv": [17, 19, 20, 21, 22, 47], "someth": [17, 19, 20, 21, 22, 45, 47, 86, 92], "worri": [17, 19, 20, 21, 22, 88], "about": [17, 19, 20, 21, 22, 23, 39, 40, 47, 49, 78, 88], "leav": [17, 19, 20, 21, 22], "should": [17, 19, 20, 21, 22, 27, 34, 40, 45, 54, 56, 60, 71, 73, 78, 79, 82, 84, 88, 95], "signfic": [17, 19, 20, 21, 22], "perform": [17, 19, 20, 21, 22, 39, 45, 47, 49, 51, 55, 57, 65, 66, 67, 70, 73, 86], "increas": [17, 19, 20, 21, 22, 40, 55], "firmware_vers": [17, 19, 20, 21, 22], "semver": [17, 19, 20, 21, 22, 88, 96], "instal": [17, 19, 20, 21, 22, 39, 40, 43, 45, 49, 51, 54, 55, 62, 63, 68, 79, 81, 95, 96], "force_trigg": [17, 19, 20, 21, 22], "send": [17, 19, 20, 21, 22, 40], "w": [17, 19, 20, 21, 22, 40], "doe": [17, 19, 20, 21, 22, 27, 40, 55, 60, 68, 92], "ha": [17, 19, 20, 21, 22, 39, 41, 42, 43, 45, 49, 54, 55, 70, 81, 86, 87, 94], "been": [17, 19, 20, 21, 22, 40, 54, 55, 65, 66, 67, 87, 88, 94, 95], "develop": [17, 19, 20, 21, 22, 55, 63, 65, 78, 79, 84, 95], "specfici": [17, 19, 20, 21, 22], "For": [17, 19, 20, 21, 22, 39, 41, 42, 43, 44, 45, 47, 49, 51, 54, 55, 62, 70, 77, 84, 86, 88, 92, 95], "noop": [17, 19, 20, 21, 22, 27], "from_json": [17, 19, 20, 21, 22], "json": [17, 19, 20, 21, 22, 31, 39, 40, 43, 44, 49, 51, 53, 56, 62, 64, 70, 72, 73, 82, 92, 93], "dict": [17, 19, 20, 21, 22, 27], "_the_": [17, 19, 20, 21, 22], "wai": [17, 19, 20, 21, 22, 36, 39, 45, 49, 59, 68, 70, 71, 86, 92, 95], "tune": [17, 19, 20, 21, 22, 39, 49], "etc": [17, 19, 20, 21, 22, 39, 43, 45, 49, 61, 70, 81, 86], "A": [17, 19, 20, 21, 22, 27, 38, 40, 45, 47, 61, 78, 88, 90, 92, 96], "encod": [17, 19, 20, 21, 22, 39, 45, 49, 50], "appli": [17, 19, 20, 21, 22, 39, 49, 51, 88], "encourag": [17, 19, 20, 21, 22, 45, 59], "log": [17, 19, 20, 21, 22, 40, 46, 89, 93, 96], "file": [17, 19, 20, 21, 22, 30, 38, 39, 41, 47, 49, 54, 55, 56, 60, 64, 65, 66, 67, 69, 72, 73, 78, 79, 84, 89, 93, 95], "best": [17, 19, 20, 21, 22, 39, 49, 62], "effort": [17, 19, 20, 21, 22, 39, 49], "made": [17, 19, 20, 21, 22, 45, 87], "descript": [17, 19, 20, 21, 22, 39, 40, 41, 43, 49, 50, 51, 70, 78, 86, 95], "possibl": [17, 19, 20, 21, 22, 40, 45, 60, 65, 66, 67], "error": [17, 19, 20, 21, 22, 27, 33, 36, 47, 55, 60, 61, 62, 64, 88, 96], "occur": [17, 19, 20, 21, 22, 27, 30], "import_flag": [17, 19, 20, 21, 22], "import": [17, 19, 20, 21, 22, 39, 40, 42, 43, 45, 47, 51, 69, 70, 82, 86, 88, 93], "flag": [17, 19, 20, 21, 22, 27, 40, 79, 93, 95], "when": [17, 19, 20, 21, 22, 27, 34, 40, 61, 62, 64, 70, 77, 86, 87, 88], "vision": [17, 19, 20, 21, 22, 39, 40, 41, 45, 51, 56, 57, 58, 92], "assist": [17, 19, 20, 21, 22, 39, 40, 41, 51, 56], "global": [17, 19, 20, 21, 22, 39, 40, 50, 51, 88], "net": [17, 19, 20, 21, 22, 39, 49, 56, 81], "app": [17, 19, 20, 21, 22, 39, 40, 49, 50, 51], "associ": [17, 19, 20, 21, 22, 39, 49, 73], "mfilt_mask_s": [17, 19, 20, 21, 22], "median": [17, 19, 20, 21, 22], "filter": [17, 19, 20, 21, 22], "mask": [17, 19, 20, 21, 22, 27, 39, 40, 51, 73], "size": [17, 19, 20, 21, 22, 40, 42], "_3x3": [17, 19, 20, 21, 22], "_5x5": [17, 19, 20, 21, 22], "operating_mod": [17, 19, 20, 21, 22], "oper": [17, 19, 20, 21, 22, 47, 88, 92], "stream": [17, 19, 20, 21, 22, 25, 27, 39, 40, 41, 44, 45, 47, 49, 55, 60, 61, 64, 95], "pixel": [17, 19, 20, 21, 22, 25, 27, 40, 41, 45, 55, 60, 73, 93], "reboot": [17, 19, 20, 21, 22, 38, 39, 40, 51], "upon": [17, 19, 20, 21, 22, 45, 55, 78, 86, 95], "restart": [17, 19, 20, 21, 22, 64], "spatial_filt": [17, 19, 20, 21, 22], "spatial": [17, 19, 20, 21, 22], "off": [17, 19, 20, 21, 22, 40, 47, 64, 78, 79], "mean": [17, 19, 20, 21, 22, 45, 47, 59, 60, 62, 95], "bilater": [17, 19, 20, 21, 22], "temporal_filt": [17, 19, 20, 21, 22], "tempor": [17, 19, 20, 21, 22], "adaptive_exp": [17, 19, 20, 21, 22], "to_json": [17, 19, 20, 21, 22], "contain": [17, 19, 20, 21, 22, 39, 40, 44, 45, 49, 54, 55, 61, 64, 65, 66, 67, 70, 72, 78, 79, 80, 93, 95], "state": [17, 19, 20, 21, 22, 36, 39, 40, 41, 43, 49, 51, 55, 60, 61, 82], "compat": [17, 19, 20, 21, 22, 39, 40, 41, 51], "python": [17, 19, 20, 21, 22, 36, 39, 40, 41, 42, 43, 44, 45, 47, 49, 52, 53, 54, 61, 70, 71, 72, 73, 78, 84, 86, 87, 93, 95, 96], "modul": [17, 19, 20, 21, 22, 36, 39, 40, 41, 44, 46, 49, 55, 59, 78, 80, 86, 93, 96], "trace_log": [17, 19, 20, 21, 22], "list": [17, 19, 20, 21, 22, 26, 27, 36, 39, 40, 50, 51, 69, 70, 73, 77, 78, 81, 82, 86, 88, 90, 92, 95, 96], "deliv": [17, 19, 20, 21, 22, 88], "trace": [17, 19, 20, 21, 22, 39, 40, 47, 51, 93], "from": [17, 19, 20, 21, 22, 26, 27, 38, 39, 40, 42, 43, 44, 45, 47, 49, 50, 51, 53, 55, 56, 58, 59, 64, 69, 70, 72, 73, 75, 81, 82, 84, 86, 88, 92, 93, 96], "entri": [17, 19, 20, 21, 22, 30, 31, 32, 34, 47], "retriev": [17, 19, 20, 21, 22, 40, 42, 44, 45, 62, 64, 70, 71, 86], "each": [17, 19, 20, 21, 22, 40, 43, 44, 52, 56, 61, 69, 70, 73, 77, 86], "tracelog": [17, 19, 20, 21, 22, 40], "trigger_mod": [17, 19, 20, 21, 22], "acquisit": [17, 19, 20, 21, 22, 25, 27, 39, 41, 49, 51, 82], "free_run": [17, 19, 20, 21, 22], "sw": [17, 19, 20, 21, 22, 27], "who_am_i": [17, 19, 20, 21, 22], "wrapper": [18, 40, 41, 45, 78], "encount": [18, 19, 20, 22, 95], "code": [18, 27, 40, 42, 43, 45, 53, 54, 55, 56, 60, 61, 62, 64, 66, 67, 69, 70, 78, 79, 85, 88, 89], "ifm3d_no_error": 18, "ifm3d_xmlrpc_failur": 18, "ifm3d_xmlrpc_timeout": 18, "ifm3d_json_error": 18, "ifm3d_no_active_appl": 18, "ifm3d_subcommand_error": 18, "ifm3d_io_error": 18, "ifm3d_thread_interrupt": 18, "ifm3d_pcic_bad_repli": 18, "ifm3d_unsupported_op": 18, "ifm3d_img_chunk_not_found": 18, "ifm3d_pixel_format_error": 18, "ifm3d_unsupported_devic": 18, "ifm3d_recovery_connection_error": 18, "ifm3d_update_error": 18, "ifm3d_pcicclient_unsupported_devic": 18, "ifm3d_header_version_mismatch": 18, "ifm3d_intrinsic_calibration_unsupported_devic": 18, "ifm3d_intrinsic_calibration_unsupported_firmwar": 18, "ifm3d_inverse_intrinsic_calibration_unsupported_devic": 18, "ifm3d_inverse_intrinsic_calibration_unsupported_firmwar": 18, "ifm3d_curl_error": 18, "ifm3d_curl_timeout": 18, "ifm3d_curl_abort": 18, "ifm3d_swupdate_bad_st": 18, "ifm3d_confidence_image_format_not_support": 18, "ifm3d_distance_noise_image_unsupported_devic": 18, "ifm3d_distance_noise_image_unsupported_firmwar": 18, "ifm3d_invalid_port": 18, "ifm3d_tool_command_unsupported_devic": 18, "ifm3d_unsupported_schema_on_devic": 18, "ifm3d_buffer_id_not_avail": 18, "ifm3d_network_error": 18, "ifm3d_system_error": 18, "ifm3d_corrupted_struct": 18, "ifm3d_device_port_incompatible_with_organ": 18, "ifm3d_device_port_not_support": 18, "ifm3d_xmlrpc_obj_not_found": 18, "ifm3d_invalid_param": 18, "ifm3d_invalid_value_typ": 18, "ifm3d_value_out_of_rang": 18, "ifm3d_readonly_param": 18, "ifm3d_session_already_act": 18, "ifm3d_invalid_password": 18, "ifm3d_invalid_sessionid": 18, "ifm3d_could_not_reboot": 18, "ifm3d_invalid_format": 18, "ifm3d_invalid_device_typ": 18, "ifm3d_invalid_import_flag": 18, "ifm3d_invalid_app_index": 18, "ifm3d_app_in_edit_mod": 18, "ifm3d_max_app_limit": 18, "ifm3d_no_app_in_edit_mod": 18, "ifm3d_cannot_sw_trigg": 18, "ifm3d_invalid_imager_typ": 18, "ifm3d_unsupported_app_typ": 18, "ifm3d_pin_already_in_us": 18, "ifm3d_no_such_model_or_roi": 18, "ifm3d_temporal_filter_trigger_conflict": 18, "ifm3d_eeprom_fail": 18, "ifm3d_import_export_in_progress": 18, "ifm3d_invalid_net_config": 18, "ifm3d_led_duty_cycle_viol": 18, "ifm3d_auto_exposure_not_support": 18, "ifm3d_invalid_firmware_vers": 18, "ifm3d_proxy_auth_requir": 18, "ifm3d_pixel_format_not_support": 18, "msg": 18, "what": [18, 39, 49], "messag": [18, 19, 20, 22, 27, 35, 39, 40, 47, 50, 51, 55, 64, 71, 89, 95], "represent": [18, 56], "includ": [18, 40, 42, 43, 44, 45, 47, 60, 61, 65, 66, 67, 70, 73, 88, 92, 93], "with_traceback": 18, "tb": 18, "__traceback__": 18, "active_appl": [19, 20, 22], "activ": [19, 20, 22, 35, 39, 50, 53, 70, 95], "neg": [19, 20, 22], "indic": [19, 20, 21, 22, 47], "mark": [19, 20, 21, 22, 39, 40, 50, 54, 87, 89], "application_list": [19, 20, 22], "basic": [19, 20, 22, 39, 40, 45, 49, 78, 79, 84, 96], "store": [19, 20, 22, 42, 45, 59, 60, 92], "dictionari": [19, 20, 22], "follow": [19, 20, 21, 22, 39, 41, 42, 43, 44, 45, 47, 49, 50, 54, 55, 56, 59, 60, 61, 62, 63, 65, 69, 70, 72, 73, 77, 78, 79, 80, 81, 82, 84, 86, 87, 88, 92, 95], "application_typ": [19, 20, 22], "valid": [19, 20, 22, 39, 45, 49, 50, 55, 62, 64], "element": [19, 20, 22, 39, 49], "suitabl": [19, 20, 22, 41], "createappl": [19, 20, 22], "cancel_sess": [19, 20, 22], "arg": [19, 20, 22, 23, 26, 30, 31, 32, 35, 39, 50, 51], "kwarg": [19, 20, 22, 23, 26, 30, 31, 32, 35], "overload": [19, 20, 22, 68], "explictli": [19, 20, 22], "stop": [19, 20, 22, 27, 39, 40, 42, 44, 45, 47, 49, 86, 87], "success": [19, 20, 22, 38, 79], "failur": [19, 20, 22, 40], "On": [19, 20, 22, 62, 79], "detail": [19, 20, 22, 40, 41, 43, 44, 47, 52, 54, 55, 60, 61, 64, 70, 71, 73, 77, 79, 84, 85, 86, 88, 89, 90, 96], "sid": [19, 20, 22], "attempt": [19, 20, 22, 39, 49, 62, 70], "cancel": [19, 20, 22, 40], "particular": [19, 20, 22, 39, 51, 78], "copy_appl": [19, 20, 22], "idx": [19, 20, 22], "copi": [19, 20, 22, 39, 40, 41, 42, 49, 51, 63, 64, 68, 88, 92], "anoth": [19, 20, 22, 39, 49, 53, 73], "gener": [19, 20, 22, 27, 40, 41, 47, 53, 70, 73, 88], "put": [19, 20, 22, 39, 51, 88], "create_appl": [19, 20, 22], "To": [19, 20, 22, 39, 43, 45, 49, 50, 51, 54, 59, 62, 69, 77, 78, 79, 84, 86, 88, 92, 95], "figur": [19, 20, 22], "availableapplicationtyp": [19, 20, 22], "creation": [19, 20, 22, 47, 59], "embed": [19, 20, 22, 40, 61, 78, 93], "necessari": [19, 20, 22, 39, 49, 61, 64, 65, 78], "mai": [19, 20, 22, 39, 40, 45, 47, 49, 50, 78, 80, 81], "_activatable_": [19, 20, 22], "That": [19, 20, 22], "can": [19, 20, 22, 39, 41, 42, 43, 45, 47, 49, 50, 51, 53, 54, 55, 56, 59, 60, 61, 62, 63, 64, 69, 70, 71, 73, 77, 78, 79, 80, 82, 84, 86, 88, 92, 93, 95], "save": [19, 20, 21, 22, 39, 49, 56, 59, 82], "cannot": [19, 20, 22, 87], "By": [19, 20, 22, 40, 47, 78, 88], "delete_appl": [19, 20, 22], "delet": [19, 20, 22, 39, 50, 51, 73], "export_ifm_app": [19, 20, 22], "export": [19, 20, 22, 39, 40, 51, 62], "byte": [19, 20, 22], "write": [19, 20, 22, 34, 44, 46, 47, 55, 60, 92], "repres": [19, 20, 22, 26, 30, 73], "serial": [19, 20, 22, 39, 49, 51], "tool": [19, 20, 22, 36, 40, 41, 47, 49, 55, 61, 66, 67, 68, 70, 78, 80, 81, 82, 93, 95, 96], "export_ifm_config": [19, 20, 22], "entir": [19, 20, 22, 39, 49, 65, 66, 67], "format": [19, 20, 21, 22, 27, 31, 32, 39, 40, 42, 43, 45, 47, 49, 51, 59, 60, 62, 70, 73, 86, 88, 92, 93], "factory_reset": [19, 20, 21, 22], "back": [19, 20, 21, 22, 64, 96], "which": [19, 20, 21, 22, 39, 40, 44, 45, 47, 49, 51, 54, 55, 56, 59, 61, 62, 64, 68, 71, 72, 73, 77, 78, 79, 81, 84, 86, 87, 92], "ship": [19, 20, 21, 22, 39, 51], "factori": [19, 20, 21, 22, 39, 51], "heartbeat": [19, 20, 22], "hb": [19, 20, 22], "next": [19, 20, 21, 22, 56, 93, 95], "interv": [19, 20, 22], "keep": [19, 20, 21, 22, 40, 68], "imager_typ": [19, 20, 22], "import_ifm_app": [19, 20, 22], "va": [19, 20, 22], "raw": [19, 20, 22, 43, 70, 92], "zip": [19, 20, 22], "d": [19, 20, 22, 81, 95], "note": [19, 20, 21, 22, 27, 36, 39, 40, 41, 42, 43, 45, 49, 50, 51, 64, 70, 78, 80, 82, 84, 86, 87, 88, 93, 95], "base64": [19, 20, 22], "tranmiss": [19, 20, 22], "xml": [19, 20, 22, 40], "rpc": [19, 20, 22, 40], "import_ifm_config": [19, 20, 22], "request_sess": [19, 20, 22], "order": [19, 20, 22, 27, 39, 49, 55, 61, 73, 86, 87], "perman": [19, 20, 22], "need": [19, 20, 22, 27, 39, 40, 43, 44, 45, 47, 49, 50, 54, 56, 62, 64, 69, 70, 78, 79, 84, 86, 88, 92, 95], "sesson": [19, 20, 22], "ani": [19, 20, 22, 39, 40, 45, 49, 54, 59, 60, 65, 66, 67, 84, 88, 92], "think": [19, 20, 22, 60], "mutex": [19, 20, 22], "ask": [19, 20, 22, 59], "alreadi": [19, 20, 22, 62, 71, 88], "taken": [19, 20, 22, 56], "thrown": [19, 20, 22, 27], "most": [19, 20, 22, 27, 54, 60], "typic": [19, 20, 22, 41, 45, 69, 77, 78, 79], "case": [19, 20, 22, 39, 40, 44, 47, 50, 73, 81], "end": [19, 20, 22, 45], "involv": [19, 20, 22], "fromjson": [19, 20, 22, 40], "under": [19, 20, 22, 40, 54, 60, 90, 96], "hood": [19, 20, 22], "behalf": [19, 20, 22], "gracefulli": [19, 20, 22], "close": [19, 20, 22, 40, 60, 73], "There": [19, 20, 22, 81, 89, 95], "who": [19, 20, 22], "plan": [19, 20, 22, 78, 95], "fly": [19, 20, 22, 55, 93], "framegrabb": [19, 20, 22, 39, 40, 41, 42, 44, 46, 47, 51, 78, 80, 81, 87, 88, 92, 93, 95, 96], "manual": [19, 20, 22, 27, 39, 40, 42, 44, 45, 49, 62, 88], "expos": [19, 20, 22, 40, 41, 78, 93], "implicitli": [19, 20, 22, 86], "max_heartbeat": [19, 20, 22], "after": [19, 20, 22, 39, 40, 42, 50, 56, 59, 62, 64, 79, 84, 86], "successfulli": [19, 20, 22], "issu": [19, 20, 22, 39, 40, 47, 49, 50, 51, 55, 59, 60], "accept": [19, 20, 22, 39, 49, 51], "see": [19, 20, 22, 27, 39, 40, 41, 42, 49, 50, 51, 54, 55, 62, 65, 69, 73, 78, 84, 86, 88, 89, 95], "ifm3d_session_id": [19, 20, 22, 40], "environ": [19, 20, 22, 40, 42, 43, 44, 45, 55, 62, 78, 79, 82, 84], "throw": [19, 20, 22], "error_t": [19, 20, 22, 40], "session_id": [19, 20, 22], "set_current_tim": [19, 20, 22], "epoch_sec": [19, 20, 22], "sinc": [19, 20, 22, 39, 40, 49, 50, 60], "unix": [19, 20, 22, 39, 50, 95], "epoch": [19, 20, 22, 39, 50], "less": [19, 20, 22, 93], "than": [19, 20, 22, 40, 45, 62, 69, 81], "implic": [19, 20, 22], "set_temporary_application_paramet": [19, 20, 22], "param": [19, 20, 22], "lost": [19, 20, 22], "enter": [19, 20, 22], "turn": [19, 20, 22, 64, 92], "exposuretim": [19, 20, 22, 39, 49], "exposuretimeratio": [19, 20, 22, 39, 49], "addit": [19, 20, 22, 40, 54, 60, 78, 79, 93], "ignor": [19, 20, 22, 47], "now": [19, 20, 22, 39, 40, 49, 50, 51, 55, 69, 82, 87, 88, 89, 91, 92, 93, 95], "clamp": [19, 20, 22], "depend": [19, 20, 22, 40, 45, 54, 55, 59, 60, 62, 66, 67, 93, 95], "must": [19, 20, 22, 45, 47, 65, 66, 67], "both": [19, 20, 22, 39, 41, 51, 60, 77, 95], "doubl": [19, 20, 22, 39, 43, 50], "behavior": [19, 20, 22], "undefin": [19, 20, 22, 27], "unit_vector": [19, 20, 22], "fetch": [19, 20, 22, 40, 79], "unit": [19, 20, 22, 40, 45, 54, 73, 78, 92, 93, 95], "vector": [19, 20, 22, 45, 59, 60, 73, 92], "binari": [19, 20, 22, 39, 40, 49, 60, 75, 79, 80, 84, 95, 96], "blob": [19, 20, 22, 39, 49], "legacydevic": [20, 22, 40, 88, 96], "experiment": [20, 22, 40, 41, 81, 93, 95], "own": [20, 22, 40, 41, 47, 55, 81, 84], "risk": [20, 22, 40, 41, 65, 66, 67], "keep_network_set": 21, "wether": 21, "path": [21, 40, 55, 63, 79, 84], "empti": [21, 39, 42, 49], "whole": [21, 39, 47, 51], "fragment": 21, "get_diagnost": 21, "content": [21, 92], "diagnost": [21, 28, 39, 40, 49, 61, 62, 64, 82], "memori": [21, 43, 45, 60, 92, 93], "get_diagnostic_filter_schema": 21, "schema": [21, 27, 39, 40, 43, 46, 47, 49, 51, 62, 72, 73, 82, 86], "express": [21, 65, 66, 67], "getfilt": 21, "get_diagnostic_filt": 21, "accord": [21, 26, 47, 88], "get_init": 21, "get_schema": 21, "portinfo": [21, 96], "physic": [21, 45], "reboot_to_recoveri": [21, 38, 88], "remov": [21, 55, 86, 87, 88, 92, 93], "json_point": 21, "scope": 21, "limit": [21, 65, 66, 67, 86], "regular": 21, "appd": 21, "compon": 21, "za": 21, "z0": 21, "9": [21, 39, 41, 49, 54, 55, 82, 89, 93], "_": [21, 39, 49, 80], "pointer": [21, 40, 43, 44, 45, 92], "reset": [21, 39, 40, 51], "insid": [21, 47, 87], "defin": [21, 40, 42, 43, 44, 45, 47, 69, 77, 86, 88, 92], "init": 21, "nor": [21, 55], "sticki": 21, "resolve_config": [21, 40], "part": [21, 40, 42, 43, 64, 70, 78, 86, 88, 95], "partial": 21, "save_init": 21, "transit": 21, "config": [21, 43, 45, 50, 51, 55, 56, 62, 63, 64, 66, 67, 69, 72, 79, 82], "overwrit": 21, "achiev": 21, "merg": 21, "temporai": 21, "pcic_port": [23, 27, 42, 44, 45, 62, 92], "assign": [23, 40, 47, 92], "conntect": 23, "hold": [24, 45, 60, 92], "build": [24, 39, 40, 43, 45, 49, 59, 60, 63, 64, 65, 66, 67, 68, 77, 80, 81, 84, 93], "prereleas": 24, "build_meta": 24, "pars": [24, 40, 43, 88, 93], "devic": [26, 27, 38, 39, 40, 41, 42, 43, 44, 45, 47, 49, 50, 51, 53, 54, 59, 61, 62, 70, 78, 79, 80, 81, 82, 84, 87, 88, 93, 96], "algorithm": [26, 73], "output": [26, 36, 39, 40, 43, 49, 51, 68, 82, 88, 93, 95], "get_buff": [26, 42, 45, 86], "buffer_id": [26, 27, 40, 42, 44, 45, 47, 86, 88, 92, 96], "get_buffer_count": 26, "total": 26, "has_buff": 26, "datetim": 26, "cam": [27, 38, 86], "grab": [27, 38, 40, 45, 59, 93], "uint16": 27, "is_mask": 27, "is_run": 27, "worker": [27, 45], "thread": [27, 42, 44, 45, 47], "on_async_error": 27, "callback": [27, 38, 40, 42, 46, 64, 70, 87], "callabl": [27, 38], "enabl": [27, 40, 45, 65, 78, 92, 93], "async": [27, 86], "execut": [27, 36, 40, 45, 47, 56, 62, 70, 78, 79, 86], "whenev": 27, "avali": 27, "argument": [27, 39, 40, 50, 51, 71, 95], "on_async_notif": 27, "notif": [27, 40, 55], "payload": 27, "on_error": 27, "on_new_fram": [27, 45, 86], "set_mask": 27, "disabl": [27, 40, 79, 94], "confidence_imag": [27, 28, 39, 40, 47, 49], "start": [27, 39, 42, 44, 46, 47, 49, 55, 64, 78, 89, 92], "sequenc": [27, 39, 50, 70], "union": 27, "pcic_format": 27, "await": [27, 45, 86, 87, 96], "resolv": [27, 40], "readi": [27, 40, 44, 45, 65], "futureawait": 27, "uint64": 27, "organ": [27, 28], "pcicformat": 27, "asynchron": [27, 40, 55, 70], "make_schema": 27, "rare": 27, "usecas": 27, "cover": 27, "reli": [27, 55, 69, 81], "some": [27, 39, 40, 43, 44, 45, 49, 54, 55, 60, 61, 64, 68, 69, 70, 93], "rule": [27, 40, 60], "thei": [27, 40, 41, 58, 64, 73, 88], "miss": [27, 40], "abl": [27, 45, 56, 62, 79, 84], "framgrabb": [27, 87], "sw_trigger": [27, 40], "sure": [27, 39, 42, 43, 45, 49, 64, 73, 79, 95], "triggermod": [27, 39, 49], "effect": [27, 47, 70], "simpli": [27, 39, 45, 49, 50, 95], "via": [27, 39, 40, 45, 49, 55, 95], "wait_for_fram": [27, 45, 86], "do": [27, 39, 43, 47, 49, 59, 64, 72, 81, 86, 92], "recommend": [27, 36, 40, 45, 52, 61, 70, 71, 78, 79, 81, 82, 84, 86], "tight": 27, "framegrab": 27, "loop": [27, 40, 45, 86, 92], "know": [27, 45], "cost": 27, "incur": 27, "frameawait": [27, 96], "radial_distance_imag": [28, 45, 47], "norm_amplitude_imag": [28, 45, 47], "amplitude_imag": [28, 45], "grayscale_imag": 28, "radial_distance_nois": 28, "reflect": [28, 39, 40, 49], "cartesian_x_compon": 28, "cartesian_y_compon": 28, "cartesian_z_compon": 28, "cartesian_al": 28, "unit_vector_al": [28, 92], "monochrom_2d_12bit": 28, "monochrom_2d": 28, "jpeg_imag": [28, 42, 45], "json_diagnost": 28, "extrinsic_calib": 28, "intrinsic_calib": 28, "o3r_distance_image_info": [28, 87], "o3r_rgb_image_info": [28, 87], "json_model": [28, 40, 92, 93], "algo_debug": 28, "o3r_ods_occupancy_grid": 28, "o3r_ods_info": 28, "o3r_result_json": [28, 40], "o3r_result_array2d": [28, 40], "o3r_result_imu": [28, 40], "xyz": [28, 40, 45, 47, 71, 86, 87], "illumination_temp": [28, 92], "facil": [29, 35], "logentri": [31, 32, 34, 47, 96], "human": [32, 73], "readabl": [32, 43, 64], "text": [32, 39, 49, 66, 67], "line": [32, 36, 40, 41, 44, 45, 49, 62, 78, 82, 87, 89, 93, 95, 96], "critic": [33, 47], "warn": [33, 40, 47, 95], "info": [33, 39, 43, 44, 47, 49, 82], "debug": [33, 40, 47, 55, 79], "verbos": [33, 47, 62, 64, 93], "custom": [34, 40, 47, 89, 93], "writer": [34, 35, 47], "written": [34, 55], "log_level": 35, "below": [35, 39, 40, 42, 44, 45, 49, 54, 56, 62, 70, 72, 73, 78, 82, 84, 86, 92, 95], "discard": 35, "set_log_level": 35, "loglevel": [35, 47, 96], "set_writ": [35, 47], "logwrit": [35, 47, 96], "command": [36, 40, 41, 49, 50, 56, 62, 69, 71, 77, 78, 80, 82, 89, 93, 95, 96], "script": [36, 40, 41, 47, 61, 64, 66, 67, 70, 71, 72, 73, 74, 93, 95], "monitor": [36, 53], "progress": [36, 38, 41, 77, 78, 79], "handl": [36, 40, 45, 46, 47, 55, 62, 64, 72, 86, 96], "instead": [36, 40, 68, 86, 89], "pleas": [36, 39, 40, 41, 42, 43, 44, 45, 49, 51, 54, 55, 62, 64, 66, 67, 70, 78, 79, 80, 84, 88, 89, 90, 96], "directli": [36, 40, 45, 55, 58, 78], "correspond": [36, 41, 42, 44, 45, 47, 62, 73, 86, 89, 92], "mainli": [36, 78], "intend": [36, 39, 51, 55, 64, 65, 66, 67, 74, 85, 86], "integr": [36, 55, 88], "cli": 36, "exist": [36, 39, 40, 47, 51, 60, 78, 88], "consol": [36, 47], "argv": [36, 92], "py": [36, 40, 69, 71, 72, 95], "l": [36, 39, 50, 51, 62, 95], "util": [37, 39, 40, 41, 47, 49, 53, 55, 59, 70, 78, 81, 93, 95], "subsystem": [37, 41], "cb": 38, "float": [38, 40, 59, 92], "swupdate_recovery_port": 38, "8080": 38, "updat": [38, 39, 40, 51, 53, 61, 62, 70, 73, 78, 79, 80, 81, 85, 88, 93], "uint16_t": [38, 42, 44, 45, 62, 92], "commun": [38, 39, 51, 79], "flash_firmwar": [38, 88], "swu_fil": 38, "timeout_milli": 38, "swu": [38, 39, 40, 49, 82], "long": [38, 43, 64, 93], "millisecond": [38, 42], "upload": [38, 40, 81, 95], "rtype": 38, "reboot_to_product": [38, 88], "wait_for_product": [38, 88], "till": 38, "wait_for_recoveri": [38, 88], "same": [39, 40, 44, 45, 49, 51, 56, 70, 73, 86, 89], "introspect": [39, 41, 51], "carri": [39, 49, 51, 95], "evok": [39, 51], "subcommand": [39, 40, 49, 50, 51, 93], "help": [39, 40, 50, 51, 59, 61, 71, 78, 95], "20": [39, 49, 50, 51, 78, 79, 80, 84, 89, 93, 95], "h": [39, 40, 42, 43, 44, 45, 47, 50, 51, 64, 71, 92, 95], "produc": [39, 49, 50, 51], "exit": [39, 45, 50, 51, 70, 71, 95], "These": [39, 43, 51, 54, 64, 70, 72, 92, 95], "common": [39, 40, 45, 47, 51, 55, 78], "variou": [39, 51, 61, 78, 81], "situat": [39, 51, 95], "desir": [39, 49, 51, 81, 86], "also": [39, 41, 43, 45, 49, 51, 55, 56, 58, 59, 60, 77, 78, 79, 84, 86, 92], "cp": [39, 50, 51], "bootstrap": [39, 50, 51], "discov": [39, 40, 51], "hz": [39, 51, 95], "comput": [39, 45, 51, 54, 78], "frequenc": [39, 51], "jitter": [39, 40, 51, 93], "collect": [39, 51, 54, 61], "statist": [39, 51], "construct": [39, 51, 92], "passwd": [39, 40, 51], "potenti": [39, 40, 47, 51, 61], "rm": [39, 50, 51, 95], "analyz": [39, 51, 61], "swupdat": [39, 40, 41, 51, 78, 80, 81, 93, 96], "ensur": [39, 42, 43, 47, 51, 78, 79], "beforehand": [39, 51], "bug": [39, 40, 51, 93], "report": [39, 40, 51, 87], "http": [39, 40, 51, 57, 58, 79, 81], "github": [39, 40, 41, 51, 78, 79], "com": [39, 41, 51, 54, 74, 79, 81, 91], "As": [39, 51, 95], "abov": [39, 44, 45, 49, 51, 56, 60, 62, 64, 69, 78, 79, 80, 84, 86, 92], "program": [39, 40, 45, 51, 54, 55, 70], "control": [39, 45, 47, 51, 95], "platform": [39, 41, 43, 44, 45, 49, 51, 54, 64, 70, 71, 72, 77, 79, 86, 93], "wish": [39, 51], "2": [39, 41, 42, 43, 44, 45, 47, 49, 50, 51, 54, 56, 59, 62, 64, 69, 72, 85, 92, 93, 96], "3": [39, 41, 44, 45, 47, 49, 50, 51, 53, 54, 56, 60, 62, 64, 72, 78, 79, 80, 81, 82, 84, 85, 88, 90, 92, 93, 95, 96], "exemplari": [39, 49, 51, 95], "purpos": [39, 47, 49, 51, 55, 78, 82, 95], "let": [39, 43, 49, 50, 51, 55, 82, 86], "sourc": [39, 40, 51, 55, 60, 63, 75, 81, 84, 96], "shown": [39, 49, 51, 59, 70], "take": [39, 42, 49, 51, 64, 88, 90, 96], "concept": [39, 49, 51, 55, 61, 86], "deprec": [39, 40, 51, 55, 86, 87, 88], "walk": [39, 51, 85], "through": [39, 40, 41, 45, 49, 51, 54, 56, 59, 61, 70, 78, 79, 85, 86], "coupl": [39, 51], "simpl": [39, 40, 45, 51, 60, 78, 93], "exhaust": [39, 51], "tutori": [39, 40, 51, 79], "rather": [39, 45, 51, 66, 67, 81], "sens": [39, 40, 45, 51, 73], "how": [39, 40, 46, 49, 51, 53, 55, 56, 57, 58, 59, 61, 64, 70, 72, 73, 78, 79, 84, 85, 86, 89, 95, 96], "broadli": [39, 51], "3d": [39, 41, 42, 45, 49, 55, 59, 61, 62, 64, 69, 70, 72, 73, 95], "accomplish": [39, 49], "two": [39, 41, 49, 55, 64, 70, 73, 95], "api": [39, 40, 41, 43, 44, 49, 54, 61, 70, 86, 91, 96], "show": [39, 40, 47, 49, 55, 61, 64, 70, 71, 73, 79, 84, 95], "refer": [39, 41, 43, 44, 45, 47, 49, 54, 56, 60, 70, 77, 78, 86, 92], "doc": [39, 40, 49, 88, 89, 93, 96], "instruct": [39, 40, 49, 52, 54, 62, 63, 73, 74, 78, 79, 80, 84, 95, 96], "print": [39, 43, 45, 47, 49, 82, 89], "stdout": [39, 49, 55], "consum": [39, 40, 49], "either": [39, 40, 49], "stdin": [39, 40, 49], "interpret": [39, 49, 73], "said": [39, 43, 49], "have": [39, 40, 42, 43, 49, 54, 55, 56, 59, 60, 61, 65, 66, 67, 70, 71, 78, 86, 87, 88, 92, 95], "remaind": [39, 49, 55], "document": [39, 40, 41, 43, 44, 49, 54, 55, 57, 58, 60, 66, 67, 70, 71, 77, 78, 86, 88, 91, 93, 94], "narr": [39, 49], "hope": [39, 49], "demonstr": [39, 49, 55, 56, 57, 58, 61, 70, 72], "leverag": [39, 49], "o3d303": [39, 45, 49, 57, 58], "techniqu": [39, 49], "here": [39, 41, 49, 60, 62, 66, 67, 71, 77, 78, 79, 84, 86, 95], "addition": [39, 45, 49, 70, 88], "jq": [39, 49, 50, 56, 80], "processor": [39, 49], "linux": [39, 40, 49, 62, 75, 76, 77, 78, 80, 83, 93, 95, 96], "pipelin": [39, 40, 49], "standard": [39, 40, 49, 60, 62, 92], "grep": [39, 49], "sed": [39, 49], "awk": [39, 49], "perl": [39, 49], "could": [39, 40, 49], "decompos": [39, 49], "wherebi": [39, 45, 49], "o": [39, 49, 68, 77, 80, 82, 84, 95], "redirect": [39, 47, 49], "discret": [39, 49], "step": [39, 49, 50, 56, 69, 73, 78, 79, 80, 95], "again": [39, 49, 60, 62], "assum": [39, 45, 49, 55, 60, 65, 66, 67, 86], "ubuntu": [39, 40, 49, 65, 77, 80, 81, 89, 93, 95], "sudo": [39, 49, 78, 80, 81], "apt": [39, 40, 49, 78, 80, 81, 95], "476707713": [39, 49, 50], "autoexposuremaxexposuretim": [39, 49], "10000": [39, 49], "autoexposurereferencepointx": [39, 49], "88": [39, 49], "autoexposurereferencepointi": [39, 49], "66": [39, 49], "autoexposurereferenceroi": [39, 49], "roi": [39, 49], "group": [39, 49], "rect": [39, 49], "130": [39, 49], "100": [39, 49, 50, 92], "angl": [39, 49, 73], "center_x": [39, 49], "center_i": [39, 49], "autoexposurereferencetyp": [39, 49], "channel": [39, 49], "clippingbottom": [39, 49], "131": [39, 49], "clippingcuboid": [39, 49], "xmin": [39, 49], "402823e": [39, 49], "38": [39, 49], "xmax": [39, 49], "ymin": [39, 49], "ymax": [39, 49], "zmin": [39, 49], "zmax": [39, 49], "clippingleft": [39, 49], "clippingright": [39, 49], "175": [39, 49], "clippingtop": [39, 49], "continuousautoexposur": [39, 49], "enableamplitudecorrect": [39, 49], "enablefastfrequ": [39, 49], "enablefilteramplitudeimag": [39, 49], "enablefilterdistanceimag": [39, 49], "enablerectificationamplitudeimag": [39, 49], "enablerectificationdistanceimag": [39, 49], "5000": [39, 49], "exposuretimelist": [39, 49], "125": [39, 49], "40": [39, 49], "framer": [39, 49, 82], "5": [39, 41, 47, 49, 54, 70, 90, 93, 95, 96], "maxallowedledframer": [39, 49], "23": [39, 49, 82, 93], "minimumamplitud": [39, 49], "42": [39, 40, 49], "spatialfilt": [39, 49], "spatialfiltertyp": [39, 49], "symmetrythreshold": [39, 49], "4": [39, 42, 43, 47, 49, 53, 54, 70, 77, 79, 81, 82, 93, 95], "temporalfilt": [39, 49], "temporalfiltertyp": [39, 49], "threefreqmax2flinedistpercentag": [39, 49], "threefreqmax3flinedistpercentag": [39, 49], "twofreqmaxlinedistpercentag": [39, 49], "under5m_moder": [39, 49], "usesimplebin": [39, 49], "logicgraph": [39, 49], "iomap": [39, 49], "out1": [39, 49], "rft": [39, 49], "out2": [39, 49], "aqufin": [39, 49], "b00001": [39, 49], "po": [39, 49], "x": [39, 40, 43, 49, 54, 59, 62, 70, 78, 84, 86, 89, 92], "200": [39, 49], "y": [39, 43, 49, 59, 70, 80, 92], "pin_event_image_acquisition_finish": [39, 49], "b00002": [39, 49], "75": [39, 49], "pin_event_ready_for_trigg": [39, 49], "b00003": [39, 49], "600": [39, 49], "pulse_dur": [39, 49], "digital_out1": [39, 49], "b00005": [39, 49], "digital_out2": [39, 49], "connector": [39, 49], "c00000": [39, 49], "dst": [39, 49], "dstep": [39, 49], "src": [39, 49, 68], "srcep": [39, 49], "c00001": [39, 49], "sampl": [39, 44, 49, 50, 66, 67, 95], "pciceipresultschema": [39, 49], "layout": [39, 49, 92], "flexibl": [39, 49, 60], "dataencod": [39, 49], "big": [39, 40, 49], "star": [39, 49], "start_str": [39, 49], "record": [39, 47, 49, 73], "int16": [39, 49], "boxfound": [39, 49], "scale": [39, 49, 59], "1000": [39, 49, 82], "length": [39, 49, 73], "xmidtop": [39, 49], "ymidtop": [39, 49], "zmidtop": [39, 49], "yawangl": [39, 49], "qualitylength": [39, 49], "qualitywidth": [39, 49], "qualityheight": [39, 49], "end_str": [39, 49], "pcicpnioresultschema": [39, 49], "pcictcpresultschema": [39, 49], "ascii": [39, 49], "normalized_amplitude_imag": [39, 49], "distance_imag": [39, 47, 49], "x_imag": [39, 49], "y_imag": [39, 49], "z_imag": [39, 49], "diagnostic_data": [39, 49], "templateinfo": [39, 49], "activeappl": [39, 49, 50], "articlenumb": [39, 49], "articlestatu": [39, 49], "ad": [39, 49, 53, 64, 77, 88, 93, 95], "devicetyp": [39, 49], "enableacquisitionfinishedpc": [39, 49], "ethernetfieldbu": [39, 49], "ethernetfieldbusendian": [39, 49], "evaluationfinishedminholdtim": [39, 49], "10": [39, 41, 42, 47, 49, 54, 60, 82, 89, 92, 93, 95], "extrinsiccalibrotx": [39, 49], "extrinsiccalibroti": [39, 49], "extrinsiccalibrotz": [39, 49], "extrinsiccalibtransx": [39, 49], "extrinsiccalibtransi": [39, 49], "extrinsiccalibtransz": [39, 49], "iodebounc": [39, 49], "ioexternapplicationswitch": [39, 49], "iologictyp": [39, 49], "ipaddressconfig": [39, 49, 82], "imagetimestamprefer": [39, 49], "1520963818": [39, 49], "operatingmod": [39, 49], "pniodevicenam": [39, 49], "passwordactiv": [39, 49], "pcicprotocolvers": [39, 49], "pcictcpport": [39, 45, 47, 49, 82], "50010": [39, 49, 71, 82, 92], "saverestorestatsonapplswitch": [39, 49], "servicereportfailedbuff": [39, 49], "15": [39, 49, 82, 93], "servicereportpassedbuff": [39, 49], "sessiontimeout": [39, 49], "30": [39, 40, 49, 54, 93], "temperaturefront1": [39, 49], "3276": [39, 49], "7": [39, 41, 49, 50, 54, 93], "temperaturefront2": [39, 49], "temperatureimx6": [39, 49], "7179985046387": [39, 49], "temperatureillu": [39, 49], "47": [39, 49], "uptim": [39, 49, 82], "61972222222222": [39, 49], "macaddress": [39, 49], "00": [39, 49, 82], "02": [39, 49, 82], "01": [39, 49, 82], "7d": [39, 49], "96": [39, 49], "networkspe": [39, 49, 82], "staticipv4address": [39, 49, 56, 82], "staticipv4gatewai": [39, 49, 82], "201": [39, 49, 82], "staticipv4subnetmask": [39, 49, 82], "255": [39, 49, 59, 82, 92], "usedhcp": [39, 49, 82], "currenttim": [39, 49, 82], "1520963816": [39, 49], "ntpserver": [39, 49, 50], "startingsynchron": [39, 49], "stat": [39, 49], "synchronizationactiv": [39, 49, 50], "sync": [39, 49, 93], "waitsynctri": [39, 49], "date": [39, 49, 50], "mon": [39, 49, 50], "11": [39, 41, 49, 53, 54, 79, 93], "55": [39, 49], "08": [39, 49], "2018": [39, 49, 50], "hwinfo": [39, 49], "02_a300_c40_02452814_008023176": [39, 49], "diagnos": [39, 49], "02_d322_c32_03038544_008023267": [39, 49], "frontend": [39, 49], "02_f342_c34_17_00049_008023607": [39, 49], "02_i300_001_03106810_008001175": [39, 49], "mainboard": [39, 49], "02_m381_003_03181504_008022954": [39, 49], "miraseri": [39, 49], "0e30": [39, 49], "59af": [39, 49], "0ef7": [39, 49], "0244": [39, 49], "swversion": [39, 43, 49, 82], "algorithm_vers": [39, 49], "45": [39, 49], "calibration_devic": [39, 49], "calibration_vers": [39, 49], "diagnostic_control": [39, 49], "v1": [39, 40, 49, 62, 78, 79, 85, 90, 96], "9dbc4ca5ef": [39, 49], "dirti": [39, 40, 49], "eldk": [39, 49], "goldeneye_yocto": [39, 49], "releas": [39, 49, 53, 55, 60, 63, 77, 79, 80, 81, 84, 90, 93, 96], "2fo3d": [39, 49], "2frb_1": [39, 49], "06d9c894636352a6c93711c7284d02b0c794a527": [39, 49], "ifm_recoveri": [39, 49], "unvers": [39, 49], "ifm_softwar": [39, 49], "1138": [39, 49, 93], "14": [39, 49, 93], "34": [39, 49], "rt31": [39, 49], "yocto": [39, 49], "00009": [39, 49], "ge4ab4d94f288": [39, 49], "jenkin": [39, 49], "dettlx190": [39, 49], "gcc": [39, 40, 41, 49, 54], "smp": [39, 49], "preempt": [39, 49], "rt": [39, 49], "tue": [39, 49, 50], "mar": [39, 49, 50], "13": [39, 49, 50, 82, 93], "16": [39, 49, 50, 68, 79, 93, 95], "06": [39, 49], "07": [39, 49], "cet": [39, 49], "main_appl": [39, 49], "ifm3d_vers": [39, 49], "900": [39, 49], "clock": [39, 49, 82], "1581108383428570624": [39, 49], "17739000000000": [39, 49], "0301": [39, 49, 82], "devicetreebinaryblob": [39, 49, 82], "tegra186": [39, 49, 82], "quill": [39, 49, 82], "p3310": [39, 49, 82], "c03": [39, 49, 82], "dtb": [39, 49, 82], "featur": [39, 40, 41, 49, 82], "partnumb": [39, 49, 82], "m03975": [39, 49, 82], "productionst": [39, 49, 82], "aa": [39, 49, 82], "serialnumb": [39, 49, 82], "000201234159": [39, 49], "vendor": [39, 49, 82], "0001": [39, 49, 82], "authorized_kei": [39, 49, 82], "maceth0": [39, 49, 82], "04": [39, 49, 65, 82, 89, 93, 95], "4b": [39, 49, 82], "ea": [39, 49, 82], "9f": [39, 49, 82], "35": [39, 49], "maceth1": [39, 49, 82], "41": [39, 49, 82], "59": [39, 49], "errormessag": [39, 49, 82], "errornumb": [39, 49, 82], "kernel": [39, 49, 82], "140": [39, 49, 82], "l4t": [39, 40, 49, 65, 77, 81, 82, 89], "r32": [39, 49, 82], "gc35f5eb9d1d9": [39, 49, 82], "221": [39, 49, 82], "v0": [39, 49, 53, 77, 78, 79, 80, 82, 84], "12": [39, 49, 54, 82, 93, 95], "port0": [39, 42, 43, 44, 45, 49, 82], "algodebugconfig": [39, 49, 82], "availablepcicoutput": [39, 49, 82, 87], "2301": [39, 49, 82], "devicetreebinarybloboverlai": [39, 49, 82], "001": [39, 49, 82], "ov9782": [39, 49, 82], "dtbo": [39, 49, 82], "fov": [39, 49, 82], "horizont": [39, 49, 82], "127": [39, 49, 82], "vertic": [39, 49, 82], "800": [39, 49, 82], "1280": [39, 49, 82], "m03933": [39, 49], "sensorid": [39, 49, 82], "ov9782_127x80_noillu_csampl": [39, 49, 82], "000000000280": [39, 49], "experimental_autoexposure2d": [39, 49, 82], "process": [39, 40, 43, 45, 49, 55, 56, 64, 70, 73, 82, 86, 95], "extrinsicheadtous": [39, 49, 82], "port2": [39, 45, 47, 49, 62], "exposurelong": [39, 49], "exposureshort": [39, 49], "400": [39, 49], "offset": [39, 49], "50012": [39, 45, 49, 71, 92], "3101": [39, 49], "irs2381c": [39, 49], "60": [39, 49, 93], "172": [39, 49], "224": [39, 49], "irs2381c_60x45_4x2w_60x45_c2": [39, 49], "standard_range4m": [39, 49], "diparam": [39, 49], "anffiltersizediv2": [39, 49], "enabledynamicsymmetri": [39, 49], "enablestraylight": [39, 49], "enabletemporalfilt": [39, 49], "excessivecorrectionthreshamp": [39, 49], "excessivecorrectionthreshdist": [39, 49], "maxdistnois": [39, 49], "maxsymmetri": [39, 49], "mediansizediv2": [39, 49], "minamplitud": [39, 49], "minreflect": [39, 49], "mixedpixelfiltermod": [39, 49], "mixedpixelthresholdrad": [39, 49], "push": [39, 42, 49], "more": [39, 40, 41, 44, 49, 54, 55, 61, 62, 64, 70, 71, 73, 77, 78, 86, 88], "sometim": [39, 49], "look": [39, 40, 43, 49, 50, 61, 88, 90, 96], "answer": [39, 49], "question": [39, 49, 59], "want": [39, 41, 49, 59, 78, 92, 95], "493": [39, 49], "further": [39, 42, 49, 60, 63, 70], "programmat": [39, 40, 49], "editor": [39, 49, 56], "done": [39, 40, 42, 45, 47, 49, 60, 70, 73, 92, 95], "compliant": [39, 49], "befor": [39, 40, 43, 45, 49, 62, 69, 70, 88, 95], "illustr": [39, 49, 55, 70], "prior": [39, 49], "view": [39, 46, 49, 64, 70, 96], "first": [39, 40, 42, 43, 44, 45, 49, 50, 55, 56, 62, 79, 82, 86], "instanti": [39, 42, 45, 47, 49, 70, 86], "fp": [39, 49], "echo": [39, 49, 50, 81], "our": [39, 49, 50, 55, 59, 69, 88, 95], "break": [39, 42, 44, 45, 47, 49, 73, 81, 90, 96], "down": [39, 49], "did": [39, 49], "fill": [39, 49, 55, 64], "pipe": [39, 49], "them": [39, 41, 43, 49, 62, 70, 77, 79, 88], "paradigm": [39, 49], "just": [39, 45, 49, 50, 56, 62, 70, 88, 95], "complex": [39, 49, 64], "sever": [39, 40, 49, 70, 73, 77, 79], "onc": [39, 40, 42, 49, 61, 70, 87, 95], "fed": [39, 49], "new_set": [39, 49], "One": [39, 47, 49, 80], "advantag": [39, 49], "power": [39, 47, 49], "port1": [39, 45, 49], "select": [39, 44, 45, 49, 79, 86], "summari": [39, 49], "declar": [39, 42, 45, 47, 49], "whose": [39, 50], "476707714": [39, 50], "scratch": [39, 50], "1755226334": [39, 50], "took": [39, 50], "easili": [39, 50, 88], "right": [39, 50], "too": [39, 45, 50, 88], "its": [39, 40, 45, 50, 55, 59, 78, 79, 86], "sec": [39, 50], "local": [39, 40, 50, 69, 95], "18": [39, 50, 65, 89, 93, 95], "22": [39, 50, 89, 93], "49": [39, 50], "edt": [39, 50], "synchron": [39, 50], "21": [39, 50], "44": [39, 50], "And": [39, 50], "09": [39, 50], "notabl": 40, "project": [40, 54, 55, 60, 66, 67, 73], "adher": 40, "semant": 40, "p": [40, 71], "acknowledg": 40, "add": [40, 53, 55, 56, 59, 60, 79, 81, 84, 93], "curl": [40, 78, 79], "v3": [40, 79], "chunk": 40, "abil": [40, 93], "metadata": 40, "multipl": [40, 43, 55, 56, 70, 77, 78, 92, 93], "getbuff": [40, 42, 44, 45, 47, 86, 92], "getbuffercount": 40, "deb": [40, 78, 81, 93, 95], "dockerfil": [40, 53, 65, 68, 95], "prefix": 40, "websocket": 40, "third": [40, 47, 59], "parti": [40, 47, 59], "fetchcontent_declar": 40, "discoveri": 40, "docker": [40, 64, 66, 67, 68, 75, 96], "deploy": [40, 64, 66, 67], "deseri": [40, 41, 46, 53, 61, 62, 70, 78, 96], "unabl": [40, 43, 45], "leaf": 40, "wrap": 40, "saveinit": 40, "o3d3xx": [40, 53, 92, 93], "extend": [40, 64, 92], "cxxopt": 40, "fetchcont": 40, "onerror": 40, "ifm3d_swupdate_curl_timeout": 40, "transact": 40, "link": [40, 47], "pypi": [40, 82], "page": [40, 43, 70, 80, 95], "wrongli": 40, "replac": [40, 62], "glog": [40, 80], "logger": [40, 93, 96], "migrat": [40, 90, 96], "guid": [40, 56, 90, 96], "move": [40, 48, 55, 61, 88, 93], "accordingli": [40, 88], "hpp": [40, 42, 45], "being": [40, 44, 45, 56, 60, 78, 95], "correctli": [40, 95], "caus": [40, 47], "subsequ": 40, "distribut": [40, 55, 78, 81], "stub": 40, "wheel": 40, "mac": [40, 43, 55], "crash": 40, "futur": [40, 44, 45, 79, 87, 88], "waitforfram": [40, 44, 45, 70, 92], "segment": [40, 73], "fault": 40, "typo": 40, "rgbinfov1": [40, 44, 70, 96], "tofinfov4": [40, 96], "extrisic_optic_to_us": 40, "asyncnotif": 40, "asyncerror": 40, "handler": 40, "ifm3dpi": [40, 43, 44, 45, 47, 54, 70, 75, 78, 84, 86, 88, 96], "firewal": 40, "window": [40, 62, 71, 75, 76, 83, 84, 93, 95, 96], "ci": 40, "job": 40, "framecount": 40, "split": [40, 88], "submodul": [40, 88], "codebas": [40, 88], "convert": [40, 42, 43, 58, 62, 70, 73, 92], "snake_cas": [40, 88], "fail": [40, 47], "hash": 40, "mismatch": 40, "certain": 40, "prevent": [40, 45, 47], "ed": 40, "previous": [40, 86], "ped": 40, "transfor_cell_center_to_us": 40, "resolveconfig": 40, "cmake": [40, 55, 60, 62, 63, 78, 79, 80, 84, 93], "target": [40, 55, 63, 78, 79, 81, 84], "endless": [40, 86], "ticket": 40, "without": [40, 42, 45, 55, 60, 65, 66, 67, 80, 86, 88, 95], "upgrad": [40, 80], "nlohmann": [40, 62, 88], "namespac": [40, 43, 44, 45, 47, 60, 88], "automat": [40, 78], "anymor": 40, "unless": [40, 55], "reboottorecoveri": [40, 88], "odsinfov1": [40, 44, 96], "odsoccupancygridv1": [40, 44, 96], "std": [40, 42, 43, 44, 45, 47, 59, 60, 62, 86, 87, 92, 93], "void": [40, 42, 45, 47, 86, 87], "xyz_imag": 40, "were": [40, 58, 73, 87, 88], "zxy": [40, 87], "correct": [40, 42, 44, 45, 87], "auto": [40, 42, 43, 44, 45, 47, 60, 86, 92], "closur": 40, "stale": 40, "od": [40, 44, 61, 62, 69], "confid": [40, 92], "nois": [40, 92], "visibl": [40, 73], "playground": 40, "renam": [40, 88], "c": [40, 41, 42, 43, 44, 45, 47, 52, 53, 54, 55, 61, 71, 78, 79, 80, 81, 84, 86, 88, 93, 96], "camerao3d": [40, 86], "camerao3r": [40, 86], "camerao3x": [40, 86], "respect": [40, 65, 95], "image_id": 40, "oss": 40, "complianc": 40, "architectur": [40, 66, 67, 77], "fishey": [40, 44], "distort": 40, "lib": [40, 59], "ethernet": 40, "latest": [40, 41, 77, 78, 79, 90, 95, 96], "190": [40, 54], "absdiststraylightthreshold": 40, "enablestraylightcorrect": 40, "enablenoiseestim": 40, "compensateambientlightdrift": 40, "distnoisethreshold": 40, "relampstraylightthreshold": 40, "fw": 40, "166": 40, "detect": [40, 61], "convers": [40, 42], "compil": [40, 62, 64, 79, 84, 93], "duse_legacy_coordin": 40, "ON": [40, 78, 79], "old": [40, 55, 87, 88, 92], "behaviour": [40, 89], "o3rcamera": [40, 86], "407": 40, "proxi": [40, 56], "authent": 40, "dockerhub": [40, 41], "ifmrobot": [40, 41], "ghcr": [40, 41, 77], "io": [40, 41, 55, 59, 77], "broken": 40, "xyzimag": 40, "getinit": 40, "arm64": [40, 77], "stlimag": 40, "stl": 40, "header": [40, 47, 59, 60, 64, 78, 80, 93], "ifm3dpy_view": [40, 71], "last": 40, "tag": [40, 41, 77, 78, 79, 95], "commit": 40, "iso3d": 40, "iso3x": 40, "iso3r": 40, "whoami": [40, 92], "ami": 40, "compress": [40, 60, 86], "introduc": [40, 93], "ipv4": 40, "hardcod": [40, 62, 69], "clang": [40, 93], "licens": [40, 42, 43, 44, 45, 60, 93], "spdx": [40, 42, 43, 44, 45, 93], "asio": 40, "boost": [40, 93], "fg": [40, 42, 44, 45, 47, 86, 92], "behind": 40, "nat": 40, "router": 40, "ntp": [40, 93], "action": [40, 86], "v": [40, 55, 78, 95], "2019": [40, 41, 54, 79, 84], "bugfix": [40, 93], "284": 40, "vs2019": 40, "283": 40, "usr": [40, 68, 78, 80], "opencv": [40, 42, 55, 59, 62, 70, 81, 86, 93], "5309": [40, 93], "156": [40, 93], "ro": [40, 41], "repositori": [40, 41, 48, 52, 54, 59, 60, 69, 78, 79, 81], "python2": 40, "focal": 40, "fossa": 40, "snap": 40, "tegra": [40, 77], "jetpack": [40, 81], "improv": [40, 53, 54, 93], "workflow": [40, 79], "revert": 40, "framegrabberudp": [40, 93], "viabl": 40, "udp": [40, 93], "libcurl": 40, "32bit": 40, "spuriou": 40, "wake": 40, "computecartesian": 40, "test": [40, 53, 54, 78, 82, 93, 95], "properli": [40, 43, 64, 78], "blank": 40, "invalid": 40, "pip": [40, 43, 45, 54, 69, 78, 82], "pytest": 40, "race": 40, "pcicclient": [40, 41, 55, 78, 81], "setup": [40, 54, 56, 62, 64, 69, 72, 95], "honor": 40, "cross": [40, 93], "consumpt": [40, 93], "match": 40, "other": [40, 43, 54, 64, 65, 66, 67, 69, 70, 72, 78, 84, 92, 93], "switch": [40, 47, 55, 64], "invok": 40, "r": [40, 43, 69, 71, 80], "inverseintrinsicparamschema": 40, "due": [40, 47, 56, 68, 78], "suspect": 40, "investig": [40, 55], "re": [40, 43], "open": [40, 54, 62, 79, 82], "build_shared_lib": [40, 78], "stderr": 40, "parameter": [40, 95], "easier": [40, 43, 73, 82], "msvc": [40, 41, 54], "concurr": 40, "against": [40, 95], "pybind11": [40, 41, 47, 78, 93], "infrastructur": [40, 55], "111": [40, 93], "ifm3d_proto_debug": 40, "low": 40, "period": 40, "bad": [40, 93], "regardless": [40, 45, 89], "consult": 40, "themselv": 40, "discrimin": 40, "transform": [40, 44, 72, 73], "nan": 40, "whatev": [40, 64], "sentinel": 40, "103": 40, "2114": [40, 93], "107": 40, "translat": [40, 93], "thu": [40, 81], "avoid": [40, 45, 60, 79], "violat": 40, "odr": 40, "driver": [40, 93], "known": [40, 47], "explicitli": [40, 45, 54, 77, 93], "optim": [40, 81], "increment": 40, "speedup": 40, "troubleshoot": 40, "prerequisit": 40, "ifm3d_trac": 40, "top": [40, 55, 65, 81], "cmakelist": 40, "txt": [40, 62, 69, 71], "drop": [40, 93], "viewer": [40, 70, 93, 95], "decreas": 40, "pcl": [40, 55, 59, 93, 95], "framework": [40, 78, 93], "significantli": 40, "refactor": 40, "folder": [40, 54, 55, 61, 62, 63, 68, 69, 71, 80], "imagebuff": 40, "conform": 40, "publish": 40, "regress": [40, 93], "regard": 40, "surfac": [40, 73], "better": [40, 43, 55, 70, 93], "broke": 40, "regist": [40, 46, 55, 70, 93], "silent": 40, "client": [40, 45, 78, 93], "libo3d3xx": 40, "dump": [40, 43, 50, 51, 56, 82, 93], "capabl": 40, "contrib": 40, "bash": [40, 71, 93, 95], "bump": 40, "put_tim": [40, 93], "render": [40, 95], "point": [40, 41, 43, 44, 55, 59, 70, 73, 86, 92], "cloud": [40, 41, 43, 55, 70, 73, 86], "color": [40, 73], "longer": 40, "try": [40, 43, 45, 56, 62, 82], "much": 40, "respons": [40, 47, 55], "plug": 40, "choos": [40, 54, 86], "modif": 40, "thank": [40, 95], "aaronhoi": 40, "robot": [40, 41, 45, 81], "hi": 40, "work": [40, 41, 47, 54, 61, 64, 77, 78, 79, 82, 92, 95], "dpkg": [40, 78, 80], "dep": 40, "debian": [40, 80], "becaus": [40, 64], "share": [40, 45, 54, 78, 92, 93], "across": [40, 92, 93], "shlibdep": [40, 78], "u": [40, 73, 95], "alpha": 40, "percept": [41, 45], "ros2": 41, "comprehens": 41, "rgb": [41, 44, 45, 46, 70, 73, 86, 96], "main": [41, 42, 43, 44, 45, 47, 77, 78, 79, 81, 86, 87, 88, 92], "branch": [41, 77, 78, 79], "probabl": [41, 60], "full": [41, 46, 70, 72, 77, 78, 79, 86, 92], "gui": [41, 93], "mirror": 41, "8": [41, 42, 54, 62, 80, 89, 92, 93], "direct": [41, 45, 73], "actuat": 41, "manipul": [41, 86, 96], "interact": 41, "shell": [41, 71, 82], "fleet": 41, "nativ": 41, "zero": 41, "section": [41, 54, 69, 77, 78, 92, 95], "pull": [41, 54, 77, 78], "stabl": [41, 77], "OR": [41, 45, 82, 86, 92], "built": [41, 55, 71, 79, 81, 84, 95], "nightli": [41, 77, 78, 79], "found": [41, 42, 44, 45, 60, 78, 79, 95], "tracker": [41, 55, 59], "contact": 41, "similarli": [42, 70], "core": [42, 45, 55, 61, 62, 69, 71, 81], "jpeg": [42, 86, 92], "rgb_decod": 42, "cv2": 42, "imdecod": 42, "imread_unchang": 42, "cv": 42, "mat": 42, "startwindowthread": 42, "namedwindow": 42, "window_norm": 42, "imshow": 42, "waitkei": 42, "copyright": [42, 43, 44, 45], "2022": 42, "present": [42, 43, 44, 45, 60, 70], "electron": [42, 43, 44, 45], "gmbh": [42, 43, 44, 45], "apach": [42, 43, 44, 45, 54], "chrono": [42, 44, 45, 47], "distance_image_info": 42, "iostream": [42, 43, 44, 45, 47, 92], "opencv2": 42, "highgui": 42, "queue": [42, 64, 72], "lut": 42, "unordered_map": 42, "pixel_format": [42, 59, 92], "lut_typ": 42, "format_8u": [42, 92], "cv_8u": 42, "format_8": 42, "cv_8": 42, "format_16u": [42, 92], "cv_16u": 42, "format_16": [42, 92], "cv_16": 42, "format_32": 42, "cv_32": 42, "format_32f": [42, 92], "cv_32f": 42, "format_32f3": 42, "format_64f": 42, "cv_64f": 42, "lut_siz": 42, "ownership": [42, 45], "destroi": 42, "around": [42, 78], "convertimagetomatnocopi": 42, "img": [42, 59], "dataformat": [42, 92], "ptr": [42, 45, 47, 86, 92], "safe": [42, 95], "dispos": 42, "convertimagetomatcopi": 42, "memcpi": 42, "img_queu": 42, "front": [42, 64], "pop": 42, "this_thread": [42, 45, 47], "sleep_for": [42, 45, 47], "rgb_img": 42, "rgb_cv": 42, "const": [42, 43, 44, 45, 47, 60, 92], "char": [42, 43, 44, 45, 92], "getenv": [42, 43, 44, 45], "ifm3d_ip": [42, 43, 44, 45, 62], "c_str": [42, 43, 44, 45], "clog": [42, 43, 44, 45], "endl": [42, 43, 44, 45, 62, 92], "vpu": [42, 43, 45, 47, 66, 67, 68, 70, 82, 86], "make_shar": [42, 43, 44, 45, 47, 86, 92], "pick": [42, 44, 45, 62], "cout": [42, 43, 44, 45, 62, 92], "altern": [42, 44, 46, 62, 70, 78, 81, 93], "port_nb": [42, 44, 45, 62], "cerr": [42, 44, 45, 62], "verifi": [42, 43, 44, 45, 82], "onnewfram": [42, 45, 47], "affect": [43, 70], "modifi": [43, 70], "z": [43, 59, 70, 92], "fit": [43, 70], "dev": [43, 47, 80, 92], "concret": [43, 55], "subclass": 43, "cast": 43, "relev": [43, 44, 54, 77], "makeshar": [43, 45, 92], "dev_o3r": 43, "static_pointer_cast": 43, "init_statu": 43, "getinitstatu": 43, "dynamic_pointer_cast": 43, "nullptr": 43, "statu": 43, "attach": 43, "aspect": 43, "conf": 43, "subset": [43, 86], "proper": [43, 78], "hierarchi": 43, "great_o3r": 43, "my_o3r": 43, "2021": [43, 44, 45], "def": [43, 45, 47, 86], "littl": 43, "f": [43, 45], "indent": [43, 82], "__name__": [43, 45, 47], "__main__": [43, 45, 47], "ovp8xxexampl": [43, 45, 69], "port_2d": 43, "importerror": [43, 45], "npleas": [43, 45], "root": [43, 45, 71, 95], "directori": [43, 45, 55, 61, 70, 79, 84, 95], "fstream": 43, "iomanip": 43, "displai": [43, 45, 46, 56, 62, 64, 70, 82, 95], "setw": 43, "my_new_o3r": 43, "pinhol": 44, "extrinsicoptictous": [44, 96], "hous": 44, "occup": [44, 72], "structur": [44, 45, 59, 61, 62, 70, 92], "mention": [44, 64], "chrono_liter": [44, 45], "uncom": [44, 45, 62], "comment": [44, 45, 54, 61, 62], "future_statu": [44, 45], "rgb_info_buff": 44, "model_paramet": 44, "acquir": 45, "o3xxxx": 45, "seri": [45, 54], "continu": [45, 61], "act": 45, "At": [45, 55, 60], "place": [45, 55, 78, 88, 95], "portx": 45, "intuit": 45, "inherit": [45, 86], "previou": [45, 86, 92], "distinct": 45, "input": [45, 86], "xml_rpc": 45, "fix": [45, 93], "moment": [45, 61], "unus": 45, "Its": 45, "differ": [45, 47, 64, 69, 70, 71, 72, 80, 86, 92], "shared_ptr": 45, "actor": 45, "inde": 45, "notic": [45, 95], "alloc": [45, 92], "dealloc": [45, 92], "probe": 45, "determin": [45, 70], "els": 45, "mani": 45, "might": [45, 54, 62, 81, 88], "reduc": 45, "bandwidth": [45, 86], "everi": [45, 70, 79, 86], "read": [45, 46, 52, 54, 60, 61, 70, 95], "dist": 45, "shape": 45, "ok": [45, 86], "500": [45, 86], "500m": [45, 86], "asyncio": [45, 86], "2023": 45, "grabber": [45, 47], "sleep": 45, "soon": [45, 86], "port_3d": 45, "json_impl": 45, "err": [45, 47], "dimens": 45, "1500": 45, "1500m": 45, "poll": [46, 92], "decod": [46, 70], "design": [47, 92], "facilit": 47, "sink": 47, "6": [47, 62, 89, 93], "termin": 47, "logformattertext": [47, 96], "mylogwrit": 47, "my_logg": 47, "happen": 47, "kept": 47, "throughout": 47, "singleton": 47, "pattern": 47, "setloglevel": 47, "lower": 47, "macro": 47, "log_debug": 47, "log_info": 47, "log_warn": 47, "log_error": 47, "log_crit": 47, "log_verbos": 47, "fmt": 47, "fg_pcic_port": 47, "_json_point": [47, 88], "destin": 47, "databas": 47, "abstract": 47, "setlogwrit": 47, "spdlog": 47, "logwriterspdlog": 47, "overrid": [47, 81], "level_enum": 47, "spdlog_level": 47, "getloglevel": 47, "source_loc": 47, "getfil": 47, "getlin": 47, "getfunc": 47, "getmessag": 47, "clone": [52, 54, 78, 79], "readm": [52, 54, 55, 61, 73], "o3x1xx": 53, "ovp": 53, "imu": [53, 54, 70], "ssh": 53, "cleanup": 53, "bootup": 53, "ovp8xx": [53, 62, 65], "o3": 54, "along": [54, 74, 78, 79, 86, 92], "o3r22x": 54, "showcas": [54, 61, 64, 72, 73], "combin": [54, 77], "na": [54, 92], "8656": 54, "71": [54, 56], "9079": 54, "Not": [54, 93], "compos": 54, "navig": 54, "interest": 54, "align": [54, 87, 88], "ampli": 54, "adapt": 54, "welcom": 54, "submit": 54, "formerli": 55, "standalon": 55, "efficaci": 55, "teach": [55, 64], "beyond": 55, "extern": [55, 60], "veri": [55, 59, 60], "serv": [55, 66, 67], "ramp": 55, "quickli": [55, 82, 95], "minim": 55, "additon": 55, "thing": 55, "robust": 55, "clearli": 55, "world": 55, "engin": 55, "cours": 55, "grow": [55, 88], "theme": 55, "mkdir": [55, 62, 63, 78, 79], "cd": [55, 62, 63, 78, 79, 80], "visual": [55, 61, 72, 79, 84, 95], "studio": [55, 79, 84], "2017": [55, 79, 84], "ax64": 55, "clean": [55, 79, 82], "stage": [55, 68], "find": [55, 61, 70, 71, 73, 86], "ifm3d_exampl": 55, "sln": 55, "relwithdebinfo": 55, "ifm3d_build_dir": [55, 79], "bin": [55, 71, 78, 79, 84, 95], "x64": 55, "vc": 55, "msvc_major_vers": 55, "msvc_minor_vers": 55, "vc14": 55, "ex": [55, 71, 82, 84], "file_io": 55, "captur": [55, 56, 95], "disk": [55, 60, 93], "radial": [55, 58, 92], "png": 55, "relat": 55, "getmac": 55, "uniqu": 55, "fast_app_switch": 55, "pcicclient_async_messag": 55, "pcicclient_set_io": 55, "digial": 55, "pin": 55, "simpleimage_ppm_io": 55, "multi_camera_grabb": 55, "accquir": [55, 56], "stamp": 56, "measu": 56, "diagram": [56, 86], "consist": [56, 78, 79], "pc": 56, "inord": 56, "pre": 56, "requisit": 56, "ping": 56, "incas": 56, "bypass": 56, "utilis": 56, "70": 56, "72": 56, "conflict": 56, "camera1_config": 56, "choic": 56, "field": 56, "repeat": 56, "rest": [56, 61, 64, 88], "prefer": 56, "jupyt": [57, 58], "notebook": [57, 58], "describ": [57, 58, 72], "www": [57, 58], "caltech": [57, 58], "edu": [57, 58], "bouguetj": [57, 58], "calib_doc": [57, 58], "html": [57, 58], "calcul": [58, 73], "cartesian": [58, 92], "modular": 59, "overal": 59, "ecosystem": 59, "explain": [59, 70], "conatin": 59, "simpleimag": 59, "independ": 59, "pointcloud": [59, 95], "ppm": 59, "wherea": [59, 92], "0m": 59, "5m": 59, "outsid": 59, "feel": 59, "extrem": 60, "ideal": 60, "small": [60, 68], "exploratori": 60, "benefit": 60, "simplic": 60, "linker": 60, "fairli": [60, 88], "straight": 60, "forward": [60, 92], "mit": 60, "brief": 60, "size_t": 60, "pixel_data": 60, "ifs": 60, "ifstream": 60, "my_fil": 60, "readrgbimag": 60, "permiss": 60, "scenario": 60, "similar": [60, 86], "fashion": 60, "10x10": 60, "128": 60, "ofs": 60, "ofstream": 60, "writergbimag": 60, "suit": 60, "python3": [61, 71, 81], "divid": 61, "subdirectori": [61, 95], "obstacl": 61, "toolbox": [61, 69], "helper": [61, 66, 67, 70, 73], "md": 61, "overview": [61, 96], "explan": 61, "fulli": [61, 88], "comprehend": 61, "understand": 61, "getting_data": [61, 62], "2d_data": [61, 62], "inspect": [61, 95], "react": 61, "good": 61, "grasp": 61, "explor": 61, "precis": 62, "cpp": [62, 64], "cmakecach": 62, "cmakefil": 62, "cmake_instal": 62, "makefil": 62, "getting_data_callback": [62, 70], "ifm3d_playground": [62, 63], "multi_head": 62, "bootup_monitor": 62, "libods_config_lib": 62, "ods_config": [62, 64, 72], "ods_get_data": [62, 64], "ods_demo": [62, 64, 72], "absenc": 62, "prompt": [62, 79], "powershel": [62, 71], "env": 62, "don": 62, "t": [62, 88, 92, 95], "forget": 62, "dcmake_prefix_path": [63, 79], "all_build": [63, 79], "mini": 64, "resourc": 64, "disassembl": 64, "simplifi": [64, 69, 86], "ods_config_main": 64, "reus": [64, 69], "wrong": 64, "ods_get_data_main": 64, "streamer": 64, "piec": 64, "togeth": [64, 88], "form": 64, "parallel": 64, "account": 64, "term": 64, "de": 64, "strategi": 64, "overh": 64, "interrupt": [64, 65, 66, 67], "dummi": [64, 72], "recompil": 64, "gpu": [65, 81], "acceler": 65, "cuda": 65, "board": 65, "tensorrt": 65, "nvidia": [65, 68, 77, 81], "disclaim": [65, 66, 67], "accompani": [65, 66, 67, 73], "warranti": [65, 66, 67], "merchant": [65, 66, 67], "impli": [65, 66, 67], "event": [65, 66, 67], "shall": [65, 66, 67, 81], "author": [65, 66, 67], "contributor": [65, 66, 67], "liabl": [65, 66, 67], "special": [65, 66, 67], "incident": [65, 66, 67], "indirect": [65, 66, 67], "consequenti": [65, 66, 67], "damag": [65, 66, 67], "whatsoev": [65, 66, 67], "loss": [65, 66, 67], "busi": [65, 66, 67], "profit": [65, 66, 67], "pecuniari": [65, 66, 67], "aris": [65, 66, 67], "inabl": [65, 66, 67], "even": [65, 66, 67], "advis": [65, 66, 67], "portal": 65, "ovp80x": [66, 67], "sh": [66, 67, 81], "central": [66, 67], "multistag": 68, "separ": 68, "deploi": 68, "footprint": 68, "dure": [68, 95], "opt": 68, "locat": [68, 84, 88], "fact": 68, "preinstal": 68, "trtexec": 68, "mnist": 68, "prototxt": 68, "caffemodel": 68, "prob": 68, "batch": 68, "saveengin": 68, "tmp": [68, 95], "mnist16": 68, "trt": 68, "loadengin": 68, "skip": [69, 95], "go": 69, "therefor": [69, 88], "higher": 70, "deactiv": 70, "can0": 70, "deserializ": 70, "sntp": 70, "kind": 71, "venv": [71, 82], "my_venv": 71, "posix": 71, "zsh": 71, "fish": 71, "csh": 71, "tcsh": 71, "ps1": 71, "cmd": 71, "bat": 71, "consid": [71, 95], "briefli": 72, "ods_queu": 72, "ods_stream": 72, "ods_visu": 72, "transform_cell_to_us": 72, "collect_calibr": 73, "gather": 73, "h5_to_pcd_convert": 73, "h5": 73, "ifmvisionassist": 73, "open3d": 73, "pcd": 73, "rot_human_read": 73, "o3r_algo_util": 73, "euler": 73, "radian": 73, "roll": 73, "pitch": 73, "yaw": 73, "degre": 73, "extrinsic_calibr": 73, "static_camera_calibr": 73, "calib_cam": 73, "checkerboard": 73, "update_settings_to_new_fw_schema": 73, "reappli": 73, "replic": 73, "closest": 73, "light": 73, "deriv": 73, "accur": 73, "proxim": 73, "93": [77, 78, 86, 93], "suffix": 77, "amd64": 77, "aarch64": 77, "build_module_framegrabb": 78, "build_module_tool": 78, "build_module_deseri": 78, "build_module_pybind11": 78, "use_legacy_coordin": 78, "legaci": 78, "92": [78, 93], "axi": 78, "build_module_swupdat": 78, "build_sdk_pkg": 78, "build_exampl": 78, "build_doc": 78, "build_module_pciccli": 78, "build_in_dep": [78, 79], "download": [78, 84], "machin": 78, "meta": 78, "googletest": [78, 79], "libxmlrpc": [78, 80], "usual": 78, "idiom": 78, "dcmake_install_prefix": [78, 79], "speed": [78, 93], "ninja": 78, "gninja": 78, "dynam": 78, "repackag": 78, "readelf": 78, "binutil": 78, "ldd": 78, "libc": 78, "offici": [78, 82, 93], "awai": 78, "ifm3d_": 78, "_amd64": 78, "experienc": 78, "puzzl": 78, "partit": 78, "approach": [78, 88, 95], "tradit": 78, "cpack_debian_package_shlibdep": 78, "exploit": 78, "priori": 78, "certainli": 78, "chain": 78, "newer": 79, "git": [79, 95], "microsoft": 79, "suffici": [79, 92], "Be": [79, 95], "desktop": 79, "90": 79, "onward": 79, "ifm3d_cmake_gener": 79, "dir": 79, "dcmake_windows_export_all_symbol": 79, "dbuild_sdk_pkg": 79, "dcmake_build_typ": 79, "dbuild_in_dep": 79, "append": 79, "ubuntu_vers": 80, "_deb": 80, "xz": 80, "tar": 80, "libssl": 80, "libcurl4": 80, "openssl": 80, "libgoogl": 80, "libproj": 80, "essenti": 80, "coreutil": 80, "flavour": 80, "unzip": 80, "ifm3d_1": 80, "1_amd64": 80, "caution": 81, "jetson": 81, "soc": 81, "few": [81, 95], "nexu": [81, 95], "robotics_l4t_jetpack_4_4_arm64": 81, "melod": 81, "robotics_l4t_jetpack_4_3_arm64": 81, "adv": 81, "keyserv": 81, "hkp": 81, "pool": 81, "sk": 81, "recv": 81, "8ab59d3a2bd7b692": 81, "virtual": 82, "freez": 82, "Then": 82, "shorten": 82, "1581090739817663072": 82, "94000000000": 82, "tabletop2": 82, "000201234176": 82, "d1": 82, "76": 82, "m03976": 82, "000000000281": 82, "ifm3d_windows_x": 84, "programfil": 84, "ifm3d_binary_dir": 84, "brought": 85, "children": 86, "o3dcamera": 86, "o3xcamera": 86, "remain": 86, "unchang": 86, "default_pcic_port": 86, "recept": 86, "radial_dist": [86, 92], "punctual": 86, "especi": 86, "coroutin": 86, "noth": 86, "shutdown": 87, "deadlock": 87, "finish": 87, "With": [88, 92], "everyth": 88, "begin": 88, "confus": 88, "overwhelm": 88, "akin": 88, "tabl": [88, 92], "pascalcas": 88, "waitforrecoveri": 88, "reboottoproduct": 88, "waitforproduct": 88, "flashfirmwar": 88, "lead": 88, "problem": 88, "tri": 88, "solv": 88, "doesn": 88, "interfer": 88, "suppli": 88, "easi": [88, 95], "qualifi": 88, "j": [88, 92], "_json": 88, "ambigu": 88, "json_use_global_udl": 88, "introduct": 89, "changelog": [90, 96], "sequenti": 92, "enumer": 92, "row": 92, "col": 92, "nchannel": 92, "8u": 92, "x10": 92, "bit": 92, "posit": 92, "50": 92, "postion": 92, "pixel_t": 92, "buffer_": 92, "iter": 92, "iteratoradapt": 92, "multi": 92, "point3d": 92, "val": 92, "deduc": 92, "argc": 92, "amp_buff": 92, "dist_buff": 92, "static_cast": 92, "amp": 92, "point3d_32f": 92, "xyz_data": 92, "summar": 92, "raw_amplitud": 92, "int16_t": 92, "grayscal": 92, "grai": 92, "distance_nois": 92, "unit16_t": 92, "img_jpeg": 92, "unit8_t": 92, "timepointt": 92, "beta": 93, "62": 93, "973": 93, "host": 93, "769": 93, "1506": 93, "1522": 93, "122": 93, "126": 93, "cpu": 93, "2848": 93, "25": 93, "4073": 93, "4123": 93, "fine": 93, "17": 93, "7020": 93, "expand": 93, "arch": 93, "earli": 93, "adopt": 93, "refin": 95, "subject": 95, "patienc": 95, "eas": 95, "quick": 95, "fresh": 95, "post": 95, "docker_fil": 95, "vtag": 95, "run_test": 95, "subirectori": 95, "recurs": 95, "omit": 95, "master": 95, "live": 95, "evalu": 95, "bring": 95, "appropri": 95, "maintain": 95, "ifm3d1604": 95, "ti": 95, "c8c9865efb14": 95, "351437496": 95, "95815": 95, "xhost": 95, "insecur": 95, "urg": 95, "man": 95, "decid": 95, "secur": 95, "concern": 95, "x11": 95, "rw": 95, "b79de0545832": 95, "ifm3d1804": 95, "330fc18969c4": 95, "33508": 95, "f98b659d1e71": 95, "ifm3d2004": 95, "o3dexposuretim": 96, "o3dextrinsiccalibr": 96, "o3dillutemperatur": 96, "o3dinverseinstrinsiccalibr": 96, "logformatterjson": 96}, "objects": {"": [[0, 0, 0, "-", "ifm3dpy"]], "ifm3dpy": [[1, 1, 1, "", "Awaitable"], [2, 1, 1, "", "FrameAwaitable"], [3, 0, 0, "-", "deserialize"], [16, 0, 0, "-", "device"], [25, 0, 0, "-", "framegrabber"], [29, 0, 0, "-", "logging"], [36, 5, 1, "", "run"], [37, 0, 0, "-", "swupdater"]], "ifm3dpy.Awaitable": [[1, 2, 1, "", "__init__"], [1, 2, 1, "", "wait"], [1, 2, 1, "", "wait_for"]], "ifm3dpy.FrameAwaitable": [[2, 2, 1, "", "__init__"], [2, 2, 1, "", "wait"], [2, 2, 1, "", "wait_for"]], "ifm3dpy.deserialize": [[4, 1, 1, "", "Calibration"], [5, 1, 1, "", "ExtrinsicOpticToUser"], [6, 1, 1, "", "O3DExposureTimes"], [7, 1, 1, "", "O3DExtrinsicCalibration"], [8, 1, 1, "", "O3DILLUTemperature"], [9, 1, 1, "", "O3DInstrinsicCalibration"], [10, 4, 1, "", "O3DInverseInstrinsicCalibration"], [11, 1, 1, "", "ODSInfoV1"], [12, 1, 1, "", "ODSOccupancyGridV1"], [13, 1, 1, "", "RGBInfoV1"], [14, 1, 1, "", "TOFInfoV3"], [15, 1, 1, "", "TOFInfoV4"]], "ifm3dpy.deserialize.Calibration": [[4, 2, 1, "", "__init__"], [4, 3, 1, "", "model_id"], [4, 3, 1, "", "parameters"]], "ifm3dpy.deserialize.ExtrinsicOpticToUser": [[5, 2, 1, "", "__init__"], [5, 3, 1, "", "rot_x"], [5, 3, 1, "", "rot_y"], [5, 3, 1, "", "rot_z"], [5, 3, 1, "", "trans_x"], [5, 3, 1, "", "trans_y"], [5, 3, 1, "", "trans_z"]], "ifm3dpy.deserialize.O3DExposureTimes": [[6, 2, 1, "", "__init__"], [6, 3, 1, "", "data"], [6, 2, 1, "", "deserialize"]], "ifm3dpy.deserialize.O3DExtrinsicCalibration": [[7, 2, 1, "", "__init__"], [7, 3, 1, "", "data"], [7, 2, 1, "", "deserialize"]], "ifm3dpy.deserialize.O3DILLUTemperature": [[8, 2, 1, "", "__init__"], [8, 3, 1, "", "data"], [8, 2, 1, "", "deserialize"]], "ifm3dpy.deserialize.O3DInstrinsicCalibration": [[9, 2, 1, "", "__init__"], [9, 3, 1, "", "data"], [9, 2, 1, "", "deserialize"]], "ifm3dpy.deserialize.ODSInfoV1": [[11, 2, 1, "", "__init__"], [11, 2, 1, "", "deserialize"], [11, 3, 1, "", "timestamp_ns"], [11, 3, 1, "", "zone_config_id"], [11, 3, 1, "", "zone_occupied"]], "ifm3dpy.deserialize.ODSOccupancyGridV1": [[12, 2, 1, "", "__init__"], [12, 2, 1, "", "deserialize"], [12, 3, 1, "", "height"], [12, 3, 1, "", "image"], [12, 3, 1, "", "timestamp_ns"], [12, 3, 1, "", "transform_cell_center_to_user"], [12, 3, 1, "", "width"]], "ifm3dpy.deserialize.RGBInfoV1": [[13, 2, 1, "", "__init__"], [13, 2, 1, "", "deserialize"], [13, 3, 1, "", "exposure_time"], [13, 3, 1, "", "extrinsic_optic_to_user"], [13, 3, 1, "", "frame_counter"], [13, 3, 1, "", "intrinsic_calibration"], [13, 3, 1, "", "inverse_intrinsic_calibration"], [13, 3, 1, "", "timestamp_ns"], [13, 3, 1, "", "version"]], "ifm3dpy.deserialize.TOFInfoV3": [[14, 2, 1, "", "__init__"], [14, 3, 1, "", "amp_normalization_factors"], [14, 3, 1, "", "amplitude_resolution"], [14, 2, 1, "", "deserialize"], [14, 3, 1, "", "distance_resolution"], [14, 3, 1, "", "exposure_times_s"], [14, 3, 1, "", "exposure_timestamps_ns"], [14, 3, 1, "", "extrinsic_optic_to_user"], [14, 3, 1, "", "illu_temperature"], [14, 3, 1, "", "imager"], [14, 3, 1, "", "intrinsic_calibration"], [14, 3, 1, "", "inverse_intrinsic_calibration"], [14, 3, 1, "", "mode"], [14, 3, 1, "", "version"]], "ifm3dpy.deserialize.TOFInfoV4": [[15, 2, 1, "", "__init__"], [15, 3, 1, "", "amp_normalization_factors"], [15, 3, 1, "", "amplitude_resolution"], [15, 2, 1, "", "deserialize"], [15, 3, 1, "", "distance_resolution"], [15, 3, 1, "", "exposure_times_s"], [15, 3, 1, "", "exposure_timestamps_ns"], [15, 3, 1, "", "extrinsic_optic_to_user"], [15, 3, 1, "", "illu_temperature"], [15, 3, 1, "", "imager"], [15, 3, 1, "", "intrinsic_calibration"], [15, 3, 1, "", "inverse_intrinsic_calibration"], [15, 3, 1, "", "measurement_block_index"], [15, 3, 1, "", "measurement_range_max"], [15, 3, 1, "", "measurement_range_min"], [15, 3, 1, "", "mode"], [15, 3, 1, "", "version"]], "ifm3dpy.device": [[17, 1, 1, "", "Device"], [18, 1, 1, "", "Error"], [19, 1, 1, "", "LegacyDevice"], [20, 1, 1, "", "O3D"], [21, 1, 1, "", "O3R"], [22, 1, 1, "", "O3X"], [23, 1, 1, "", "PortInfo"], [24, 1, 1, "", "SemVer"]], "ifm3dpy.device.Device": [[17, 2, 1, "", "__init__"], [17, 2, 1, "", "am_i"], [17, 1, 1, "", "boot_mode"], [17, 2, 1, "", "check_minimum_firmware_version"], [17, 1, 1, "", "device_family"], [17, 2, 1, "", "device_parameter"], [17, 2, 1, "", "device_type"], [17, 2, 1, "", "firmware_version"], [17, 2, 1, "", "force_trigger"], [17, 2, 1, "", "from_json"], [17, 1, 1, "", "import_flags"], [17, 3, 1, "", "ip"], [17, 1, 1, "", "mfilt_mask_size"], [17, 1, 1, "", "operating_mode"], [17, 2, 1, "", "reboot"], [17, 1, 1, "", "spatial_filter"], [17, 1, 1, "", "temporal_filter"], [17, 2, 1, "", "to_json"], [17, 2, 1, "", "trace_logs"], [17, 1, 1, "", "trigger_mode"], [17, 2, 1, "", "who_am_i"], [17, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.Device.boot_mode": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.device_family": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.import_flags": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.mfilt_mask_size": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.operating_mode": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.spatial_filter": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.temporal_filter": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Device.trigger_mode": [[17, 3, 1, "", "name"]], "ifm3dpy.device.Error": [[18, 2, 1, "", "__init__"], [18, 3, 1, "", "code"], [18, 3, 1, "", "message"], [18, 3, 1, "", "what"], [18, 2, 1, "", "with_traceback"]], "ifm3dpy.device.LegacyDevice": [[19, 2, 1, "", "__init__"], [19, 2, 1, "", "active_application"], [19, 2, 1, "", "am_i"], [19, 2, 1, "", "application_list"], [19, 2, 1, "", "application_types"], [19, 1, 1, "", "boot_mode"], [19, 2, 1, "", "cancel_session"], [19, 2, 1, "", "check_minimum_firmware_version"], [19, 2, 1, "", "copy_application"], [19, 2, 1, "", "create_application"], [19, 2, 1, "", "delete_application"], [19, 1, 1, "", "device_family"], [19, 2, 1, "", "device_parameter"], [19, 2, 1, "", "device_type"], [19, 2, 1, "", "export_ifm_app"], [19, 2, 1, "", "export_ifm_config"], [19, 2, 1, "", "factory_reset"], [19, 2, 1, "", "firmware_version"], [19, 2, 1, "", "force_trigger"], [19, 2, 1, "", "from_json"], [19, 2, 1, "", "heartbeat"], [19, 2, 1, "", "imager_types"], [19, 1, 1, "", "import_flags"], [19, 2, 1, "", "import_ifm_app"], [19, 2, 1, "", "import_ifm_config"], [19, 3, 1, "", "ip"], [19, 1, 1, "", "mfilt_mask_size"], [19, 1, 1, "", "operating_mode"], [19, 3, 1, "", "password"], [19, 2, 1, "", "reboot"], [19, 2, 1, "", "request_session"], [19, 3, 1, "", "session_id"], [19, 2, 1, "", "set_current_time"], [19, 2, 1, "", "set_temporary_application_parameters"], [19, 1, 1, "", "spatial_filter"], [19, 1, 1, "", "temporal_filter"], [19, 2, 1, "", "to_json"], [19, 2, 1, "", "trace_logs"], [19, 1, 1, "", "trigger_mode"], [19, 2, 1, "", "unit_vectors"], [19, 2, 1, "", "who_am_i"], [19, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.LegacyDevice.boot_mode": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.device_family": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.import_flags": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.mfilt_mask_size": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.operating_mode": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.spatial_filter": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.temporal_filter": [[19, 3, 1, "", "name"]], "ifm3dpy.device.LegacyDevice.trigger_mode": [[19, 3, 1, "", "name"]], "ifm3dpy.device.O3D": [[20, 2, 1, "", "__init__"], [20, 2, 1, "", "active_application"], [20, 2, 1, "", "am_i"], [20, 2, 1, "", "application_list"], [20, 2, 1, "", "application_types"], [20, 1, 1, "", "boot_mode"], [20, 2, 1, "", "cancel_session"], [20, 2, 1, "", "check_minimum_firmware_version"], [20, 2, 1, "", "copy_application"], [20, 2, 1, "", "create_application"], [20, 2, 1, "", "delete_application"], [20, 1, 1, "", "device_family"], [20, 2, 1, "", "device_parameter"], [20, 2, 1, "", "device_type"], [20, 2, 1, "", "export_ifm_app"], [20, 2, 1, "", "export_ifm_config"], [20, 2, 1, "", "factory_reset"], [20, 2, 1, "", "firmware_version"], [20, 2, 1, "", "force_trigger"], [20, 2, 1, "", "from_json"], [20, 2, 1, "", "heartbeat"], [20, 2, 1, "", "imager_types"], [20, 1, 1, "", "import_flags"], [20, 2, 1, "", "import_ifm_app"], [20, 2, 1, "", "import_ifm_config"], [20, 3, 1, "", "ip"], [20, 1, 1, "", "mfilt_mask_size"], [20, 1, 1, "", "operating_mode"], [20, 3, 1, "", "password"], [20, 2, 1, "", "reboot"], [20, 2, 1, "", "request_session"], [20, 3, 1, "", "session_id"], [20, 2, 1, "", "set_current_time"], [20, 2, 1, "", "set_temporary_application_parameters"], [20, 1, 1, "", "spatial_filter"], [20, 1, 1, "", "temporal_filter"], [20, 2, 1, "", "to_json"], [20, 2, 1, "", "trace_logs"], [20, 1, 1, "", "trigger_mode"], [20, 2, 1, "", "unit_vectors"], [20, 2, 1, "", "who_am_i"], [20, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.O3D.boot_mode": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.device_family": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.import_flags": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.mfilt_mask_size": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.operating_mode": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.spatial_filter": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.temporal_filter": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3D.trigger_mode": [[20, 3, 1, "", "name"]], "ifm3dpy.device.O3R": [[21, 2, 1, "", "__init__"], [21, 2, 1, "", "am_i"], [21, 1, 1, "", "boot_mode"], [21, 2, 1, "", "check_minimum_firmware_version"], [21, 1, 1, "", "device_family"], [21, 2, 1, "", "device_parameter"], [21, 2, 1, "", "device_type"], [21, 2, 1, "", "factory_reset"], [21, 2, 1, "", "firmware_version"], [21, 2, 1, "", "force_trigger"], [21, 2, 1, "", "from_json"], [21, 2, 1, "", "get"], [21, 2, 1, "", "get_diagnostic"], [21, 2, 1, "", "get_diagnostic_filter_schema"], [21, 2, 1, "", "get_diagnostic_filtered"], [21, 2, 1, "", "get_init"], [21, 2, 1, "", "get_schema"], [21, 1, 1, "", "import_flags"], [21, 3, 1, "", "ip"], [21, 1, 1, "", "mfilt_mask_size"], [21, 1, 1, "", "operating_mode"], [21, 2, 1, "", "port"], [21, 2, 1, "", "ports"], [21, 2, 1, "", "reboot"], [21, 2, 1, "", "reboot_to_recovery"], [21, 2, 1, "", "remove"], [21, 2, 1, "", "reset"], [21, 2, 1, "", "resolve_config"], [21, 2, 1, "", "save_init"], [21, 2, 1, "", "set"], [21, 1, 1, "", "spatial_filter"], [21, 1, 1, "", "temporal_filter"], [21, 2, 1, "", "to_json"], [21, 2, 1, "", "trace_logs"], [21, 1, 1, "", "trigger_mode"], [21, 2, 1, "", "who_am_i"], [21, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.O3R.boot_mode": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.device_family": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.import_flags": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.mfilt_mask_size": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.operating_mode": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.spatial_filter": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.temporal_filter": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3R.trigger_mode": [[21, 3, 1, "", "name"]], "ifm3dpy.device.O3X": [[22, 2, 1, "", "__init__"], [22, 2, 1, "", "active_application"], [22, 2, 1, "", "am_i"], [22, 2, 1, "", "application_list"], [22, 2, 1, "", "application_types"], [22, 1, 1, "", "boot_mode"], [22, 2, 1, "", "cancel_session"], [22, 2, 1, "", "check_minimum_firmware_version"], [22, 2, 1, "", "copy_application"], [22, 2, 1, "", "create_application"], [22, 2, 1, "", "delete_application"], [22, 1, 1, "", "device_family"], [22, 2, 1, "", "device_parameter"], [22, 2, 1, "", "device_type"], [22, 2, 1, "", "export_ifm_app"], [22, 2, 1, "", "export_ifm_config"], [22, 2, 1, "", "factory_reset"], [22, 2, 1, "", "firmware_version"], [22, 2, 1, "", "force_trigger"], [22, 2, 1, "", "from_json"], [22, 2, 1, "", "heartbeat"], [22, 2, 1, "", "imager_types"], [22, 1, 1, "", "import_flags"], [22, 2, 1, "", "import_ifm_app"], [22, 2, 1, "", "import_ifm_config"], [22, 3, 1, "", "ip"], [22, 1, 1, "", "mfilt_mask_size"], [22, 1, 1, "", "operating_mode"], [22, 3, 1, "", "password"], [22, 2, 1, "", "reboot"], [22, 2, 1, "", "request_session"], [22, 3, 1, "", "session_id"], [22, 2, 1, "", "set_current_time"], [22, 2, 1, "", "set_temporary_application_parameters"], [22, 1, 1, "", "spatial_filter"], [22, 1, 1, "", "temporal_filter"], [22, 2, 1, "", "to_json"], [22, 2, 1, "", "trace_logs"], [22, 1, 1, "", "trigger_mode"], [22, 2, 1, "", "unit_vectors"], [22, 2, 1, "", "who_am_i"], [22, 3, 1, "", "xmlrpc_port"]], "ifm3dpy.device.O3X.boot_mode": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.device_family": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.import_flags": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.mfilt_mask_size": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.operating_mode": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.spatial_filter": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.temporal_filter": [[22, 3, 1, "", "name"]], "ifm3dpy.device.O3X.trigger_mode": [[22, 3, 1, "", "name"]], "ifm3dpy.device.PortInfo": [[23, 2, 1, "", "__init__"], [23, 3, 1, "", "pcic_port"], [23, 3, 1, "", "port"], [23, 3, 1, "", "type"]], "ifm3dpy.device.SemVer": [[24, 2, 1, "", "Parse"], [24, 2, 1, "", "__init__"]], "ifm3dpy.framegrabber": [[26, 1, 1, "", "Frame"], [27, 1, 1, "", "FrameGrabber"], [28, 1, 1, "", "buffer_id"]], "ifm3dpy.framegrabber.Frame": [[26, 2, 1, "", "__init__"], [26, 2, 1, "", "frame_count"], [26, 2, 1, "", "get_buffer"], [26, 2, 1, "", "get_buffer_count"], [26, 2, 1, "", "get_buffers"], [26, 2, 1, "", "has_buffer"], [26, 2, 1, "", "timestamps"]], "ifm3dpy.framegrabber.FrameGrabber": [[27, 2, 1, "", "__init__"], [27, 2, 1, "", "is_masking"], [27, 2, 1, "", "is_running"], [27, 2, 1, "", "on_async_error"], [27, 2, 1, "", "on_async_notification"], [27, 2, 1, "", "on_error"], [27, 2, 1, "", "on_new_frame"], [27, 2, 1, "", "set_masking"], [27, 2, 1, "", "start"], [27, 2, 1, "", "stop"], [27, 2, 1, "", "sw_trigger"], [27, 2, 1, "", "wait_for_frame"]], "ifm3dpy.framegrabber.buffer_id": [[28, 2, 1, "", "__init__"], [28, 3, 1, "", "name"]], "ifm3dpy.logging": [[30, 1, 1, "", "LogEntry"], [31, 1, 1, "", "LogFormatterJson"], [32, 1, 1, "", "LogFormatterText"], [33, 1, 1, "", "LogLevel"], [34, 1, 1, "", "LogWriter"], [35, 1, 1, "", "Logger"]], "ifm3dpy.logging.LogEntry": [[30, 2, 1, "", "__init__"], [30, 3, 1, "", "file"]], "ifm3dpy.logging.LogFormatterJson": [[31, 2, 1, "", "__init__"], [31, 2, 1, "", "format"]], "ifm3dpy.logging.LogFormatterText": [[32, 2, 1, "", "__init__"], [32, 2, 1, "", "format"]], "ifm3dpy.logging.LogLevel": [[33, 2, 1, "", "__init__"], [33, 3, 1, "", "name"]], "ifm3dpy.logging.LogWriter": [[34, 2, 1, "", "__init__"], [34, 2, 1, "", "write"]], "ifm3dpy.logging.Logger": [[35, 2, 1, "", "__init__"], [35, 2, 1, "", "log_level"], [35, 2, 1, "", "set_log_level"], [35, 2, 1, "", "set_writer"]], "ifm3dpy.swupdater": [[38, 1, 1, "", "SWUpdater"]], "ifm3dpy.swupdater.SWUpdater": [[38, 2, 1, "", "__init__"], [38, 2, 1, "", "flash_firmware"], [38, 2, 1, "", "reboot_to_productive"], [38, 2, 1, "", "reboot_to_recovery"], [38, 2, 1, "", "wait_for_productive"], [38, 2, 1, "", "wait_for_recovery"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:property", "4": "py:attribute", "5": "py:function"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "property", "Python property"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "function", "Python function"]}, "titleterms": {"ifm3dpi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 48, 71, 82], "await": 1, "frameawait": 2, "deseri": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 44], "calibr": [4, 74], "extrinsicoptictous": 5, "o3dexposuretim": 6, "o3dextrinsiccalibr": 7, "o3dillutemperatur": 8, "o3dinstrinsiccalibr": 9, "o3dinverseinstrinsiccalibr": 10, "odsinfov1": 11, "odsoccupancygridv1": 12, "rgbinfov1": 13, "tofinfov3": 14, "tofinfov4": 15, "devic": [16, 17, 18, 19, 20, 21, 22, 23, 24, 86, 92], "error": [18, 40], "legacydevic": 19, "o3d": 20, "o3r": [21, 44, 45, 66, 67], "o3x": 22, "portinfo": 23, "semver": 24, "framegrabb": [25, 26, 27, 28, 45, 86], "frame": [26, 45, 86], "buffer_id": [28, 87], "log": [29, 30, 31, 32, 33, 34, 35, 47], "logentri": 30, "logformatterjson": 31, "logformattertext": 32, "loglevel": 33, "logwrit": 34, "logger": [35, 47, 89], "run": [36, 79, 84, 95], "swupdat": [37, 38, 88], "paramet": [38, 39, 49], "ifm3d": [39, 40, 41, 47, 49, 51, 53, 54, 55, 59, 61, 63, 78, 79, 80, 84, 88, 89, 91, 92, 93, 95, 96], "command": [39, 51, 79, 84], "line": [39, 51, 79, 84], "tool": [39, 51, 79, 84], "overview": [39, 41, 51, 64, 72, 78], "camera": [39, 43, 49, 50, 56, 74, 86], "imag": [39, 42, 45, 49, 57, 59, 71], "configur": [39, 43, 49, 62, 64, 69, 70, 72], "dump": [39, 49], "config": [39, 49], "set": [39, 45, 49, 50, 56], "singl": [39, 49], "multipl": [39, 49], "exampl": [39, 41, 42, 43, 45, 50, 52, 53, 54, 55, 61, 62, 64, 65, 69, 92], "creat": [39, 50, 71, 92], "new": [39, 43, 50, 71, 90, 96], "applic": [39, 50], "ntp": [39, 50], "server": [39, 50], "connect": [39, 50], "time": [39, 50], "changelog": [40, 53], "unreleas": [40, 53], "1": [40, 53, 87], "5": 40, "3": [40, 89], "2024": 40, "04": 40, "05": 40, "fix": 40, "2": [40, 88], "02": 40, "20": 40, "ad": 40, "07": 40, "0": [40, 53, 86, 87, 88, 89], "yank": 40, "dure": 40, "releas": [40, 41], "us": [40, 42, 45, 58, 79, 84], "chang": [40, 87, 88, 89], "4": 40, "2023": 40, "09": 40, "28": 40, "15": 40, "08": 40, "31": 40, "06": 40, "22": 40, "16": 40, "6": 40, "03": 40, "17": 40, "2022": 40, "12": 40, "10": 40, "14": 40, "93": 40, "92": 40, "2021": 40, "91": 40, "90": 40, "01": 40, "18": 40, "remov": 40, "between": 40, "13": 40, "11": 40, "9": 40, "8": 40, "7": 40, "thi": 40, "file": [40, 80], "ha": 40, "start": [40, 45, 54, 61, 86], "track": 40, "version": [41, 89], "support": [41, 54], "languag": [41, 54], "organ": 41, "softwar": [41, 75, 93], "instal": [41, 69, 71, 75, 76, 78, 80, 82, 83, 84, 89], "instruct": 41, "docker": [41, 65, 77, 89, 95], "contain": [41, 59, 77, 89, 92], "report": 41, "bug": 41, "check": [41, 82], "known": 41, "issu": 41, "licens": [41, 54, 55], "how": [42, 43, 44, 45], "receiv": [42, 45, 86], "2d": 42, "rgb": 42, "access": [42, 45, 86, 92], "data": [42, 44, 45, 86, 92], "decod": 42, "displai": [42, 71], "option": [42, 69], "The": [42, 43, 45, 78], "full": [42, 43, 45], "read": 43, "current": 43, "write": 43, "an": 45, "schema": [45, 92], "regist": [45, 86], "callback": [45, 86], "altern": 45, "wait": 45, "poll": [45, 86], "mode": 45, "basic": [46, 92], "librari": [46, 47, 96], "usag": [46, 60, 66, 67, 71, 84], "level": 47, "viewer": [48, 71], "avail": [52, 65, 78], "compat": [54, 92, 93], "prerequisit": 54, "o3d3xx": 54, "o3x1xx": 54, "ovp8xx": [54, 61], "get": [54, 61], "contribut": 54, "build": [55, 62, 78, 79, 95], "window": [55, 79], "what": 55, "i": 55, "includ": 55, "ex": 56, "multi_camera_grabb": 56, "uniqu": 56, "ip": 56, "address": 56, "your": 56, "ifm": 56, "3d": 56, "rectif": 57, "intrins": 58, "unit": 58, "vector": 58, "simpl": 59, "ppm": 60, "io": 60, "test": [60, 68], "c": [62, 92, 94], "pre": 62, "requisit": 62, "playground": [63, 79, 84], "project": [63, 79, 84], "od": [64, 72], "exclus": [65, 66, 67], "OF": [65, 66, 67], "liabil": [65, 66, 67], "further": 65, "document": 65, "l4t": [66, 67], "base": 66, "dockerfil": [66, 67], "content": [66, 67], "object": [66, 67, 92], "tensorrt": [67, 68], "capabl": 68, "python": [69, 82, 88, 89, 91, 97], "depend": [69, 78, 79, 80], "packag": [69, 76, 78, 83], "core": 70, "2d_data": 70, "py": [70, 73], "bootup_monitor": 70, "can_activ": 70, "deserialize_rgb": 70, "deserialize_imu": 70, "imu_data": 70, "diagnost": 70, "fw_update_util": 70, "getting_data": 70, "ifm3dpy_view": 70, "multi_head": 70, "timestamp": 70, "download": [71, 80], "code": 71, "virtual": 71, "environ": 71, "activ": 71, "from": [71, 78, 79, 80], "pip": 71, "sourc": [71, 78, 79], "requir": 71, "distanc": [71, 92], "amplitud": [71, 92], "point": 71, "cloud": 71, "jpeg": 71, "toolbox": 73, "registration_2d_3d": 73, "static": 74, "binari": [76, 83], "develop": 77, "flag": 78, "default": 78, "debian": 78, "deb": 80, "third": 80, "parti": 80, "linux": 81, "tegra": 81, "migrat": [85, 86, 87, 88, 89], "guid": [85, 86, 87, 88, 89], "v1": [86, 87, 88, 89], "now": 86, "stlimag": 86, "buffer": [86, 92], "stream": 86, "onnewfram": 86, "waitforfram": 86, "xyz_imag": 87, "coordin": 87, "renam": 87, "api": [87, 94, 97], "interfac": 87, "modul": 88, "structur": 88, "name": 88, "bind": [88, 91], "json": 88, "replac": 89, "glog": 89, "stl": 92, "pixel": 92, "templat": 92, "algorithm": 92, "grab": 92, "xyz": 92, "n": 92, "channel": 92, "type": 92, "matrix": 93, "refer": [94, 97], "non": 95, "ro": 95, "user": 95}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"ifm3dpy": [[0, "module-ifm3dpy"]], "ifm3dpy.Awaitable": [[1, "ifm3dpy-awaitable"]], "ifm3dpy.FrameAwaitable": [[2, "ifm3dpy-frameawaitable"]], "ifm3dpy.deserialize": [[3, "module-ifm3dpy.deserialize"]], "ifm3dpy.deserialize.Calibration": [[4, "ifm3dpy-deserialize-calibration"]], "ifm3dpy.deserialize.ExtrinsicOpticToUser": [[5, "ifm3dpy-deserialize-extrinsicoptictouser"]], "ifm3dpy.deserialize.O3DExposureTimes": [[6, "ifm3dpy-deserialize-o3dexposuretimes"]], "ifm3dpy.deserialize.O3DExtrinsicCalibration": [[7, "ifm3dpy-deserialize-o3dextrinsiccalibration"]], "ifm3dpy.deserialize.O3DILLUTemperature": [[8, "ifm3dpy-deserialize-o3dillutemperature"]], "ifm3dpy.deserialize.O3DInstrinsicCalibration": [[9, "ifm3dpy-deserialize-o3dinstrinsiccalibration"]], "ifm3dpy.deserialize.O3DInverseInstrinsicCalibration": [[10, "ifm3dpy-deserialize-o3dinverseinstrinsiccalibration"]], "ifm3dpy.deserialize.ODSInfoV1": [[11, "ifm3dpy-deserialize-odsinfov1"]], "ifm3dpy.deserialize.ODSOccupancyGridV1": [[12, "ifm3dpy-deserialize-odsoccupancygridv1"]], "ifm3dpy.deserialize.RGBInfoV1": [[13, "ifm3dpy-deserialize-rgbinfov1"]], "ifm3dpy.deserialize.TOFInfoV3": [[14, "ifm3dpy-deserialize-tofinfov3"]], "ifm3dpy.deserialize.TOFInfoV4": [[15, "ifm3dpy-deserialize-tofinfov4"]], "ifm3dpy.device": [[16, "module-ifm3dpy.device"]], "ifm3dpy.device.Device": [[17, "ifm3dpy-device-device"]], "ifm3dpy.device.Error": [[18, "ifm3dpy-device-error"]], "ifm3dpy.device.LegacyDevice": [[19, "ifm3dpy-device-legacydevice"]], "ifm3dpy.device.O3D": [[20, "ifm3dpy-device-o3d"]], "ifm3dpy.device.O3R": [[21, "ifm3dpy-device-o3r"]], "ifm3dpy.device.O3X": [[22, "ifm3dpy-device-o3x"]], "ifm3dpy.device.PortInfo": [[23, "ifm3dpy-device-portinfo"]], "ifm3dpy.device.SemVer": [[24, "ifm3dpy-device-semver"]], "ifm3dpy.framegrabber": [[25, "module-ifm3dpy.framegrabber"]], "ifm3dpy.framegrabber.Frame": [[26, "ifm3dpy-framegrabber-frame"]], "ifm3dpy.framegrabber.FrameGrabber": [[27, "ifm3dpy-framegrabber-framegrabber"]], "ifm3dpy.framegrabber.buffer_id": [[28, "ifm3dpy-framegrabber-buffer-id"]], "ifm3dpy.logging": [[29, "module-ifm3dpy.logging"]], "ifm3dpy.logging.LogEntry": [[30, "ifm3dpy-logging-logentry"]], "ifm3dpy.logging.LogFormatterJson": [[31, "ifm3dpy-logging-logformatterjson"]], "ifm3dpy.logging.LogFormatterText": [[32, "ifm3dpy-logging-logformattertext"]], "ifm3dpy.logging.LogLevel": [[33, "ifm3dpy-logging-loglevel"]], "ifm3dpy.logging.LogWriter": [[34, "ifm3dpy-logging-logwriter"]], "ifm3dpy.logging.Logger": [[35, "ifm3dpy-logging-logger"]], "ifm3dpy.run": [[36, "ifm3dpy-run"]], "ifm3dpy.swupdater": [[37, "module-ifm3dpy.swupdater"]], "ifm3dpy.swupdater.SWUpdater": [[38, "ifm3dpy-swupdater-swupdater"]], "Parameter": [[38, "parameter"], [38, "id1"], [38, "id2"]], "ifm3d - Command Line Tool": [[39, "ifm3d-command-line-tool"], [51, "ifm3d-command-line-tool"]], "Overview": [[39, "overview"], [51, "overview"], [64, "overview"], [72, "overview"]], "Camera and Imager Configuration": [[39, "camera-and-imager-configuration"], [49, "camera-and-imager-configuration"]], "Dump": [[39, "dump"], [49, "dump"]], "Config": [[39, "config"], [49, "config"]], "Setting single parameters with ifm3d config": [[39, "setting-single-parameters-with-ifm3d-config"], [49, "setting-single-parameters-with-ifm3d-config"]], "Setting multiple parameters": [[39, "setting-multiple-parameters"], [49, "setting-multiple-parameters"]], "Examples": [[39, "examples"], [41, "examples"], [50, "examples"]], "Creating new applications": [[39, "creating-new-applications"], [50, "creating-new-applications"]], "Setting NTP-Server connection on the camera": [[39, "setting-ntp-server-connection-on-the-camera"], [50, "setting-ntp-server-connection-on-the-camera"]], "Setting the time on the camera": [[39, "setting-the-time-on-the-camera"], [50, "setting-the-time-on-the-camera"]], "Changelog": [[40, "changelog"]], "[Unreleased]": [[40, "unreleased"]], "1.5.3 - 2024-04-05": [[40, "id1"]], "Fixed": [[40, "fixed"], [40, "id3"], [40, "id5"], [40, "id7"], [40, "id9"], [40, "id11"], [40, "id13"], [40, "id18"], [40, "id21"], [40, "id54"], [40, "id57"], [40, "id61"]], "1.5.2 - 2024-02-20": [[40, "id2"]], "Added": [[40, "added"], [40, "id6"], [40, "id14"], [40, "id16"], [40, "id20"], [40, "id25"], [40, "id33"], [40, "id35"], [40, "id43"], [40, "id47"], [40, "id50"], [40, "id53"], [40, "id56"], [40, "id60"], [40, "id64"], [40, "id67"], [40, "id70"]], "1.5.1 - 2024-02-07": [[40, "id4"]], "1.5.0 - 2024-02-07 [YANKED] error during release - use 1.5.1": [[40, "yanked-error-during-release-use-1-5-1"]], "Changes": [[40, "changes"], [40, "id29"]], "1.4.3 - 2023-09-28": [[40, "id8"]], "1.4.2 - 2023-09-15": [[40, "id10"]], "1.4.1 - 2023-08-31": [[40, "id12"]], "1.4.0 - 2023-08-02": [[40, "id15"]], "Changed": [[40, "changed"], [40, "id22"], [40, "id36"], [40, "id41"], [40, "id58"], [40, "id62"], [40, "id68"]], "1.3.3 - 2023-06-22": [[40, "id17"]], "1.3.2 - 2023-06-16": [[40, "id19"]], "1.3.1 - 2023-06-16 [YANKED] error during release - use 1.3.2": [[40, "yanked-error-during-release-use-1-3-2"]], "1.3.0 - 2023-06-16 [YANKED] error during release - use 1.3.2": [[40, "id23"]], "1.2.6 - 2023-04-05": [[40, "id24"]], "Fixes": [[40, "fixes"], [40, "id27"], [40, "id30"], [40, "id32"], [40, "id37"], [40, "id39"], [40, "id42"], [40, "id45"], [40, "id48"], [40, "id51"]], "1.2.5 - 2023-04-03": [[40, "id26"]], "1.2.4 - 2023-03-28": [[40, "id28"]], "1.2.3 - 2023-03-17": [[40, "id31"]], "1.2.2 - 2023-03-06": [[40, "id34"]], "1.2.1 - 2023-02-09": [[40, "id38"]], "1.2.0 - 2023-02-03": [[40, "id40"]], "1.1.1 - 2022-12-09": [[40, "id44"]], "1.1.0 - 2022-12-02": [[40, "id46"]], "1.0.1 - 2022-10-14": [[40, "id49"]], "1.0.0 - 2022-09-08": [[40, "id52"]], "0.93.0 - 2022-02-17": [[40, "id55"]], "0.92.0 - 2021-10-22": [[40, "id59"]], "0.91.0 - 2021-10-05": [[40, "id63"]], "0.90.2 - 2021-09-16": [[40, "id65"]], "0.90.1 - 2021-08-17": [[40, "id66"]], "0.90.0 - 2021-01-18": [[40, "id69"]], "Removed": [[40, "removed"]], "Changes between ifm3d 0.18.0 and 0.20.0 [Unreleased]": [[40, "changes-between-ifm3d-0-18-0-and-0-20-0-unreleased"]], "Changes between ifm3d 0.17.0 and 0.18.0": [[40, "changes-between-ifm3d-0-17-0-and-0-18-0"]], "Changes between ifm3d 0.16.0 and 0.17.0": [[40, "changes-between-ifm3d-0-16-0-and-0-17-0"]], "Changes between ifm3d 0.15.1 and 0.16.0": [[40, "changes-between-ifm3d-0-15-1-and-0-16-0"]], "Changes between ifm3d 0.15.0 and 0.15.1": [[40, "changes-between-ifm3d-0-15-0-and-0-15-1"]], "Changes between ifm3d 0.14.1 and 0.15.0": [[40, "changes-between-ifm3d-0-14-1-and-0-15-0"]], "Changes between ifm3d 0.14.0 and 0.14.1": [[40, "changes-between-ifm3d-0-14-0-and-0-14-1"]], "Changes between ifm3d 0.13.0 and 0.14.0": [[40, "changes-between-ifm3d-0-13-0-and-0-14-0"]], "Changes between ifm3d 0.12.0 and 0.13.0": [[40, "changes-between-ifm3d-0-12-0-and-0-13-0"]], "Changes between ifm3d 0.11.2 and 0.12.0": [[40, "changes-between-ifm3d-0-11-2-and-0-12-0"]], "Changes between ifm3d 0.11.1 and 0.11.2": [[40, "changes-between-ifm3d-0-11-1-and-0-11-2"]], "Changes between ifm3d 0.11.0 and 0.11.1": [[40, "changes-between-ifm3d-0-11-0-and-0-11-1"]], "Changes between ifm3d 0.10.0 and 0.11.0": [[40, "changes-between-ifm3d-0-10-0-and-0-11-0"]], "Changes between ifm3d 0.9.3 and 0.10.0": [[40, "changes-between-ifm3d-0-9-3-and-0-10-0"]], "Changes between ifm3d 0.9.2 and 0.9.3": [[40, "changes-between-ifm3d-0-9-2-and-0-9-3"]], "Changes between ifm3d 0.9.1 and 0.9.2": [[40, "changes-between-ifm3d-0-9-1-and-0-9-2"]], "Changes between ifm3d 0.9.0 and 0.9.1": [[40, "changes-between-ifm3d-0-9-0-and-0-9-1"]], "Changes between ifm3d 0.8.3 and 0.9.0": [[40, "changes-between-ifm3d-0-8-3-and-0-9-0"]], "Changes between ifm3d 0.8.2 and 0.8.3": [[40, "changes-between-ifm3d-0-8-2-and-0-8-3"]], "Changes between ifm3d 0.8.1 and 0.8.2": [[40, "changes-between-ifm3d-0-8-1-and-0-8-2"]], "Changes between ifm3d 0.8.0 and 0.8.1": [[40, "changes-between-ifm3d-0-8-0-and-0-8-1"]], "Changes between ifm3d 0.7.0 and 0.8.0": [[40, "changes-between-ifm3d-0-7-0-and-0-8-0"]], "Changes between ifm3d 0.6.0 and 0.7.0": [[40, "changes-between-ifm3d-0-6-0-and-0-7-0"]], "Changes between ifm3d 0.5.0 and 0.6.0": [[40, "changes-between-ifm3d-0-5-0-and-0-6-0"]], "Changes between ifm3d 0.4.0 and 0.5.0": [[40, "changes-between-ifm3d-0-4-0-and-0-5-0"]], "Changes between ifm3d 0.3.3 and 0.4.0": [[40, "changes-between-ifm3d-0-3-3-and-0-4-0"]], "Changes between ifm3d 0.3.2 and 0.3.3": [[40, "changes-between-ifm3d-0-3-2-and-0-3-3"]], "Changes between ifm3d 0.3.1 and 0.3.2": [[40, "changes-between-ifm3d-0-3-1-and-0-3-2"]], "Changes between ifm3d 0.3.0 and 0.3.1": [[40, "changes-between-ifm3d-0-3-0-and-0-3-1"]], "Changes between ifm3d 0.2.0 and 0.3.0": [[40, "changes-between-ifm3d-0-2-0-and-0-3-0"]], "Changes between ifm3d 0.1.0 and 0.2.0": [[40, "changes-between-ifm3d-0-1-0-and-0-2-0"]], "This file has started tracking ifm3d at 0.1.0": [[40, "this-file-has-started-tracking-ifm3d-at-0-1-0"]], "ifm3d Overview": [[41, "ifm3d-overview"]], "Released Versions": [[41, "released-versions"]], "Supported languages": [[41, "supported-languages"], [54, "supported-languages"]], "Organization of the Software": [[41, "organization-of-the-software"]], "Installation instructions": [[41, "installation-instructions"]], "Supported docker containers": [[41, "supported-docker-containers"]], "Report a bug and check the known issues": [[41, "report-a-bug-and-check-the-known-issues"]], "LICENSE": [[41, "license"], [55, "license"]], "How to: receive and use the 2D RGB image": [[42, "how-to-receive-and-use-the-2d-rgb-image"]], "Access the data": [[42, "access-the-data"], [45, "access-the-data"], [86, "access-the-data"]], "Decode the data": [[42, "decode-the-data"]], "Display (optional)": [[42, "display-optional"]], "The full example": [[42, "the-full-example"], [43, "the-full-example"], [45, "the-full-example"]], "How to: configure the camera": [[43, "how-to-configure-the-camera"]], "Read the current configuration": [[43, "read-the-current-configuration"]], "Write a new configuration": [[43, "write-a-new-configuration"]], "How to: deserialize O3R data": [[44, "how-to-deserialize-o3r-data"]], "How to: receive an image": [[45, "how-to-receive-an-image"]], "O3R, FrameGrabber and Frame": [[45, "o3r-framegrabber-and-frame"]], "Set the schema and start the FrameGrabber": [[45, "set-the-schema-and-start-the-framegrabber"]], "Receive an image": [[45, "receive-an-image"]], "Register a callback": [[45, "register-a-callback"]], "Alternatively: wait for a frame": [[45, "alternatively-wait-for-a-frame"]], "Using a callback": [[45, "using-a-callback"]], "Using the polling mode": [[45, "using-the-polling-mode"]], "Basic Library Usage": [[46, "basic-library-usage"]], "ifm3d::Logger - Logger for the ifm3d library": [[47, "ifm3d-logger-logger-for-the-ifm3d-library"]], "Log Levels": [[47, "log-levels"]], "ifm3dpy Viewer": [[48, "ifm3dpy-viewer"], [71, "ifm3dpy-viewer"]], "Available examples": [[52, "available-examples"], [65, "available-examples"]], "Changelog for ifm3d-examples": [[53, "changelog-for-ifm3d-examples"]], "UNRELEASED": [[53, "unreleased"]], "1.1.0": [[53, "id1"]], "1.0.0": [[53, "id2"]], "0.1.0": [[53, "id3"]], "ifm3d examples": [[54, "ifm3d-examples"]], "Compatibility": [[54, "compatibility"]], "Prerequisites": [[54, "prerequisites"]], "o3d3xx-o3x1xx": [[54, "o3d3xx-o3x1xx"]], "ovp8xx": [[54, "ovp8xx"]], "Getting Started": [[54, "getting-started"]], "Contributing": [[54, "contributing"]], "License": [[54, "license"]], "ifm3d Examples": [[55, "ifm3d-examples"]], "Building the examples": [[55, "building-the-examples"]], "Windows examples": [[55, "windows-examples"]], "What is included?": [[55, "what-is-included"]], "ex-multi_camera_grabber": [[56, "ex-multi-camera-grabber"]], "Setting unique IP Address to your ifm 3D camera": [[56, "setting-unique-ip-address-to-your-ifm-3d-camera"]], "Image Rectification": [[57, "image-rectification"]], "Using Intrinsics and Unit Vectors": [[58, "using-intrinsics-and-unit-vectors"]], "ifm3d - Simple Image Container": [[59, "ifm3d-simple-image-container"]], "PPM IO": [[60, "ppm-io"]], "Usage": [[60, "usage"], [71, "usage"], [84, "usage"]], "Tests": [[60, "tests"]], "ifm3d examples for OVP8xx": [[61, "ifm3d-examples-for-ovp8xx"]], "Getting started": [[61, "getting-started"]], "C++ examples": [[62, "c-examples"]], "Pre-requisites": [[62, "pre-requisites"]], "Build the examples": [[62, "build-the-examples"]], "Configuration": [[62, "configuration"], [64, "configuration"], [69, "configuration"], [72, "configuration"]], "ifm3d playground project": [[63, "ifm3d-playground-project"]], "ODS examples": [[64, "ods-examples"]], "Docker examples": [[65, "docker-examples"]], "EXCLUSION OF LIABILITY": [[65, "exclusion-of-liability"], [66, "exclusion-of-liability"], [67, "exclusion-of-liability"]], "Further documentation": [[65, "further-documentation"]], "o3r-l4t-base": [[66, "o3r-l4t-base"]], "Dockerfile content and usage objective": [[66, "dockerfile-content-and-usage-objective"], [67, "dockerfile-content-and-usage-objective"]], "o3r-l4t-tensorrt": [[67, "o3r-l4t-tensorrt"]], "Testing the TensorRT capabilities": [[68, "testing-the-tensorrt-capabilities"]], "Python examples": [[69, "python-examples"]], "Dependencies": [[69, "dependencies"], [78, "dependencies"], [79, "dependencies"]], "Package installation (optional)": [[69, "package-installation-optional"]], "Core": [[70, "core"]], "2d_data.py": [[70, "d-data-py"]], "bootup_monitor.py": [[70, "bootup-monitor-py"]], "can_activate.py": [[70, "can-activate-py"]], "configuration.py": [[70, "configuration-py"]], "deserialize_rgb.py": [[70, "deserialize-rgb-py"]], "deserialize_imu.py and imu_data.py": [[70, "deserialize-imu-py-and-imu-data-py"]], "diagnostic.py": [[70, "diagnostic-py"]], "fw_update_utils.py": [[70, "fw-update-utils-py"]], "getting_data*.py": [[70, "getting-data-py"]], "ifm3dpy_viewer.py": [[70, "ifm3dpy-viewer-py"]], "multi_head.py": [[70, "multi-head-py"]], "timestamps.py": [[70, "timestamps-py"]], "Download the code": [[71, "download-the-code"]], "Installation": [[71, "installation"], [84, "installation"]], "Create a new virtual environment": [[71, "create-a-new-virtual-environment"]], "Activate the virtual environment": [[71, "activate-the-virtual-environment"]], "Install ifm3dpy": [[71, "install-ifm3dpy"]], "From pip": [[71, "from-pip"]], "From Source": [[71, "from-source"]], "Install requirements": [[71, "install-requirements"]], "Display the distance image": [[71, "display-the-distance-image"]], "Display the amplitude image": [[71, "display-the-amplitude-image"]], "Display the point cloud": [[71, "display-the-point-cloud"]], "Display the JPEG image": [[71, "display-the-jpeg-image"]], "ODS": [[72, "ods"]], "Toolbox": [[73, "toolbox"]], "registration_2d_3d.py": [[73, "registration-2d-3d-py"]], "Static camera calibration": [[74, "static-camera-calibration"]], "Installing the software": [[75, "installing-the-software"]], "Install binary package": [[76, "install-binary-package"], [83, "install-binary-package"]], "Docker development containers": [[77, "docker-development-containers"]], "Installing ifm3d from source": [[78, "installing-ifm3d-from-source"]], "Overview of the available build flags": [[78, "overview-of-the-available-build-flags"]], "Build Dependencies": [[78, "build-dependencies"]], "Building From Source": [[78, "building-from-source"]], "The default build": [[78, "the-default-build"]], "Build Debian packages from source": [[78, "build-debian-packages-from-source"]], "Building Debian packages": [[78, "building-debian-packages"]], "Building ifm3d from source on Windows": [[79, "building-ifm3d-from-source-on-windows"]], "Build tools": [[79, "build-tools"]], "Source Dependencies": [[79, "source-dependencies"]], "Building source dependencies with ifm3d": [[79, "building-source-dependencies-with-ifm3d"]], "Running ifm3d command line tools": [[79, "running-ifm3d-command-line-tools"], [84, "running-ifm3d-command-line-tools"]], "Using ifm3d-playground projects": [[79, "using-ifm3d-playground-projects"], [84, "using-ifm3d-playground-projects"]], "Installing ifm3d from .deb file": [[80, "installing-ifm3d-from-deb-file"]], "Download ifm3d .deb files": [[80, "download-ifm3d-deb-files"]], "Install ifm3d third-party dependencies": [[80, "install-ifm3d-third-party-dependencies"]], "Install ifm3d .deb files": [[80, "install-ifm3d-deb-files"]], "Linux for Tegra": [[81, "linux-for-tegra"]], "Python installation": [[82, "python-installation"]], "Check the ifm3dpy installation": [[82, "check-the-ifm3dpy-installation"]], "Install using the ifm3d installer": [[84, "install-using-the-ifm3d-installer"]], "Migrating guide": [[85, "migrating-guide"]], "Migration Guide V1.0.0": [[86, "migration-guide-v1-0-0"]], "Camera (now Device)": [[86, "camera-now-device"]], "FrameGrabber and STLImage buffer": [[86, "framegrabber-and-stlimage-buffer"]], "Start streaming data with Start": [[86, "start-streaming-data-with-start"]], "Register a callback with OnNewFrame": [[86, "register-a-callback-with-onnewframe"]], "Receive a frame - polling with WaitForFrame": [[86, "receive-a-frame-polling-with-waitforframe"]], "Migration Guide V1.1.0": [[87, "migration-guide-v1-1-0"]], "XYZ_IMAGE coordinates": [[87, "xyz-image-coordinates"]], "Renamed buffer_ids": [[87, "renamed-buffer-ids"]], "API Interface changes": [[87, "api-interface-changes"]], "Migration Guide V1.2.0": [[88, "migration-guide-v1-2-0"]], "Changes to the Python module structure": [[88, "changes-to-the-python-module-structure"]], "Naming changes to SWUpdater Python bindings": [[88, "naming-changes-to-swupdater-python-bindings"]], "Changes to ifm3d::json": [[88, "changes-to-ifm3d-json"]], "Migration Guide V1.3.0": [[89, "migration-guide-v1-3-0"]], "Change of installed Python version in docker containers": [[89, "change-of-installed-python-version-in-docker-containers"]], "Replacement of glog with ifm3d::Logger": [[89, "replacement-of-glog-with-ifm3d-logger"]], "News": [[90, null], [96, null]], "Python bindings for ifm3d": [[91, "python-bindings-for-ifm3d"]], "ifm3d::Buffer- Basic C++ STL container for ifm3d": [[92, "ifm3d-buffer-basic-c-stl-container-for-ifm3d"]], "Creating Buffer Object:": [[92, "creating-buffer-object"]], "Accessing the Pixel": [[92, "accessing-the-pixel"]], "Buffer Templates": [[92, "buffer-templates"]], "Compatibility with C++ STL Algorithms": [[92, "compatibility-with-c-stl-algorithms"]], "Example grabbing distance and amplitude in ifm3d::Buffer": [[92, "example-grabbing-distance-and-amplitude-in-ifm3d-buffer"]], "Example grabbing XYZ or n-channel ifm3d::Buffer": [[92, "example-grabbing-xyz-or-n-channel-ifm3d-buffer"]], "Device, Schema and data types for ifm3d::Buffer": [[92, "device-schema-and-data-types-for-ifm3d-buffer"]], "ifm3d Software Compatibility Matrix": [[93, "ifm3d-software-compatibility-matrix"]], "C++ API Reference": [[94, "c-api-reference"]], "ifm3d - Docker": [[95, "ifm3d-docker"]], "Building": [[95, "building"]], "Running": [[95, "running"]], "Non-ROS users": [[95, "non-ros-users"]], "ifm3d library": [[96, "ifm3d-library"]], "Python API Reference": [[97, "python-api-reference"]]}, "indexentries": {"ifm3dpy": [[0, "module-ifm3dpy"]], "module": [[0, "module-ifm3dpy"], [3, "module-ifm3dpy.deserialize"], [16, "module-ifm3dpy.device"], [25, "module-ifm3dpy.framegrabber"], [29, "module-ifm3dpy.logging"], [37, "module-ifm3dpy.swupdater"]], "awaitable (class in ifm3dpy)": [[1, "ifm3dpy.Awaitable"]], "__init__() (ifm3dpy.awaitable method)": [[1, "ifm3dpy.Awaitable.__init__"]], "wait() (ifm3dpy.awaitable method)": [[1, "ifm3dpy.Awaitable.wait"]], "wait_for() (ifm3dpy.awaitable method)": [[1, "ifm3dpy.Awaitable.wait_for"]], "frameawaitable (class in ifm3dpy)": [[2, "ifm3dpy.FrameAwaitable"]], "__init__() (ifm3dpy.frameawaitable method)": [[2, "ifm3dpy.FrameAwaitable.__init__"]], "wait() (ifm3dpy.frameawaitable method)": [[2, "ifm3dpy.FrameAwaitable.wait"]], "wait_for() (ifm3dpy.frameawaitable method)": [[2, "ifm3dpy.FrameAwaitable.wait_for"]], "ifm3dpy.deserialize": [[3, "module-ifm3dpy.deserialize"]], "calibration (class in ifm3dpy.deserialize)": [[4, "ifm3dpy.deserialize.Calibration"]], "__init__() (ifm3dpy.deserialize.calibration method)": [[4, "ifm3dpy.deserialize.Calibration.__init__"]], "model_id (ifm3dpy.deserialize.calibration property)": [[4, "ifm3dpy.deserialize.Calibration.model_id"]], "parameters (ifm3dpy.deserialize.calibration property)": [[4, "ifm3dpy.deserialize.Calibration.parameters"]], "extrinsicoptictouser (class in ifm3dpy.deserialize)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser"]], "__init__() (ifm3dpy.deserialize.extrinsicoptictouser method)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.__init__"]], "rot_x (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.rot_x"]], "rot_y (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.rot_y"]], "rot_z (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.rot_z"]], "trans_x (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.trans_x"]], "trans_y (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.trans_y"]], "trans_z (ifm3dpy.deserialize.extrinsicoptictouser property)": [[5, "ifm3dpy.deserialize.ExtrinsicOpticToUser.trans_z"]], "o3dexposuretimes (class in ifm3dpy.deserialize)": [[6, "ifm3dpy.deserialize.O3DExposureTimes"]], "__init__() (ifm3dpy.deserialize.o3dexposuretimes method)": [[6, "ifm3dpy.deserialize.O3DExposureTimes.__init__"]], "data (ifm3dpy.deserialize.o3dexposuretimes property)": [[6, "ifm3dpy.deserialize.O3DExposureTimes.data"]], "deserialize() (ifm3dpy.deserialize.o3dexposuretimes static method)": [[6, "ifm3dpy.deserialize.O3DExposureTimes.deserialize"]], "o3dextrinsiccalibration (class in ifm3dpy.deserialize)": [[7, "ifm3dpy.deserialize.O3DExtrinsicCalibration"]], "__init__() (ifm3dpy.deserialize.o3dextrinsiccalibration method)": [[7, "ifm3dpy.deserialize.O3DExtrinsicCalibration.__init__"]], "data (ifm3dpy.deserialize.o3dextrinsiccalibration property)": [[7, "ifm3dpy.deserialize.O3DExtrinsicCalibration.data"]], "deserialize() (ifm3dpy.deserialize.o3dextrinsiccalibration static method)": [[7, "ifm3dpy.deserialize.O3DExtrinsicCalibration.deserialize"]], "o3dillutemperature (class in ifm3dpy.deserialize)": [[8, "ifm3dpy.deserialize.O3DILLUTemperature"]], "__init__() (ifm3dpy.deserialize.o3dillutemperature method)": [[8, "ifm3dpy.deserialize.O3DILLUTemperature.__init__"]], "data (ifm3dpy.deserialize.o3dillutemperature property)": [[8, "ifm3dpy.deserialize.O3DILLUTemperature.data"]], "deserialize() (ifm3dpy.deserialize.o3dillutemperature static method)": [[8, "ifm3dpy.deserialize.O3DILLUTemperature.deserialize"]], "o3dinstrinsiccalibration (class in ifm3dpy.deserialize)": [[9, "ifm3dpy.deserialize.O3DInstrinsicCalibration"]], "__init__() (ifm3dpy.deserialize.o3dinstrinsiccalibration method)": [[9, "ifm3dpy.deserialize.O3DInstrinsicCalibration.__init__"]], "data (ifm3dpy.deserialize.o3dinstrinsiccalibration property)": [[9, "ifm3dpy.deserialize.O3DInstrinsicCalibration.data"]], "deserialize() (ifm3dpy.deserialize.o3dinstrinsiccalibration static method)": [[9, "ifm3dpy.deserialize.O3DInstrinsicCalibration.deserialize"]], "o3dinverseinstrinsiccalibration (in module ifm3dpy.deserialize)": [[10, "ifm3dpy.deserialize.O3DInverseInstrinsicCalibration"]], "odsinfov1 (class in ifm3dpy.deserialize)": [[11, "ifm3dpy.deserialize.ODSInfoV1"]], "__init__() (ifm3dpy.deserialize.odsinfov1 method)": [[11, "ifm3dpy.deserialize.ODSInfoV1.__init__"]], "deserialize() (ifm3dpy.deserialize.odsinfov1 static method)": [[11, "ifm3dpy.deserialize.ODSInfoV1.deserialize"]], "timestamp_ns (ifm3dpy.deserialize.odsinfov1 property)": [[11, "ifm3dpy.deserialize.ODSInfoV1.timestamp_ns"]], "zone_config_id (ifm3dpy.deserialize.odsinfov1 property)": [[11, "ifm3dpy.deserialize.ODSInfoV1.zone_config_id"]], "zone_occupied (ifm3dpy.deserialize.odsinfov1 property)": [[11, "ifm3dpy.deserialize.ODSInfoV1.zone_occupied"]], "odsoccupancygridv1 (class in ifm3dpy.deserialize)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1"]], "__init__() (ifm3dpy.deserialize.odsoccupancygridv1 method)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.__init__"]], "deserialize() (ifm3dpy.deserialize.odsoccupancygridv1 static method)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.deserialize"]], "height (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.height"]], "image (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.image"]], "timestamp_ns (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.timestamp_ns"]], "transform_cell_center_to_user (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.transform_cell_center_to_user"]], "width (ifm3dpy.deserialize.odsoccupancygridv1 property)": [[12, "ifm3dpy.deserialize.ODSOccupancyGridV1.width"]], "rgbinfov1 (class in ifm3dpy.deserialize)": [[13, "ifm3dpy.deserialize.RGBInfoV1"]], "__init__() (ifm3dpy.deserialize.rgbinfov1 method)": [[13, "ifm3dpy.deserialize.RGBInfoV1.__init__"]], "deserialize() (ifm3dpy.deserialize.rgbinfov1 static method)": [[13, "ifm3dpy.deserialize.RGBInfoV1.deserialize"]], "exposure_time (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.exposure_time"]], "extrinsic_optic_to_user (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.extrinsic_optic_to_user"]], "frame_counter (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.frame_counter"]], "intrinsic_calibration (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.intrinsic_calibration"]], "inverse_intrinsic_calibration (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.inverse_intrinsic_calibration"]], "timestamp_ns (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.timestamp_ns"]], "version (ifm3dpy.deserialize.rgbinfov1 property)": [[13, "ifm3dpy.deserialize.RGBInfoV1.version"]], "tofinfov3 (class in ifm3dpy.deserialize)": [[14, "ifm3dpy.deserialize.TOFInfoV3"]], "__init__() (ifm3dpy.deserialize.tofinfov3 method)": [[14, "ifm3dpy.deserialize.TOFInfoV3.__init__"]], "amp_normalization_factors (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.amp_normalization_factors"]], "amplitude_resolution (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.amplitude_resolution"]], "deserialize() (ifm3dpy.deserialize.tofinfov3 static method)": [[14, "ifm3dpy.deserialize.TOFInfoV3.deserialize"]], "distance_resolution (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.distance_resolution"]], "exposure_times_s (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.exposure_times_s"]], "exposure_timestamps_ns (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.exposure_timestamps_ns"]], "extrinsic_optic_to_user (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.extrinsic_optic_to_user"]], "illu_temperature (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.illu_temperature"]], "imager (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.imager"]], "intrinsic_calibration (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.intrinsic_calibration"]], "inverse_intrinsic_calibration (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.inverse_intrinsic_calibration"]], "mode (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.mode"]], "version (ifm3dpy.deserialize.tofinfov3 property)": [[14, "ifm3dpy.deserialize.TOFInfoV3.version"]], "tofinfov4 (class in ifm3dpy.deserialize)": [[15, "ifm3dpy.deserialize.TOFInfoV4"]], "__init__() (ifm3dpy.deserialize.tofinfov4 method)": [[15, "ifm3dpy.deserialize.TOFInfoV4.__init__"]], "amp_normalization_factors (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.amp_normalization_factors"]], "amplitude_resolution (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.amplitude_resolution"]], "deserialize() (ifm3dpy.deserialize.tofinfov4 static method)": [[15, "ifm3dpy.deserialize.TOFInfoV4.deserialize"]], "distance_resolution (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.distance_resolution"]], "exposure_times_s (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.exposure_times_s"]], "exposure_timestamps_ns (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.exposure_timestamps_ns"]], "extrinsic_optic_to_user (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.extrinsic_optic_to_user"]], "illu_temperature (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.illu_temperature"]], "imager (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.imager"]], "intrinsic_calibration (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.intrinsic_calibration"]], "inverse_intrinsic_calibration (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.inverse_intrinsic_calibration"]], "measurement_block_index (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.measurement_block_index"]], "measurement_range_max (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.measurement_range_max"]], "measurement_range_min (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.measurement_range_min"]], "mode (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.mode"]], "version (ifm3dpy.deserialize.tofinfov4 property)": [[15, "ifm3dpy.deserialize.TOFInfoV4.version"]], "ifm3dpy.device": [[16, "module-ifm3dpy.device"]], "device (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device"]], "device.boot_mode (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.boot_mode"]], "device.device_family (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.device_family"]], "device.import_flags (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.import_flags"]], "device.mfilt_mask_size (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.mfilt_mask_size"]], "device.operating_mode (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.operating_mode"]], "device.spatial_filter (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.spatial_filter"]], "device.temporal_filter (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.temporal_filter"]], "device.trigger_mode (class in ifm3dpy.device)": [[17, "ifm3dpy.device.Device.trigger_mode"]], "__init__() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.__init__"]], "am_i() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.am_i"]], "check_minimum_firmware_version() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.check_minimum_firmware_version"]], "device_parameter() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.device_parameter"]], "device_type() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.device_type"]], "firmware_version() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.firmware_version"]], "force_trigger() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.force_trigger"]], "from_json() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.from_json"]], "ip (ifm3dpy.device.device property)": [[17, "ifm3dpy.device.Device.ip"]], "name (ifm3dpy.device.device.boot_mode property)": [[17, "ifm3dpy.device.Device.boot_mode.name"]], "name (ifm3dpy.device.device.device_family property)": [[17, "ifm3dpy.device.Device.device_family.name"]], "name (ifm3dpy.device.device.import_flags property)": [[17, "ifm3dpy.device.Device.import_flags.name"]], "name (ifm3dpy.device.device.mfilt_mask_size property)": [[17, "ifm3dpy.device.Device.mfilt_mask_size.name"]], "name (ifm3dpy.device.device.operating_mode property)": [[17, "ifm3dpy.device.Device.operating_mode.name"]], "name (ifm3dpy.device.device.spatial_filter property)": [[17, "ifm3dpy.device.Device.spatial_filter.name"]], "name (ifm3dpy.device.device.temporal_filter property)": [[17, "ifm3dpy.device.Device.temporal_filter.name"]], "name (ifm3dpy.device.device.trigger_mode property)": [[17, "ifm3dpy.device.Device.trigger_mode.name"]], "reboot() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.reboot"]], "to_json() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.to_json"]], "trace_logs() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.trace_logs"]], "who_am_i() (ifm3dpy.device.device method)": [[17, "ifm3dpy.device.Device.who_am_i"]], "xmlrpc_port (ifm3dpy.device.device property)": [[17, "ifm3dpy.device.Device.xmlrpc_port"]], "error (class in ifm3dpy.device)": [[18, "ifm3dpy.device.Error"]], "__init__() (ifm3dpy.device.error method)": [[18, "ifm3dpy.device.Error.__init__"]], "code (ifm3dpy.device.error property)": [[18, "ifm3dpy.device.Error.code"]], "message (ifm3dpy.device.error property)": [[18, "ifm3dpy.device.Error.message"]], "what (ifm3dpy.device.error property)": [[18, "ifm3dpy.device.Error.what"]], "with_traceback() (ifm3dpy.device.error method)": [[18, "ifm3dpy.device.Error.with_traceback"]], "legacydevice (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice"]], "legacydevice.boot_mode (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.boot_mode"]], "legacydevice.device_family (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.device_family"]], "legacydevice.import_flags (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.import_flags"]], "legacydevice.mfilt_mask_size (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.mfilt_mask_size"]], "legacydevice.operating_mode (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.operating_mode"]], "legacydevice.spatial_filter (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.spatial_filter"]], "legacydevice.temporal_filter (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.temporal_filter"]], "legacydevice.trigger_mode (class in ifm3dpy.device)": [[19, "ifm3dpy.device.LegacyDevice.trigger_mode"]], "__init__() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.__init__"]], "active_application() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.active_application"]], "am_i() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.am_i"]], "application_list() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.application_list"]], "application_types() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.application_types"]], "cancel_session() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.cancel_session"]], "check_minimum_firmware_version() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.check_minimum_firmware_version"]], "copy_application() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.copy_application"]], "create_application() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.create_application"]], "delete_application() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.delete_application"]], "device_parameter() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.device_parameter"]], "device_type() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.device_type"]], "export_ifm_app() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.export_ifm_app"]], "export_ifm_config() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.export_ifm_config"]], "factory_reset() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.factory_reset"]], "firmware_version() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.firmware_version"]], "force_trigger() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.force_trigger"]], "from_json() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.from_json"]], "heartbeat() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.heartbeat"]], "imager_types() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.imager_types"]], "import_ifm_app() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.import_ifm_app"]], "import_ifm_config() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.import_ifm_config"]], "ip (ifm3dpy.device.legacydevice property)": [[19, "ifm3dpy.device.LegacyDevice.ip"]], "name (ifm3dpy.device.legacydevice.boot_mode property)": [[19, "ifm3dpy.device.LegacyDevice.boot_mode.name"]], "name (ifm3dpy.device.legacydevice.device_family property)": [[19, "ifm3dpy.device.LegacyDevice.device_family.name"]], "name (ifm3dpy.device.legacydevice.import_flags property)": [[19, "ifm3dpy.device.LegacyDevice.import_flags.name"]], "name (ifm3dpy.device.legacydevice.mfilt_mask_size property)": [[19, "ifm3dpy.device.LegacyDevice.mfilt_mask_size.name"]], "name (ifm3dpy.device.legacydevice.operating_mode property)": [[19, "ifm3dpy.device.LegacyDevice.operating_mode.name"]], "name (ifm3dpy.device.legacydevice.spatial_filter property)": [[19, "ifm3dpy.device.LegacyDevice.spatial_filter.name"]], "name (ifm3dpy.device.legacydevice.temporal_filter property)": [[19, "ifm3dpy.device.LegacyDevice.temporal_filter.name"]], "name (ifm3dpy.device.legacydevice.trigger_mode property)": [[19, "ifm3dpy.device.LegacyDevice.trigger_mode.name"]], "password (ifm3dpy.device.legacydevice property)": [[19, "ifm3dpy.device.LegacyDevice.password"]], "reboot() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.reboot"]], "request_session() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.request_session"]], "session_id (ifm3dpy.device.legacydevice property)": [[19, "ifm3dpy.device.LegacyDevice.session_id"]], "set_current_time() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.set_current_time"]], "set_temporary_application_parameters() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.set_temporary_application_parameters"]], "to_json() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.to_json"]], "trace_logs() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.trace_logs"]], "unit_vectors() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.unit_vectors"]], "who_am_i() (ifm3dpy.device.legacydevice method)": [[19, "ifm3dpy.device.LegacyDevice.who_am_i"]], "xmlrpc_port (ifm3dpy.device.legacydevice property)": [[19, "ifm3dpy.device.LegacyDevice.xmlrpc_port"]], "o3d (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D"]], "o3d.boot_mode (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.boot_mode"]], "o3d.device_family (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.device_family"]], "o3d.import_flags (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.import_flags"]], "o3d.mfilt_mask_size (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.mfilt_mask_size"]], "o3d.operating_mode (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.operating_mode"]], "o3d.spatial_filter (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.spatial_filter"]], "o3d.temporal_filter (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.temporal_filter"]], "o3d.trigger_mode (class in ifm3dpy.device)": [[20, "ifm3dpy.device.O3D.trigger_mode"]], "__init__() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.__init__"]], "active_application() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.active_application"]], "am_i() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.am_i"]], "application_list() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.application_list"]], "application_types() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.application_types"]], "cancel_session() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.cancel_session"]], "check_minimum_firmware_version() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.check_minimum_firmware_version"]], "copy_application() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.copy_application"]], "create_application() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.create_application"]], "delete_application() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.delete_application"]], "device_parameter() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.device_parameter"]], "device_type() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.device_type"]], "export_ifm_app() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.export_ifm_app"]], "export_ifm_config() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.export_ifm_config"]], "factory_reset() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.factory_reset"]], "firmware_version() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.firmware_version"]], "force_trigger() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.force_trigger"]], "from_json() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.from_json"]], "heartbeat() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.heartbeat"]], "imager_types() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.imager_types"]], "import_ifm_app() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.import_ifm_app"]], "import_ifm_config() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.import_ifm_config"]], "ip (ifm3dpy.device.o3d property)": [[20, "ifm3dpy.device.O3D.ip"]], "name (ifm3dpy.device.o3d.boot_mode property)": [[20, "ifm3dpy.device.O3D.boot_mode.name"]], "name (ifm3dpy.device.o3d.device_family property)": [[20, "ifm3dpy.device.O3D.device_family.name"]], "name (ifm3dpy.device.o3d.import_flags property)": [[20, "ifm3dpy.device.O3D.import_flags.name"]], "name (ifm3dpy.device.o3d.mfilt_mask_size property)": [[20, "ifm3dpy.device.O3D.mfilt_mask_size.name"]], "name (ifm3dpy.device.o3d.operating_mode property)": [[20, "ifm3dpy.device.O3D.operating_mode.name"]], "name (ifm3dpy.device.o3d.spatial_filter property)": [[20, "ifm3dpy.device.O3D.spatial_filter.name"]], "name (ifm3dpy.device.o3d.temporal_filter property)": [[20, "ifm3dpy.device.O3D.temporal_filter.name"]], "name (ifm3dpy.device.o3d.trigger_mode property)": [[20, "ifm3dpy.device.O3D.trigger_mode.name"]], "password (ifm3dpy.device.o3d property)": [[20, "ifm3dpy.device.O3D.password"]], "reboot() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.reboot"]], "request_session() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.request_session"]], "session_id (ifm3dpy.device.o3d property)": [[20, "ifm3dpy.device.O3D.session_id"]], "set_current_time() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.set_current_time"]], "set_temporary_application_parameters() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.set_temporary_application_parameters"]], "to_json() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.to_json"]], "trace_logs() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.trace_logs"]], "unit_vectors() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.unit_vectors"]], "who_am_i() (ifm3dpy.device.o3d method)": [[20, "ifm3dpy.device.O3D.who_am_i"]], "xmlrpc_port (ifm3dpy.device.o3d property)": [[20, "ifm3dpy.device.O3D.xmlrpc_port"]], "o3r (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R"]], "o3r.boot_mode (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.boot_mode"]], "o3r.device_family (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.device_family"]], "o3r.import_flags (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.import_flags"]], "o3r.mfilt_mask_size (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.mfilt_mask_size"]], "o3r.operating_mode (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.operating_mode"]], "o3r.spatial_filter (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.spatial_filter"]], "o3r.temporal_filter (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.temporal_filter"]], "o3r.trigger_mode (class in ifm3dpy.device)": [[21, "ifm3dpy.device.O3R.trigger_mode"]], "__init__() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.__init__"]], "am_i() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.am_i"]], "check_minimum_firmware_version() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.check_minimum_firmware_version"]], "device_parameter() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.device_parameter"]], "device_type() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.device_type"]], "factory_reset() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.factory_reset"]], "firmware_version() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.firmware_version"]], "force_trigger() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.force_trigger"]], "from_json() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.from_json"]], "get() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get"]], "get_diagnostic() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_diagnostic"]], "get_diagnostic_filter_schema() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_diagnostic_filter_schema"]], "get_diagnostic_filtered() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_diagnostic_filtered"]], "get_init() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_init"]], "get_schema() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.get_schema"]], "ip (ifm3dpy.device.o3r property)": [[21, "ifm3dpy.device.O3R.ip"]], "name (ifm3dpy.device.o3r.boot_mode property)": [[21, "ifm3dpy.device.O3R.boot_mode.name"]], "name (ifm3dpy.device.o3r.device_family property)": [[21, "ifm3dpy.device.O3R.device_family.name"]], "name (ifm3dpy.device.o3r.import_flags property)": [[21, "ifm3dpy.device.O3R.import_flags.name"]], "name (ifm3dpy.device.o3r.mfilt_mask_size property)": [[21, "ifm3dpy.device.O3R.mfilt_mask_size.name"]], "name (ifm3dpy.device.o3r.operating_mode property)": [[21, "ifm3dpy.device.O3R.operating_mode.name"]], "name (ifm3dpy.device.o3r.spatial_filter property)": [[21, "ifm3dpy.device.O3R.spatial_filter.name"]], "name (ifm3dpy.device.o3r.temporal_filter property)": [[21, "ifm3dpy.device.O3R.temporal_filter.name"]], "name (ifm3dpy.device.o3r.trigger_mode property)": [[21, "ifm3dpy.device.O3R.trigger_mode.name"]], "port() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.port"]], "ports() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.ports"]], "reboot() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.reboot"]], "reboot_to_recovery() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.reboot_to_recovery"]], "remove() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.remove"]], "reset() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.reset"]], "resolve_config() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.resolve_config"]], "save_init() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.save_init"]], "set() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.set"]], "to_json() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.to_json"]], "trace_logs() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.trace_logs"]], "who_am_i() (ifm3dpy.device.o3r method)": [[21, "ifm3dpy.device.O3R.who_am_i"]], "xmlrpc_port (ifm3dpy.device.o3r property)": [[21, "ifm3dpy.device.O3R.xmlrpc_port"]], "o3x (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X"]], "o3x.boot_mode (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.boot_mode"]], "o3x.device_family (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.device_family"]], "o3x.import_flags (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.import_flags"]], "o3x.mfilt_mask_size (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.mfilt_mask_size"]], "o3x.operating_mode (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.operating_mode"]], "o3x.spatial_filter (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.spatial_filter"]], "o3x.temporal_filter (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.temporal_filter"]], "o3x.trigger_mode (class in ifm3dpy.device)": [[22, "ifm3dpy.device.O3X.trigger_mode"]], "__init__() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.__init__"]], "active_application() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.active_application"]], "am_i() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.am_i"]], "application_list() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.application_list"]], "application_types() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.application_types"]], "cancel_session() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.cancel_session"]], "check_minimum_firmware_version() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.check_minimum_firmware_version"]], "copy_application() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.copy_application"]], "create_application() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.create_application"]], "delete_application() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.delete_application"]], "device_parameter() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.device_parameter"]], "device_type() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.device_type"]], "export_ifm_app() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.export_ifm_app"]], "export_ifm_config() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.export_ifm_config"]], "factory_reset() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.factory_reset"]], "firmware_version() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.firmware_version"]], "force_trigger() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.force_trigger"]], "from_json() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.from_json"]], "heartbeat() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.heartbeat"]], "imager_types() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.imager_types"]], "import_ifm_app() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.import_ifm_app"]], "import_ifm_config() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.import_ifm_config"]], "ip (ifm3dpy.device.o3x property)": [[22, "ifm3dpy.device.O3X.ip"]], "name (ifm3dpy.device.o3x.boot_mode property)": [[22, "ifm3dpy.device.O3X.boot_mode.name"]], "name (ifm3dpy.device.o3x.device_family property)": [[22, "ifm3dpy.device.O3X.device_family.name"]], "name (ifm3dpy.device.o3x.import_flags property)": [[22, "ifm3dpy.device.O3X.import_flags.name"]], "name (ifm3dpy.device.o3x.mfilt_mask_size property)": [[22, "ifm3dpy.device.O3X.mfilt_mask_size.name"]], "name (ifm3dpy.device.o3x.operating_mode property)": [[22, "ifm3dpy.device.O3X.operating_mode.name"]], "name (ifm3dpy.device.o3x.spatial_filter property)": [[22, "ifm3dpy.device.O3X.spatial_filter.name"]], "name (ifm3dpy.device.o3x.temporal_filter property)": [[22, "ifm3dpy.device.O3X.temporal_filter.name"]], "name (ifm3dpy.device.o3x.trigger_mode property)": [[22, "ifm3dpy.device.O3X.trigger_mode.name"]], "password (ifm3dpy.device.o3x property)": [[22, "ifm3dpy.device.O3X.password"]], "reboot() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.reboot"]], "request_session() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.request_session"]], "session_id (ifm3dpy.device.o3x property)": [[22, "ifm3dpy.device.O3X.session_id"]], "set_current_time() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.set_current_time"]], "set_temporary_application_parameters() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.set_temporary_application_parameters"]], "to_json() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.to_json"]], "trace_logs() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.trace_logs"]], "unit_vectors() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.unit_vectors"]], "who_am_i() (ifm3dpy.device.o3x method)": [[22, "ifm3dpy.device.O3X.who_am_i"]], "xmlrpc_port (ifm3dpy.device.o3x property)": [[22, "ifm3dpy.device.O3X.xmlrpc_port"]], "portinfo (class in ifm3dpy.device)": [[23, "ifm3dpy.device.PortInfo"]], "__init__() (ifm3dpy.device.portinfo method)": [[23, "ifm3dpy.device.PortInfo.__init__"]], "pcic_port (ifm3dpy.device.portinfo property)": [[23, "ifm3dpy.device.PortInfo.pcic_port"]], "port (ifm3dpy.device.portinfo property)": [[23, "ifm3dpy.device.PortInfo.port"]], "type (ifm3dpy.device.portinfo property)": [[23, "ifm3dpy.device.PortInfo.type"]], "parse() (ifm3dpy.device.semver static method)": [[24, "ifm3dpy.device.SemVer.Parse"]], "semver (class in ifm3dpy.device)": [[24, "ifm3dpy.device.SemVer"]], "__init__() (ifm3dpy.device.semver method)": [[24, "ifm3dpy.device.SemVer.__init__"]], "ifm3dpy.framegrabber": [[25, "module-ifm3dpy.framegrabber"]], "frame (class in ifm3dpy.framegrabber)": [[26, "ifm3dpy.framegrabber.Frame"]], "__init__() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.__init__"]], "frame_count() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.frame_count"]], "get_buffer() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.get_buffer"]], "get_buffer_count() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.get_buffer_count"]], "get_buffers() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.get_buffers"]], "has_buffer() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.has_buffer"]], "timestamps() (ifm3dpy.framegrabber.frame method)": [[26, "ifm3dpy.framegrabber.Frame.timestamps"]], "framegrabber (class in ifm3dpy.framegrabber)": [[27, "ifm3dpy.framegrabber.FrameGrabber"]], "__init__() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.__init__"]], "is_masking() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.is_masking"]], "is_running() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.is_running"]], "on_async_error() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.on_async_error"]], "on_async_notification() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.on_async_notification"]], "on_error() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.on_error"]], "on_new_frame() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.on_new_frame"]], "set_masking() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.set_masking"]], "start() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.start"]], "stop() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.stop"]], "sw_trigger() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.sw_trigger"]], "wait_for_frame() (ifm3dpy.framegrabber.framegrabber method)": [[27, "ifm3dpy.framegrabber.FrameGrabber.wait_for_frame"]], "__init__() (ifm3dpy.framegrabber.buffer_id method)": [[28, "ifm3dpy.framegrabber.buffer_id.__init__"]], "buffer_id (class in ifm3dpy.framegrabber)": [[28, "ifm3dpy.framegrabber.buffer_id"]], "name (ifm3dpy.framegrabber.buffer_id property)": [[28, "ifm3dpy.framegrabber.buffer_id.name"]], "ifm3dpy.logging": [[29, "module-ifm3dpy.logging"]], "logentry (class in ifm3dpy.logging)": [[30, "ifm3dpy.logging.LogEntry"]], "__init__() (ifm3dpy.logging.logentry method)": [[30, "ifm3dpy.logging.LogEntry.__init__"]], "file (ifm3dpy.logging.logentry property)": [[30, "ifm3dpy.logging.LogEntry.file"]], "logformatterjson (class in ifm3dpy.logging)": [[31, "ifm3dpy.logging.LogFormatterJson"]], "__init__() (ifm3dpy.logging.logformatterjson method)": [[31, "ifm3dpy.logging.LogFormatterJson.__init__"]], "format() (ifm3dpy.logging.logformatterjson static method)": [[31, "ifm3dpy.logging.LogFormatterJson.format"]], "logformattertext (class in ifm3dpy.logging)": [[32, "ifm3dpy.logging.LogFormatterText"]], "__init__() (ifm3dpy.logging.logformattertext method)": [[32, "ifm3dpy.logging.LogFormatterText.__init__"]], "format() (ifm3dpy.logging.logformattertext static method)": [[32, "ifm3dpy.logging.LogFormatterText.format"]], "loglevel (class in ifm3dpy.logging)": [[33, "ifm3dpy.logging.LogLevel"]], "__init__() (ifm3dpy.logging.loglevel method)": [[33, "ifm3dpy.logging.LogLevel.__init__"]], "name (ifm3dpy.logging.loglevel property)": [[33, "ifm3dpy.logging.LogLevel.name"]], "logwriter (class in ifm3dpy.logging)": [[34, "ifm3dpy.logging.LogWriter"]], "__init__() (ifm3dpy.logging.logwriter method)": [[34, "ifm3dpy.logging.LogWriter.__init__"]], "write() (ifm3dpy.logging.logwriter method)": [[34, "ifm3dpy.logging.LogWriter.write"]], "logger (class in ifm3dpy.logging)": [[35, "ifm3dpy.logging.Logger"]], "__init__() (ifm3dpy.logging.logger method)": [[35, "ifm3dpy.logging.Logger.__init__"]], "log_level() (ifm3dpy.logging.logger static method)": [[35, "ifm3dpy.logging.Logger.log_level"]], "set_log_level() (ifm3dpy.logging.logger static method)": [[35, "ifm3dpy.logging.Logger.set_log_level"]], "set_writer() (ifm3dpy.logging.logger static method)": [[35, "ifm3dpy.logging.Logger.set_writer"]], "run() (in module ifm3dpy)": [[36, "ifm3dpy.run"]], "ifm3dpy.swupdater": [[37, "module-ifm3dpy.swupdater"]], "swupdater (class in ifm3dpy.swupdater)": [[38, "ifm3dpy.swupdater.SWUpdater"]], "__init__() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.__init__"]], "flash_firmware() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.flash_firmware"]], "reboot_to_productive() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.reboot_to_productive"]], "reboot_to_recovery() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.reboot_to_recovery"]], "wait_for_productive() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.wait_for_productive"]], "wait_for_recovery() (ifm3dpy.swupdater.swupdater method)": [[38, "ifm3dpy.swupdater.SWUpdater.wait_for_recovery"]]}}) \ No newline at end of file