⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hbcp.h

📁 在VC6.0上编译通过的蓝牙通信演示程序, COM1口控制.
💻 H
字号:
/*******************************************************************************
Copyright (C) Excelpoint System (Pte) Ltd. 2006

file: HBCP.h
 
Description: header file for Host-BLUECORE Communication Protocol (HBCP)
*******************************************************************************/

#ifndef	_HBCP_H_
#define _HBCP_H_

/*------------------------	Config Entry    ---------------------*/
#ifdef	WIN32
#include <stdio.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "Win32.h"
#define __packed
#pragma pack (1)
typedef	unsigned int UInt32;
#define	False	FALSE
#define True	TRUE
#endif
						
// Config parameters
#define HBCP_MAX_PIN_LEN		16	// maximum pin length
#define	HBCP_BD_ADDR_LEN		6	// maximum BD address length
#define HBCP_MAX_PNUM_LEN		16	// maximum phone number length
#define HBCP_MAX_PNAME_LEN		16	// maximum caller name length
#define HBCP_RX_BUF_SIZE		80	// maximum packet size

// HBCP specified character
#define	HBCP_FLAG		(unsigned char)0xC0
#define HBCP_ESCAPE		(unsigned char)0x7e

// HBCP protocol header
#define HBCP_HEAD_SIZE			3	// head size
typedef __packed struct _THBCP_HEAD
{
	unsigned char		ucType;		// packet type
	unsigned char		ucSeqnum;	// sequence number
	unsigned char		ucLen;		// length of payload
}HBCP_HEAD;

#define MAX_TX_BUF_LENGTH 40
typedef struct _TX_BUF{
	unsigned char data[MAX_TX_BUF_LENGTH];
	unsigned char length;//length is the number of data bytes in the buffer    
}TX_BUF;

typedef __packed struct _THBCP_SET_PIN{
	HBCP_HEAD		head;
	unsigned char	pStrPin[HBCP_MAX_PIN_LEN];
}THBCP_SET_PIN;


/*------------------------  COMMAND    ------------------------*/
#define HBCP_CMD_HSHF_ENTER_PAIR 			((unsigned char)0x01)
#define HBCP_CMD_HSHF_EXIT_PAIR				((unsigned char)0x02)
#define HBCP_CMD_HSHF_SET_PIN				((unsigned char)0x03)
#define HBCP_CMD_HSHF_CALL_ACCEPT 			((unsigned char)0x05)
#define HBCP_CMD_HSHF_CALL_REJECT			((unsigned char)0x06)
#define HBCP_CMD_HSHF_VOL_UP				((unsigned char)0x07)
#define HBCP_CMD_HSHF_VOL_DOWN				((unsigned char)0x08)
#define HBCP_CMD_HSHF_DIAL_LAST				((unsigned char)0x09)
#define HBCP_CMD_HSHF_DIAL_NUM 				((unsigned char)0x0A)
#define HBCP_CMD_HSHF_DIAL_VOICE			((unsigned char)0x0B)
#define HBCP_CMD_HSHF_CALL_END				((unsigned char)0x0C)
#define HBCP_CMD_HSHF_GET_LIST				((unsigned char)0x0D)
#define HBCP_CMD_HSHF_SET_STORAGE			((unsigned char)0x11)
#define HBCP_CMD_HSHF_SEND_DTMF	  			((unsigned char)0x12)
#define HBCP_CMD_HSHF_INQUIRY 	  		((unsigned char)0x16)/*sxg 20070105*/
#define HBCP_CMD_HSHF_CANCEL_INQUIRY	((unsigned char)0x17)/*sxg 20070105*/
#define HBCP_CMD_HSHF_GET_STATUS			((unsigned char)0x18)
#define HBCP_CMD_HSHF_GET_CONNECTED_DEVICE_NAME		((unsigned char)0x19)/*sxg 20070105*/

