blob: 9f658bf409573170fd86abe133c03455c3cc1986 [file] [log] [blame]
Kamil Kasperczyk74c26962021-01-11 15:38:59 +01001/*
2 *
3 * Copyright (c) 2020 Project CHIP Authors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/**
19 * @file
20 * Defines platform-specific event types and data for the chip
21 * Device Layer on Zephyr platforms.
22 */
23
24#pragma once
25
26#include <platform/CHIPDeviceEvent.h>
27
28#include <bluetooth/bluetooth.h>
29
30namespace chip {
Kamil Kasperczyk74c26962021-01-11 15:38:59 +010031namespace DeviceLayer {
32
33namespace DeviceEventType {
34
35/**
36 * Enumerates Zephyr platform-specific event types that are visible to the application.
37 */
38enum PublicPlatformSpecificEventTypes
39{
40 /* None currently defined */
41};
42
43/**
44 * Enumerates Zephyr platform-specific event types that are internal to the chip Device Layer.
45 */
46enum InternalPlatformSpecificEventTypes
47{
48 kPlatformZephyrEvent = kRange_InternalPlatformSpecific,
49 kPlatformZephyrBleConnected,
50 kPlatformZephyrBleDisconnected,
51 kPlatformZephyrBleCCCWrite,
Damian Królikee6defd2021-05-20 15:48:22 +020052 kPlatformZephyrBleRXWrite,
53 kPlatformZephyrBleTXComplete,
Kamil Kasperczyk74c26962021-01-11 15:38:59 +010054 kPlatformZephyrBleOutOfBuffersEvent,
55};
56
57} // namespace DeviceEventType
58
59struct BleConnEventType
60{
61 bt_conn * BtConn;
62 uint8_t HciResult;
63};
64
65struct BleCCCWriteEventType
66{
67 bt_conn * BtConn;
68 uint16_t Value;
69};
70
Damian Królikee6defd2021-05-20 15:48:22 +020071struct BleRXWriteEventType
Kamil Kasperczyk74c26962021-01-11 15:38:59 +010072{
73 bt_conn * BtConn;
74 ::chip::System::PacketBuffer * Data;
75};
76
Damian Królikee6defd2021-05-20 15:48:22 +020077struct BleTXCompleteEventType
Kamil Kasperczyk74c26962021-01-11 15:38:59 +010078{
79 bt_conn * BtConn;
Kamil Kasperczyk74c26962021-01-11 15:38:59 +010080};
81
82/**
83 * Represents platform-specific event information for Zephyr platforms.
84 */
85struct ChipDevicePlatformEvent final
86{
87 union
88 {
89 BleConnEventType BleConnEvent;
90 BleCCCWriteEventType BleCCCWriteEvent;
Damian Królikee6defd2021-05-20 15:48:22 +020091 BleRXWriteEventType BleRXWriteEvent;
92 BleTXCompleteEventType BleTXCompleteEvent;
Kamil Kasperczyk74c26962021-01-11 15:38:59 +010093 };
94};
95
96} // namespace DeviceLayer
97} // namespace chip