97 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			97 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /****************************************************************************
 | ||
|  | 
 | ||
|  | 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
 |