xref: /btstack/src/ble/gatt-service/ublox_spp_service_server.h (revision 694f87bfcde765509e3743d8f664bc3d0e663a9d)
1733ac1e8SMilanka Ringwald /*
2733ac1e8SMilanka Ringwald  * Copyright (C) 2018 BlueKitchen GmbH
3733ac1e8SMilanka Ringwald  *
4733ac1e8SMilanka Ringwald  * Redistribution and use in source and binary forms, with or without
5733ac1e8SMilanka Ringwald  * modification, are permitted provided that the following conditions
6733ac1e8SMilanka Ringwald  * are met:
7733ac1e8SMilanka Ringwald  *
8733ac1e8SMilanka Ringwald  * 1. Redistributions of source code must retain the above copyright
9733ac1e8SMilanka Ringwald  *    notice, this list of conditions and the following disclaimer.
10733ac1e8SMilanka Ringwald  * 2. Redistributions in binary form must reproduce the above copyright
11733ac1e8SMilanka Ringwald  *    notice, this list of conditions and the following disclaimer in the
12733ac1e8SMilanka Ringwald  *    documentation and/or other materials provided with the distribution.
13733ac1e8SMilanka Ringwald  * 3. Neither the name of the copyright holders nor the names of
14733ac1e8SMilanka Ringwald  *    contributors may be used to endorse or promote products derived
15733ac1e8SMilanka Ringwald  *    from this software without specific prior written permission.
16733ac1e8SMilanka Ringwald  * 4. Any redistribution, use, or modification is done solely for
17733ac1e8SMilanka Ringwald  *    personal benefit and not for any commercial purpose or for
18733ac1e8SMilanka Ringwald  *    monetary gain.
19733ac1e8SMilanka Ringwald  *
20733ac1e8SMilanka Ringwald  * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS
21733ac1e8SMilanka Ringwald  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22733ac1e8SMilanka Ringwald  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23733ac1e8SMilanka Ringwald  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS
24733ac1e8SMilanka Ringwald  * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25733ac1e8SMilanka Ringwald  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26733ac1e8SMilanka Ringwald  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
27733ac1e8SMilanka Ringwald  * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28733ac1e8SMilanka Ringwald  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29733ac1e8SMilanka Ringwald  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
30733ac1e8SMilanka Ringwald  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31733ac1e8SMilanka Ringwald  * SUCH DAMAGE.
32733ac1e8SMilanka Ringwald  *
33733ac1e8SMilanka Ringwald  * Please inquire about commercial licensing options at
34733ac1e8SMilanka Ringwald  * [email protected]
35733ac1e8SMilanka Ringwald  *
36733ac1e8SMilanka Ringwald  */
3780e33422SMatthias Ringwald #ifndef UBLOX_SPP_H
3880e33422SMatthias Ringwald #define UBLOX_SPP_H
39733ac1e8SMilanka Ringwald 
40733ac1e8SMilanka Ringwald #include <stdint.h>
41733ac1e8SMilanka Ringwald #include "bluetooth.h"
42733ac1e8SMilanka Ringwald #include "btstack_defines.h"
43733ac1e8SMilanka Ringwald 
44733ac1e8SMilanka Ringwald #if defined __cplusplus
45733ac1e8SMilanka Ringwald extern "C" {
46733ac1e8SMilanka Ringwald #endif
47733ac1e8SMilanka Ringwald 
48733ac1e8SMilanka Ringwald /* API_START */
49733ac1e8SMilanka Ringwald 
50733ac1e8SMilanka Ringwald /**
51733ac1e8SMilanka Ringwald  * Implementation of the ublox SPP-like profile
52733ac1e8SMilanka Ringwald  *
53733ac1e8SMilanka Ringwald  * To use with your application, add '#import <ublox_spp_service.gatt' to your .gatt file
54733ac1e8SMilanka Ringwald  * and call all functions below. All strings and blobs need to stay valid after calling the functions.
55733ac1e8SMilanka Ringwald  */
56733ac1e8SMilanka Ringwald 
57733ac1e8SMilanka Ringwald /**
58733ac1e8SMilanka Ringwald  * @brief Init ublox SPP Service Server with ATT DB
59*694f87bfSMatthias Ringwald  * @param packet_handler for events and tx data from peer as RFCOMM_DATA_PACKET
60733ac1e8SMilanka Ringwald  */
61*694f87bfSMatthias Ringwald void ublox_spp_service_server_init(btstack_packet_handler_t packet_handler);
62733ac1e8SMilanka Ringwald 
63733ac1e8SMilanka Ringwald /**
64733ac1e8SMilanka Ringwald  * @brief Queue send request. When called, one packet can be send via ublox_spp_service_send below
65733ac1e8SMilanka Ringwald  * @param request
66733ac1e8SMilanka Ringwald  * @param con_handle
67733ac1e8SMilanka Ringwald  */
68733ac1e8SMilanka Ringwald void ublox_spp_service_server_request_can_send_now(btstack_context_callback_registration_t * request, hci_con_handle_t con_handle);
69733ac1e8SMilanka Ringwald 
70733ac1e8SMilanka Ringwald /**
71733ac1e8SMilanka Ringwald  * @brief Send data
72733ac1e8SMilanka Ringwald  * @param con_handle
73733ac1e8SMilanka Ringwald  * @param data
74733ac1e8SMilanka Ringwald  * @param size
75733ac1e8SMilanka Ringwald  */
76733ac1e8SMilanka Ringwald int ublox_spp_service_server_send(hci_con_handle_t con_handle, const uint8_t * data, uint16_t size);
77733ac1e8SMilanka Ringwald 
78733ac1e8SMilanka Ringwald /* API_END */
79733ac1e8SMilanka Ringwald 
80733ac1e8SMilanka Ringwald #if defined __cplusplus
81733ac1e8SMilanka Ringwald }
82733ac1e8SMilanka Ringwald #endif
83733ac1e8SMilanka Ringwald 
84733ac1e8SMilanka Ringwald #endif
85733ac1e8SMilanka Ringwald 
86