Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
55db57e1
Commit
55db57e1
authored
Apr 18, 2010
by
Dean Camera
Browse files
Add bluetooth channel connection callback to the incomplete BluetoothHost demo.
parent
1f682ca2
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Demos/Host/Incomplete/BluetoothHost/BluetoothHost.c
View file @
55db57e1
...
...
@@ -238,6 +238,20 @@ void Bluetooth_DisconnectionComplete(void)
Bluetooth_Connection
.
RemoteAddress
[
1
],
Bluetooth_Connection
.
RemoteAddress
[
0
]);
}
/** Bluetooth stack callback event for a Bluetooth ACL Channel connection request. When is callback fires,
* the user application must indicate if the channel connection should be rejected or not, based on the
* protocol (PSM) value of the requested channel.
*
* \param PSM Protocol PSM value for the requested channel
*
* \return Boolean true to accept the channel connection request, false to reject it
*/
bool
Bluetooth_ChannelConnectionRequest
(
uint16_t
PSM
)
{
/* Always accept channel connection requests regardless of PSM */
return
true
;
}
/** Bluetooth stack callback event for a non-signal ACL packet reception. This callback fires once a connection
* to a remote Bluetooth device has been made, and the remote device has sent a non-signalling ACL packet.
*
...
...
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.c
View file @
55db57e1
...
...
@@ -381,14 +381,26 @@ static inline void Bluetooth_Signal_ConnectionReq(BT_Signal_Header_t* SignalComm
}
}
}
uint8_t
ChannelStatus
=
BT_CONNECTION_REFUSED_RESOURCES
;
/* Reset the channel item contents only if a channel entry was found for it */
if
(
ChannelData
!=
NULL
)
{
ChannelData
->
RemoteNumber
=
ConnectionRequest
.
SourceChannel
;
ChannelData
->
PSM
=
ConnectionRequest
.
PSM
;
ChannelData
->
LocalMTU
=
MAXIMUM_CHANNEL_MTU
;
ChannelData
->
State
=
Channel_Config_WaitConfig
;
/* Check if the user application will allow the connection based on its PSM */
if
(
Bluetooth_ChannelConnectionRequest
(
ConnectionRequest
.
PSM
))
{
ChannelData
->
RemoteNumber
=
ConnectionRequest
.
SourceChannel
;
ChannelData
->
PSM
=
ConnectionRequest
.
PSM
;
ChannelData
->
LocalMTU
=
MAXIMUM_CHANNEL_MTU
;
ChannelData
->
State
=
Channel_Config_WaitConfig
;
ChannelStatus
=
BT_CONNECTION_SUCCESSFUL
;
}
else
{
ChannelStatus
=
BT_CONNECTION_REFUSED_PSM
;
}
}
struct
...
...
@@ -405,8 +417,7 @@ static inline void Bluetooth_Signal_ConnectionReq(BT_Signal_Header_t* SignalComm
/* Fill out the Connection Response in the response packet */
ResponsePacket
.
ConnectionResponse
.
DestinationChannel
=
ChannelData
->
LocalNumber
;
ResponsePacket
.
ConnectionResponse
.
SourceChannel
=
ChannelData
->
RemoteNumber
;
ResponsePacket
.
ConnectionResponse
.
Result
=
(
ChannelData
==
NULL
)
?
BT_CONNECTION_REFUSED_RESOURCES
:
BT_CONNECTION_SUCCESSFUL
;
ResponsePacket
.
ConnectionResponse
.
Result
=
ChannelStatus
;
ResponsePacket
.
ConnectionResponse
.
Status
=
0x00
;
Bluetooth_SendPacket
(
&
ResponsePacket
,
sizeof
(
ResponsePacket
),
NULL
);
...
...
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothACLPackets.h
View file @
55db57e1
...
...
@@ -70,6 +70,7 @@
#define BT_INFORMATION_NOTSUPPORTED 0x0001
#define BT_CONNECTION_SUCCESSFUL 0x0000
#define BT_CONNECTION_REFUSED_PSM 0x0002
#define BT_CONNECTION_REFUSED_RESOURCES 0x0004
#define BT_CONFIGURATION_SUCCESSFUL 0x0000
...
...
Demos/Host/Incomplete/BluetoothHost/Lib/BluetoothStack.h
View file @
55db57e1
...
...
@@ -127,6 +127,7 @@
bool
Bluetooth_ConnectionRequest
(
uint8_t
*
RemoteAddress
);
void
Bluetooth_ConnectionComplete
(
void
);
void
Bluetooth_DisconnectionComplete
(
void
);
bool
Bluetooth_ChannelConnectionRequest
(
uint16_t
PSM
);
void
Bluetooth_PacketReceived
(
void
*
Data
,
uint16_t
DataLen
,
Bluetooth_Channel_t
*
Channel
);
Bluetooth_Channel_t
*
Bluetooth_GetChannelData
(
uint16_t
ChannelNumber
,
bool
SearchByRemoteChannel
);
Bluetooth_Channel_t
*
Bluetooth_OpenChannel
(
uint16_t
PSM
);
...
...
LUFA.pnproj
View file @
55db57e1
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment