?? hcilinkcontrolcmdproc.cpp
字號:
//--------------------------------------------------------------- %FILH_BEG% --
//-----------------------------------------------------------------------------
//
// Project: $$ProjectName
//
// File name: HCILinkControlCmdProc.cpp
// Author:
// Description:
//
// Revision History:
// $Log: $
//
// Rev 1.00 15 July 2000 Initial release
//
//
// Copyright (c) TelenComm Corporation 2000 - All rights reserved
//--------------------------------------------------------------- %FILH_END%
//------------------------------------------------------------------------------
//
// Includes
//
//------------------------------------------------------------------------------
#include "..\..\Common\ErrDef.h"
#include "..\..\Inc\HCIDef.h"
#include "..\..\Inc\HCIError.h"
#include "..\Inc\HCILinkControlCmdProc.h"
#include "..\..\Inc\RemoteDevInfo.h"
#include "..\Inc\HCICmdPacket.h"
//------------------------------------------------------------------------------
//
// Types
//
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//
// Class Declarations
//
//------------------------------------------------------------------------------
uint8 CHCILinkControlCmdProcessor::Inquiry(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::InquiryCancel(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::PeriodicInquiryMode(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::ExitPeriodicInquiryMode(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::CreateConnection(CHCI_CmdPacket& HCI_CmdPacket)
{
sBD_ADDR sDevAddr;
eBaseBandPacketType PacketType;
ePageScanMode PageScanMode;
ePageScanRepMode PageScanRepMode;
tClock_Offset Clock_Offset;
tAllowRoleSwitch AllowRoleSwitch;
if(!HCI_CmdPacket.IsValidCmdPacket()) return eHCI_ERROR_INVALID_CMD_PACKET;
CRemoteDevListIterator RemoteDevListIterator(g_RemoteDevList);
HCI_CmdPacket.RetrieveParameter(&sDevAddr, sizeof(sBD_ADDR));
if(!(RemoteDevListIterator.IsValidBD_ADDR(sDevAddr))) return eHCI_ERROR_INVALID_BD_ADDR;
PacketType=(eBaseBandPacketType)HCI_CmdPacket.RetrieveHalfWordParameter();
if(!(RemoteDevListIterator.IsValidBaseBandPacketType(PacketType))) return eHCI_ERROR_INVALID_PACKET_TYPE;
PageScanRepMode=(ePageScanRepMode)HCI_CmdPacket.RetrieveByteParameter();
if(!(RemoteDevListIterator.IsValidPageScanRepMode(PageScanRepMode))) return eHCI_ERROR_INVALID_PAGE_SCAN_REP_MODE;
PageScanMode=(ePageScanMode)HCI_CmdPacket.RetrieveByteParameter();
if(!(RemoteDevListIterator.IsValidPageScanMode(PageScanMode))) return eHCI_ERROR_INVALID_PAGE_SCAN_MODE;
Clock_Offset=HCI_CmdPacket.RetrieveHalfWordParameter();
if(AllowRoleSwitch=HCI_CmdPacket.RetrieveByteParameter() > ALLOW_ROLE_SWITCH_MAX_VAL)
return eHCI_ERROR_INVALID_ROLE_SWITCH_FLAG;
//CreateConnection(sDevAddr,PacketType,PageScanMode,PageScanRepMode,Clock_Offset,AllowRoleSwitch);
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::Disconnect(CHCI_CmdPacket& HCI_CmdPacket)
{
tConnectionHandle ConnectionHandle;
tReason Reason;
if(!HCI_CmdPacket.IsValidCmdPacket()) return eHCI_ERROR_INVALID_CMD_PACKET;
ConnectionHandle=(tConnectionHandle)HCI_CmdPacket.RetrieveHalfWordParameter();
if(ConnectionHandle > CONNECTION_HANDLE_MAX_VAL ) return eHCI_ERROR_INVALID_CONNECTION_HANDLE;
Reason=HCI_CmdPacket.RetrieveByteParameter();
switch(Reason)
{
case eHCI_ERROR_OTHER_END_TERMINATED_CONNECTION_USER_ENDED_CONNECTION:
case eHCI_ERROR_OTHER_END_TERMINATED_CONNECTION_LOW_RESOURCES:
case eHCI_ERROR_OTHER_END_TERMINATED_CONNECTION_ABOUT_TO_POWER_OFF:
case eHCI_ERROR_UNSUPPORTED_REMOTE_FEATURE:
//Disconnect(ConnectionHandle,Reason);
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
return eHCI_ERROR_UNKNOWN_REASON_FOR_DISCONNECTION;
}
uint8 CHCILinkControlCmdProcessor::AddSCOConnection(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::AcceptConnectionRequest(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::RejectConnectionRequest(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::LinkKeyRequestReply(CHCI_CmdPacket& HCI_CmdPacket)
{
sBD_ADDR sDevAddr;
tLinkKey LinkKey;
if(!HCI_CmdPacket.IsValidCmdPacket())
return eHCI_ERROR_INVALID_CMD_PACKET;
CRemoteDevListIterator RemoteDevListIterator(g_RemoteDevList);
HCI_CmdPacket.RetrieveParameter(&sDevAddr, sizeof(sBD_ADDR));
if(!(RemoteDevListIterator.IsValidBD_ADDR(sDevAddr)))
return eHCI_ERROR_INVALID_BD_ADDR;
HCI_CmdPacket.RetrieveParameter(&LinkKey, sizeof(tLinkKey));
//if(!(RemoteDevListIterator.IsValidLink_Key(LinkKey)))
return eHCI_ERROR_INVALID_LINK_KEY;
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::LinkKeyRequestNegativeReply(CHCI_CmdPacket& HCI_CmdPacket)
{
sBD_ADDR sDevAddr;
if(!HCI_CmdPacket.IsValidCmdPacket())
return eHCI_ERROR_INVALID_CMD_PACKET;
CRemoteDevListIterator RemoteDevListIterator(g_RemoteDevList);
HCI_CmdPacket.RetrieveParameter(&sDevAddr, sizeof(sBD_ADDR));
if(!(RemoteDevListIterator.IsValidBD_ADDR(sDevAddr)))
return eHCI_ERROR_INVALID_BD_ADDR;
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::PinCodeRequestReply(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::PinCodeRequestNegativeReply(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::ChangeConnectionPacketType(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::AuthenticationRequested(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::SetConnectionEncryption(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::ChangeConnectionLinkKey(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::MasterLinkKey(CHCI_CmdPacket& HCI_CmdPacket)
{
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::RemoteNameRequest(CHCI_CmdPacket& HCI_CmdPacket)
{
sBD_ADDR sDevAddr;
ePageScanMode PageScanMode;
ePageScanRepMode PageScanRepMode;
uint16 Clock_Offset;
if(!HCI_CmdPacket.IsValidCmdPacket()) return eHCI_ERROR_INVALID_CMD_PACKET;
CRemoteDevListIterator RemoteDevListIterator(g_RemoteDevList);
HCI_CmdPacket.RetrieveParameter(&sDevAddr, sizeof(sBD_ADDR));
if(!(RemoteDevListIterator.IsValidBD_ADDR(sDevAddr))) return eHCI_ERROR_INVALID_BD_ADDR;
PageScanRepMode=(ePageScanRepMode)HCI_CmdPacket.RetrieveByteParameter();
if(!(RemoteDevListIterator.IsValidPageScanRepMode(PageScanRepMode))) return eHCI_ERROR_INVALID_PAGE_SCAN_REP_MODE;
PageScanMode=(ePageScanMode)HCI_CmdPacket.RetrieveByteParameter();
if(!(RemoteDevListIterator.IsValidPageScanMode(PageScanMode))) return eHCI_ERROR_INVALID_PAGE_SCAN_MODE;
Clock_Offset=HCI_CmdPacket.RetrieveHalfWordParameter();
//RemoteNameRequest(sDevAddr,PageScanMode,PageScanRepMode,Clock_Offset);
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::ReadRemoteSupportedFeatures(CHCI_CmdPacket& HCI_CmdPacket)
{
tConnectionHandle ConnectionHandle;
ConnectionHandle=(tConnectionHandle)HCI_CmdPacket.RetrieveHalfWordParameter();
if(ConnectionHandle > CONNECTION_HANDLE_MAX_VAL ) return eHCI_ERROR_INVALID_CONNECTION_HANDLE;
//ReadRemoteSupportedFeatures(ConnectionHandle);
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::ReadRemoteVersionInformation(CHCI_CmdPacket& HCI_CmdPacket)
{
tConnectionHandle ConnectionHandle;
ConnectionHandle=(tConnectionHandle)HCI_CmdPacket.RetrieveHalfWordParameter();
if(ConnectionHandle > CONNECTION_HANDLE_MAX_VAL ) return eHCI_ERROR_INVALID_CONNECTION_HANDLE;
//ReadRemoteVersionInformation(ConnectionHandle);
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
uint8 CHCILinkControlCmdProcessor::ReadClockOffset(CHCI_CmdPacket& HCI_CmdPacket)
{
tConnectionHandle ConnectionHandle;
ConnectionHandle=(tConnectionHandle)HCI_CmdPacket.RetrieveHalfWordParameter();
if(ConnectionHandle > CONNECTION_HANDLE_MAX_VAL ) return eHCI_ERROR_INVALID_CONNECTION_HANDLE;
//ReadClockOffset(ConnectionHandle);
return eHCI_ERROR_COMMAND_CURRENTLY_IN_PENDING;
}
//------------------------------------------------------------------------------
// End of HCILinkControlCmd.cpp
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -