Commit Graph

395 Commits

Author SHA1 Message Date
Dean Camera cb779e3d7d Changed over www.fourwalledcubicle.com links to the new www.lufa-lib.org redirect domain, including the new aliased links for LUFA-related pages such as the various download/source control mirrors and support lists. 2010-10-28 06:08:58 +00:00
Dean Camera 55538dcef3 Add descriptor class, subclass and protocol constants to the class drivers, modify all demos to use them where possible.
Move out private/internal host class driver constants to the common class driver headers, so that they can be used in the Low Level host mode demos.

Ensure all demos, projects and bootloaders use the class driver constants where possible to minimise code repetition.
2010-10-25 12:42:55 +00:00
Dean Camera b37d77eab3 All USB class drivers are now automatically included when LUFA/Drivers/USB.h is included, and no longer need to be seperately included.
All LowLevel demos changed to use the constants and types defined in the USB class drivers.
2010-10-24 22:53:57 +00:00
Dean Camera 5a4def7478 Clean up excessive whitespace at the end of each line using the wspurify tool made by Laszlo Monda 2010-10-13 14:05:35 +00:00
Dean Camera c8942ef469 Fixed LowLevel JoystickHostWithParser demo not saving the chosen HID interface's report descriptor size.
Simplified low level Host demo configuration descriptor parser routines.
2010-10-01 12:01:54 +00:00
Dean Camera 7166c7ba3e Fix low level host mode demos not correctly fetching the next endpoint when an invalid interface is discarded.
Update the pipe configuration routines in the host mode class drivers so that they use the same new code to enumerate compatible devices to increase reliability. Add support to the host mode class drivers for non-sequential (but non-overlapping with other interface) pipe numbers.
2010-09-30 07:56:47 +00:00
Dean Camera 158afe9109 Reverted Endpoint/Pipe non-sequential configuration hack, placed restriction on the configuration order instead to ensure maximum reliability.
Altered all low level device and host mode demos to ensure that endpoints and pipes are configured in ascending order properly.

Rewrote all low level host mode demos' configuration descriptor parser code to ensure that pipes are enumerated in ascending order, and to ensure maximum compatibility with devices.

Incremented all device mode demo's device descriptor revision numbers to ensure that any descriptor changes are re-fetched on machines which have enumerated previous versions.
2010-09-30 06:23:38 +00:00
Dean Camera 713670043a Move out many of the common class driver constants into grouped enums, to make them more managable.
Add new CDC descriptor structs to the CDC class driver, so that the CDC demos can use human readable field names.

Rename prefix for Still Image Host class driver functions from "SImage_" to "SI_" to remain consistent with the rest of the driver.
2010-09-28 12:14:06 +00:00
Dean Camera 800485bd95 Remove dfu-programmer program switches, to ensure maximum compatibility with all dfu-programmer versions. 2010-09-24 06:59:28 +00:00
Dean Camera bd85422d2b Added the --suppress-bootloader-mem option to the makefile dfu target, to ensure that writes to the bootloader section of the AVR's flash memory are ignored (thanks to Axel Rohde).
Fixed incorrect command name for EEPROM memory programming in the makefile dfu-ee target.

Makefile whitespace fixes.
2010-09-24 06:45:11 +00:00
Dean Camera 5f3c4cc6e0 Reverted modifications to USBInterrupt.h that were intefering with correct host mode operation.
Fixed SUSPI interrupt not being cleared during device mode enumeration, causing accidental mis-fires on re-enumeration.

