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

📄 hciinfoparmcmdretparamprocfunc.cpp

📁 蓝牙协议HCI层指令发送,主要用于测试HCI以下的代码及RF部分测试.
💻 CPP
字号:
//--------------------------------------------------------------- %FILH_BEG% --
//-----------------------------------------------------------------------------
//
//  Project:		$$ProjectName
//
//  File name:		HCIInfoParmCmdretParamProcFunc.cpp
//  Author:			 
//  Description:	  
//
//  Revision History:
//  $Log: $
//
//  Rev 1.00  15 July 2000 Initial release
//    
//
//  Copyright (c) TelenComm Corporation  2000   -   All rights reserved    
//--------------------------------------------------------------- %FILH_END% 
//------------------------------------------------------------------------------
//
//  Include
//
//------------------------------------------------------------------------------
//#include "stdmac.h"
#include "..\..\..\stdafx.h"
#include "..\..\..\BTHost.h"
#include "..\..\..\ChildFrm.h"

#include "..\..\Inc\HCIError.h"
#include "..\Inc\HCIInfoParmCmdProc.h"
#include "..\..\Inc\HCIPacket.h"

//------------------------------------------------------------------------------
//
//  5.2.15 No Operation Command
//
//------------------------------------------------------------------------------
/*
uint8 CHCIInfoParmProcessor::NoOperationCommandCmdRetParamProcFunc(char* pRetParams)
{
  return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
*/
//------------------------------------------------------------------------------
//
//  4.8.1 Read_Local_Version_Information
//
//------------------------------------------------------------------------------

uint8 CHCIInfoParmProcessor::ReadLocalVersionInformationCmdRetParamProcFunc(char* pRetParams)
{
  CString Temp; int n;
  CString Status, ParamStr;
	CString HciVerStr;
	CString HciRevStr;
	CString LMPVerStr;
	CString ManNameStr;
	CString LMPSubStr;
  struct psRetParams_tag
  {
    uint8		Status;
    uint8   Hci_Version;
    uint16  Hci_Revision;
    uint8   LMP_Version;
    uint16  Manufacture_Name;
		uint16	LMP_Subversion;
  }*psReadParams;
 
  psReadParams = (psRetParams_tag *)pRetParams ;

  Temp.Format      ("%.2X", psReadParams->Status ); n = Temp.GetLength(); 
  Status.Format        ("\tStatus:                      [%d]  %s\n", n/2,Temp);
	  
  Temp.Format      ("%-.2X", psReadParams->Hci_Version ); n = Temp.GetLength(); 
  HciVerStr.Format ("\tHCI Version:                 [%d]  %s\n", n/2,Temp);

  Temp.Format      ("%-.4X", psReadParams->Hci_Revision ); n = Temp.GetLength(); 
  HciRevStr.Format ("\tHCI Revision:                [%d]  %s\n", n/2,Temp);

  Temp.Format      ("%-.2X", psReadParams->LMP_Version ); n = Temp.GetLength(); 
  LMPVerStr.Format ("\tLMP Version:                 [%d]  %s\n", n/2,Temp);

  Temp.Format ("%-.4X", psReadParams->Manufacture_Name ); n = Temp.GetLength(); 
  ManNameStr.Format("\tManufacture Name:            [%d]  %s\n", n/2,Temp);

  Temp.Format      ("%-.4X", psReadParams->LMP_Subversion ); n = Temp.GetLength(); 
  LMPSubStr.Format ("\tLMP Subversion:              [%d]  %s\n", n/2,Temp);

  ParamStr =HciVerStr + HciRevStr + LMPVerStr + ManNameStr + LMPSubStr + Status;
	
  g_pChildFrame->ParamListForOutput(ParamStr);
  return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}

//------------------------------------------------------------------------------
//
//  4.8.2 Read_Local_Supported_Features
//
//------------------------------------------------------------------------------

uint8 CHCIInfoParmProcessor::ReadLocalSupportedFeaturesCmdRetParamProcFunc(char* pRetParams)
{ 
  CString Temp; int n;
  CString Status, ParamStr;
	CString LmpFeaturesStr;
  struct psRetParams_tag
  {
    uint8		Status;
    char	  Lmp_Features[8];
  }*psReadParams;
  char buf1[35] = {'\0'}, buf2[50] = {'\0'};
 
  psReadParams = (psRetParams_tag *)pRetParams ;

  Temp.Format ("%.2X", psReadParams->Status ); n = Temp.GetLength(); 
  Status.Format        ("\tStatus:                      [%d]  %s\n", n/2,Temp);
	  
  BT_itoa(&psReadParams->Lmp_Features ,8, buf1);
  BT_ReverseStr(buf1, buf2); 
  Temp.Format ("%s", buf2); 

  //Temp.Format ("%-.2X", psReadParams-> );	n = Temp.GetLength(); 
  LmpFeaturesStr.Format("\tLmp Features:                [8]  %s\n",Temp);

  ParamStr = LmpFeaturesStr + Status;
	
  g_pChildFrame->ParamListForOutput(ParamStr);
  return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}

//------------------------------------------------------------------------------
//
//  4.8.3 Read_Buffer_Size
//
//------------------------------------------------------------------------------