#define HBCP_CMD_SYNC						((unsigned char)0x25)
#define HBCP_CMD_HSHF_BLUECORE_ON_OFF			((unsigned char)0x27)
#define HBCP_CMD_HSHF_CONNECT				((unsigned char)0x2A)
#define HBCP_CMD_HSHF_DISCONNECT			((unsigned char)0x2B)
#define HBCP_CMD_HSHF_CALL_TRANS_TO_AG		((unsigned char)0x2C)
#define HBCP_CMD_HSHF_CALL_TRANS_TO_HF		((unsigned char)0x2D)
#define HBCP_CMD_HSHF_DELETE_PAIR			((unsigned char)0x31)
#define HBCP_CMD_HSHF_CONNECT_AG_BY_ADDR 	((unsigned char)0x13)
#define HBCP_CMD_HSHF_CALL_SWAP 			((unsigned char)0x10)
#define HBCP_CMD_HSHF_REL_ACT_ACC_OTH 		((unsigned char)0x2E)
#define HBCP_CMD_HSHF_REL_HOL_REJ_WAIT		((unsigned char)0x2F)
#define HBCP_CMD_HSHF_ADD_HOLD_CALL			((unsigned char)0x30)
#define HBCP_CMD_HSHF_MUTE 					((unsigned char)0x3A)
#define HBCP_CMD_HSHF_GET_PAIR_DEV_NAME		((unsigned char)0x3C)
#define HBCP_CMD_HSHF_RESTORE_FACTORY	 	((unsigned char)0x3D)

#define HBCP_CMD_CONNECT_LAST_AV_SOURCE		((unsigned char)0x42)
#define HBCP_CMD_DISCONNECT_AV				((unsigned char)0x43)
#define HBCP_CMD_AV_STOP_AUDIO				((unsigned char)0x44)
#define HBCP_CMD_AV_PLAY_PAUSE_AUDIO		((unsigned char)0x45)
#define HBCP_CMD_AV_PREVIOUS_AUDIO			((unsigned char)0x46)
#define HBCP_CMD_AV_NEXT_AUDIO				((unsigned char)0x47)

#define HBCP_CMD_SET_BC_NAME		((unsigned char)0x50)
#define HBCP_CMD_SET_BC_FNAME	((unsigned char)0x51)
#define HBCP_CMD_SET_BC_TITLE		((unsigned char)0x52)
#define HBCP_CMD_SET_BC_BIRTH		((unsigned char)0x53)
#define HBCP_CMD_SET_BC_ADDR		((unsigned char)0x54)
#define HBCP_CMD_SET_BC_ORG		((unsigned char)0x55)
#define HBCP_CMD_SET_BC_URL		((unsigned char)0x56)
#define HBCP_CMD_SET_BC_TEL		((unsigned char)0x57)
#define HBCP_CMD_SET_BC_MOBILE	((unsigned char)0x58)
#define HBCP_CMD_SET_BC_FAX		((unsigned char)0x59)
#define HBCP_CMD_SET_BC_EMAIL		((unsigned char)0x5a)
#define HBCP_CMD_SET_BC_TZ		((unsigned char)0x5b)
#define HBCP_CMD_SET_BC_REV		((unsigned char)0x5c)

#define HBCP_CMD_CONNECT_SPP_BY_ADDR		((unsigned char)0x60)
#define HBCP_CMD_CONNECT_LAST_SPP	((unsigned char)0x61)
#define HBCP_CMD_DISCONNECT_SPP		((unsigned char)0x62)
#define HBCP_CMD_SPP_DATA		((unsigned char)0x63)

#define HBCP_CMD_ENTER_DFU_MODE		((unsigned char)0x70)