Fixed JTAG_DEBUG_POINT() and JTAG_DEBUG_BREAK() macros not compiling under pure C99 standards mode.
2010-09-22 04:20:45 +00:00
Dean Camera 6d2f091cec Make project makefiles correctly clean intermeditary build files from assembly and C++ sources (thanks to Daniel Czigany). 2010-09-15 03:00:29 +00:00
Dean Camera c166dfc64e Added class specific descriptor type defines with standard USB-IF element naming. 2010-09-09 13:05:57 +00:00
Dean Camera 7aaf9b2036 Added new PRNT_Host_BytesReceived() and PRNT_Host_ReceiveByte() functions to the Print Host Class driver. 2010-09-07 03:38:11 +00:00
Dean Camera 18cbd31605 Added new USB_Device_GetFrameNumber() and USB_Host_GetFrameNumber() functions to retrieve the current USB frame number.
Added new USB_Host_EnableSOFEvents(), USB_Host_DisableSOFEvents() and EVENT_USB_Host_StartOfFrame() for the user application handling of USB Start of Frame events while in USB Host mode.

Changed over all demos, drivers and internal functions to use the current frame number over the Start of Frame flag where possible to free up the Start of Frame flag for interrupt use in the user application.
2010-09-05 07:11:53 +00:00
Dean Camera 4dece08bef Clarify in the project documentation files what the each of the different USB AVR device "series" comprises of. 2010-08-31 12:33:21 +00:00
Dean Camera b7b8a9edfa Fixed LowLevel PrinterHost demo not sending control requests to the attached printer with the correct printer interface wIndex value. 2010-08-24 13:16:16 +00:00
Dean Camera ad4308b1d1 Added new SCSI_ASENSE_NOT_READY_TO_READY_CHANGE constant to the Mass Storage class driver, to indicate when a previously not ready removable medium has now become ready for the host's use (thanks to Martin Degelsegger) 2010-08-20 11:03:25 +00:00
Dean Camera eb060db71b Tighten up the code in the delta movement detection code in the MouseHostWithParser and JoystickHostWithParser demos. Make the ClassDriver JoystickHostWithParser demo use the HID_ALIGN_DATA() macro instead of manual shifting and casting. 2010-08-09 12:04:52 +00:00
Dean Camera 5f3a1b2629 Fix invocations of avr-size in all makefiles broken on unpatched *nix systems, due to the recent update to the latest WinAVR makefile template. 2010-08-08 08:30:42 +00:00
Dean Camera 48c5cdced4 Hide the PROGMEM attribute from Doxygen, as it appears to confuse the parser in some situations. 2010-08-02 08:53:23 +00:00
Dean Camera 612df774d9 Oops - fix mixed "initialize" and "initialise" - opt for American spelling due to its wide use in technical standards. 2010-07-30 10:58:16 +00:00
Dean Camera 0f45b9c8e0 More spell checking of all source files -- correct missed errors, switch to EN-GB spelling dictionary. 2010-07-30 09:48:35 +00:00
Dean Camera 24e621a8d8 Altered the CDC Deivice and Host Class drivers' receive byte routines, so that no data is indicated by a negative return value.
Added auto flushing of OUT data to the CDC Host Class driver's USBTask function to automatically flush the send pipe buffer.
2010-07-30 03:52:11 +00:00
Dean Camera 7c8d16fd7a Oops - need to turn off USART via control register B before reconfiguring, fix ordering of USART control register modifications in the Benito and USBtoSerial projects. 2010-07-30 01:11:04 +00:00
Dean Camera 28401f7bb7 Spell check all source files once again to find any typos. 2010-07-29 16:20:45 +00:00
Dean Camera cd39c38d5f Rename reserved members of all structs so that they are uniformly named across all demos/projects/bootloaders.
Added start of the Incomplete TMC demo's command parser code.
2010-07-26 07:28:40 +00:00
Dean Camera 6bda628718 Update all demos, projects and bootloaders to indent all function parameters, one per line, for better readability.
Add missing const qualifiers to the demos.
2010-07-21 16:19:32 +00:00
Dean Camera 6b5e684c77 Update makefiles to use the latest WinAVR/Atmel toolchain makefile template.
Add new module source variables to the library core makefile, so that module sources can be added to a project's makefile on a per-module rather than per-file basis.
2010-07-19 14:00:44 +00:00
Dean Camera 42ac34b484 Change over all makefiles to use C99 standards mode, rather than C99 + GNU Extensions. 2010-07-18 07:31:57 +00:00
Dean Camera 9299735c75 Disable strict aliasing explicitly in the project makefiles, as this is apparently enabled by default in newer AVR-GCC builds, and aliasing is used heavily for type-punning through the LUFA and third party library's codebase. 2010-07-15 17:13:33 +00:00
Dean Camera f4710f6f86 Removed the automated checking of event names in the demo, project and bootloader makefiles due to inconsistancies between the behaviour of the command line tools used to perform the check on each platform.
Removed the internal endpoint and pipe memory allocation macros, as this is already performed directly in the code. Simplify the endpoint and pipe reset procedure.
2010-07-15 16:45:26 +00:00
Dean Camera 658da63e6c Add AVRStudio 4 project files to the ClassDriver Host mode demos. 2010-07-13 05:11:23 +00:00
Dean Camera 20943fa1aa Add AVRStudio 4 project files to the LowLevel Host mode demos. 2010-07-13 05:01:18 +00:00
Dean Camera 1167b69943 Add missing eol-style properties to new source files. 2010-07-12 10:20:38 +00:00
Dean Camera ae9dab1398 Add missing clean_doxygen phony targets to the project makefiles. 2010-07-12 10:18:18 +00:00
Dean Camera 2b0d93c129 Correct misspellings in the Bluetooth demo code. 2010-07-11 08:11:25 +00:00
Dean Camera f6e84eabce Add more doxygen function documentation to the RFCOMM layer. 2010-07-11 07:59:15 +00:00
Dean Camera 00fa6aa2db Oops - ACL layer Bluetooth_SendPacket() function should check and allow NULL channels, since that indicates a control channel request.
Fix up Doxgen documentation for the Bluetooth stack code.
2010-07-11 07:38:18 +00:00
Dean Camera 6276d5f82a Rename Bluetooth stack function parameters to clearly indicate what sort of Bluetooth channel (ACL, RFCOMM) is required for each parameter, to make the code easier to read.
Add a new RFCOMM_ChannelSignalsReceived() Bluetooth stack callback from the RFCOMM layer for when the remote device sends new terminal control signals.

