Class Channel

extends Object
A pulse-counter channel.

Class summary


constructor pin/any --on-positive-edge/int= --on-negative-edge/int= --control-pin/any= --when-control-low/int= --when-control-high/int=
Constructs a pulse-counter channel description for the given pin.

Constructors

constructor pin/any --on-positive-edge/int=EDGE-INCREMENT --on-negative-edge/int=EDGE-HOLD --control-pin/any=null --when-control-low/int=CONTROL-KEEP --when-control-high/int=CONTROL-KEEP
Constructs a pulse-counter channel description for the given pin.
The pin and control-pin are GPIO numbers. The pins are reserved when the channel is added to a Unit and released again when the unit is closed.
Passing a gpio.Pin is deprecated; provide the integer GPIO number instead. The gpio.Pin form will be removed in a future release.

Statics

The control pin holds the value of the channel.
No changes to the Unit.value happen when this control mode is active.

The control pin inverses the effect of the mode of operation.
If the channel's pin was incrementing on an edge, it now decrements. If it was decrementing it now increments.

The control pin does not affect the mode of operation for the selected state.

The channel decrements the Unit.value when the edge change occurs.

The channel does nothing, when the edge change occurs.

The channel increments the Unit.value when the edge change occurs.

Methods

operator == other/any -> bool
Whether this object is equal to the other.
By default, identical is used for equality.
Inheritance
Classes overwrite this operator to get an equality specific to their needs. Equality operators often compare the type and field contents. For example:

class Pin:
  number/int

  constructor .number:

  operator == other:
    if other is not Pin: return false
    return number == other.number
A class doesn't have to follow the above format, but it must keep the operator in sync with any hash-code method. That is, if a class has a hash-code member, then the equality and hash-code must agree. If two instances are equal (a == b), then their hash codes must also be equal (a.hash-code == b.hash-code).

Stringifies this object.
Inheritance
Objects that need a human-friendly string representation should overwrite this method. The default string is based on the internal class-ID.