uint8 CHCIInfoParmProcessor::ReadBufferSizeCmdRetParamProcFunc(char* pRetParams)
{
  CString Temp; int n;
  CString Status;
  CString CPacketAll;
  CString EventCode;
  CString ParamStr;
  
  CString HC_ACLDataPacketLen;
  CString HC_SCODataPacketLen;
  CString HC_TotalNumACLDataPackets;
  CString HC_TotalNumSCODataPackets;
  struct psRetParams_tag
  {
    uint8   Status;
    uint16  HC_ACLDataPacketLen;
    uint8   HC_SCODataPacketLen;
    uint16  HC_TotalNumACLDataPackets;
    uint16  HC_TotalNumSCODataPackets;
  }*psRBSizeParams;

  psRBSizeParams = (psRetParams_tag*)pRetParams;

  g_pChildFrame->DisplayCmdSts(pRetParams, CMD_COMPLETION_STS,"ReadBufferSize");
  //Ekg_pChildFrame->DisplayCmdSts(psRetParams->Status, CMD_COMPLETION_STS,"ReadBufferSize");
  
  Temp.Format ("%.2x", psRBSizeParams->Status); n = Temp.GetLength(); 
  Status.Format                    ("\tStatus:                      [%d]  %s\n",n/2, Temp ); 

  Temp.Format ("%.4x", psRBSizeParams->HC_ACLDataPacketLen); n = Temp.GetLength(); 
  HC_ACLDataPacketLen.Format       ("\tHC_ACLDataPacketLen:         [%d]  %s\n",n/2, Temp );

  Temp.Format ("%.2x", psRBSizeParams->HC_SCODataPacketLen); n = Temp.GetLength(); 
  HC_SCODataPacketLen.Format       ("\tHC_SCODataPacketLen:         [%d]  %s\n",n/2, Temp );

  Temp.Format ("%.4x", psRBSizeParams->HC_TotalNumACLDataPackets); n = Temp.GetLength(); 
  HC_TotalNumACLDataPackets.Format ("\tHC_TotalNumACLDataPackets:   [%d]  %s\n",n/2, Temp );

  Temp.Format ("%.4x", psRBSizeParams->HC_TotalNumSCODataPackets); n = Temp.GetLength(); 
  HC_TotalNumSCODataPackets.Format ("\tHC_TotalNumSCODataPackets:   [%d]  %s\n",n/2, Temp );



  ParamStr = EventCode + Status + CPacketAll+
	         HC_ACLDataPacketLen+ 
			 HC_SCODataPacketLen+
			 HC_TotalNumACLDataPackets+
			 HC_TotalNumSCODataPackets; 
  
  g_pChildFrame->ParamListForOutput(ParamStr);


  if(psRBSizeParams->Status)
  {
    g_HC_ACLDataPacketLen =       psRBSizeParams->HC_ACLDataPacketLen;
    g_HC_SCODataPacketLen =       psRBSizeParams->HC_SCODataPacketLen;
    g_HC_TotalNumACLDataPackets = psRBSizeParams->HC_TotalNumACLDataPackets;
    g_HC_TotalNumSCODataPackets = psRBSizeParams->HC_TotalNumSCODataPackets;
  }


  return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}

//------------------------------------------------------------------------------
//
//  4.8.4 Read_Country_Code
//
//------------------------------------------------------------------------------

uint8 CHCIInfoParmProcessor::ReadCountryCodeCmdRetParamProcFunc(char* pRetParams)
{
  CString Temp; int n;
  CString Status, ParamStr;
	CString CountryCodeStr;
  struct psRetParams_tag
  {
    uint8		Status;
    uint8	  CountryCode;
  }*psReadParams;
  char buf1[35] = {'\0'}, buf2[50] = {'\0'};
 
  psReadParams = (psRetParams_tag *)pRetParams ;

  Temp.Format ("%.2X", psReadParams->Status ); n = Temp.GetLength(); 
  Status.Format        ("\tStatus:                      [%d]  %s\n", n/2,Temp);
	  
  Temp.Format ("%-.2X", psReadParams->CountryCode ); n = Temp.GetLength(); 
  CountryCodeStr.Format("\tCountryCode:                 [%d]  %s\n", n/2,Temp);

  ParamStr = CountryCodeStr + Status;
	
  g_pChildFrame->ParamListForOutput(ParamStr);
  return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}

//------------------------------------------------------------------------------
//
//  4.8.5 Read_BD_ADDR
//
//------------------------------------------------------------------------------

uint8 CHCIInfoParmProcessor::ReadBdAddrCmdRetParamProcFunc(char* pRetParams)
{
  CString Temp; int n;
  CString Status, ParamStr;
	CString BdAddrStr;
  struct psRetParams_tag
  {
    uint8		Status;
    char	  BD_ADDR[6];
  }*psReadParams;
  char buf1[35] = {'\0'}, buf2[50] = {'\0'};
 
  psReadParams = (psRetParams_tag *)pRetParams ;

  Temp.Format ("%.2X", psReadParams->Status ); n = Temp.GetLength(); 
  Status.Format        ("\tStatus:                      [%d]  %s\n", n/2,Temp);
	  
  BT_itoa(&psReadParams->BD_ADDR ,6, buf1);
  BT_ReverseStr(buf1, buf2); 
  Temp.Format ("%s", buf2); 

  //Temp.Format ("%-.2X", psReadParams-> );	n = Temp.GetLength(); 
  BdAddrStr.Format     ("\tBD_ADDR:                     [6]  %s\n",Temp);

  ParamStr = BdAddrStr + Status;
	
  g_pChildFrame->ParamListForOutput(ParamStr);
	
  return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}

//------------------------------------------------------------------------------
//  End of HCIInfoParm.cpp

⌨️ 快捷键说明

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