From 904ad3abd2df55b8f7da2ab84cee13f087386958 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Tue, 17 Mar 2009 12:58:15 +0000 Subject: Incomplete non-functional BluetoothHost demo removed until it has reached a stable state to prevent confusion. --- Demos/BluetoothHost/BluetoothACLPackets.c | 200 ------------------------------ 1 file changed, 200 deletions(-) delete mode 100644 Demos/BluetoothHost/BluetoothACLPackets.c (limited to 'Demos/BluetoothHost/BluetoothACLPackets.c') diff --git a/Demos/BluetoothHost/BluetoothACLPackets.c b/Demos/BluetoothHost/BluetoothACLPackets.c deleted file mode 100644 index c79e56050..000000000 --- a/Demos/BluetoothHost/BluetoothACLPackets.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - LUFA Library - Copyright (C) Dean Camera, 2009. - - dean [at] fourwalledcubicle [dot] com - www.fourwalledcubicle.com -*/ - -/* - Copyright 2009 Dean Camera (dean [at] fourwalledcubicle [dot] com) - - Permission to use, copy, modify, and distribute this software - and its documentation for any purpose and without fee is hereby - granted, provided that the above copyright notice appear in all - copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -#define INCLUDE_FROM_BLUETOOTH_ACLPACKETS_C -#include "BluetoothACLPackets.h" - -void Bluetooth_ProcessACLPackets(void) -{ - Bluetooth_ACL_Header_t ACLPacketHeader; - - Pipe_SelectPipe(BLUETOOTH_DATA_IN_PIPE); - Pipe_SetToken(PIPE_TOKEN_IN); - Pipe_Unfreeze(); - - if (!(Pipe_ReadWriteAllowed())) - { - Pipe_Freeze(); - return; - } - - Pipe_Read_Stream_LE(&ACLPacketHeader, sizeof(ACLPacketHeader)); - - Bluetooth_DataPacket_Header_t DataHeader; - Pipe_Read_Stream_LE(&DataHeader, sizeof(DataHeader)); - - BT_DEBUG("(ACL) Packet Received", NULL); - BT_DEBUG("(ACL) -- Connection Handle: 0x%04X", ACLPacketHeader.ConnectionHandle); - BT_DEBUG("(ACL) -- Data Length: 0x%04X", ACLPacketHeader.DataLength); - BT_DEBUG("(ACL) -- Destination Channel: 0x%04X", DataHeader.DestinationChannel); - BT_DEBUG("(ACL) -- Payload Length: 0x%04X", DataHeader.PayloadLength); - - if (DataHeader.DestinationChannel == BLUETOOTH_CHANNEL_SIGNALING) - { - Bluetooth_SignalCommand_Header_t SignalCommandHeader; - Pipe_Read_Stream_LE(&SignalCommandHeader, sizeof(SignalCommandHeader)); - - switch (SignalCommandHeader.Code) - { - case BLUETOOTH_SIGNAL_CONNECTION_REQUEST: - Bluetooth_ProcessSignalPacket_ConnectionRequest(&ACLPacketHeader, &DataHeader, &SignalCommandHeader); - break; - case BLUETOOTH_SIGNAL_CONFIGURATION_REQUEST: - Bluetooth_ProcessSignalPacket_ConfigurationRequest(&ACLPacketHeader, &DataHeader, &SignalCommandHeader); - break; - default: - BT_DEBUG("(ACL) >> Unknown Signalling Command 0x%02X", SignalCommandHeader.Code); - - Pipe_Discard_Stream(ACLPacketHeader.DataLength); - Pipe_ClearCurrentBank(); - Pipe_Freeze(); - break; - } - } - else - { - uint8_t DataPayload[DataHeader.PayloadLength]; - Pipe_Read_Stream_LE(&DataPayload, sizeof(DataPayload)); - DataHeader.PayloadLength = 0; - - BT_DEBUG("(ACL) -- Data Payload: ", NULL); - for (uint16_t B = 0; B < sizeof(DataPayload); B++) - printf("0x%02X ", DataPayload[B]); - BT_DEBUG("", NULL); - - Pipe_Discard_Stream(ACLPacketHeader.DataLength); - Pipe_ClearCurrentBank(); - Pipe_Freeze(); - } -} - -static inline void Bluetooth_ProcessSignalPacket_ConnectionRequest(Bluetooth_ACL_Header_t* ACLPacketHeader, - Bluetooth_DataPacket_Header_t* DataHeader, - Bluetooth_SignalCommand_Header_t* SignalCommandHeader) -{ - Bluetooth_SignalCommand_ConnectionRequest_t ConnectionRequest; - - Pipe_Read_Stream_LE(&ConnectionRequest, sizeof(ConnectionRequest)); - - BT_DEBUG("(ACL) >> L2CAP Connection Request", NULL); - BT_DEBUG("(ACL) -- PSM: 0x%04X", ConnectionRequest.PSM); - BT_DEBUG("(ACL) -- Source Channel: 0x%04X", ConnectionRequest.SourceChannel); - - Pipe_ClearCurrentBank(); - Pipe_Freeze(); - Pipe_SelectPipe(BLUETOOTH_DATA_OUT_PIPE); - Pipe_SetToken(PIPE_TOKEN_OUT); - Pipe_Unfreeze(); - - Bluetooth_SignalCommand_ConnectionResponse_t ConnectionResponse; - - ACLPacketHeader->DataLength = sizeof(*DataHeader) + sizeof(*SignalCommandHeader) + sizeof(ConnectionResponse); - DataHeader->PayloadLength = sizeof(*SignalCommandHeader) + sizeof(ConnectionResponse); - DataHeader->DestinationChannel = BLUETOOTH_CHANNEL_SIGNALING; - SignalCommandHeader->Code = BLUETOOTH_SIGNAL_CONNECTION_RESPONSE; - SignalCommandHeader->Length = sizeof(ConnectionResponse); - - Bluetooth_Channel_t* ChannelData = Bluetooth_InitChannelData(ConnectionRequest.SourceChannel, ConnectionRequest.PSM); - - ConnectionResponse.Result = (ChannelData == NULL) ? BLUETOOTH_CONNECTION_REFUSED_RESOURCES : - BLUETOOTH_CONNECTION_SUCCESSFUL; - ConnectionResponse.DestinationChannel = ChannelData->LocalNumber; - ConnectionResponse.SourceChannel = ChannelData->RemoteNumber; - ConnectionResponse.Status = 0x00; - - Pipe_Write_Stream_LE(ACLPacketHeader, sizeof(*ACLPacketHeader)); - Pipe_Write_Stream_LE(DataHeader, sizeof(*DataHeader)); - Pipe_Write_Stream_LE(SignalCommandHeader, sizeof(*SignalCommandHeader)); - Pipe_Write_Stream_LE(&ConnectionResponse, sizeof(ConnectionResponse)); - - Pipe_ClearCurrentBank(); - Pipe_Freeze(); - - BT_DEBUG("(ACL) Packet Sent", NULL); - BT_DEBUG("(ACL) -- Connection Handle: 0x%04X", ACLPacketHeader->ConnectionHandle); - BT_DEBUG("(ACL) -- Data Length: 0x%04X", ACLPacketHeader->DataLength); - BT_DEBUG("(ACL) -- Destination Channel: 0x%04X", DataHeader->DestinationChannel); - BT_DEBUG("(ACL) -- Payload Length: 0x%04X", DataHeader->PayloadLength); - BT_DEBUG("(ACL) >> L2CAP Connection Response", NULL); - BT_DEBUG("(ACL) -- Source Channel: 0x%04X", ConnectionResponse.SourceChannel); - BT_DEBUG("(ACL) -- Destination Channel: 0x%04X", ConnectionResponse.DestinationChannel); -} - -static inline void Bluetooth_ProcessSignalPacket_ConfigurationRequest(Bluetooth_ACL_Header_t* ACLPacketHeader, - Bluetooth_DataPacket_Header_t* DataHeader, - Bluetooth_SignalCommand_Header_t* SignalCommandHeader) -{ - Bluetooth_SignalCommand_ConfigurationRequest_t ConfigurationRequest; - - Pipe_Read_Stream_LE(&ConfigurationRequest, sizeof(ConfigurationRequest)); - - BT_DEBUG("(ACL) >> L2CAP Configuration Request", NULL); - BT_DEBUG("(ACL) -- Destination Channel: 0x%04X", ConfigurationRequest.DestinationChannel); - - Pipe_ClearCurrentBank(); - Pipe_Freeze(); - Pipe_SelectPipe(BLUETOOTH_DATA_OUT_PIPE); - Pipe_SetToken(PIPE_TOKEN_OUT); - Pipe_Unfreeze(); - - Bluetooth_SignalCommand_ConfigurationResponse_t ConfigurationResponse; - - ACLPacketHeader->DataLength = sizeof(*DataHeader) + sizeof(*SignalCommandHeader) + sizeof(ConfigurationResponse); - DataHeader->PayloadLength = sizeof(*SignalCommandHeader) + sizeof(ConfigurationResponse); - DataHeader->DestinationChannel = BLUETOOTH_CHANNEL_SIGNALING; - SignalCommandHeader->Code = BLUETOOTH_SIGNAL_CONFIGURATION_RESPONSE; - SignalCommandHeader->Length = sizeof(ConfigurationResponse); - - Bluetooth_Channel_t* ChannelData = Bluetooth_GetChannelData(ConfigurationRequest.DestinationChannel, CHANNEL_LOOKUP_BY_DESTINATION); - - if (ChannelData != NULL) - ChannelData->State = Channel_Open; - - // TODO: Add channel config data to the tail of ConfigurationResponse - - ConfigurationResponse.SourceChannel = ChannelData->RemoteNumber; - ConfigurationResponse.Flags = 0x00; - ConfigurationResponse.Result = (ChannelData != NULL) ? BLUETOOTH_CONFIGURATION_SUCCESSFUL : BLUETOOTH_CONFIGURATION_REJECTED; - - Pipe_Write_Stream_LE(ACLPacketHeader, sizeof(*ACLPacketHeader)); - Pipe_Write_Stream_LE(DataHeader, sizeof(*DataHeader)); - Pipe_Write_Stream_LE(SignalCommandHeader, sizeof(*SignalCommandHeader)); - Pipe_Write_Stream_LE(&ConfigurationResponse, sizeof(ConfigurationResponse)); - - Pipe_ClearCurrentBank(); - Pipe_Freeze(); - - BT_DEBUG("(ACL) Packet Sent", NULL); - BT_DEBUG("(ACL) -- Connection Handle: 0x%04X", ACLPacketHeader->ConnectionHandle); - BT_DEBUG("(ACL) -- Data Length: 0x%04X", ACLPacketHeader->DataLength); - BT_DEBUG("(ACL) -- Destination Channel: 0x%04X", DataHeader->DestinationChannel); - BT_DEBUG("(ACL) -- Payload Length: 0x%04X", DataHeader->PayloadLength); - BT_DEBUG("(ACL) >> L2CAP Configuration Response", NULL); -} -- cgit v1.2.3