...
- Some properties are known in advance and will not change at run-time. Examples are
positionUnits
, orresolutionBest
. These properties are implemented as regular (non-Dependent) properties, and are given default values directly in the properties block. In some cases, it may make sense to allow these properties to be optionally constructor-initialized, eg if their value depends on a firmware version which can vary from device to device. For the MP285, thepositionUnits
falls into this "set-it-and-forget-it" category. - Some properties do change at runtime, and involve read-only queries to the hardware. An example is
positionAbsoluteRaw
. These properties are implemented as Dependent properties, with get-methods that send the appropriate query commands to the hardware. - Some properties not only change at runtime, but can be set to new values, as well as queried. An example of such a property is
velocity
, implemented as a Dependent property with both a set-method and a get-method. The set-method sends the appropriate set-command (and value-to-be-set) to the hardware to set the value on the device.
...
Minimal Required Implementation
...
Other notes
...
- In some cases, a property "does not apply" to a device. In the same vein, ScanImage does not utilize all available LSC properties. See #Minimal Implementation for ScanImage below.
At the current time, the abstract properties required for ScanImage operation are:
- nonblockingMoveCompletedDetectionStrategy
- positionAbsoluteRaw (get only)
- isMoving (get only)
- positionDeviceUnits (get only)
- resolution (get only)
...