Requirements
Licence
How LumiScan Area Detector is licensed depends on where you bought it and where it runs:
| Bought from | Runs on | Licensing |
|---|---|---|
HD Vision Systems |
Windows 11 or Ubuntu 24.04 |
The licence is held on your LumiScan Key. It is a one-time purchase and needs no renewal. |
ctrlX Store |
Windows 11 |
The licence is held in ctrlX WORKS. The LumiScan Key is required in addition; it protects the software against reverse engineering. |
ctrlX Store |
ctrlX OS (ctrlX CORE or IPC) |
ctrlX licence |
Each device on which LumiScan Area Detector runs at the same time needs its own LumiScan Key. Keys can be exchanged between devices.
How to install CodeMeter Runtime and how to request, renew and move licences is described in LumiScan Licensing.
On ctrlX OS, the application shuts down shortly after starting if the licence is missing; the reason is written to the system log.
A platform and its Data Layer
| Platform | Data Layer |
|---|---|
ctrlX OS (ctrlX CORE or ctrlX IPC) |
ctrlX Data Layer, provided by ctrlX OS |
a PC with Windows 11 or Ubuntu 24.04 |
LumiScan Keryx, the Data Layer of HD Vision Systems for PCs |
On ctrlX OS there is nothing to install for the Data Layer.
On a PC the application starts the LumiScan Keryx broker when none is running; installing and setting up LumiScan Keryx is described in LumiScan Keryx on a PC.
An image source on the same device
The application reads its images from another application’s Data Layer image node. That application must run on the same device as the Area Detector - the same ctrlX CORE or ctrlX IPC, or the same PC. Remote Data Layer access is not supported.
In practice this is LumiScan Cam Driver, but any application works as long as its image node provides these four children:
| Node | Type | Description |
|---|---|---|
|
array of uint8 |
Raw, uncompressed pixel data |
|
uint64 |
Image width in pixels |
|
uint64 |
Image height in pixels |
|
string |
GenICam pixel format name |
Supported pixel formats
Mono8, Mono12, RGB8, RGB12, BGR8, BGR12, BayerGR8, BayerGR12, BayerRG8,
BayerRG12.
Bayer images are converted to colour and 12-bit images are scaled down to 8 bit before detection, so a threshold tuned on one format still applies to another.
Any other pixel format is rejected with status code -3.
Storage
The application stores nothing but its module list and their settings - a few kilobytes of JSON in the application’s configuration directory. On ctrlX OS that directory is part of the active solution. Where it is on each platform is listed under Configuration file. There is no reference image to keep, so no storage needs planning for.
The image stream (experimental) adds one folder beside them, settings-history/: one small JSON file
for each settings hash a module publishes, never deleted. See
Processing an Image Stream.
Timing
Detection is synchronous: the call to execute returns when the search has finished. How long that
takes depends on the image size and on the mode. Measuring (input/method) is a threshold and one
connected-components pass, so it scales with the image. Estimating repeats the detection once per
threshold level, so it scales with the image and with how many levels method-specific/circle/threshold/step produces -
which makes method-specific/circle/threshold/step the setting to widen first when a cycle is too slow.
See Tuning the Detection.