/*------------------------	EVENT    --------------------------*/
#define HBCP_EVT_PAIR_STATUS				((unsigned char)0x81)
#define HBCP_EVT_HSHF_IND					((unsigned char)0x82)
#define HBCP_EVT_RING_IND					((unsigned char)0x83)
#define HBCP_EVT_STORAGE					((unsigned char)0x84)
#define HBCP_EVT_VOL_LEVEL					((unsigned char)0x85)
#define HBCP_EVT_CALL_STATUS				((unsigned char)0x86)
#define HBCP_EVT_CALL_LIST					((unsigned char)0x87)
#define HBCP_EVT_SYNC						((unsigned char)0xA4)
#define HBCP_EVT_SCO_IND					((unsigned char)0xA8)
#define HBCP_EVT_CALL_WAITING_IND			((unsigned char)0xAB)
#define HBCP_EVT_PAIRED_DEV_NAME 			((unsigned char)0xB4)
#define HBCP_EVT_NO_PAIRED_DEVICE			((unsigned char)0xA5)
#define HBCP_EVT_CONNECTED_DEV_NAME		((unsigned char)0xB5)/*sxg 20070105*/
#define HBCP_EVT_INITIALIZED_COMPLETE		((unsigned char)0xB6)/*sxg 20070105*/
#define HBCP_EVT_SET_PIN_ACK				((unsigned char)0xB7)/*sxg 20070108*/
#define HBCP_EVT_HSHF_GET_STATUS			((unsigned char)0xB8)/*sxg 20070108*/
#define HBCP_EVT_HSHF_INQUIRY_RESULT		((unsigned char)0xB9)/*sxg 20070108*/


#define HBCP_EVT_CALLER_ID					((unsigned char)0xB1)
#define HBCP_EVT_CALLER_NAME				((unsigned char)0xB2)
#define HBCP_EVT_BLUECORE_ON_OFF				((unsigned char)0xB3)
#define HBCP_EVT_AV_STATUS					((unsigned char)0xD0)
#define HBCP_EVT_HSHF_STATUS				((unsigned char)0xD1)
#define HBCP_EVT_CHKSUM_ERR					((unsigned char)0xFD)/* Add uart checksum error event */
#define HBCP_EVT_DEBUG						((unsigned char)0xFE)
#define HBCP_EVT_ACK						((unsigned char)0xFF)

#define HBCP_EVT_SPP_CONNECTED			((unsigned char)0xe1)
#define HBCP_EVT_SPP_DATA				((unsigned char)0xe2)
#define HBCP_EVT_SPP_DISCONNECTED			((unsigned char)0xe3)

#define HBCP_EVT_BC_PULL_BEGIN	((unsigned char)0xf6)
#define HBCP_EVT_BC_PULL_END		((unsigned char)0xf7)
#define HBCP_EVT_OBJ_PUSH_BEGIN	((unsigned char)0xf8)
#define HBCP_EVT_OBJ_PUSH_END		((unsigned char)0xf9)
#define HBCP_EVT_OBJ_PUSH_FNAME	((unsigned char)0xfa)
#define HBCP_EVT_OBJ_PUSH_FLEN	((unsigned char)0xfb)
#define HBCP_EVT_OBJ_PUSH_DATA	((unsigned char)0xfc)


// Debug
#define HBCP_DBG							((unsigned char)0xFE)
// ACK
#define HBCP_ACK							((unsigned char)0xFF)

