Diagnostic retrieval

The diagnostic information can be simultaneously retrieved using different tools: iVA, ifm3d API, etc.

With the ifm Vision Assistant

Diagnosis information can be monitored via the ifm Vision Assistant (iVA) since version 2.6. For an explanation on how to get this information see the iVA documentation.

With ifm3d or ifm3dpy

The ifm3d / ifm3dpy library provide functions to pull diagnostic data directly from the device.

Diagnostic information can be monitored via two separate ways inside the API:

  1. Via polling the complete diagnostic information JSON

  2. Via listening asynchronously for diagnostic changes

Option 1 gives the full set of information, or a filtered subset as specified by the user:

from ifm3dpy.device import O3R
o3r = O3R()
o3r.get_diagnostic()
o3r.get_diagnostic_filtered({"state":"active"})

Note

See the O3R related methods: get_diagnostic and get_diagnostic_filtered.

Option 2 provides diagnostic updates asynchronously as they occur. For this purpose, a dedicated PCIC port (50009) is available.

from ifm3dpy.device import O3R
from ifm3dpy.framegrabber import FrameGrabber
o3r = O3R()
fg = FrameGrabber(o3r, 50009)
fg.on_async_error(lambda id, JSON: print(f"Got error {id} with content: {JSON}"))
fg.start([])

Note

See the framegrabber related methods: on_aync_error and on_async_notification.

Additional debugging information

When experiencing software bugs or crashes, providing the output of the systemD journalctl command is useful for debugging. Save it with the following commands:

$ ssh oem@192.168.0.69
o3r-vpu-c0:~$ journalctl > log.txt

Alternatively one can retrieve this information via the API’s CLI:

$ ifm3d trace

Usage:
  ifm3d [<global options>] trace [<trace options>]

 global options:
  -h, --help             Produce this help message and exit
      --ip arg           IP address of the sensor (default: 192.168.0.69)
      --xmlrpc-port arg  XMLRPC port of the sensor (default: 80)
      --password arg     Password for establishing an edit-session with the
                         sensor (default: )

 trace options:
  -l, --limit arg  Limit the amount of trace log messages printed. (default:
                   100)

Attach these logs to the issue created on GitLab for the specific issue.