Fix RFCOMM_SendData() not aborting correctly when the requested RFCOMM channel is not found.
2010-07-11 07:29:27 +00:00
Dean Camera 2b0e86243f Add a new RFCOMM_ChannelOpened() callback event for when logical RFCOMM channels are opened in the BluetoothHost demo. Make the demo echo back sent characters to the remote device. 2010-07-08 08:48:52 +00:00
Dean Camera c37fd0ef91 Add a new RFCOMM service callback for when new data has been received on a valid RFCOMM channel. 2010-07-08 08:05:14 +00:00
Dean Camera 70983caea5 Move out Bluetooth stack callback functions to a seperate BluetoothEvents.c/.h set of files for clarity in the Incomplete BluetoothHost demo. Add a new stack callback for opened ACL channels, make the demo save the RFCOMM channel when opened so that it does not have to search for it on each iteration of the main program loop. 2010-07-08 07:44:07 +00:00
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.
Removed the USB_Device_IsRemoteWakeupSent() and USB_Device_IsUSBSuspended() macros, as they are now obsolete.
2010-07-02 03:37:19 +00:00
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. 2010-07-02 03:06:16 +00:00
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.
Add a new RFCOMM_SendChannelSignals() function to transmit a change in V24 terminal handshake lines to the receiving device.

Prevent SABM packets sent to the control DLCI in the RFCOMM layer from creating a new channel entry, as the control DLCI does not have connection data associated with it.

