forked from mfulz_github/qmk_firmware
Spell check all source code variables, comments and strings.
This commit is contained in:
parent
c647c27639
commit
d6edfe35c8
|
@ -343,7 +343,7 @@ static void WriteNextResponseByte(const uint8_t Response)
|
|||
/* Select the IN endpoint so that the next data byte can be written */
|
||||
Endpoint_SelectEndpoint(CDC_TX_EPNUM);
|
||||
|
||||
/* If IN endpoint full, clear it and wait util ready for the next packet to the host */
|
||||
/* If IN endpoint full, clear it and wait until ready for the next packet to the host */
|
||||
if (!(Endpoint_IsReadWriteAllowed()))
|
||||
{
|
||||
Endpoint_ClearIN();
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
};
|
||||
|
||||
/** Enum for the possible parity modes on a CDC-ACM virtual serial port */
|
||||
enum BootloaderCDC_CDC_LineCodeingParity_t
|
||||
enum BootloaderCDC_CDC_LineCodingParity_t
|
||||
{
|
||||
Parity_None = 0, /**< No data parity checking */
|
||||
Parity_Odd = 1, /**< Odd data parity checking */
|
||||
|
|
|
@ -108,7 +108,7 @@ USB_Descriptor_Configuration_t ConfigurationDescriptor =
|
|||
|
||||
.Attributes = (ATTR_CAN_UPLOAD | ATTR_CAN_DOWNLOAD),
|
||||
|
||||
.DetatchTimeout = 0x0000,
|
||||
.DetachTimeout = 0x0000,
|
||||
.TransferSize = 0x0c00,
|
||||
|
||||
.DFUSpecification = VERSION_BCD(01.01)
|
||||
|
|
|
@ -137,7 +137,7 @@
|
|||
uint8_t Attributes; /**< DFU device attributes, a mask comprising of the
|
||||
* ATTR_* macros listed in this source file
|
||||
*/
|
||||
uint16_t DetatchTimeout; /**< Timeout in milliseconds between a USB_DETACH
|
||||
uint16_t DetachTimeout; /**< Timeout in milliseconds between a USB_DETACH
|
||||
* command being issued and the device detaching
|
||||
* from the USB bus
|
||||
*/
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
|
||||
|
||||
uint8_t Refresh; /**< Always set to zero */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
|
||||
} USB_Audio_StreamEndpoint_Std_t;
|
||||
|
||||
/** Type define for an Audio class specific MIDI IN jack. This gives information to the host on a MIDI input, either
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
|
||||
union
|
||||
{
|
||||
uint16_t EtherType; /**< Ethernet packet subprotocol type, for Ethernet V2 packets */
|
||||
uint16_t EtherType; /**< Ethernet packet sub-protocol type, for Ethernet V2 packets */
|
||||
uint16_t Length; /**< Ethernet frame length, for Ethernet V1 packets */
|
||||
};
|
||||
} Ethernet_Frame_Header_t;
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
/** Processes an ICMP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if the host is issuing a ICMP ECHO request.
|
||||
*
|
||||
* \param[in] FrameIN Pointer to the incomming Ethernet frame information structure
|
||||
* \param[in] FrameIN Pointer to the incoming Ethernet frame information structure
|
||||
* \param[in] InDataStart Pointer to the start of the incoming packet's ICMP header
|
||||
* \param[out] OutDataStart Pointer to the start of the outgoing packet's ICMP header
|
||||
*
|
||||
|
|
|
@ -37,9 +37,9 @@
|
|||
#include "IP.h"
|
||||
|
||||
/** Processes an IP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if one is created by a subprotocol handler.
|
||||
* to the output Ethernet frame if one is created by a sub-protocol handler.
|
||||
*
|
||||
* \param[in] FrameIN Pointer to the incomming Ethernet frame information structure
|
||||
* \param[in] FrameIN Pointer to the incoming Ethernet frame information structure
|
||||
* \param[in] InDataStart Pointer to the start of the incoming packet's IP header
|
||||
* \param[out] OutDataStart Pointer to the start of the outgoing packet's IP header
|
||||
*
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
#include "UDP.h"
|
||||
|
||||
/** Processes a UDP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if a subprotocol handler has created a response packet.
|
||||
* to the output Ethernet frame if a sub-protocol handler has created a response packet.
|
||||
*
|
||||
* \param[in] IPHeaderInStart Pointer to the start of the incoming packet's IP header
|
||||
* \param[in] UDPHeaderInStart Pointer to the start of the incoming packet's UDP header
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
/** \file
|
||||
*
|
||||
* Simple webserver application for demonstrating the RNDIS demo and TCP/IP stack. This
|
||||
* application will serve up a static HTTP webpage when requested by the host.
|
||||
* application will serve up a static HTTP web page when requested by the host.
|
||||
*/
|
||||
|
||||
#include "Webserver.h"
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
appear as a new SideShow device which can have gadgets loaded onto
|
||||
it.
|
||||
|
||||
Note that while the incomming content is buffered in packet struct
|
||||
Note that while the incoming content is buffered in packet struct
|
||||
form, the data is not actually displayed. It is left to the user to
|
||||
write sufficient code to read out the packed data for display to a
|
||||
screen.
|
||||
|
|
|
@ -274,7 +274,7 @@
|
|||
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
|
||||
|
||||
uint8_t Refresh; /**< Always set to zero */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
|
||||
} USB_Audio_StreamEndpoint_Std_t;
|
||||
|
||||
/** Type define for an Audio class specific extended endpoint descriptor. This contains extra information
|
||||
|
|
|
@ -274,7 +274,7 @@
|
|||
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
|
||||
|
||||
uint8_t Refresh; /**< Always set to zero */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
|
||||
} USB_Audio_StreamEndpoint_Std_t;
|
||||
|
||||
/** Type define for an Audio class specific extended endpoint descriptor. This contains extra information
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
|
||||
|
||||
uint8_t Refresh; /**< Always set to zero */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
|
||||
} USB_Audio_StreamEndpoint_Std_t;
|
||||
|
||||
/** Type define for an Audio class specific MIDI IN jack. This gives information to the host on a MIDI input, either
|
||||
|
|
|
@ -84,7 +84,7 @@ SCSI_Request_Sense_Response_t SenseData =
|
|||
* to the appropriate SCSI command handling routine if the issued command is supported by the device, else it returns
|
||||
* a command failure due to a ILLEGAL REQUEST.
|
||||
*
|
||||
* \return Boolean true if the command completed sucessfully, false otherwise
|
||||
* \return Boolean true if the command completed successfully, false otherwise
|
||||
*/
|
||||
bool SCSI_DecodeSCSICommand(void)
|
||||
{
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
/** \file
|
||||
*
|
||||
* Ethernet frame packet handling routines. This protocol handles the processing of raw Ethernet
|
||||
* frames sent and received, deferring the processing of subpacket protocols to the appropriate
|
||||
* frames sent and received, deferring the processing of sub-packet protocols to the appropriate
|
||||
* protocol handlers, such as DHCP or ARP.
|
||||
*/
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
|
||||
union
|
||||
{
|
||||
uint16_t EtherType; /**< Ethernet packet subprotocol type, for Ethernet V2 packets */
|
||||
uint16_t EtherType; /**< Ethernet packet sub-protocol type, for Ethernet V2 packets */
|
||||
uint16_t Length; /**< Ethernet frame length, for Ethernet V1 packets */
|
||||
};
|
||||
} Ethernet_Frame_Header_t;
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include "IP.h"
|
||||
|
||||
/** Processes an IP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if one is created by a subprotocol handler.
|
||||
* to the output Ethernet frame if one is created by a sub-protocol handler.
|
||||
*
|
||||
* \param[in] InDataStart Pointer to the start of the incoming packet's IP header
|
||||
* \param[out] OutDataStart Pointer to the start of the outgoing packet's IP header
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
#include "UDP.h"
|
||||
|
||||
/** Processes a UDP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if a subprotocol handler has created a response packet.
|
||||
* to the output Ethernet frame if a sub-protocol handler has created a response packet.
|
||||
*
|
||||
* \param[in] IPHeaderInStart Pointer to the start of the incoming packet's IP header
|
||||
* \param[in] UDPHeaderInStart Pointer to the start of the incoming packet's UDP header
|
||||
|
|
|
@ -263,7 +263,7 @@ bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
|
|||
|
||||
/* Iterate through the item's collection path, until either the root collection node or a collection with the
|
||||
* Joystick Usage is found - this prevents Mice, which use identical descriptors except for the Joystick usage
|
||||
* parent node, from being erronously treated as a joystick
|
||||
* parent node, from being erroneously treated as a joystick
|
||||
*/
|
||||
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
|
||||
{
|
||||
|
|
|
@ -145,7 +145,7 @@ int main(void)
|
|||
SCSI_Inquiry_Response_t InquiryData;
|
||||
if (MS_Host_GetInquiryData(&FlashDisk_MS_Interface, 0, &InquiryData))
|
||||
{
|
||||
printf("Error retreiving device Inquiry data.\r\n");
|
||||
printf("Error retrieving device Inquiry data.\r\n");
|
||||
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
|
||||
USB_HostState = HOST_STATE_WaitForDeviceRemoval;
|
||||
break;
|
||||
|
|
|
@ -278,7 +278,7 @@ bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
|
|||
|
||||
/* Iterate through the item's collection path, until either the root collection node or a collection with the
|
||||
* Mouse Usage is found - this prevents Joysticks, which use identical descriptors except for the Joystick usage
|
||||
* parent node, from being erronously treated as a mouse
|
||||
* parent node, from being erroneously treated as a mouse
|
||||
*/
|
||||
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
|
||||
{
|
||||
|
|
|
@ -50,7 +50,7 @@ uint8_t ProcessConfigurationDescriptor(void)
|
|||
return ControlErrorDuringConfigRead;
|
||||
}
|
||||
|
||||
/* The bluetooth USB transport addendium mandates that the data (not streaming voice) endpoints
|
||||
/* The bluetooth USB transport addendum mandates that the data (not streaming voice) endpoints
|
||||
be in the first interface descriptor (interface 0) */
|
||||
USB_GetNextDescriptorOfType(&CurrConfigBytesRem, &CurrConfigLocation, DTYPE_Interface);
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ void Bluetooth_ProcessACLPackets(void)
|
|||
Pipe_Freeze();
|
||||
break;
|
||||
default:
|
||||
BT_DEBUG("(ACL) >> Unknown Signalling Command 0x%02X", SignalCommandHeader.Code);
|
||||
BT_DEBUG("(ACL) >> Unknown Signaling Command 0x%02X", SignalCommandHeader.Code);
|
||||
|
||||
Pipe_Discard_Stream(ACLPacketHeader.DataLength);
|
||||
Pipe_ClearIN();
|
||||
|
|
|
@ -85,7 +85,7 @@ bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
|
|||
|
||||
/* Iterate through the item's collection path, until either the root collection node or a collection with the
|
||||
* Joystick Usage is found - this prevents Mice, which use identical descriptors except for the Mouse usage
|
||||
* parent node, from being erronously treated as a joystick
|
||||
* parent node, from being erroneously treated as a joystick
|
||||
*/
|
||||
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
|
||||
{
|
||||
|
|
|
@ -237,7 +237,7 @@ static uint8_t MassStore_GetReturnedStatus(CommandStatusWrapper_t* SCSICommandSt
|
|||
{
|
||||
uint8_t ErrorCode = PIPE_RWSTREAM_NoError;
|
||||
|
||||
/* If an error in the command ocurred, abort */
|
||||
/* If an error in the command occurred, abort */
|
||||
if ((ErrorCode = MassStore_WaitForDataReceived()) != PIPE_RWSTREAM_NoError)
|
||||
return ErrorCode;
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint8_t ReponseCode;
|
||||
uint8_t ResponseCode;
|
||||
|
||||
uint8_t SegmentNumber;
|
||||
|
||||
|
|
|
@ -249,7 +249,7 @@ void MassStorage_Task(void)
|
|||
if (!(ErrorCode))
|
||||
break;
|
||||
|
||||
/* If an error othe than a logical command failure (indicating device busy) returned, abort */
|
||||
/* If an error other than a logical command failure (indicating device busy) returned, abort */
|
||||
if (ErrorCode != MASS_STORE_SCSI_COMMAND_FAILED)
|
||||
{
|
||||
ShowDiskReadError(PSTR("Test Unit Ready"), ErrorCode);
|
||||
|
@ -276,7 +276,7 @@ void MassStorage_Task(void)
|
|||
/* Display the disk capacity in blocks * block size bytes */
|
||||
printf_P(PSTR("%lu blocks of %lu bytes.\r\n"), DiskCapacity.Blocks, DiskCapacity.BlockSize);
|
||||
|
||||
/* Create a new buffer capabable of holding a single block from the device */
|
||||
/* Create a new buffer capable of holding a single block from the device */
|
||||
uint8_t BlockBuffer[DiskCapacity.BlockSize];
|
||||
|
||||
/* Read in the first 512 byte block from the device */
|
||||
|
|
|
@ -85,7 +85,7 @@ bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_t* CurrentItem)
|
|||
|
||||
/* Iterate through the item's collection path, until either the root collection node or a collection with the
|
||||
* Mouse Usage is found - this prevents Joysticks, which use identical descriptors except for the Joystick usage
|
||||
* parent node, from being erronously treated as a mouse
|
||||
* parent node, from being erroneously treated as a mouse
|
||||
*/
|
||||
for (HID_CollectionPath_t* CurrPath = CurrentItem->CollectionPath; CurrPath != NULL; CurrPath = CurrPath->Parent)
|
||||
{
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
/* Public Interface - May be used in end-application: */
|
||||
/* Macros: */
|
||||
/** Button mask for the first button on the board. */
|
||||
#define BUTTONS_BUTTON1 // TODO: Add mask for first board buton here
|
||||
#define BUTTONS_BUTTON1 // TODO: Add mask for first board button here
|
||||
|
||||
/* Inline Functions: */
|
||||
#if !defined(__DOXYGEN__)
|
||||
|
|
|
@ -185,7 +185,7 @@
|
|||
Dataflash_SelectChip(SelectedChipMask);
|
||||
}
|
||||
|
||||
/** Spinloops while the currently selected dataflash is busy executing a command, such as a main
|
||||
/** Spin-loops while the currently selected dataflash is busy executing a command, such as a main
|
||||
* memory page program or main memory to buffer transfer.
|
||||
*/
|
||||
static inline void Dataflash_WaitWhileBusy(void)
|
||||
|
|
|
@ -205,7 +205,7 @@
|
|||
ADCSRA |= (1 << ADSC);
|
||||
}
|
||||
|
||||
/** Performs a complete single reading from channel, including a polling spinloop to wait for the
|
||||
/** Performs a complete single reading from channel, including a polling spin-loop to wait for the
|
||||
* conversion to complete, and the returning of the converted value.
|
||||
*
|
||||
* \param[in] MUXMask Mask comprising of an ADC channel number, reference mask and adjustment mask
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
* - None
|
||||
*
|
||||
* \section Module Description
|
||||
* Driver for the hardware SPI port avaliable on most AVR models. This module provides
|
||||
* Driver for the hardware SPI port available on most AVR models. This module provides
|
||||
* an easy to use driver for the setup of and transfer of data over the AVR's SPI port.
|
||||
*
|
||||
* @{
|
||||
|
|
|
@ -100,7 +100,7 @@
|
|||
void Serial_TxString(const char *StringPtr) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/* Inline Functions: */
|
||||
/** Initializes the USART, ready for serial data transmission and reception. This initialises the interface to
|
||||
/** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
|
||||
* standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
|
||||
*
|
||||
* \param[in] BaudRate Serial baud rate, in bits per second
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
* USB mode only. User applications can use this class driver instead of implementing the Audio class manually via
|
||||
* the low-level LUFA APIs.
|
||||
*
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
|
||||
* Hosts or Devices using the USB Audio Class.
|
||||
*
|
||||
* @{
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
* Ports, for both Device and Host USB modes. User applications can use this class driver instead of implementing the
|
||||
* CDC class manually via the low-level LUFA APIs.
|
||||
*
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
|
||||
* Hosts or Devices using the USB CDC Class.
|
||||
*
|
||||
* @{
|
||||
|
|
|
@ -147,7 +147,7 @@
|
|||
|
||||
/** Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details. */
|
||||
#define FEATURE_BASS_BOOST (1 << 8)
|
||||
|
||||
|
||||
/** Supported feature mask for an Audio class feature unit descriptor. See the Audio class specification for more details. */
|
||||
#define FEATURE_BASS_LOUDNESS (1 << 9)
|
||||
|
||||
|
@ -346,7 +346,7 @@
|
|||
USB_Descriptor_Endpoint_t Endpoint; /**< Standard endpoint descriptor describing the audio endpoint */
|
||||
|
||||
uint8_t Refresh; /**< Always set to zero */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronisation information to, if needed (zero otherwise) */
|
||||
uint8_t SyncEndpointNumber; /**< Endpoint address to send synchronization information to, if needed (zero otherwise) */
|
||||
} USB_Audio_StreamEndpoint_Std_t;
|
||||
|
||||
/** Type define for an Audio class specific extended endpoint descriptor. This contains extra information
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
/** SCSI Command Code for a MODE SENSE (10) command. */
|
||||
#define SCSI_CMD_MODE_SENSE_10 0x5A
|
||||
|
||||
/** SCSI Sense Code to indicate no error has ocurred. */
|
||||
/** SCSI Sense Code to indicate no error has occurred. */
|
||||
#define SCSI_SENSE_KEY_GOOD 0x00
|
||||
|
||||
/** SCSI Sense Code to indicate that the device has recovered from an error. */
|
||||
|
@ -121,7 +121,7 @@
|
|||
/** SCSI Sense Code to indicate an error whilst accessing the medium. */
|
||||
#define SCSI_SENSE_KEY_MEDIUM_ERROR 0x03
|
||||
|
||||
/** SCSI Sense Code to indicate a hardware has ocurred. */
|
||||
/** SCSI Sense Code to indicate a hardware has occurred. */
|
||||
#define SCSI_SENSE_KEY_HARDWARE_ERROR 0x04
|
||||
|
||||
/** SCSI Sense Code to indicate that an illegal request has been issued. */
|
||||
|
@ -138,7 +138,7 @@
|
|||
/** SCSI Sense Code to indicate an error while trying to write to a write-once medium. */
|
||||
#define SCSI_SENSE_KEY_BLANK_CHECK 0x08
|
||||
|
||||
/** SCSI Sense Code to indicate a vendor specific error has ocurred. */
|
||||
/** SCSI Sense Code to indicate a vendor specific error has occurred. */
|
||||
#define SCSI_SENSE_KEY_VENDOR_SPECIFIC 0x09
|
||||
|
||||
/** SCSI Sense Code to indicate that an EXTENDED COPY command has aborted due to an error. */
|
||||
|
@ -162,7 +162,7 @@
|
|||
/** SCSI Additional Sense Code to indicate an invalid field was encountered while processing the issued command. */
|
||||
#define SCSI_ASENSE_INVALID_FIELD_IN_CDB 0x24
|
||||
|
||||
/** SCSI Additional Sense Code to indicate that an attemp to write to a protected area was made. */
|
||||
/** SCSI Additional Sense Code to indicate that an attempt to write to a protected area was made. */
|
||||
#define SCSI_ASENSE_WRITE_PROTECTED 0x27
|
||||
|
||||
/** SCSI Additional Sense Code to indicate an error whilst formatting the device medium. */
|
||||
|
|
|
@ -69,10 +69,10 @@
|
|||
* structure controls
|
||||
*/
|
||||
|
||||
uint8_t DataINEndpointNumber; /**< Endpoint number of the incomming Audio Streaming data, if available
|
||||
uint8_t DataINEndpointNumber; /**< Endpoint number of the incoming Audio Streaming data, if available
|
||||
* (zero if unused)
|
||||
*/
|
||||
uint16_t DataINEndpointSize; /**< Size in bytes of the incomming Audio Streaming data endpoint, if available
|
||||
uint16_t DataINEndpointSize; /**< Size in bytes of the incoming Audio Streaming data endpoint, if available
|
||||
* (zero if unused)
|
||||
*/
|
||||
|
||||
|
@ -102,11 +102,11 @@
|
|||
*
|
||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||
*
|
||||
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
|
||||
* \return Boolean true if the endpoints were successfully configured, false otherwise
|
||||
*/
|
||||
bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Processes incomming control requests from the host, that are directed to the given Audio class interface. This should be
|
||||
/** Processes incoming control requests from the host, that are directed to the given Audio class interface. This should be
|
||||
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
|
||||
*
|
||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||
|
@ -141,7 +141,7 @@
|
|||
/* Inline Functions: */
|
||||
/** Reads the next 8-bit audio sample from the current audio interface.
|
||||
*
|
||||
* \note This should be preceeded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
|
||||
* \note This should be preceded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
|
||||
* the correct endpoint is selected and ready for data.
|
||||
*
|
||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||
|
@ -163,7 +163,7 @@
|
|||
|
||||
/** Reads the next 16-bit audio sample from the current audio interface.
|
||||
*
|
||||
* \note This should be preceeded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
|
||||
* \note This should be preceded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
|
||||
* the correct endpoint is selected and ready for data.
|
||||
*
|
||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||
|
@ -185,7 +185,7 @@
|
|||
|
||||
/** Reads the next 24-bit audio sample from the current audio interface.
|
||||
*
|
||||
* \note This should be preceeded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
|
||||
* \note This should be preceded immediately by a call to the USB_Audio_IsSampleReceived() function to ensure that
|
||||
* the correct endpoint is selected and ready for data.
|
||||
*
|
||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||
|
@ -206,7 +206,7 @@
|
|||
|
||||
/** Writes the next 8-bit audio sample to the current audio interface.
|
||||
*
|
||||
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
|
||||
* \note This should be preceded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
|
||||
* the correct endpoint is selected and ready for data.
|
||||
*
|
||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||
|
@ -225,7 +225,7 @@
|
|||
|
||||
/** Writes the next 16-bit audio sample to the current audio interface.
|
||||
*
|
||||
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
|
||||
* \note This should be preceded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
|
||||
* the correct endpoint is selected and ready for data.
|
||||
*
|
||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||
|
@ -244,7 +244,7 @@
|
|||
|
||||
/** Writes the next 24-bit audio sample to the current audio interface.
|
||||
*
|
||||
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
|
||||
* \note This should be preceded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
|
||||
* the correct endpoint is selected and ready for data.
|
||||
*
|
||||
* \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state
|
||||
|
|
|
@ -116,11 +116,11 @@
|
|||
*
|
||||
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state
|
||||
*
|
||||
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
|
||||
* \return Boolean true if the endpoints were successfully configured, false otherwise
|
||||
*/
|
||||
bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Processes incomming control requests from the host, that are directed to the given CDC class interface. This should be
|
||||
/** Processes incoming control requests from the host, that are directed to the given CDC class interface. This should be
|
||||
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
|
||||
*
|
||||
* \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state
|
||||
|
@ -201,7 +201,7 @@
|
|||
uint8_t CDC_Device_Flush(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Sends a Serial Control Line State Change notification to the host. This should be called when the virtual serial
|
||||
* control lines (DCD, DSR, etc.) have changed states, or to give BREAK notfications to the host. Line states persist
|
||||
* control lines (DCD, DSR, etc.) have changed states, or to give BREAK notifications to the host. Line states persist
|
||||
* until they are cleared via a second notification. This should be called each time the CDC class driver's
|
||||
* ControlLineStates.DeviceToHost value is updated to push the new states to the USB host.
|
||||
*
|
||||
|
|
|
@ -61,7 +61,7 @@
|
|||
* within the user application, and passed to each of the HID class driver functions as the
|
||||
* HIDInterfaceInfo parameter. This stores each HID interface's configuration and state information.
|
||||
*
|
||||
* \note Due to technical limitations, the HID device class driver does not utilize a seperate OUT
|
||||
* \note Due to technical limitations, the HID device class driver does not utilize a separate OUT
|
||||
* endpoint for host->device communications. Instead, the host->device data (if any) is sent to
|
||||
* the device via the control endpoint.
|
||||
*/
|
||||
|
@ -112,11 +112,11 @@
|
|||
*
|
||||
* \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state
|
||||
*
|
||||
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
|
||||
* \return Boolean true if the endpoints were successfully configured, false otherwise
|
||||
*/
|
||||
bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Processes incomming control requests from the host, that are directed to the given HID class interface. This should be
|
||||
/** Processes incoming control requests from the host, that are directed to the given HID class interface. This should be
|
||||
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
|
||||
*
|
||||
* \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state
|
||||
|
|
|
@ -68,8 +68,8 @@
|
|||
{
|
||||
uint8_t StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this structure controls */
|
||||
|
||||
uint8_t DataINEndpointNumber; /**< Endpoint number of the incomming MIDI data, if available (zero if unused) */
|
||||
uint16_t DataINEndpointSize; /**< Size in bytes of the incomming MIDI data endpoint, if available (zero if unused) */
|
||||
uint8_t DataINEndpointNumber; /**< Endpoint number of the incoming MIDI data, if available (zero if unused) */
|
||||
uint16_t DataINEndpointSize; /**< Size in bytes of the incoming MIDI data endpoint, if available (zero if unused) */
|
||||
bool DataINEndpointDoubleBank; /** Indicates if the MIDI interface's IN data endpoint should use double banking */
|
||||
|
||||
uint8_t DataOUTEndpointNumber; /**< Endpoint number of the outgoing MIDI data, if available (zero if unused) */
|
||||
|
@ -93,11 +93,11 @@
|
|||
*
|
||||
* \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state
|
||||
*
|
||||
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
|
||||
* \return Boolean true if the endpoints were successfully configured, false otherwise
|
||||
*/
|
||||
bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Processes incomming control requests from the host, that are directed to the given MIDI class interface. This should be
|
||||
/** Processes incoming control requests from the host, that are directed to the given MIDI class interface. This should be
|
||||
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
|
||||
*
|
||||
* \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state
|
||||
|
|
|
@ -102,11 +102,11 @@
|
|||
*
|
||||
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state
|
||||
*
|
||||
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
|
||||
* \return Boolean true if the endpoints were successfully configured, false otherwise
|
||||
*/
|
||||
bool MS_Device_ConfigureEndpoints(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Processes incomming control requests from the host, that are directed to the given Mass Storage class interface. This should be
|
||||
/** Processes incoming control requests from the host, that are directed to the given Mass Storage class interface. This should be
|
||||
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
|
||||
*
|
||||
* \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state
|
||||
|
|
|
@ -111,11 +111,11 @@
|
|||
*
|
||||
* \param[in,out] RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state
|
||||
*
|
||||
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
|
||||
* \return Boolean true if the endpoints were successfully configured, false otherwise
|
||||
*/
|
||||
bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
|
||||
|
||||
/** Processes incomming control requests from the host, that are directed to the given RNDIS class interface. This should be
|
||||
/** Processes incoming control requests from the host, that are directed to the given RNDIS class interface. This should be
|
||||
* linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.
|
||||
*
|
||||
* \param[in,out] RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
* and Host USB modes. User applications can use this class driver instead of implementing the HID class manually
|
||||
* via the low-level LUFA APIs.
|
||||
*
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
|
||||
* Hosts or Devices using the USB HID Class.
|
||||
*
|
||||
* @{
|
||||
|
|
|
@ -105,10 +105,10 @@
|
|||
bool SupportsBootProtocol; /**< Indicates if the current interface instance supports the HID Boot
|
||||
* Protocol when enabled via \ref HID_Host_SetBootProtocol()
|
||||
*/
|
||||
bool DeviceUsesOUTPipe; /**< Indicates if the current interface instance uses a seperate OUT data pipe for
|
||||
bool DeviceUsesOUTPipe; /**< Indicates if the current interface instance uses a separate OUT data pipe for
|
||||
* OUT reports, or if OUT reports are sent via the control pipe instead.
|
||||
*/
|
||||
bool UsingBootProtocol; /**< Indicates that the interface is currently initialised in Boot Protocol mode */
|
||||
bool UsingBootProtocol; /**< Indicates that the interface is currently initialized in Boot Protocol mode */
|
||||
uint16_t HIDReportSize; /**< Size in bytes of the HID report descriptor in the device */
|
||||
|
||||
uint8_t LargestReportSize; /**< Largest report the device will send, in bytes */
|
||||
|
@ -159,7 +159,7 @@
|
|||
|
||||
/** Receives a HID IN report from the attached HID device, when a report has been received on the HID IN Data pipe.
|
||||
*
|
||||
* \note The destination buffer should be large enough to accomodate the largest report that the attached device
|
||||
* \note The destination buffer should be large enough to accommodate the largest report that the attached device
|
||||
* can generate.
|
||||
*
|
||||
* \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class host configuration and state
|
||||
|
|
|
@ -86,7 +86,7 @@
|
|||
uint16_t DataINPipeSize; /**< Size in bytes of the Mass Storage interface's IN data pipe */
|
||||
uint16_t DataOUTPipeSize; /**< Size in bytes of the Mass Storage interface's OUT data pipe */
|
||||
|
||||
uint32_t TransactionTag; /**< Current transaction tag for data synchronising of packets */
|
||||
uint32_t TransactionTag; /**< Current transaction tag for data synchronizing of packets */
|
||||
} State; /**< State data for the USB class interface within the device. All elements in this section
|
||||
* <b>may</b> be set to initial values, but may also be ignored to default to sane values when
|
||||
* the interface is enumerated.
|
||||
|
|
|
@ -167,7 +167,7 @@
|
|||
|
||||
/** Retrieves the attached printer device's ID string, formatted according to IEEE 1284. This string is sent as a
|
||||
* Unicode string from the device and is automatically converted to an ASCII encoded C string by this function, thus
|
||||
* the maximum reportable string length is two less than the size given (to accomodate the Unicode string length
|
||||
* the maximum reportable string length is two less than the size given (to accommodate the Unicode string length
|
||||
* bytes which are removed).
|
||||
*
|
||||
* This string, when supported, contains the model, manufacturer and acceptable printer languages for the attached device.
|
||||
|
|
|
@ -38,10 +38,10 @@
|
|||
*
|
||||
* \section Module Description
|
||||
* MIDI Class Driver module. This module contains an internal implementation of the USB MIDI Class, for both Device
|
||||
* and Host USB modes. User applications can use this class driver instead of implementing the MIDI class manuall
|
||||
* and Host USB modes. User applications can use this class driver instead of implementing the MIDI class manually
|
||||
* via the low-level LUFA APIs.
|
||||
*
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
|
||||
* Hosts or Devices using the USB MIDI Class.
|
||||
*
|
||||
* \note The USB MIDI class is actually a special case of the regular Audio class, thus this module depends on
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
* Device and Host USB modes. User applications can use this class driver instead of implementing the Mass Storage class
|
||||
* manually via the low-level LUFA APIs.
|
||||
*
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
|
||||
* Hosts or Devices using the USB Mass Storage Class.
|
||||
*
|
||||
* @{
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
* than high level raster or text functions. User applications can use this class driver instead of implementing the Printer
|
||||
* class manually via the low-level LUFA APIs.
|
||||
*
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
|
||||
* Devices using the USB Printer Class.
|
||||
*
|
||||
* @{
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
* Class, for Device USB mode only. User applications can use this class driver instead of implementing the RNDIS
|
||||
* class manually via the low-level LUFA APIs.
|
||||
*
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
|
||||
* Hosts using the USB RNDIS Class.
|
||||
*
|
||||
* @{
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
* for USB Host mode only. User applications can use this class driver instead of implementing the Still Image class
|
||||
* manually via the low-level LUFA APIs.
|
||||
*
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interace with
|
||||
* This module is designed to simplify the user code by exposing only the required interface needed to interface with
|
||||
* Devices using the USB Still Image Class.
|
||||
*
|
||||
* @{
|
||||
|
|
|
@ -192,7 +192,7 @@
|
|||
* be a standard request that the library has no handler code for, or a class specific request
|
||||
* issued to the device which must be handled appropriately.
|
||||
*
|
||||
* This event is time-critical; eack packet within the request transaction must be acknowedged or
|
||||
* This event is time-critical; each packet within the request transaction must be acknowledged or
|
||||
* sent within 50ms or the host will abort the transfer.
|
||||
*
|
||||
* \note This event does not exist if the USB_HOST_ONLY token is supplied to the compiler (see
|
||||
|
@ -258,7 +258,7 @@
|
|||
void EVENT_USB_Device_Reset(void);
|
||||
|
||||
/** Event for USB Start Of Frame detection, when enabled. This event fires at the start of each USB
|
||||
* frame, once per millisecond, and is synchronised to the USB bus. This can be used as an accurate
|
||||
* frame, once per millisecond, and is synchronized to the USB bus. This can be used as an accurate
|
||||
* millisecond timer source when the USB bus is enumerated in device mode to a USB host.
|
||||
*
|
||||
* This event is time-critical; it is run once per millisecond and thus long handlers will significantly
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
* a unique serial number internally, and setting the device descriptors serial number string index to this value
|
||||
* will cause it to use the internal serial number.
|
||||
*
|
||||
* On unsupported devices, this will evaluate to NO_DESCRIPTOR and so will force the host to create a pseduo-serial
|
||||
* On unsupported devices, this will evaluate to NO_DESCRIPTOR and so will force the host to create a pseudo-serial
|
||||
* number for the device.
|
||||
*/
|
||||
#define USE_INTERNAL_SERIAL 0xDC
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
static inline bool USB_Device_IsUSBSuspended(void);
|
||||
|
||||
/** Enables the device mode Start Of Frame events. When enabled, this causes the
|
||||
* \ref EVENT_USB_Device_StartOfFrame() event to fire once per millisecond, synchronised to the USB bus,
|
||||
* \ref EVENT_USB_Device_StartOfFrame() event to fire once per millisecond, synchronized to the USB bus,
|
||||
* at the start of each USB frame when enumerated in device mode.
|
||||
*/
|
||||
static inline bool USB_Device_EnableSOFEvents(void);
|
||||
|
|
|
@ -735,7 +735,7 @@
|
|||
bool Endpoint_ConfigureEndpoint(const uint8_t Number, const uint8_t Type, const uint8_t Direction,
|
||||
const uint16_t Size, const uint8_t Banks);
|
||||
|
||||
/** Spinloops until the currently selected non-control endpoint is ready for the next packet of data
|
||||
/** Spin-loops until the currently selected non-control endpoint is ready for the next packet of data
|
||||
* to be read or written to it.
|
||||
*
|
||||
* \note This routine should not be called on CONTROL type endpoints.
|
||||
|
|
|
@ -793,7 +793,7 @@
|
|||
bool Pipe_ConfigurePipe(const uint8_t Number, const uint8_t Type, const uint8_t Token, const uint8_t EndpointNumber,
|
||||
const uint16_t Size, const uint8_t Banks);
|
||||
|
||||
/** Spinloops until the currently selected non-control pipe is ready for the next packed of data to be read
|
||||
/** Spin-loops until the currently selected non-control pipe is ready for the next packed of data to be read
|
||||
* or written to it, aborting in the case of an error condition (such as a timeout or device disconnect).
|
||||
*
|
||||
* \ingroup Group_PipeRW
|
||||
|
|
|
@ -48,7 +48,7 @@ int main(void)
|
|||
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
{
|
||||
Process_AVRISP_Commands();
|
||||
|
||||
V2Params_UpdateParamValues();
|
||||
|
@ -111,20 +111,20 @@ void EVENT_USB_Device_ConfigurationChanged(void)
|
|||
}
|
||||
}
|
||||
|
||||
/** Processes incomming V2 Protocol commands from the host, returning a response when required. */
|
||||
void Process_AVRISP_Commands(void)
|
||||
{
|
||||
/** Processes incoming V2 Protocol commands from the host, returning a response when required. */
|
||||
void Process_AVRISP_Commands(void)
|
||||
{
|
||||
/* Device must be connected and configured for the task to run */
|
||||
if (USB_DeviceState != DEVICE_STATE_Configured)
|
||||
return;
|
||||
|
||||
return;
|
||||
|
||||
Endpoint_SelectEndpoint(AVRISP_DATA_EPNUM);
|
||||
|
||||
/* Check to see if a V2 Protocol command has been received */
|
||||
|
||||
/* Check to see if a V2 Protocol command has been received */
|
||||
if (Endpoint_IsOUTReceived())
|
||||
{
|
||||
/* Pass off processing of the V2 Protocol command to the V2 Protocol handler */
|
||||
{
|
||||
/* Pass off processing of the V2 Protocol command to the V2 Protocol handler */
|
||||
V2Protocol_ProcessCommand();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -36,12 +36,12 @@
|
|||
#define INCLUDE_FROM_V2PROTOCOL_C
|
||||
#include "V2Protocol.h"
|
||||
|
||||
/** Master V2 Protocol packet handler, for receieved V2 Protocol packets from a connected host.
|
||||
/** Master V2 Protocol packet handler, for received V2 Protocol packets from a connected host.
|
||||
* This routine decodes the issued command and passes off the handling of the command to the
|
||||
* appropriate function.
|
||||
*/
|
||||
void V2Protocol_ProcessCommand(void)
|
||||
{
|
||||
void V2Protocol_ProcessCommand(void)
|
||||
{
|
||||
uint8_t V2Command = Endpoint_Read_Byte();
|
||||
|
||||
switch (V2Command)
|
||||
|
@ -95,8 +95,8 @@ void V2Protocol_ProcessCommand(void)
|
|||
}
|
||||
|
||||
Endpoint_WaitUntilReady();
|
||||
Endpoint_SetEndpointDirection(ENDPOINT_DIR_OUT);
|
||||
}
|
||||
Endpoint_SetEndpointDirection(ENDPOINT_DIR_OUT);
|
||||
}
|
||||
|
||||
/** Handler for unknown V2 protocol commands. This discards all sent data and returns a
|
||||
* STATUS_CMD_UNKNOWN status back to the host.
|
||||
|
@ -105,7 +105,7 @@ void V2Protocol_ProcessCommand(void)
|
|||
*/
|
||||
static void V2Protocol_Command_Unknown(uint8_t V2Command)
|
||||
{
|
||||
/* Discard all incomming data */
|
||||
/* Discard all incoming data */
|
||||
while (Endpoint_BytesInEndpoint() == AVRISP_DATA_EPSIZE)
|
||||
{
|
||||
Endpoint_ClearOUT();
|
||||
|
@ -120,7 +120,7 @@ static void V2Protocol_Command_Unknown(uint8_t V2Command)
|
|||
Endpoint_ClearIN();
|
||||
}
|
||||
|
||||
/** Handler for the CMD_SIGN_ON command, returning the programmer ID string to the host. */
|
||||
/** Handler for the CMD_SIGN_ON command, returning the programmer ID string to the host. */
|
||||
static void V2Protocol_Command_SignOn(void)
|
||||
{
|
||||
Endpoint_ClearOUT();
|
||||
|
@ -151,7 +151,7 @@ static void V2Protocol_Command_GetSetParam(uint8_t V2Command)
|
|||
|
||||
Endpoint_Write_Byte(V2Command);
|
||||
|
||||
uint8_t ParamPrivs = V2Params_GetParameterPrivellages(ParamID);
|
||||
uint8_t ParamPrivs = V2Params_GetParameterPrivileges(ParamID);
|
||||
|
||||
if ((V2Command == CMD_SET_PARAMETER) && (ParamPrivs & PARAM_PRIV_WRITE))
|
||||
{
|
||||
|
|
|
@ -44,43 +44,43 @@ static ParameterItem_t ParameterTable[] =
|
|||
{
|
||||
{ .ParamID = PARAM_BUILD_NUMBER_LOW,
|
||||
.ParamValue = (LUFA_VERSION_INTEGER >> 8),
|
||||
.ParamPrivellages = PARAM_PRIV_READ },
|
||||
.ParamPrivileges = PARAM_PRIV_READ },
|
||||
|
||||
{ .ParamID = PARAM_BUILD_NUMBER_HIGH,
|
||||
.ParamValue = (LUFA_VERSION_INTEGER & 0xFF),
|
||||
.ParamPrivellages = PARAM_PRIV_READ },
|
||||
.ParamPrivileges = PARAM_PRIV_READ },
|
||||
|
||||
{ .ParamID = PARAM_HW_VER,
|
||||
.ParamValue = 0x00,
|
||||
.ParamPrivellages = PARAM_PRIV_READ },
|
||||
.ParamPrivileges = PARAM_PRIV_READ },
|
||||
|
||||
{ .ParamID = PARAM_SW_MAJOR,
|
||||
.ParamValue = 0x01,
|
||||
.ParamPrivellages = PARAM_PRIV_READ },
|
||||
.ParamPrivileges = PARAM_PRIV_READ },
|
||||
|
||||
{ .ParamID = PARAM_SW_MINOR,
|
||||
.ParamValue = 0x0C,
|
||||
.ParamPrivellages = PARAM_PRIV_READ },
|
||||
.ParamPrivileges = PARAM_PRIV_READ },
|
||||
|
||||
{ .ParamID = PARAM_VTARGET,
|
||||
.ParamValue = 0x32,
|
||||
.ParamPrivellages = PARAM_PRIV_READ },
|
||||
.ParamPrivileges = PARAM_PRIV_READ },
|
||||
|
||||
{ .ParamID = PARAM_SCK_DURATION,
|
||||
.ParamValue = (TOTAL_PROGRAMMING_SPEEDS - 1),
|
||||
.ParamPrivellages = PARAM_PRIV_READ | PARAM_PRIV_WRITE },
|
||||
.ParamPrivileges = PARAM_PRIV_READ | PARAM_PRIV_WRITE },
|
||||
|
||||
{ .ParamID = PARAM_RESET_POLARITY,
|
||||
.ParamValue = 0x00,
|
||||
.ParamPrivellages = PARAM_PRIV_WRITE },
|
||||
.ParamPrivileges = PARAM_PRIV_WRITE },
|
||||
|
||||
{ .ParamID = PARAM_STATUS_TGT_CONN,
|
||||
.ParamValue = 0x00,
|
||||
.ParamPrivellages = PARAM_PRIV_READ },
|
||||
.ParamPrivileges = PARAM_PRIV_READ },
|
||||
|
||||
{ .ParamID = PARAM_DISCHARGEDELAY,
|
||||
.ParamValue = 0x00,
|
||||
.ParamPrivellages = PARAM_PRIV_WRITE },
|
||||
.ParamPrivileges = PARAM_PRIV_WRITE },
|
||||
};
|
||||
|
||||
|
||||
|
@ -104,22 +104,22 @@ void V2Params_UpdateParamValues(void)
|
|||
#endif
|
||||
}
|
||||
|
||||
/** Retrieves the host PC read/write privellages for a given parameter in the parameter table. This should
|
||||
/** Retrieves the host PC read/write privileges for a given parameter in the parameter table. This should
|
||||
* be called before calls to \ref V2Params_GetParameterValue() or \ref V2Params_SetParameterValue() when
|
||||
* getting or setting parameter values in response to requests from the host.
|
||||
*
|
||||
* \param[in] ParamID Parameter ID whose privellages are to be retrieved from the table
|
||||
* \param[in] ParamID Parameter ID whose privileges are to be retrieved from the table
|
||||
*
|
||||
* \return Privellages for the requested parameter, as a mask of PARAM_PRIV_* masks
|
||||
* \return Privileges for the requested parameter, as a mask of PARAM_PRIV_* masks
|
||||
*/
|
||||
uint8_t V2Params_GetParameterPrivellages(uint8_t ParamID)
|
||||
uint8_t V2Params_GetParameterPrivileges(uint8_t ParamID)
|
||||
{
|
||||
ParameterItem_t* ParamInfo = V2Params_GetParamFromTable(ParamID);
|
||||
|
||||
if (ParamInfo == NULL)
|
||||
return 0;
|
||||
|
||||
return ParamInfo->ParamPrivellages;
|
||||
return ParamInfo->ParamPrivileges;
|
||||
}
|
||||
|
||||
/** Retrieves the current value for a given parameter in the parameter table.
|
||||
|
@ -132,7 +132,7 @@ uint8_t V2Params_GetParameterValue(uint8_t ParamID)
|
|||
{
|
||||
ParameterItem_t* ParamInfo = V2Params_GetParamFromTable(ParamID);
|
||||
|
||||
if ((ParamInfo == NULL) || !(ParamInfo->ParamPrivellages & PARAM_PRIV_READ))
|
||||
if ((ParamInfo == NULL) || !(ParamInfo->ParamPrivileges & PARAM_PRIV_READ))
|
||||
return 0;
|
||||
|
||||
return ParamInfo->ParamValue;
|
||||
|
@ -149,7 +149,7 @@ void V2Params_SetParameterValue(uint8_t ParamID, uint8_t Value)
|
|||
{
|
||||
ParameterItem_t* ParamInfo = V2Params_GetParamFromTable(ParamID);
|
||||
|
||||
if ((ParamInfo == NULL) || !(ParamInfo->ParamPrivellages & PARAM_PRIV_WRITE))
|
||||
if ((ParamInfo == NULL) || !(ParamInfo->ParamPrivileges & PARAM_PRIV_WRITE))
|
||||
return;
|
||||
|
||||
ParamInfo->ParamValue = Value;
|
||||
|
@ -159,7 +159,7 @@ void V2Params_SetParameterValue(uint8_t ParamID, uint8_t Value)
|
|||
eeprom_write_byte(&EEPROM_Rest_Polarity, Value);
|
||||
}
|
||||
|
||||
/** Retrieves a parameter entry (including ID, value and privellages) from the parameter table that matches the given
|
||||
/** Retrieves a parameter entry (including ID, value and privileges) from the parameter table that matches the given
|
||||
* parameter ID.
|
||||
*
|
||||
* \param[in] ParamID Parameter ID to find in the table
|
||||
|
|
|
@ -33,14 +33,14 @@
|
|||
* Header file for V2ProtocolParams.c.
|
||||
*/
|
||||
|
||||
#ifndef _V2_PROTOCOL_PARAMS_
|
||||
#define _V2_PROTOCOL_PARAMS_
|
||||
|
||||
/* Includes: */
|
||||
#include <avr/io.h>
|
||||
#include <avr/eeprom.h>
|
||||
#ifndef _V2_PROTOCOL_PARAMS_
|
||||
#define _V2_PROTOCOL_PARAMS_
|
||||
|
||||
#include <LUFA/Version.h>
|
||||
/* Includes: */
|
||||
#include <avr/io.h>
|
||||
#include <avr/eeprom.h>
|
||||
|
||||
#include <LUFA/Version.h>
|
||||
|
||||
#if defined(ADC)
|
||||
#include <LUFA/Drivers/Peripheral/ADC.h>
|
||||
|
@ -50,32 +50,32 @@
|
|||
#include "V2ProtocolConstants.h"
|
||||
|
||||
/* Macros: */
|
||||
/** Parameter privellage mask to allow the host PC to read the parameter's value */
|
||||
/** Parameter privilege mask to allow the host PC to read the parameter's value */
|
||||
#define PARAM_PRIV_READ (1 << 0)
|
||||
|
||||
/** Parameter privellage mask to allow the host PC to change the parameter's value */
|
||||
/** Parameter privilege mask to allow the host PC to change the parameter's value */
|
||||
#define PARAM_PRIV_WRITE (1 << 1)
|
||||
|
||||
|
||||
/* Type Defines: */
|
||||
/** Type define for a parameter table entry indicating a PC readable or writable device parameter. */
|
||||
typedef struct
|
||||
{
|
||||
const uint8_t ParamID; /**< Parameter ID number to uniquely identify the parameter within the device */
|
||||
uint8_t ParamValue; /**< Current parameter's value within the device */
|
||||
uint8_t ParamPrivellages; /**< Parameter privellages to allow the host to read or write the parameter's value */
|
||||
} ParameterItem_t;
|
||||
|
||||
uint8_t ParamPrivileges; /**< Parameter privileges to allow the host to read or write the parameter's value */
|
||||
} ParameterItem_t;
|
||||
|
||||
/* Function Prototypes: */
|
||||
void V2Params_LoadNonVolatileParamValues(void);
|
||||
void V2Params_UpdateParamValues(void);
|
||||
|
||||
uint8_t V2Params_GetParameterPrivellages(uint8_t ParamID);
|
||||
uint8_t V2Params_GetParameterPrivileges(uint8_t ParamID);
|
||||
uint8_t V2Params_GetParameterValue(uint8_t ParamID);
|
||||
void V2Params_SetParameterValue(uint8_t ParamID, uint8_t Value);
|
||||
|
||||
#if defined(INCLUDE_FROM_V2PROTOCOL_PARAMS_C)
|
||||
static ParameterItem_t* V2Params_GetParamFromTable(uint8_t ParamID);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ uint32_t CurrentAddress;
|
|||
*/
|
||||
uint8_t V2Protocol_GetSPIPrescalerMask(void)
|
||||
{
|
||||
static const uint8_t SPIMaskFromSCKDuration[TOTAL_PROGRAMMING_SPEEDS] =
|
||||
static const uint8_t SPIMaskFromSCKDuration[] =
|
||||
{
|
||||
#if (F_CPU == 8000000)
|
||||
SPI_SPEED_FCPU_DIV_2, // AVRStudio = 8MHz SPI, Actual = 4MHz SPI
|
||||
|
@ -77,7 +77,7 @@ uint8_t V2Protocol_GetSPIPrescalerMask(void)
|
|||
}
|
||||
|
||||
/** Asserts or deasserts the target's reset line, using the correct polarity as set by the host using a SET PARAM command.
|
||||
* When not asserted, the line is tristated so as not to intefere with normal device operation.
|
||||
* When not asserted, the line is tristated so as not to interfere with normal device operation.
|
||||
*
|
||||
* \param[in] ResetTarget Boolean true when the target should be held in reset, false otherwise
|
||||
*/
|
||||
|
|
|
@ -83,7 +83,7 @@ RingBuff_Data_t Buffer_GetElement(RingBuff_t* Buffer)
|
|||
if (!(Buffer->Elements))
|
||||
return 0;
|
||||
#elif !defined(BUFF_NOEMPTYCHECK)
|
||||
#error No empty buffer check behaviour specified.
|
||||
#error No empty buffer check behavior specified.
|
||||
#endif
|
||||
|
||||
BuffData = *(Buffer->OutPtr);
|
||||
|
@ -109,7 +109,7 @@ RingBuff_Data_t Buffer_PeekElement(const RingBuff_t* Buffer)
|
|||
if (!(Buffer->Elements))
|
||||
return 0;
|
||||
#elif !defined(BUFF_NOEMPTYCHECK)
|
||||
#error No empty buffer check behaviour specified.
|
||||
#error No empty buffer check behavior specified.
|
||||
#endif
|
||||
|
||||
BuffData = *(Buffer->OutPtr);
|
||||
|
|
|
@ -1,100 +1,100 @@
|
|||
/*
|
||||
Copyright 2009 Denver Gingerich (denver [at] ossguy [dot] 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
NOTE: The user of this include file MUST define the following macros
|
||||
prior to including the file:
|
||||
|
||||
MAG_T1_CLOCK_PIN Pin connected to Track 1 clock wire (ie. PORTC1)
|
||||
MAG_T1_DATA_PIN Pin connected to Track 1 data wire (ie. PORTC2)
|
||||
MAG_T2_CLOCK_PIN Pin connected to Track 2 clock wire (ie. PORTC3)
|
||||
MAG_T2_DATA_PIN Pin connected to Track 2 data wire (ie. PORTC0)
|
||||
MAG_T3_CLOCK_PIN Pin connected to Track 3 clock wire (ie. PORTC5)
|
||||
MAG_T3_DATA_PIN Pin connected to Track 3 data wire (ie. PORTC6)
|
||||
MAG_CLS_PIN Pin connected to card loaded wire (ie. PORTC4)
|
||||
MAG_PIN PIN macro for the reader's port (ie. PINC)
|
||||
MAG_DDR DDR macro for the reader's port (ie. DDRC)
|
||||
MAG_PORT PORT macro for the reader's port (ie. PORTC)
|
||||
|
||||
The example macros listed above assume that the Track 2 data wire is
|
||||
connected to pin 0 on port C, the Track 2 clock wire is connected to
|
||||
pin 3 on port C (similarly for Tracks 1 and 3), and the card loaded
|
||||
wire is connected to pin 4 on port C.
|
||||
|
||||
If the magstripe reader you are using only reads one or two tracks,
|
||||
then set the clock and data pins for the tracks it doesn't read to a
|
||||
pin that is unused. For example, on the AT90USBKey, any of the pins on
|
||||
port C that do not have wires attached will be unused since they are
|
||||
not connected to any onboard devices (such as the joystick or
|
||||
temperature sensor).
|
||||
|
||||
Connecting wires to pins on different ports (ie. a data wire to pin 0
|
||||
on port C and a clock wire to pin 0 on port D) is currently
|
||||
unsupported. All pins specified above must be on the same port.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*
|
||||
* Driver header for a TTL Magnetic Card reader device (such as the Omron V3B-4K).
|
||||
*/
|
||||
|
||||
#ifndef _MAGSTRIPEHW_H_
|
||||
#define _MAGSTRIPEHW_H_
|
||||
|
||||
/* Includes: */
|
||||
#include <avr/io.h>
|
||||
|
||||
#include <LUFA/Common/Common.h>
|
||||
|
||||
/* Private Interface - For use in library only: */
|
||||
/* Macros: */
|
||||
/** Mask of the track data, clock and card detection pins. */
|
||||
#define MAG_MASK (MAG_T1_DATA | MAG_T1_CLOCK | \
|
||||
MAG_T2_DATA | MAG_T2_CLOCK | \
|
||||
MAG_T3_DATA | MAG_T3_CLOCK | \
|
||||
MAG_CARDPRESENT)
|
||||
|
||||
/* Public Interface - May be used in end-application: */
|
||||
/* Inline Functions: */
|
||||
/** Initializes the magnetic stripe card reader ports and pins so that the card reader
|
||||
* device can be controlled and read by the card reader driver. This must be called before
|
||||
* trying to read any of the card reader's status lines.
|
||||
*/
|
||||
static inline void Magstripe_Init(void)
|
||||
{
|
||||
MAG_DDR &= ~MAG_MASK;
|
||||
MAG_PORT |= MAG_MASK;
|
||||
};
|
||||
|
||||
/** Returns the status of all the magnetic card reader's outputs.
|
||||
*
|
||||
* \return A mask indicating which card lines are high or low
|
||||
*/
|
||||
static inline uint8_t Magstripe_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
|
||||
static inline uint8_t Magstripe_GetStatus(void)
|
||||
{
|
||||
/* Magstripe IOs are active low and must be inverted when read */
|
||||
return ((uint8_t)~MAG_PIN & MAG_MASK);
|
||||
}
|
||||
|
||||
#endif
|
||||
/*
|
||||
Copyright 2009 Denver Gingerich (denver [at] ossguy [dot] 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
NOTE: The user of this include file MUST define the following macros
|
||||
prior to including the file:
|
||||
|
||||
MAG_T1_CLOCK_PIN Pin connected to Track 1 clock wire (i.e.. PORTC1)
|
||||
MAG_T1_DATA_PIN Pin connected to Track 1 data wire (i.e.. PORTC2)
|
||||
MAG_T2_CLOCK_PIN Pin connected to Track 2 clock wire (i.e.. PORTC3)
|
||||
MAG_T2_DATA_PIN Pin connected to Track 2 data wire (i.e.. PORTC0)
|
||||
MAG_T3_CLOCK_PIN Pin connected to Track 3 clock wire (i.e.. PORTC5)
|
||||
MAG_T3_DATA_PIN Pin connected to Track 3 data wire (i.e.. PORTC6)
|
||||
MAG_CLS_PIN Pin connected to card loaded wire (i.e.. PORTC4)
|
||||
MAG_PIN PIN macro for the reader's port (i.e.. PINC)
|
||||
MAG_DDR DDR macro for the reader's port (i.e.. DDRC)
|
||||
MAG_PORT PORT macro for the reader's port (i.e.. PORTC)
|
||||
|
||||
The example macros listed above assume that the Track 2 data wire is
|
||||
connected to pin 0 on port C, the Track 2 clock wire is connected to
|
||||
pin 3 on port C (similarly for Tracks 1 and 3), and the card loaded
|
||||
wire is connected to pin 4 on port C.
|
||||
|
||||
If the mag-stripe reader you are using only reads one or two tracks,
|
||||
then set the clock and data pins for the tracks it doesn't read to a
|
||||
pin that is unused. For example, on the AT90USBKey, any of the pins on
|
||||
port C that do not have wires attached will be unused since they are
|
||||
not connected to any onboard devices (such as the joystick or
|
||||
temperature sensor).
|
||||
|
||||
Connecting wires to pins on different ports (i.e.. a data wire to pin 0
|
||||
on port C and a clock wire to pin 0 on port D) is currently
|
||||
unsupported. All pins specified above must be on the same port.
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*
|
||||
* Driver header for a TTL Magnetic Card reader device (such as the Omron V3B-4K).
|
||||
*/
|
||||
|
||||
#ifndef _MAGSTRIPEHW_H_
|
||||
#define _MAGSTRIPEHW_H_
|
||||
|
||||
/* Includes: */
|
||||
#include <avr/io.h>
|
||||
|
||||
#include <LUFA/Common/Common.h>
|
||||
|
||||
/* Private Interface - For use in library only: */
|
||||
/* Macros: */
|
||||
/** Mask of the track data, clock and card detection pins. */
|
||||
#define MAG_MASK (MAG_T1_DATA | MAG_T1_CLOCK | \
|
||||
MAG_T2_DATA | MAG_T2_CLOCK | \
|
||||
MAG_T3_DATA | MAG_T3_CLOCK | \
|
||||
MAG_CARDPRESENT)
|
||||
|
||||
/* Public Interface - May be used in end-application: */
|
||||
/* Inline Functions: */
|
||||
/** Initializes the magnetic stripe card reader ports and pins so that the card reader
|
||||
* device can be controlled and read by the card reader driver. This must be called before
|
||||
* trying to read any of the card reader's status lines.
|
||||
*/
|
||||
static inline void Magstripe_Init(void)
|
||||
{
|
||||
MAG_DDR &= ~MAG_MASK;
|
||||
MAG_PORT |= MAG_MASK;
|
||||
};
|
||||
|
||||
/** Returns the status of all the magnetic card reader's outputs.
|
||||
*
|
||||
* \return A mask indicating which card lines are high or low
|
||||
*/
|
||||
static inline uint8_t Magstripe_GetStatus(void) ATTR_WARN_UNUSED_RESULT;
|
||||
static inline uint8_t Magstripe_GetStatus(void)
|
||||
{
|
||||
/* Mag-stripe IOs are active low and must be inverted when read */
|
||||
return ((uint8_t)~MAG_PIN & MAG_MASK);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -83,7 +83,7 @@ RingBuff_Data_t Buffer_GetElement(RingBuff_t* Buffer)
|
|||
if (!(Buffer->Elements))
|
||||
return 0;
|
||||
#elif !defined(BUFF_NOEMPTYCHECK)
|
||||
#error No empty buffer check behaviour specified.
|
||||
#error No empty buffer check behavior specified.
|
||||
#endif
|
||||
|
||||
BuffData = *(Buffer->OutPtr);
|
||||
|
@ -109,7 +109,7 @@ RingBuff_Data_t Buffer_PeekElement(const RingBuff_t* Buffer)
|
|||
if (!(Buffer->Elements))
|
||||
return 0;
|
||||
#elif !defined(BUFF_NOEMPTYCHECK)
|
||||
#error No empty buffer check behaviour specified.
|
||||
#error No empty buffer check behavior specified.
|
||||
#endif
|
||||
|
||||
BuffData = *(Buffer->OutPtr);
|
||||
|
|
Loading…
Reference in New Issue