roboglia.base.RegisterWithThreshold

class RegisterWithThreshold(factor=1.0, threshold=None, **kwargs)[source]

Bases: roboglia.base.register.BaseRegister

A register with an external representation that is represented by a threshold between negative and positive values:

if internal >= threshold:
    external = (internal - threshold) / factor
else:
    external = - internal / factor

and for conversion from external to internal:

if external >= 0:
    internal = external * factor + threshold
else:
    internal = - external * factor

The RegisterWithThreshold inherits all the paramters from BaseRegister and in addition includes the following specific parameters that are used when converting the data from internal to external format.

Parameters
  • factor (float) – A factor used for conversion. Defaults to 1.0

  • threshold (int) – A threshold that separates the positive from negative values. Must be supplied.

  • Raises – KeyError: if any of the mandatory fields are not proviced ValueError: if value provided are wrong or the wrong type

__init__(factor=1.0, threshold=None, **kwargs)[source]

Initialize self. See help(type(self)) for accurate signature.

property factor

Conversion factor.

property threshold

The threshold for conversion.

value_to_external(value)[source]

The external representation of the register’s value.

Performs the translation of the value according to:

if value < threshold:
    external = value / factor
else:
    external = (threshold - value) / factor
__str__()

Representation of the register [name]: value.

property access

Register’s access mode.

property address

The register’s address in the device.

property clone

Indicates the register is a clone of another.

property default

The register’s default value in internal format.

property device

The device the register belongs to.

property int_value

Internal value of register, if a clone return the value of the main register.

property max_ext

The register’s maximum value in external format.

property maxim

The register’s maximum value in internal format.

property min_ext

The register’s minimum value in external format.

property minim

The register’s minimum value in internal format.

property name

Register’s name.

property order

Indicates the order of the data representartion; low-high (LH) or high-low (HL)

property range

Tuple with (minim, maxim) values in internal format.

property range_ext

Tuple with (minim, maxim) values in external format.

read()

Performs the actual reading of the internal value of the register from the device. Calls the device’s method to read the value of register.

property size

The regster’s size in Bytes.

property sync

Register is subject to a sync loop update.

property value

Provides the value of the register in external format. If the register is not marked for sync then it requests the device to perform a read in order to refresh the content of the register.

Returns

The value of the register in the external format. It invokes value_to_external() which can be overridden by subclasses to provide different representations of the register’s value (hence the any return type).

Return type

any

value_to_internal(value)[source]

The internal representation of the register’s value.

Performs the translation of the value according to:

if value > 0:
    internal = value * factor
else:
    internal = (-value) * factor + threshold
property word

Indicates if the register is an 16 bit register (True) or an 8 bit register.

write()

Performs the actual writing of the internal value of the register to the device. Calls the device’s method to write the value of register.