/*------------------------	Event status	 ----------------*/
/*-----------------------------------------------------------*/
/*--------------	HSHF pair status	  -------------------*/
#define HBCP_STATUS_PAIR_SUCCESS			(unsigned char)0x00
#define HBCP_STATUS_PAIR_TIMEOUT			(unsigned char)0x01
#define HBCP_STATUS_PAIR_CANCELLED			(unsigned char)0x02
#define HBCP_STATUS_PAIR_FAILED 			(unsigned char)0x03
#define HBCP_STATUS_PAIRING_IN_PROGRESS 	(unsigned char)0x04
/*--------------	HSHF set storage	  -------------------*/
#define HBCP_STATUS_STORAGE_FAILED			(unsigned char)0x00
#define HBCP_STATUS_STORAGE_MISSED_CALL 	(unsigned char)0x01
#define HBCP_STATUS_STORAGE_RECEIVED_CALL	(unsigned char)0x02
#define HBCP_STATUS_STORAGE_DIALED_CALL 	(unsigned char)0x03
/*--------------	HSHF call status	   -------------------*/
#define HBCP_STATUS_CALL_IN_PROGRESS		(unsigned char)0x00
#define HBCP_STATUS_CALL_ESTABLISHED		(unsigned char)0x01
#define HBCP_STATUS_CALL_OFFHOOK			(unsigned char)0x02
#define HBCP_STATUS_CALL_FAILED 			(unsigned char)0x03
/*--------------	HSHF status 		   ------------------*/
#define HBCP_STATUS_HSHF_INITIALISING		(unsigned char)0x00
#define HBCP_STATUS_HSHF_READY				(unsigned char)0x01
#define HBCP_STATUS_HSHF_CONNECTING 		(unsigned char)0x02
#define HBCP_STATUS_HSHF_CONNECTED			(unsigned char)0x03
#define HBCP_STATUS_HSHF_OUTGOING_CALL		(unsigned char)0x04
#define HBCP_STATUS_HSHF_INCOMING_CALL		(unsigned char)0x05
#define HBCP_STATUS_HSHF_ACTIVE_CALL		(unsigned char)0x06
/*--------------	AV status			 --------------------*/
#define HBCP_STATUS_AV_INITIALISING 		(unsigned char)0x00
#define HBCP_STATUS_AV_READY				(unsigned char)0x01
#define HBCP_STATUS_AV_INITIATING			(unsigned char)0x02
#define HBCP_STATUS_AV_CONNECTED			(unsigned char)0x03
#define HBCP_STATUS_AV_STREAMING			(unsigned char)0x04
/*--------------	Volume status		---------------------*/
#define HBCP_STATUS_HFP_VOLUME				(unsigned char)0x00
#define HBCP_STATUS_AV_VOLUME				(unsigned char)0x01
/*-----------------------------------------------------------*/

/*---------------------- HBCP prototype ----------------------*/
void Init_HBCP(void);
void HBCP_Receive(int	ucLen, unsigned char *pStr);
void HBCP_Send_Command(unsigned char ucCmd, int ucLen, unsigned char *parameter);
void Close_Sync_Thread(void);
#ifdef	HBCP_DEBUG_CHANNEL
void HBCP_Debug(char *pStr);	// print a NULL terminated string on debug channel
#endif
void PRINT(unsigned char *str);


/*---------------------- command prototype -------------------*/
void HBCP_Enter_Pair( unsigned char ucTimeoutSec);
void HBCP_Set_Pin(unsigned char ucLen,	unsigned char * pStr);
void HBCP_Dial_Number(unsigned char ucLen, unsigned char * pStr);
void HBCP_Get_CallList(unsigned char ucLen, unsigned char * pStr);
void HBCP_Set_storage(unsigned char ucListType);
void HBCP_Send_DTMF(unsigned char dtmf);
void HBCP_Connect_AG_By_Addr( unsigned char ucIndex);
void HBCP_Send_Sync(void);
void HBCP_Set_Inquiry(unsigned char ucTimeoutSec);/*sxg 20070105*/

