xref: /btstack/test/mock/mock_gatt_client.h (revision 7da2c1bab68a29fd48599d458688ae8a151eb5e7)
10f7fd6c1SMilanka Ringwald /*
20f7fd6c1SMilanka Ringwald  * Copyright (C) 2021 BlueKitchen GmbH
30f7fd6c1SMilanka Ringwald  *
40f7fd6c1SMilanka Ringwald  * Redistribution and use in source and binary forms, with or without
50f7fd6c1SMilanka Ringwald  * modification, are permitted provided that the following conditions
60f7fd6c1SMilanka Ringwald  * are met:
70f7fd6c1SMilanka Ringwald  *
80f7fd6c1SMilanka Ringwald  * 1. Redistributions of source code must retain the above copyright
90f7fd6c1SMilanka Ringwald  *    notice, this list of conditions and the following disclaimer.
100f7fd6c1SMilanka Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
110f7fd6c1SMilanka Ringwald  *    notice, this list of conditions and the following disclaimer in the
120f7fd6c1SMilanka Ringwald  *    documentation and/or other materials provided with the distribution.
130f7fd6c1SMilanka Ringwald  * 3. Neither the name of the copyright holders nor the names of
140f7fd6c1SMilanka Ringwald  *    contributors may be used to endorse or promote products derived
150f7fd6c1SMilanka Ringwald  *    from this software without specific prior written permission.
160f7fd6c1SMilanka Ringwald  * 4. Any redistribution, use, or modification is done solely for
170f7fd6c1SMilanka Ringwald  *    personal benefit and not for any commercial purpose or for
180f7fd6c1SMilanka Ringwald  *    monetary gain.
190f7fd6c1SMilanka Ringwald  *
200f7fd6c1SMilanka Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
210f7fd6c1SMilanka Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
220f7fd6c1SMilanka Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
230f7fd6c1SMilanka Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
240f7fd6c1SMilanka Ringwald  * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
250f7fd6c1SMilanka Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
260f7fd6c1SMilanka Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
270f7fd6c1SMilanka Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
280f7fd6c1SMilanka Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
290f7fd6c1SMilanka Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
300f7fd6c1SMilanka Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
310f7fd6c1SMilanka Ringwald  * SUCH DAMAGE.
320f7fd6c1SMilanka Ringwald  *
330f7fd6c1SMilanka Ringwald  * Please inquire about commercial licensing options at
340f7fd6c1SMilanka Ringwald  * [email protected]
350f7fd6c1SMilanka Ringwald  *
360f7fd6c1SMilanka Ringwald  */
370f7fd6c1SMilanka Ringwald #ifndef MOCK_GATT_CLIENT_H
380f7fd6c1SMilanka Ringwald #define MOCK_GATT_CLIENT_H
390f7fd6c1SMilanka Ringwald 
400f7fd6c1SMilanka Ringwald #include <stdint.h>
410f7fd6c1SMilanka Ringwald 
420f7fd6c1SMilanka Ringwald #if defined __cplusplus
430f7fd6c1SMilanka Ringwald extern "C" {
440f7fd6c1SMilanka Ringwald #endif
450f7fd6c1SMilanka Ringwald 
460f7fd6c1SMilanka Ringwald #include "ble/gatt_client.h"
470f7fd6c1SMilanka Ringwald 
48*7da2c1baSMilanka Ringwald typedef struct {
49*7da2c1baSMilanka Ringwald     btstack_linked_item_t    item;
50*7da2c1baSMilanka Ringwald     // uint16_t start_group_handle;
51*7da2c1baSMilanka Ringwald     // uint16_t end_group_handle;
52*7da2c1baSMilanka Ringwald     uint16_t uuid16;
53*7da2c1baSMilanka Ringwald     // uint8_t  uuid128[16];
54*7da2c1baSMilanka Ringwald     btstack_linked_list_t characteristics;
55*7da2c1baSMilanka Ringwald } mock_gatt_client_service_t;
56*7da2c1baSMilanka Ringwald 
57*7da2c1baSMilanka Ringwald typedef struct {
58*7da2c1baSMilanka Ringwald     btstack_linked_item_t    item;
59*7da2c1baSMilanka Ringwald     // uint16_t start_handle;
60*7da2c1baSMilanka Ringwald     uint16_t value_handle;
61*7da2c1baSMilanka Ringwald     // uint16_t end_handle;
62*7da2c1baSMilanka Ringwald     // uint16_t properties;
63*7da2c1baSMilanka Ringwald     uint16_t uuid16;
64*7da2c1baSMilanka Ringwald     // uint8_t  uuid128[16];
65*7da2c1baSMilanka Ringwald     btstack_linked_list_t descriptors;
66*7da2c1baSMilanka Ringwald } mock_gatt_client_characteristic_t;
67*7da2c1baSMilanka Ringwald 
68*7da2c1baSMilanka Ringwald typedef struct {
69*7da2c1baSMilanka Ringwald     btstack_linked_item_t    item;
70*7da2c1baSMilanka Ringwald     // uint16_t handle;
71*7da2c1baSMilanka Ringwald     uint16_t uuid16;
72*7da2c1baSMilanka Ringwald     // uint8_t  uuid128[16];
73*7da2c1baSMilanka Ringwald } mock_gatt_client_characteristic_descriptor_t;
74*7da2c1baSMilanka Ringwald 
75*7da2c1baSMilanka Ringwald 
760f7fd6c1SMilanka Ringwald void mock_gatt_client_reset(void);
770f7fd6c1SMilanka Ringwald 
78*7da2c1baSMilanka Ringwald void mock_gatt_client_add_primary_service_uuid16(uint16_t service_uuid);
79*7da2c1baSMilanka Ringwald void mock_gatt_client_add_characteristic_uuid16(uint16_t characteristic_uuid);
80*7da2c1baSMilanka Ringwald void mock_gatt_client_add_characteristic_descriptor_uuid16(uint16_t descriptor_uuid);
81*7da2c1baSMilanka Ringwald 
82af770404SMilanka Ringwald void mock_gatt_client_run(void);
830f7fd6c1SMilanka Ringwald 
840f7fd6c1SMilanka Ringwald #if defined __cplusplus
850f7fd6c1SMilanka Ringwald }
860f7fd6c1SMilanka Ringwald #endif
870f7fd6c1SMilanka Ringwald 
880f7fd6c1SMilanka Ringwald #endif
890f7fd6c1SMilanka Ringwald 
90