Fix up MSC control packet handling so that received responses can be acknowledged correctly, so that the RFCOMM layer can record when the receiving device has ACKed a sent change in V24 terminal handshake lines.
2010-06-29 04:40:02 +00:00
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. 2010-06-26 15:07:13 +00:00
Dean Camera d29a408ffd Add default "all" makefile targets to the demo tree makefiles. 2010-06-25 13:28:34 +00:00
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.
Ensure that only the valid parameter bytes are sent back in response to MSC commands.
2010-06-23 08:10:21 +00:00
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. 2010-06-23 07:17:47 +00:00
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. 2010-06-22 07:55:02 +00:00
Dean Camera e621ab33be Added new pgm_read_ptr() macro to Common.h for reading of pointers out of flash memory space.
Added new SWAPENDIAN_16() and SWAPENDIAN_32() macros to Common.h for statically initialized variables at compile time.
2010-06-22 07:06:27 +00:00
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.
Make RFCOMM_GetChannelData() return NULL if the required channel DLCI is found, but the channel is closed.

Add modem signals (BREAK, DCD, etc.) to the channel state array, and add in a handler for the Modem Status RFCOMM control command.
2010-06-15 11:28:15 +00:00
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. 2010-06-15 10:09:42 +00:00
Dean Camera 3125fd5f4f Add RFCOMM channel configuration parsing and channel states to the incomplete BluetoothHost demo.
Add missing BT_* prefix to the Bluetooth stack's channel state enum values.
2010-06-15 09:32:35 +00:00
Dean Camera 67bc625109 Split out the RFCOMM Control Channel command processing code into a seperate set of files for clarity. 2010-06-13 13:21:35 +00:00
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. 2010-06-13 12:44:20 +00:00
Dean Camera 637c7b01d0 More RFCOMM layer additions - begin to add multiplexer channel state variables. 2010-06-13 12:37:16 +00:00
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. 2010-06-12 07:03:22 +00:00
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. 2010-06-07 13:39:34 +00:00
Dean Camera f92229697f More RFCOMM layer implementation - fix FCS calculation, add in start of control channel command processing. 2010-06-07 12:53:47 +00:00
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. 2010-06-07 09:07:18 +00:00
Dean Camera 361e1ec1d8 Refactor out RFCOMM packet send code into a seperate function. 2010-06-06 14:39:51 +00:00
Dean Camera 2dabb4e55f Add the svn:eol-style property onto new files which where missing it to ensure uniform line endings. 2010-06-06 08:33:14 +00:00
Dean Camera efbedcfa54 Document Bluetooth files with overall file Doxygen comments. Add more initial RFCOMM layer code to receive and respond to SABM packets. 2010-06-04 06:25:12 +00:00
Dean Camera 6d53cdba83 More documentation fixes. 2010-06-03 15:55:28 +00:00
Dean Camera fc92f9969c Minor documentation cleanups. 2010-06-03 15:32:45 +00:00
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. 2010-06-03 12:45:15 +00:00
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. 2010-06-03 08:42:20 +00:00
Dean Camera a405a9bdf8 Extra protocol value in the RFCOMM protocol is the channel number, not the PSM - update typedef name and size.
Add delay to the Connection Request signal processing routine - without this, the host will not create the RFCOMM channel correctly. Need to investigate why this delay is needed.
2010-06-03 08:33:01 +00:00
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. 2010-06-03 07:45:09 +00:00
Dean Camera 008e0e2e0a Add start of RFCOMM service layer to the incomplete BluetoothHost demo.
Reduce the size of the attribute search list from 15 ranges to 8 to save RAM.
2010-06-03 03:58:57 +00:00
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. 2010-06-02 14:49:06 +00:00
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.
Change matching algorithm so that it recursively searches through the entire attribute table, and not just pre-specified sequence attributes.

