Modbus - Hall Effect Bricklet

This is the description of the Modbus protocol for the Hall Effect Bricklet. General information and technical specifications for the Hall Effect Bricklet are summarized in its hardware description.

API

A general description of the Modbus protocol structure can be found here.

Basic Functions

BrickletHallEffect.get_value
Function ID:
  • 1
Request:
  • empty payload
Response:
  • value – Type: bool

Returns true if a magnetic field of 3.5 millitesla or greater is detected.

BrickletHallEffect.get_edge_count
Function ID:
  • 2
Request:
  • reset_counter – Type: bool
Response:
  • count – Type: uint32, Range: [0 to 232 - 1]

Returns the current value of the edge counter. You can configure edge type (rising, falling, both) that is counted with set_edge_count_config.

If you set the reset counter to true, the count is set back to 0 directly after it is read.

Advanced Functions

BrickletHallEffect.set_edge_count_config
Function ID:
  • 3
Request:
  • edge_type – Type: uint8, Range: See meanings, Default: 0
  • debounce – Type: uint8, Unit: 1 ms, Range: [0 to 255], Default: 100
Response:
  • no response

The edge type parameter configures if rising edges, falling edges or both are counted. Possible edge types are:

  • 0 = rising
  • 1 = falling
  • 2 = both

A magnetic field of 3.5 millitesla or greater causes a falling edge and a magnetic field of 2.5 millitesla or smaller causes a rising edge.

If a magnet comes near the Bricklet the signal goes low (falling edge), if a magnet is removed from the vicinity the signal goes high (rising edge).

Configuring an edge counter resets its value to 0.

If you don't know what any of this means, just leave it at default. The default configuration is very likely OK for you.

The following meanings are defined for the elements of this function:

For edge_type:

  • 0 = Rising
  • 1 = Falling
  • 2 = Both
BrickletHallEffect.get_edge_count_config
Function ID:
  • 4
Request:
  • empty payload
Response:
  • edge_type – Type: uint8, Range: See meanings, Default: 0
  • debounce – Type: uint8, Unit: 1 ms, Range: [0 to 255], Default: 100

Returns the edge type and debounce time as set by set_edge_count_config.

The following meanings are defined for the elements of this function:

For edge_type:

  • 0 = Rising
  • 1 = Falling
  • 2 = Both
BrickletHallEffect.get_identity
Function ID:
  • 255
Request:
  • empty payload
Response:
  • uid – Type: char[8]
  • connected_uid – Type: char[8]
  • position – Type: char, Range: ['a' to 'h', 'z']
  • hardware_version – Type: uint8[3]
    • 0: major – Type: uint8, Range: [0 to 255]
    • 1: minor – Type: uint8, Range: [0 to 255]
    • 2: revision – Type: uint8, Range: [0 to 255]
  • firmware_version – Type: uint8[3]
    • 0: major – Type: uint8, Range: [0 to 255]
    • 1: minor – Type: uint8, Range: [0 to 255]
    • 2: revision – Type: uint8, Range: [0 to 255]
  • device_identifier – Type: uint16, Range: [0 to 216 - 1]

Returns the UID, the UID where the Bricklet is connected to, the position, the hardware and firmware version as well as the device identifier.

The position can be 'a', 'b', 'c', 'd', 'e', 'f', 'g' or 'h' (Bricklet Port). A Bricklet connected to an Isolator Bricklet is always at position 'z'.

The device identifier numbers can be found here

Callback Configuration Functions

BrickletHallEffect.set_edge_interrupt
Function ID:
  • 5
Request:
  • edges – Type: uint32, Range: [0 to 232 - 1], Default: 0
Response:
  • no response

Sets the number of edges until an interrupt is invoked.

If edges is set to n, an interrupt is invoked for every n-th detected edge.

If edges is set to 0, the interrupt is disabled.

BrickletHallEffect.get_edge_interrupt
Function ID:
  • 6
Request:
  • empty payload
Response:
  • edges – Type: uint32, Range: [0 to 232 - 1], Default: 0

Returns the edges as set by set_edge_interrupt.

BrickletHallEffect.set_edge_count_callback_period
Function ID:
  • 7
Request:
  • period – Type: uint32, Unit: 1 ms, Range: [0 to 232 - 1], Default: 0
Response:
  • no response

Sets the period with which the CALLBACK_EDGE_COUNT callback is triggered periodically. A value of 0 turns the callback off.

The CALLBACK_EDGE_COUNT callback is only triggered if the edge count has changed since the last triggering.

BrickletHallEffect.get_edge_count_callback_period
Function ID:
  • 8
Request:
  • empty payload
Response:
  • period – Type: uint32, Unit: 1 ms, Range: [0 to 232 - 1], Default: 0

Returns the period as set by set_edge_count_callback_period.

Callbacks

BrickletHallEffect.CALLBACK_EDGE_COUNT
Function ID:
  • 10
Response:
  • count – Type: uint32, Range: [0 to 232 - 1]
  • value – Type: bool

This callback is triggered periodically with the period that is set by set_edge_count_callback_period. The response values are the current count and the current value (see get_value and get_edge_count).

The CALLBACK_EDGE_COUNT callback is only triggered if the count or value changed since the last triggering.