# TOUCH

Access to the hardware touch sensing controller.
Can be used to create capacitive touch interfaces or for rough capacitance measurement (e.g. water level in a bottle, or proximity sensing).

Button mode is implemented for simple threshold checking with hystheresis.


## Commands

### READ (0)

Read the raw touch pad values (lower indicates higher capacitance).
Values are ordered by group and channel.

*Response:*
- u16[] - values

### SET_BIN_THR (1)

Set button mode thresholds. Value 0 = button mode disabled fro the pad.

*Request:*
- u16[] - thresholds

### DISABLE_ALL_REPORTS (2)

Set thresholds to 0, disabling the button mode for all pads.


### SET_DEBOUNCE_TIME (3)

Set debounce time for the button mode (replaces the value from unit settings)

*Request:*
- u16 - debounce time milliseconds


### SET_HYSTERESIS (4)

Set hysteresis (replaces the default value from settings)

Hysteresis is added to the threshold value for the switch-off level
(switch-off happens when the measured value is exceeded - capacitance of the pad
drops)

*Request:*
- u16 - hystheresis


### GET_CH_COUNT (10)

Get the number of enabled channels

*Response:*
- u8 - channel count



## Events

### BUTTON_CHANGE (0x00)

The binary state of some of the capacitive pads
with button mode enabled changed.

*Payload:*
- u32 - binary state of all channels (packed)
- u32 - changed / trigger-generating channels (packed)