Files
kunlun/driver/extern/bluetooth/inc/iot_bt_ext_protocol.h
2024-09-28 14:24:04 +08:00

97 lines
2.9 KiB
C
Executable File

/****************************************************************************
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
be copied by any method or incorporated into another program without
the express written consent of Aerospace C.Power. This Information or any portion
thereof remains the property of Aerospace C.Power. The Information contained herein
is believed to be accurate and Aerospace C.Power assumes no responsibility or
liability for its use in any way and conveys no license or title under
any patent or copyright and makes no representation or warranty that this
Information is free from patent or copyright infringement.
****************************************************************************/
#ifndef _IOT_BT_EXT_PROTOCOL_H_
#define _IOT_BT_EXT_PROTOCOL_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "os_types_api.h"
#include "os_utils_api.h"
/* plc bluetooth protocol information */
/* protocol format
* start_code(2) + version(1) + port(1) + crc(2) + payload len(2)
* + payload(n) + end_code(2)
*/
/* packet start code */
#define IOT_BT_EXT_PROTO_START_CODE 0x24
/* packet end code */
#define IOT_BT_EXT_PROTO_END_CODE 0x42
/* start code fields length */
#define IOT_BT_EXT_PROTO_START_LEN 2
/* end code fields length */
#define IOT_BT_EXT_PROTO_END_LEN 2
/* payload_len field length */
#define IOT_BT_EXT_PROTO_PL_LEN_FIELD_LEN 2
/* min packet length(none payload) */
#define IOT_BT_EXT_PROTO_PACKET_MIN_LEN (sizeof(iot_bt_ext_proto_hdr_t) \
+ sizeof(iot_bt_ext_proto_start_t) + sizeof(iot_bt_ext_proto_end_t))
/* plc bt protocol version */
#define IOT_BT_EXT_PROTO_VERSION 0
typedef enum {
/* at command port, not support */
IOT_BT_EXT_PORT_AT_CMD = 0,
/* current protocol/device port, not support */
IOT_BT_EXT_PORT_PROTO = 1,
/* upgrade port */
IOT_BT_EXT_PORT_UPGRADE = 2,
/* device management port */
IOT_BT_EXT_PORT_DEV_MGMT = 3,
/* port id max id */
IOT_BT_EXT_PORT_SUB_NUM,
} IOT_BT_EXT_PORT_SUB_ID;
#pragma pack(push)
#pragma pack(1)
/* plc bt protocol typedef */
/* plc bt protocol start filed */
typedef struct _iot_bt_ext_proto_start {
/* start sync code */
uint8_t start[IOT_BT_EXT_PROTO_START_LEN];
} iot_bt_ext_proto_start_t;
/* plc bt protocol header filed */
typedef struct _iot_bt_ext_proto_hdr {
/* protocol version number */
uint8_t version;
/* communication port, see IOT_BT_EXT_PROTO_PORT_XXX */
uint8_t port;
/* payload crc */
uint16_t crc;
/* payload length */
uint16_t length;
} iot_bt_ext_proto_hdr_t;
/* plc bt protocol end filed */
typedef struct _iot_bt_ext_proto_end {
/* end sync code */
uint8_t end[IOT_BT_EXT_PROTO_END_LEN];
} iot_bt_ext_proto_end_t;
#pragma pack(pop)
#ifdef __cplusplus
}
#endif
#endif