pinebuds/services/ibrt_ota/inc/ota_spp.h
2022-08-15 17:20:27 +08:00

60 lines
1.8 KiB
C

/***************************************************************************
*
* Copyright 2015-2019 BES.
* All rights reserved. All unpublished rights reserved.
*
* No part of this work may be used or reproduced in any form or by any
* means, or stored in a database or retrieval system, without prior written
* permission of BES.
*
* Use of this work is governed by a license granted by BES.
* This work contains confidential and proprietary information of
* BES. which is protected by copyright, trade secret,
* trademark and other intellectual property rights.
*
****************************************************************************/
#ifndef __APP_SPP_OTA_H__
#define __APP_SPP_OTA_H__
#include "spp_api.h"
#include "sdp_api.h"
#include "ota_control.h"
#if defined(__3M_PACK__)
#define L2CAP_MTU 980
#else
#define L2CAP_MTU 672
#endif
#define OTA_SPP_MAX_PACKET_SIZE L2CAP_MTU
#define OTA_SPP_MAX_PACKET_NUM 5
#define OTA_SPP_RECV_BUFFER_SIZE L2CAP_MTU
#define OTA_SPP_TX_BUF_SIZE (OTA_SPP_MAX_PACKET_SIZE*OTA_SPP_MAX_PACKET_NUM)
#define APP_OTA_DATA_CMD_TIME_OUT_IN_MS 5000
typedef struct {
uint8_t otaSppTxBuf[OTA_SPP_TX_BUF_SIZE];
uint8_t otaSppRxBuf[OTA_SPP_RECV_BUFFER_SIZE];
btif_sdp_record_t *ota_sdp_record;
spp_service *otaSppService;
spp_device *ota_spp_dev;
bool permissionToApply;
} OtaContext;
typedef void(*app_spp_ota_tx_done_t)(void);
void app_spp_ota_register_tx_done(app_spp_ota_tx_done_t callback);
void app_spp_ota_init(void);
void app_ota_send_cmd_via_spp(uint8_t* ptrData, uint16_t length);
void app_ota_send_data_via_spp(uint8_t* ptrData, uint32_t length);
uint16_t app_spp_ota_tx_buf_size(void);
void app_spp_ota_init_tx_buf(uint8_t* ptr);
uint8_t* app_spp_ota_fill_data_into_tx_buf(uint8_t* ptrData, uint32_t dataLen);
void ota_disconnect(void);
#endif