Add browse lists and proper descriptions to the Serial Port service.
2010-06-02 07:05:34 +00:00
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. 2010-06-02 04:36:46 +00:00
Dean Camera b98158bd50 Clean up the Service tables, add incomplete ProtocolDescriptorList attribute to the SDP service. 2010-06-01 14:05:47 +00:00
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. 2010-06-01 13:11:55 +00:00
Dean Camera 255d4ef858 Service Attribute SDP requests should have only one Data Element Sequence container around the single service's retrieved attributes, not two. 2010-06-01 12:34:48 +00:00
Dean Camera 0902ff9651 Document inline SDP data read/write functions. 2010-06-01 11:38:07 +00:00
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.
Cleanups to SDP code. Add missing RFCOMM language base ID offset attribute. Fix incorrect definition of the SWAPENDIAN_32() macro.
2010-06-01 11:07:29 +00:00
Dean Camera cb52e4371e Fix the encoding of UUIDs in the SDP server so that they match the Bluetooth UUID format properly. 2010-06-01 04:22:20 +00:00
Dean Camera e0ef5741d4 Move SDP service tables out into a new set of files, to make the SDP service code cleaner. 2010-06-01 03:07:05 +00:00
Dean Camera 587f320333 Add Service Attribute request processing to the SDP server code. 2010-06-01 02:54:53 +00:00
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. 2010-05-31 14:08:15 +00:00
Dean Camera c1daecf18b Fixed incorrect signature for the ATMEGA32U2 in the DFU bootloader (thanks to Axel Rohde).
Partial fix to the Bluetooth SDP code - data should be encoded in big endian, not little endian.
2010-05-29 07:51:01 +00:00
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).
Removed string Attributes from the Service Discovery Protocol code to minimise the potential points of failure while the base code is being debugged.
2010-05-25 06:14:37 +00:00
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. 2010-05-23 13:15:19 +00:00
Dean Camera 776485a6c5 Remove obsolete entry from the Doxygen configuration files. 2010-05-23 08:39:02 +00:00
Dean Camera 8cdb141eed SDP Service improvements; fixed UUID for SDP service, added Service Discovery Server UUID, better documentation. 2010-05-23 08:36:51 +00:00
Dean Camera a20a9086f7 Add comments and partial Doxygen documentation to the incomplete Bluetooth SDP handler code. 2010-05-21 09:38:44 +00:00
Dean Camera 58a0ee67a3 Oops - when adding a sequence header to the SDP response, the size value needs to be cleared, not the buffer pointer. 2010-05-21 08:01:41 +00:00
Dean Camera 92bebc457f Add incomplete code to properly handle attribute responses to Service Discovery Protocol requests. 2010-05-21 07:10:49 +00:00
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. 2010-05-20 14:35:52 +00:00
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. 2010-05-20 13:06:04 +00:00
Dean Camera 141d94fa98 More SDP code improvements - responses to ServiceSearchAttribute service discovery requests should now be valid, even if they do not currently return the device's services and service attributes.
Added more documentation to the incomplete Bluetooth stack code.
2010-05-20 08:27:04 +00:00
Dean Camera 78600e2485 Switch over the BluetoothHost demo's Service Discovery code to pass around more generic GUID arrays. 2010-05-18 12:54:01 +00:00
Dean Camera f13bc35a19 Begin processing code for Service Discovery Protocol attributes. 2010-05-17 23:36:05 +00:00
Dean Camera ee5ea4ce2b Fix nasty bug in USBInterrupt.c which would cause a lockup if the control endpoint was not selected at the point the USB endpoint interrupt fires when INTERRUPT_CONTROL_ENDPOINT is defined. 2010-05-11 13:45:23 +00:00
Dean Camera 53ebb2f21a Refactor Service Discovery Protocol code in the incomplete Bluetooth Host demo, so that the UUID list is compiled via a seperate function to allow for its re-use between different SDP request types. 2010-05-10 13:56:16 +00:00
Dean Camera 071e02c6b6 Add svn:eol-style property to source files, so that the line endings are correctly converted to the target system's native end of line style. 2010-05-08 03:12:14 +00:00