#define HBCP_Exit_Pair()			HBCP_Send_Command(HBCP_CMD_HSHF_EXIT_PAIR, 0, 0)
#define HBCP_Call_Accept()		 	HBCP_Send_Command(HBCP_CMD_HSHF_CALL_ACCEPT, 0, 0)
#define HBCP_Call_Reject()		 	HBCP_Send_Command(HBCP_CMD_HSHF_CALL_REJECT, 0, 0)
#define HBCP_Volume_Up()		 	HBCP_Send_Command(HBCP_CMD_HSHF_VOL_UP, 0, 0)
#define HBCP_Volume_Down()		 	HBCP_Send_Command(HBCP_CMD_HSHF_VOL_DOWN, 0, 0)
#define HBCP_Dial_Last()		 	HBCP_Send_Command(HBCP_CMD_HSHF_DIAL_LAST, 0, 0)
#define HBCP_Dial_Voice()		 	HBCP_Send_Command(HBCP_CMD_HSHF_DIAL_VOICE, 0, 0)
#define HBCP_End_Call() 		 	HBCP_Send_Command(HBCP_CMD_HSHF_CALL_END, 0, 0)
#define HBCP_POWER_ON_OFF() 		HBCP_Send_Command(HBCP_CMD_HSHF_BLUECORE_ON_OFF, 0, 0)
#define HBCP_HSHF_Connect() 	 	HBCP_Send_Command(HBCP_CMD_HSHF_CONNECT, 0, 0)
#define HBCP_HSHF_Disconnect()	 	HBCP_Send_Command(HBCP_CMD_HSHF_DISCONNECT, 0, 0)
#define HBCP_Trans_Call_to_AG()	 	HBCP_Send_Command(HBCP_CMD_HSHF_CALL_TRANS_TO_AG, 0, 0)
#define HBCP_Trans_Call_to_HF()	 	HBCP_Send_Command(HBCP_CMD_HSHF_CALL_TRANS_TO_HF, 0, 0)
#define HBCP_Delete_Pair()		 	HBCP_Send_Command(HBCP_CMD_HSHF_DELETE_PAIR, 0, 0)
#define HBCP_Call_Swap()	 	 	HBCP_Send_Command(HBCP_CMD_HSHF_CALL_SWAP, 0, 0)
#define HBCP_Rel_Act_Acc_Wait()  	HBCP_Send_Command(HBCP_CMD_HSHF_REL_ACT_ACC_OTH, 0, 0)
#define HBCP_Rel_Hold_Rej_Wait() 	HBCP_Send_Command(HBCP_CMD_HSHF_REL_HOL_REJ_WAIT, 0, 0)
#define HBCP_Add_Hold() 			HBCP_Send_Command(HBCP_CMD_HSHF_ADD_HOLD_CALL, 0, 0)
#define HBCP_Mute_Mic() 		 	HBCP_Send_Command(HBCP_CMD_HSHF_MUTE, 0, 0)
#define HBCP_Get_Paired_Dev_Name()	HBCP_Send_Command(HBCP_CMD_HSHF_GET_PAIR_DEV_NAME, 0, 0)
#define HBCP_Restore_Factory()     	HBCP_Send_Command(HBCP_CMD_HSHF_RESTORE_FACTORY, 0, 0)
/*sxg 20070103*/
#define HBCP_HSHF_Get_Status()     	HBCP_Send_Command(HBCP_CMD_HSHF_GET_STATUS, 0, 0)
#define HBCP_Cancel_Inquiry()			 HBCP_Send_Command(HBCP_CMD_HSHF_CANCEL_INQUIRY, 0, 0)
#define HBCP_Get_Connected_DEV_Name()  HBCP_Send_Command(HBCP_CMD_HSHF_GET_CONNECTED_DEVICE_NAME, 0, 0)

#define HBCP_Connect_AV() 			HBCP_Send_Command(HBCP_CMD_CONNECT_LAST_AV_SOURCE, 0, 0)
#define HBCP_Disconnect_AV() 		HBCP_Send_Command(HBCP_CMD_DISCONNECT_AV, 0, 0)
#define HBCP_Stop_Audio() 			HBCP_Send_Command(HBCP_CMD_AV_STOP_AUDIO, 0, 0)
#define HBCP_Play_Pause_Audio() 	HBCP_Send_Command(HBCP_CMD_AV_PLAY_PAUSE_AUDIO, 0, 0)
#define HBCP_Previous_Audio()		HBCP_Send_Command(HBCP_CMD_AV_PREVIOUS_AUDIO, 0, 0)
#define HBCP_Next_Audio()			HBCP_Send_Command(HBCP_CMD_AV_NEXT_AUDIO, 0, 0)

#define HBCP_SPP_Connect() 	 		HBCP_Send_Command(HBCP_CMD_CONNECT_LAST_SPP, 0, 0)
#define HBCP_SPP_Disconnect()	 	HBCP_Send_Command(HBCP_CMD_DISCONNECT_SPP, 0, 0)

#define HBCP_Enter_DFU()			HBCP_Send_Command(HBCP_CMD_ENTER_DFU_MODE, 0, 0)

void HBCP_Connect_SPP_By_Addr( unsigned char ucIndex);

#endif //_HBCP_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -