Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Some properties are known in advance and will not change at run-time. Examples are positionUnits, or resolutionBest. 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, the positionUnits falls into this "set-it-and-forget-it" category.
  • Some properties 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.

Other notes:

  • In some cases, a property "does not apply" to a device. accelerationRaw, for example, does not apply to the MP285. To make MP285 a concrete class, {{accelerationRaw]} must be defined somewhere in a properties block; however, for the MP285, the property doesn't do anything (its get-method always returns NaN, and there is no set-method).

...