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

📄 psconfig.h

📁 关于S3C2442平台蓝牙模块驱动
💻 H
字号:
////////////////////////////////////////////////////////////////////
// PSConfig.h
//
// Copyright (c) Cambridge Silicon Radio.  All rights reserved.
//
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Header for lightweight WinCE port of PS update code 
//

// Standard constants
#undef  FALSE
#undef  TRUE
#undef  NULL
#define FALSE   0
#define TRUE    1
#define NULL    0

// From BCCMDPDU.H
#define	BCCMDVARID_SPECIAL_START (4096)
#define BCCMDVARID_WRITEONLY	(0x4000)
#define BCCMDVARID_READWRITE	(0x6000)
#define	BCCMDVARID_COMMANDS_START (0)
#define	BCCMDVARID_WARM_RESET	(BCCMDVARID_COMMANDS_START + BCCMDVARID_WRITEONLY+2)
#define	BCCMDVARID_PS (BCCMDVARID_SPECIAL_START + BCCMDVARID_READWRITE + 3)

// From BCCMD_TRANS.H
#define PC_SIZE(X) ((X) * sizeof(uint16))
#define BCCMDPDU_MAXBUFSIZ_XAP (94)
#define BCCMDPDU_MAXBUFSIZ_PC (PC_SIZE(BCCMDPDU_MAXBUFSIZ_XAP))
#define	BCCMDPDU_SETREQ		(2)
#define	BCCMDPDU_STAT_OK	(0)
#define XAP_SIZE(X) ((X) / sizeof(uint16))
#define BCCMDPDU_MAXBUFSIZ_XAP (94)
#define XAP_SIZEOF(X) (XAP_SIZE(sizeof(X)))
#define XAP_PS_LEN(X)  (X - XAP_SIZEOF(BCCMDPDU) + 1)
#define MAX_PS_VALUE_LEN_XAP (XAP_PS_LEN(BCCMDPDU_MAXBUFSIZ_XAP))

// Various structures
// - Adapted From BCCMDPDU.H
#define	BCCMDPDUMIN 8      // Min size of pdu

// Define PDU with static memory
// - Enables array handling
#pragma pack(push, 2)
typedef struct {
	uint16		id;		
	uint16		len;		
	uint16		stores;		
	uint16		psmem[BCCMDPDU_MAXBUFSIZ_PC];        //  Note PDU data with static memory
	} BCCMDPDU_PS;

typedef struct {
	uint16		type;
	uint16		pdulen;
	uint16		seqno;
	uint16		varid;
	uint16		status;
  union
  {
    BCCMDPDU_PS	ps;	
  }d;
} BCCMDPDU;
#pragma pack(pop)

enum channelreliability {
  UNRELIABLE,
    RELIABLE
};

// Adapted state indicator
enum ubcspstates
{
  POLL_STATE,
  SENT_STATE,
  SENT_STATEA,
  SENT_STATEB,
  RECEIVED_STATE,
  PEER_RESET_STATE,
  SLEEP_STATE,
  EXIT_STATE
};

// From BCCMD_HCI.H
static const size_t  LineDatabufSize = 2000;
typedef uint16 pskey;

enum BCSPreliablechannels 
{
	ACKKNOWLEDGE, 
	UNUSED_RELIABLE_CHANNEL_1, 
	BCCMD, 
	HQ,
	DEVICE_MGT,
	HCI_COMMAND,
	HCI_ACL_RELIABLE,
	HCI_SCO_RELIABLE,
	L2CAP,
	RFCOMM,
	SDD,
	RESERVED_RELIABLE_CHANNEL_11, 
	DFU,
	VM,
	UNUSED_RELIABLE_CHANNEL_14, 
	RESERVED_RELIABLE_CHANNEL_15 
};

// Command Queue
//  This is based on HCIQueue
struct uBCSPQueue
{
	uint8 NoOfOpcodes;
	uint8 CommandNumber;
	uint8 Opcode[2];
	uint8 NoOfRetries;
};

// Forward declarations   
BOOL  PSConfig(HANDLE hPort);
void  put_uart (uint8 ch);
uint8 get_uart (uint8 *ch);
int   ReadPSRFile(FILE *ist, bool bBuild);
BOOL  Initialise(char *arg);
void  ConfigPSRPDU(const pskey key, const uint16 *data, uint16 len);
void  GetReceiveState(struct ubcsp_packet *rx_packet, unsigned char *rx_buffer);
void  GetSentState(struct ubcsp_packet *sd_packet);
void  ExitMod();
void  ConfigResetPDU();

// Misc functions
static int Hex2Int(char c);
void PrintData(unsigned char *data, int length);
//Jonathan_test start
BOOL TESTMode(HANDLE hPort);
void DecodeReceiveState(struct ubcsp_packet *rx_packet, unsigned char *rx_buffer);
void DecodeSentState(struct ubcsp_packet *sd_packet);
void DecodeSentState_A(struct ubcsp_packet *sd_packet);
void DecodeSentState_B(struct ubcsp_packet *sd_packet);
void PrintData_A(unsigned char *data, int length);
void ExitMod_A();
//Jonathan_test end


//evan_note
#define IOCTL_BT_TESTMOD                        CTL_CODE(FILE_DEVICE_HAL, 2056, METHOD_BUFFERED,FILE_ANY_ACCESS) //min0310 add BT test mode function

⌨️ 快捷键说明

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