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

📄 hcipacket.h

📁 蓝牙协议HCI层指令发送,主要用于测试HCI以下的代码及RF部分测试.
💻 H
字号:

//--------------------------------------------------------------- %FILH_BEG% --
//
//  Project:		$$ProjectName
//
//  File name:		HCIPacket.h
//  Author:			
//  Description:	  
//
//  Revision History:
//  $Log: $
//
//  Rev 1.01  09/08/2000 Increase parameter size to [1000] in structure tHCI_ACLDataPacket  
//  Rev 1.00  15 July 2000 Initial release
//    
//
//  Copyright (c) TelenComm Corporation  2000   -   All rights reserved    
//--------------------------------------------------------------- %FILH_END% 

#ifndef HCI_PACKET_H
#define HCI_PACKET_H

//------------------------------------------------------------------------------
//
//  Includes
//
//------------------------------------------------------------------------------
#include <memory.h>

#include "..\..\Hci\Common\Common.h"
#include "..\..\Hci\Common\stdmac.h"
#include "..\..\Hci\Commands\Inc\HCIBaseCmdProc.h"
//#include "HCIEventProc.h"

#include "BTLogicalIODevice.h"

//--------------------------------------------------------------------------------

class   CHCI_Packet
{
  public:
  enum eHCI_PacketType { HCI_CMD_PACKET = 1,HCI_ACL_DATA_PACKET,HCI_SCO_DATA_PACKET,HCI_EVENT_PACKET};
  struct tHCICommandPacket 
  {
    uint8                      PacketType;
    tHCICommandOpCode          OpCode;
    tHCICommandParameterLength ParameterTotalLength;
    tHCICommandParameter       Parameter[255];
  };

  struct tHCIEventPacket 
  {
    uint8                    PacketType;
    tHCIEventOpCode          OpCode;
    tHCIEventParameterLength ParameterTotalLength;
    tHCIEventParameter       Parameter[255];	
  };
  struct tHCI_ACLDataPacket 
  {
    uint8                     PacketType;
    tConnectionHandle         ConnectionHandle;
    tHCI_ACLDataParameterLength   ParameterTotalLength;
    tHCI_ACLDataParameter     Parameter[1000];	//255
  };
  struct tHCI_SCODataPacket 
  {
    uint8                     PacketType;
    tConnectionHandle         ConnectionHandle;
    tHCI_SCODataParameterLength   ParameterTotalLength;
    tHCI_SCODataParameter     Parameter[255];
  };
  union
  {
    uint8*              pPacket;
    tHCICommandPacket*  pHCICmdPacket;
    tHCI_ACLDataPacket* pHCI_ACLDataPacket;
    tHCI_SCODataPacket* pHCI_SCODataPacket;
    tHCIEventPacket*    pHCIEventPacket;
  }m_uPacketPtr;
  uint32 m_PacketIdx;

  public:
    CHCI_Packet( ){};
    int  GetPacketLen(){ return m_PacketIdx;}
  void AddParameter(void*  pParm, uint32 SizeofParm);
  void AddParameter(uint16  Parm);
  void AddParameter(uint32  Parm); 
  void AddParameter(uint8   Parm); 

  void   RetrieveParameter(void* pParm, uint32 SizeofParm); 
  uint8  RetrieveByteParameter(); 
  uint32 RetrieveWordParameter(); 
  uint16 RetrieveHalfWordParameter(); 

  uint32 getSize() { return m_PacketIdx; }
  void TransmitHCI_Packet();// { g_pBTLogicalIODevice->ReceiveHCI_Packet(m_pPacket,m_PacketIdx);}
  void ReceiveHCI_Packet(uint8* pPacket, sint32 PacketLen);

  bool IsValidHCIPacket(eHCI_PacketType PacketType);

  ~CHCI_Packet(){}

};

//------------------------------------------------------------------------------
//
//  Declarations
//
//------------------------------------------------------------------------------
extern  int  g_HC_ACLDataPacketLen;
extern  int  g_HC_SCODataPacketLen;
extern  int  g_HC_TotalNumACLDataPackets; 
extern  int  g_HC_TotalNumSCODataPackets; 
extern  int  g_NumHciCommandPackets;

//------------------------------------------------------------------------------

//bool ModuleOperationHCI(tModuleOperation ModuleOperation);

#endif HCI_PACKET_H

//------------------------------------------------------------------------------
// End of HCIPacket.h

⌨️ 快捷键说明

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