forked from kofal.net/zmk
* UART and BLE/GATT transports for a protobuf encoded RPC request/response protocol. * Custom framing protocol is used to frame a give message. * Requests/responses are divided into major "subsystems" which handle requests and create response messages. * Notification support, including mapping local events to RPC notifications by a given subsystem. * Meta responses for "no response" and "unlock needed". * Initial basic lock state support in a new core section, and allow specifying if a given RPC callback requires unlocked state or not. * Add behavior subsystem with full metadata support and examples of using callback to serialize a repeated field without extra stack space needed. Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
15 lines
769 B
CMake
15 lines
769 B
CMake
# Copyright (c) 2024 The ZMK Contributors
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
zephyr_linker_sources(DATA_SECTIONS ../../include/linker/zmk-rpc-subsystems.ld)
|
|
zephyr_linker_sources(SECTIONS ../../include/linker/zmk-rpc-subsystem-handlers.ld)
|
|
zephyr_linker_sources(SECTIONS ../../include/linker/zmk-rpc-event-mappers.ld)
|
|
zephyr_linker_sources(SECTIONS ../../include/linker/zmk-rpc-transport.ld)
|
|
|
|
target_sources(app PRIVATE msg_framing.c)
|
|
target_sources(app PRIVATE rpc.c)
|
|
target_sources(app PRIVATE core.c)
|
|
target_sources(app PRIVATE behavior_subsystem.c)
|
|
target_sources(app PRIVATE core_subsystem.c)
|
|
target_sources_ifdef(CONFIG_ZMK_STUDIO_TRANSPORT_UART app PRIVATE uart_rpc_transport.c)
|
|
target_sources_ifdef(CONFIG_ZMK_STUDIO_TRANSPORT_BLE app PRIVATE gatt_rpc_transport.c) |