This commit adds a new GATT characteristics on the peripheral side and wires it up to read sensor values. The central side subscribes to this new characteristics and replays sensor values on its side. Co-authored-by: Peter Johanson <peter@peterjohanson.com>
37 lines
975 B
C
37 lines
975 B
C
/*
|
|
* Copyright (c) 2020 The ZMK Contributors
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <zmk/events/sensor_event.h>
|
|
#include <zmk/sensors.h>
|
|
|
|
#define ZMK_SPLIT_RUN_BEHAVIOR_DEV_LEN 9
|
|
|
|
struct sensor_event {
|
|
uint8_t sensor_index;
|
|
|
|
uint8_t channel_data_size;
|
|
struct zmk_sensor_channel_data channel_data[ZMK_SENSOR_EVENT_MAX_CHANNELS];
|
|
} __packed;
|
|
|
|
struct zmk_split_run_behavior_data {
|
|
uint8_t position;
|
|
uint8_t state;
|
|
uint32_t param1;
|
|
uint32_t param2;
|
|
} __packed;
|
|
|
|
struct zmk_split_run_behavior_payload {
|
|
struct zmk_split_run_behavior_data data;
|
|
char behavior_dev[ZMK_SPLIT_RUN_BEHAVIOR_DEV_LEN];
|
|
} __packed;
|
|
|
|
int zmk_split_bt_position_pressed(uint8_t position);
|
|
int zmk_split_bt_position_released(uint8_t position);
|
|
int zmk_split_bt_sensor_triggered(uint8_t sensor_index,
|
|
const struct zmk_sensor_channel_data channel_data[],
|
|
size_t channel_data_size);
|