Commit Graph

135 Commits (dea897ef571bf33bc80c0e1dbf35601009582f3d)

Author SHA1 Message Date
Dean Camera 8b053d6ba5 Added new Drivers/USB/LowLevel/Device.c file to house Device mode specific functions that are more complicated than simple macros. Moved USB_Device_SendRemoteWakeup() to the new Device.c source file and corrected it to unfreeze and restart the USB controller clock before issuing a Remote Wakeup request.
15 years ago
Dean Camera 31a34154db Move out RFCOMM channel structure init code to a seperate routine, to save on compiled code space and to prevent copy-paste errors.
15 years ago
Dean Camera fbabecee66 Add RFCOMM service routine, to send pending configuration requests on RFCOMM channels. Add in RFCOMM channel config flags, to determine which configuration commands have been sent and received.
15 years ago
Dean Camera b656540468 Make Bluetooth ACL channel searches skip over closed (invalid) channels. RFCOMM channels are considered invalid when the channel state is closed, not when the DLCI is zero - fix incorrect code.
15 years ago
Dean Camera 4b952d479a Split RFCOMM channel signals into Remote and Local pairs. Use memcpy() to copy over data from the command parameters to the RFCOMM response parameters.
15 years ago
Dean Camera 2eff731ecf Add TEST RFCOMM command handler. Remove the RFCOMM channel UseUIFrame element, as the Bluetooth adaptions to RFCOMM only allow UIH frames to be used.
15 years ago
Dean Camera 559af02204 Use a bitmask instead of an array of bools in the SDP UUID List matching algorithm to reduce the compiled code size and stack used.
15 years ago
Dean Camera e621ab33be Added new pgm_read_ptr() macro to Common.h for reading of pointers out of flash memory space.
15 years ago
Dean Camera 13ea700b35 Rename RFCOMM_GetFrameDataLength() to RFCOMM_GetVariableFieldValue() as it is multi-purpose, and modify it to move the buffer pointer itself rather than relying on the caller.
15 years ago
Dean Camera f5d079462d Changed the RFCOMM-specific ItemProtocolChannel_t type to a more generic ItemProtocol_8BitParam_t name, and added a new ItemProtocol_16BitParam_t to the SDP protocol type defines.
15 years ago
Dean Camera 3125fd5f4f Add RFCOMM channel configuration parsing and channel states to the incomplete BluetoothHost demo.
15 years ago
Dean Camera 67bc625109 Split out the RFCOMM Control Channel command processing code into a seperate set of files for clarity.
15 years ago
Dean Camera b522e35965 Rename the incomplete Bluetooth Host demo's ServiceDiscoveryProtocol.c/.h files to SDP.c/.h. Fix compile errors in RFCOMM.c/.h.
15 years ago
Dean Camera 637c7b01d0 More RFCOMM layer additions - begin to add multiplexer channel state variables.
15 years ago
Dean Camera 931ca42a6e Minor fixes to demos to add in some missing comments, printf() formatting. Make incomplete Bluetooth demo indicate connections visually via the board LEDs.
15 years ago
Dean Camera e930738247 Add stub RFCOMM command handlers. Move out RFCOMM frame length and data pointer calculations to the master RFCOMM frame reception routine, instead of inside each frame type handler function.
15 years ago
Dean Camera f92229697f More RFCOMM layer implementation - fix FCS calculation, add in start of control channel command processing.
15 years ago
Dean Camera 34e0fed4ca Make the RFCOMM_SendFrame() function correctly generate frames from the input parameters, change addressing to use the raw DLCI address plus flags.
15 years ago
Dean Camera 361e1ec1d8 Refactor out RFCOMM packet send code into a seperate function.
15 years ago
Dean Camera 2dabb4e55f Add the svn:eol-style property onto new files which where missing it to ensure uniform line endings.
15 years ago
Dean Camera efbedcfa54 Document Bluetooth files with overall file Doxygen comments. Add more initial RFCOMM layer code to receive and respond to SABM packets.
15 years ago
Dean Camera 6d53cdba83 More documentation fixes.
15 years ago
Dean Camera fc92f9969c Minor documentation cleanups.
15 years ago
Dean Camera 9293de2491 Start implementation of RFCOMM decoding layer. Add new service initialize routines for each Bluetooth service - currently unused, but will eventually reset the service state of RFCOMM when a new connection is made.
15 years ago
Dean Camera 13d812a718 Delay needed in bluetooth code due to the send function not waiting for the pipe bank to become ready before writing. Add in a call to Pipe_WaitUntilReady() to fix the issue.
15 years ago
Dean Camera a405a9bdf8 Extra protocol value in the RFCOMM protocol is the channel number, not the PSM - update typedef name and size.
15 years ago
Dean Camera 480da5aab6 Add PSM value to the RFCOMM service so that the host knows what PSM to use on channels when trying to access it.
15 years ago
Dean Camera 008e0e2e0a Add start of RFCOMM service layer to the incomplete BluetoothHost demo.
15 years ago
Dean Camera 23a94a7181 Fix byte ordering of UUIDs in the SDP server - host can now successfully pair to the Bluetooth device and discover the exposed Serial Port Profile RFCOMM service.
15 years ago
Dean Camera c362709a1e The SDP UUID lists should be searched and ALL UUIDs matched for a record to be retrieved, not partial matches. Change the SDP code so that the entire list must be matched against a service attribute table's contents before it is returned.
15 years ago
Dean Camera da51c1f974 Add L2CAP service attribute table. Fix up ProtocolDescriptorList attributes, and add macros for used UUIDs to reduce typing and make the code easier to read.
15 years ago
Dean Camera b98158bd50 Clean up the Service tables, add incomplete ProtocolDescriptorList attribute to the SDP service.
15 years ago
Dean Camera 32ab52a298 Remove incorrect Language ID offset attribute from the SDP server - client assumes 0x0100 offset for primary language anyway, and the format of the offset was incorrect anyway.
15 years ago
Dean Camera 255d4ef858 Service Attribute SDP requests should have only one Data Element Sequence container around the single service's retrieved attributes, not two.
15 years ago
Dean Camera 0902ff9651 Document inline SDP data read/write functions.
15 years ago
Dean Camera 3f3fdb01a9 Much faster attribute range lookup - look through short list of attributes and compare to range, rather than looking up by each possible value within the range.
15 years ago
Dean Camera cb52e4371e Fix the encoding of UUIDs in the SDP server so that they match the Bluetooth UUID format properly.
15 years ago
Dean Camera e0ef5741d4 Move SDP service tables out into a new set of files, to make the SDP service code cleaner.
15 years ago
Dean Camera 587f320333 Add Service Attribute request processing to the SDP server code.
15 years ago
Dean Camera e15838d4e2 Fix endianness issues in the Service Discovery Protocol service of the incomplete Bluetooth Host demo. Host can now correctly retrieve specific services, however Windows does not appear to be sending the appropriate generic browse class IDs needed to report the virtual serial service.
15 years ago
Dean Camera c1daecf18b Fixed incorrect signature for the ATMEGA32U2 in the DFU bootloader (thanks to Axel Rohde).
15 years ago
Dean Camera 4a13a5484a Fixed RNDISEthernet demos crashing when calculating checksums for Ethernet/TCP packets of more than ~500 bytes due to an overflow in the checksum calculation loop (thanks to Kevin Malec).
15 years ago
Dean Camera 8f3d4e69c3 Add UUID Class matching to the Service Discovery Protocol code - SDP is now correctly matched against the generic Service Discovery Class UUID.
15 years ago
Dean Camera 776485a6c5 Remove obsolete entry from the Doxygen configuration files.
15 years ago
Dean Camera 8cdb141eed SDP Service improvements; fixed UUID for SDP service, added Service Discovery Server UUID, better documentation.
15 years ago
Dean Camera a20a9086f7 Add comments and partial Doxygen documentation to the incomplete Bluetooth SDP handler code.
15 years ago
Dean Camera 58a0ee67a3 Oops - when adding a sequence header to the SDP response, the size value needs to be cleared, not the buffer pointer.
15 years ago
Dean Camera 92bebc457f Add incomplete code to properly handle attribute responses to Service Discovery Protocol requests.
15 years ago
Dean Camera 83b5c916c6 Service Discovery ServiceSearchAttribute requests require the response to be grouped by UUID, so the response can't be generated as the attributes are read in. Buffer both UUIDs and Attributes instead and generate the response afterwards.
15 years ago
Dean Camera 3e515cdfa8 Short UUIDs are measured in bytes, not bits -- update Service Discovery Protocol code so that it can now correctly match against UUIDs in the service table.
15 years ago