FAQ

Short answers to common questions and error messages for LumiScan DMC Reader. Each entry links to the page with the details.

Search this page for the exact error message. Each entry has a fixed anchor (for example #faq-failed-run).

Requirements and setup

Does the reader run on ctrlX OS and on a PC?

Answer

Yes. On ctrlX OS (ctrlX CORE or ctrlX IPC) it uses the ctrlX Data Layer; on a PC (Windows 11 or Ubuntu 24.04) it uses LumiScan Keryx, the Data Layer of HD Vision Systems for PCs. The node addresses, types and behaviour are the same on both, so a program written against one works against the other.

More

Data Layer Reference, ctrlX Data Layer and LumiScan Keryx

Which codes does the reader read?

Answer

It reads ECC 200 Data Matrix codes, the square-module standard used for part marking and direct part marking. Every code found in the image is reported; there is no limit of one per run. No template, reference picture, training step or configuration is needed: you give the reader the address of an image and call execute.

More

Description

Which image source does the reader need?

Answer

The reader does not talk to a camera itself. It reads the image node named in input/image-address, published by another application: on ctrlX OS one on the same device (remote Data Layer access is not supported), on a PC one connected to the same LumiScan Keryx. Normally this is LumiScan Cam Driver, for example hdvisionsystems/lumiscan-cam-driver/camera1/output/image. The node must provide data (raw, uncompressed uint8 pixel data), width, height and pixel-type (GenICam pixel format name). Give the address of the image node itself, not of its data child: the reader appends /data, /width, /height and /pixel-type.

More

Requirements, Reading a Code

Which pixel formats are supported?

Answer

Mono8, Mono12, RGB8, RGB12, BGR8, BGR12, Bayer_GR8, Bayer_RG8, Bayer_GR12 and Bayer_RG12. The name is matched without regard to case, and the underscore may be left out of the Bayer names (BayerGR8 and bayer_gr8 are the same format). Bayer images are converted to colour before the search. Any other pixel format is refused, and the run produces no result. The image data must be at least width x height x bytes-per-pixel bytes for the declared format; a shorter buffer is refused.

More

Requirements

Reading codes

How do I read a code?

Answer

All paths are relative to hdvisionsystems/lumiscan-dmc-reader.

  • Write the address of the image node to input/image-address. It is remembered, so set it again only when the image source changes.

  • Write an empty value to the execute method. The call is blocking and returns when the search has finished.

  • Read output/results: it holds every Data Matrix code found in that image.

More

Reading a Code

What does a result entry contain?

Answer

output/results is a flatbuffer (CodeDetectResultArray.results) with one entry per code: center (a Point2f with x and y in image pixels), text (the decoded contents), score (how confident the read is) and polygons (the corner points outlining the code). On ctrlX OS, over the ctrlX REST API, the numbers come back quoted, as strings, so parse them as numbers. center and text are always present; polygons may be absent for an entry, which means no outline was given, not an error.

More

The Result

How do I know whether a run failed? There is no status-code node.

Cause

This reader publishes no status-code or status-text node and echoes no identifier. A run fails if the image cannot be read: no address set, an address that does not resolve, a missing or short data buffer, or an unsupported pixel format. A failed run leaves output/results untouched, still holding the previous run’s codes.

Solution

Check the application log (on ctrlX OS, the system log), where the reason is written, or read output/results before and after the run and compare.

More

Reading a Code, Data Layer Reference

Can I tune the detection, set a region of interest or create modules?

Answer

No, not in this version. input/parameter carries no settings (its DetectionParameters table is empty), so writing to it changes nothing; the image stream does not read it either. There is no region of interest: every run searches the whole image. There are no modules: one reader per installation, at a single base path. There is also no result image; use LumiScan Cockpit to see the codes.

More

Data Layer Reference

How can I see the codes drawn on the image?

Answer

Open LumiScan Cockpit. It lists the reader as a view named datamatrix-code and draws a rectangle around each code, labelled with the decoded text and the score. A code that was located but not decoded has no text and is labelled with its score alone.

More

The Result

How long does a read take?

Answer

Reading is synchronous: the write to execute returns when the search has finished. How long that takes depends on the image size, since the whole image is searched on every run.

More

Requirements

Image stream (experimental)

Can the reader read every frame of a camera stream?

Answer

Yes, as an experimental function. The reader subscribes to the stream of one camera of LumiScan Cam Driver and reads every Data Matrix code in each frame as it arrives, exactly as execute reads an image. All paths are relative to hdvisionsystems/lumiscan-dmc-reader.

  • Write the camera’s stream folder, for example hdvisionsystems/lumiscan-cam-driver/camera1/control/publish/output/stream, to control/subscribe/input/address.

  • Subscribe to control/subscribe/output/stream/result: one result per frame, with the frame’s lineage.

  • Set control/subscribe/input/enable to true and write to control/subscribe/execute. Writing an input alone changes nothing.

More

Reading Codes on an Image Stream, Streams

Where does the reader keep its stream settings?

Answer

In dmc-reader.json in the application’s configuration directory: on ctrlX OS /var/snap/rexroth-solutions/common/solutions/activeConfiguration/lumiscan-dmc-reader, on Windows C:\ProgramData\HD Vision Systems GmbH\LumiScan Vision Suite\lumiscan-dmc-reader\etc\lumiscan-dmc-reader (or %APP_RESOURCE_DIR%\etc\lumiscan-dmc-reader). control/subscribe/execute and control/unsubscribe/execute save what they apply there, and after a restart a reader that streamed streams again at once. On a PC, lumiscan-dmc-reader --generate-settings <folder> writes an example to start from.

More

Kept in the settings file

Licensing and support

Standard or Advanced licence - which one does the reader use?

Answer

If an Advanced licence is available, the application uses it automatically. If none is available, it runs with Standard functions rather than refusing to start.

More

Requirements, Licensing FAQ

Which licence do I need?

Answer

One licence seat covers the reader, since there is one reader per installation. Purchase routes:

  • Bought from HD Vision Systems: the licence is on a LumiScan Key (Windows 11 or Ubuntu 24.04). One LumiScan Key is needed per device running the software at the same time; keys can be exchanged between devices.

  • Bought in the ctrlX Store for Windows 11: ctrlX WORKS plus a LumiScan Key.

  • Bought in the ctrlX Store for ctrlX OS (ctrlX CORE or IPC): a ctrlX licence, no key.

More

Requirements, Licensing FAQ

Where can I find more answers or get support?

Answer

See the site-wide LumiScan FAQ. Contact HD Vision Systems customer success at customer.success@hdvisionsystems.com or +49 6221 6721905; for licences, licenses@hdvisionsystems.com.

More

Licensing FAQ