Minor documentation cleanups.

pull/1469/head
Dean Camera 14 years ago
parent 9293de2491
commit fc92f9969c

@ -109,16 +109,16 @@
/** Endpoint number for the CDC control interface event notification endpoint. */
#define CDC_NOTIFICATION_EPNUM 3
/** Size of the CDC control interface notification endpoint bank, in bytes */
/** Size of the CDC control interface notification endpoint bank, in bytes. */
#define CDC_NOTIFICATION_EPSIZE 8
/** Endpoint number for the CDC data interface TX (data IN) endpoint */
/** Endpoint number for the CDC data interface TX (data IN) endpoint. */
#define CDC_TX_EPNUM 1
/** Endpoint number for the CDC data interface RX (data OUT) endpoint */
/** Endpoint number for the CDC data interface RX (data OUT) endpoint. */
#define CDC_RX_EPNUM 2
/** Size of the CDC data interface TX and RX data endpoint banks, in bytes */
/** Size of the CDC data interface TX and RX data endpoint banks, in bytes. */
#define CDC_TXRX_EPSIZE 16
/* Type Defines: */

@ -45,10 +45,10 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** ARP header operation constant, indicating a request from a host for an address translation */
/** ARP header operation constant, indicating a request from a host for an address translation. */
#define ARP_OPERATION_REQUEST 1
/** ARP header operation constant, indicating a reply from a host giving an address translation */
/** ARP header operation constant, indicating a reply from a host giving an address translation. */
#define ARP_OPERATION_REPLY 2
/* Type Defines: */

@ -45,52 +45,52 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** DHCP operation constant, indicating a request from a host to a DHCP server */
/** DHCP operation constant, indicating a request from a host to a DHCP server. */
#define DHCP_OP_BOOTREQUEST 0x01
/** DHCP operation constant, indicating a reply from a DHCP server to a host */
/** DHCP operation constant, indicating a reply from a DHCP server to a host. */
#define DHCP_OP_BOOTREPLY 0x02
/** Hardware type constant, indicating Ethernet as a carrier */
/** Hardware type constant, indicating Ethernet as a carrier. */
#define DHCP_HTYPE_ETHERNET 0x01
/** Magic boot protocol "cookie", inserted into all BOOTP packets (BOOTP is the carrier of DHCP) */
/** Magic boot protocol "cookie", inserted into all BOOTP packets (BOOTP is the carrier of DHCP). */
#define DHCP_MAGIC_COOKIE 0x63825363
/** DHCP option list entry header, indicating that a subnet mask will follow */
/** DHCP option list entry header, indicating that a subnet mask will follow. */
#define DHCP_OPTION_SUBNETMASK 1
/** DHCP option list entry header, indicating that the DHCP message type constant will follow */
/** DHCP option list entry header, indicating that the DHCP message type constant will follow. */
#define DHCP_OPTION_MESSAGETYPE 53
/** DHCP option list entry header, indicating that the IP address of the DHCP server will follow */
/** DHCP option list entry header, indicating that the IP address of the DHCP server will follow. */
#define DHCP_OPTION_DHCPSERVER 54
/** DHCP option list entry header, used to pad out option data */
/** DHCP option list entry header, used to pad out option data. */
#define DHCP_OPTION_PAD 0
/** DHCP option list entry header, indicating the end of option data */
/** DHCP option list entry header, indicating the end of option data. */
#define DHCP_OPTION_END 255
/** Message type constant, used in the DHCP option data field, requesting that a DHCP server offer an IP address */
/** Message type constant, used in the DHCP option data field, requesting that a DHCP server offer an IP address. */
#define DHCP_MESSAGETYPE_DISCOVER 1
/** Message type constant, used in the DHCP option data field, indicating that a DHCP server is offering an IP address */
/** Message type constant, used in the DHCP option data field, indicating that a DHCP server is offering an IP address. */
#define DHCP_MESSAGETYPE_OFFER 2
/** Message type constant, used in the DHCP option data field, requesting that a DHCP server lease a given IP address */
/** Message type constant, used in the DHCP option data field, requesting that a DHCP server lease a given IP address. */
#define DHCP_MESSAGETYPE_REQUEST 3
/** Message type constant, used in the DHCP option data field, declining an offered DHCP server IP address lease */
/** Message type constant, used in the DHCP option data field, declining an offered DHCP server IP address lease. */
#define DHCP_MESSAGETYPE_DECLINE 4
/** Message type constant, used in the DHCP option data field, ACKing a host IP lease request */
/** Message type constant, used in the DHCP option data field, ACKing a host IP lease request. */
#define DHCP_MESSAGETYPE_ACK 5
/** Message type constant, used in the DHCP option data field, NACKing a host IP lease request */
/** Message type constant, used in the DHCP option data field, NACKing a host IP lease request. */
#define DHCP_MESSAGETYPE_NACK 6
/** Message type constant, used in the DHCP option data field, indicating that a host is releasing a leased IP address */
/** Message type constant, used in the DHCP option data field, indicating that a host is releasing a leased IP address. */
#define DHCP_MESSAGETYPE_RELEASE 7
/* Type Defines: */

@ -52,13 +52,13 @@
#include "IP.h"
/* Macros: */
/** Physical MAC address of the USB RNDIS network adapter */
/** Physical MAC address of the USB RNDIS network adapter. */
#define ADAPTER_MAC_ADDRESS {0x02, 0x00, 0x02, 0x00, 0x02, 0x00}
/** Physical MAC address of the virtual server on the network */
/** Physical MAC address of the virtual server on the network. */
#define SERVER_MAC_ADDRESS {0x00, 0x01, 0x00, 0x01, 0x00, 0x01}
/** Physical MAC address of the network broadcast address */
/** Physical MAC address of the network broadcast address. */
#define BROADCAST_MAC_ADDRESS {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
/** Performs a comparison between two MAC addresses, indicating if they are identical.
@ -70,17 +70,17 @@
*/
#define MAC_COMPARE(MAC1, MAC2) (memcmp(MAC1, MAC2, sizeof(MAC_Address_t)) == 0)
/** Minimum size of an Ethernet packet in bytes, to conform to the Ethernet V2 packet standard */
/** Minimum size of an Ethernet packet in bytes, to conform to the Ethernet V2 packet standard. */
#define ETHERNET_VER2_MINSIZE 0x0600
/** Return value for all sub protocol handling routines, indicating that no response packet has been generated */
/** Return value for all sub protocol handling routines, indicating that no response packet has been generated. */
#define NO_RESPONSE 0
/** Return value for all sub protocol handling routines, indicating that the packet has not yet been handled */
/** Return value for all sub protocol handling routines, indicating that the packet has not yet been handled. */
#define NO_PROCESS -1
/* Type Defines: */
/** Type define for an Ethernet frame header */
/** Type define for an Ethernet frame header. */
typedef struct
{
MAC_Address_t Destination; /**< Physical MAC address of the packet recipient */

@ -72,7 +72,7 @@
#define PROTOCOL_SCTP 132
/* Type Defines: */
/** Type define for a protocol IP address of a device on a network */
/** Type define for a protocol IP address of a device on a network. */
typedef struct
{
uint8_t Octets[4]; /**< Individual bytes of an IP address */

@ -45,22 +45,22 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** ICMP message type constant, indicating an ICMP ECHO Reply message */
/** ICMP message type constant, indicating an ICMP ECHO Reply message. */
#define ICMP_TYPE_ECHOREPLY 0
/** ICMP message type constant, indicating a packet destination is unreachable */
/** ICMP message type constant, indicating a packet destination is unreachable. */
#define ICMP_TYPE_DESTINATIONUNREACHABLE 3
/** ICMP message type constant, indicating an ICMP Source Quench message */
/** ICMP message type constant, indicating an ICMP Source Quench message. */
#define ICMP_TYPE_SOURCEQUENCH 4
/** ICMP message type constant, indicating an ICMP Redirect message */
/** ICMP message type constant, indicating an ICMP Redirect message. */
#define ICMP_TYPE_REDIRECTMESSAGE 5
/** ICMP message type constant, indicating an ICMP ECHO Request message */
/** ICMP message type constant, indicating an ICMP ECHO Request message. */
#define ICMP_TYPE_ECHOREQUEST 8
/** ICMP message type constant, indicating an ICMP Time Exceeded message */
/** ICMP message type constant, indicating an ICMP Time Exceeded message. */
#define ICMP_TYPE_TIMEEXCEEDED 11
/* Type Defines: */

@ -45,16 +45,18 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** Protocol IP address of the host (client) machine, once assigned by DHCP */
/** Protocol IP address of the host (client) machine, once assigned by DHCP. */
#define CLIENT_IP_ADDRESS { 10, 0, 0, 1}
/** Protocol IP address of the virtual server machine */
/** Protocol IP address of the virtual server machine. */
#define SERVER_IP_ADDRESS { 10, 0, 0, 2}
/** Protocol IP address of the broadcast address */
/** Protocol IP address of the broadcast address. */
#define BROADCAST_IP_ADDRESS {0xFF, 0xFF, 0xFF, 0xFF}
/** Default Time To Live (TTL) value for sent packets, indicating the maximum allowable hops until their destination is reached */
/** Default Time To Live (TTL) value for sent packets, indicating the maximum allowable hops until their destination
* is reached.
*/
#define DEFAULT_TTL 128
/** Performs a comparison between two IP addresses, indicating if they are identical.

@ -45,46 +45,46 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** Maximum number of TCP ports which can be open at the one time */
/** Maximum number of TCP ports which can be open at the one time. */
#define MAX_OPEN_TCP_PORTS 1
/** Maximum number of TCP connections which can be sustained at the one time */
/** Maximum number of TCP connections which can be sustained at the one time. */
#define MAX_TCP_CONNECTIONS 3
/** TCP window size, giving the maximum number of bytes which can be buffered at the one time */
/** TCP window size, giving the maximum number of bytes which can be buffered at the one time. */
#define TCP_WINDOW_SIZE 512
/** Port number for HTTP transmissions */
/** Port number for HTTP transmissions. */
#define TCP_PORT_HTTP SwapEndian_16(80)
/** Data direction indicator for a TCP application buffer, indicating data from host-to-device */
/** Data direction indicator for a TCP application buffer, indicating data from host-to-device. */
#define TCP_PACKETDIR_IN false
/** Data direction indicator for a TCP application buffer, indicating data from device-to-host */
/** Data direction indicator for a TCP application buffer, indicating data from device-to-host. */
#define TCP_PACKETDIR_OUT true
/** Congestion Window Reduced TCP flag mask */
/** Congestion Window Reduced TCP flag mask. */
#define TCP_FLAG_CWR (1 << 7)
/** Explicit Congestion Notification TCP flag mask */
/** Explicit Congestion Notification TCP flag mask. */
#define TCP_FLAG_ECE (1 << 6)
/** Urgent TCP flag mask */
/** Urgent TCP flag mask. */
#define TCP_FLAG_URG (1 << 5)
/** Data Acknowledge TCP flag mask */
/** Data Acknowledge TCP flag mask. */
#define TCP_FLAG_ACK (1 << 4)
/** Data Push TCP flag mask */
/** Data Push TCP flag mask. */
#define TCP_FLAG_PSH (1 << 3)
/** Reset TCP flag mask */
/** Reset TCP flag mask. */
#define TCP_FLAG_RST (1 << 2)
/** Synchronize TCP flag mask */
/** Synchronize TCP flag mask. */
#define TCP_FLAG_SYN (1 << 1)
/** Connection Finalize TCP flag mask */
/** Connection Finalize TCP flag mask. */
#define TCP_FLAG_FIN (1 << 0)
/** Application macro: Determines if the given application buffer contains a packet received from the host
@ -147,14 +147,14 @@
#define TCP_APP_CLOSECONNECTION(Connection) MACROS{ Connection->State = TCP_Connection_Closing; }MACROE
/* Enums: */
/** Enum for possible TCP port states */
/** Enum for possible TCP port states. */
enum TCP_PortStates_t
{
TCP_Port_Closed = 0, /**< TCP port closed, no connections to a host may be made on this port. */
TCP_Port_Open = 1, /**< TCP port open, connections to a host may be made on this port. */
};
/** Enum for possible TCP connection states */
/** Enum for possible TCP connection states. */
enum TCP_ConnectionStates_t
{
TCP_Connection_Listen = 0, /**< Listening for a connection from a host */
@ -171,7 +171,7 @@
};
/* Type Defines: */
/** Type define for a TCP connection buffer structure, including size, data and direction */
/** Type define for a TCP connection buffer structure, including size, data and direction. */
typedef struct
{
uint16_t Length; /**< Length of data in the TCP application buffer */
@ -180,10 +180,10 @@
bool Ready; /**< If data from host, indicates buffer ready to be read, otherwise indicates
* buffer ready to be sent to the host
*/
bool InUse; /** Indicates if the buffer is locked to to the current direction, and cannot be changed */
bool InUse; /**< Indicates if the buffer is locked to to the current direction, and cannot be changed */
} TCP_ConnectionBuffer_t;
/** Type define for a TCP connection information structure */
/** Type define for a TCP connection information structure. */
typedef struct
{
uint32_t SequenceNumberIn; /**< Current TCP sequence number for host-to-device */
@ -191,7 +191,7 @@
TCP_ConnectionBuffer_t Buffer; /**< Connection application data buffer */
} TCP_ConnectionInfo_t;
/** Type define for a complete TCP connection state */
/** Type define for a complete TCP connection state. */
typedef struct
{
uint16_t Port; /**< Connection port number on the device */
@ -201,7 +201,7 @@
uint8_t State; /**< Current connection state, a value from the TCP_ConnectionStates_t enum */
} TCP_ConnectionState_t;
/** Type define for a TCP port state */
/** Type define for a TCP port state. */
typedef struct
{
uint16_t Port; /**< TCP port number on the device */
@ -210,7 +210,7 @@
TCP_ConnectionBuffer_t* Buffer); /**< Port application handler */
} TCP_PortState_t;
/** Type define for a TCP packet header */
/** Type define for a TCP packet header. */
typedef struct
{
uint16_t SourcePort; /**< Source port of the TCP packet */
@ -228,9 +228,6 @@
uint16_t UrgentPointer; /**< Urgent data pointer */
} TCP_Header_t;
/* External Variables: */
TCP_PortState_t PortStateTable[MAX_OPEN_TCP_PORTS];
/* Function Prototypes: */
void TCP_TCPTask(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo);
void TCP_Init(void);

@ -45,14 +45,14 @@
#include "DHCP.h"
/* Macros: */
/** Source UDP port for a DHCP request */
/** Source UDP port for a DHCP request. */
#define UDP_PORT_DHCP_REQUEST 67
/** Destination UDP port for a DHCP reply */
/** Destination UDP port for a DHCP reply. */
#define UDP_PORT_DHCP_REPLY 68
/* Type Defines: */
/** Type define for a UDP packet header */
/** Type define for a UDP packet header. */
typedef struct
{
uint16_t SourcePort; /**< Packet source port */

@ -47,11 +47,11 @@
/* Macros: */
/** Device control request for used in the Microsoft OS Descriptor for retrieving the OS Feature
* descriptors of the device
* descriptors of the device.
*/
#define REQ_GetOSFeatureDescriptor 0x01
/** Descriptor index for a Microsoft Proprietary Extended Device Compatibility descriptor */
/** Descriptor index for a Microsoft Proprietary Extended Device Compatibility descriptor. */
#define EXTENDED_COMPAT_ID_DESCRIPTOR 0x0004
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */

@ -54,7 +54,7 @@
#include <LUFA/Drivers/Board/LEDs.h>
/* Macros: */
/** Idle period indicating that reports should be sent only when the inputs have changed */
/** Idle period indicating that reports should be sent only when the inputs have changed. */
#define HID_IDLE_CHANGESONLY 0
/** HID Class specific request to get the next HID report from the device. */

@ -85,11 +85,11 @@
USB_Descriptor_Header_t Header; /**< Regular descriptor header containing the descriptor's type and length */
uint8_t Subtype; /**< Sub type value used to distinguish between audio class specific descriptors */
uint16_t ACSpecification; /** Binary coded decimal value, indicating the supported Audio Class specification version */
uint16_t TotalLength; /** Total length of the Audio class specific control descriptors, including this descriptor */
uint16_t ACSpecification; /**< Binary coded decimal value, indicating the supported Audio Class specification version */
uint16_t TotalLength; /**< Total length of the Audio class specific control descriptors, including this descriptor */
uint8_t InCollection; /** Total number of audio class interfaces within this device */
uint8_t InterfaceNumbers[1]; /** Interface numbers of each audio interface */
uint8_t InCollection; /**< Total number of audio class interfaces within this device */
uint8_t InterfaceNumbers[1]; /**< Interface numbers of each audio interface */
} USB_Audio_Interface_AC_t;
/** Type define for an Audio class specific MIDI streaming interface descriptor. This indicates to the host

@ -52,13 +52,13 @@
#include <LUFA/Drivers/Board/Buttons.h>
/* Macros: */
/** MIDI command for a note on (activation) event */
/** MIDI command for a note on (activation) event. */
#define MIDI_COMMAND_NOTE_ON 0x90
/** MIDI command for a note off (deactivation) event */
/** MIDI command for a note off (deactivation) event. */
#define MIDI_COMMAND_NOTE_OFF 0x80
/** Standard key press velocity value used for all note events, as no pressure sensor is mounted */
/** Standard key press velocity value used for all note events, as no pressure sensor is mounted. */
#define MIDI_STANDARD_VELOCITY 64
/** Convenience macro. MIDI channels are numbered from 1-10 (natural numbers) however the logical channel

@ -103,7 +103,7 @@
{
uint32_t Signature; /**< Command block signature, must be CBW_SIGNATURE to indicate a valid Command Block */
uint32_t Tag; /**< Unique command ID value, to associate a command block wrapper with its command status wrapper */
uint32_t DataTransferLength; /** Length of the optional data portion of the issued command, in bytes */
uint32_t DataTransferLength; /**< Length of the optional data portion of the issued command, in bytes */
uint8_t Flags; /**< Command block flags, indicating command data direction */
uint8_t LUN; /**< Logical Unit number this command is issued to */
uint8_t SCSICommandLength; /**< Length of the issued SCSI command within the SCSI command data array */

@ -45,10 +45,10 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** ARP header operation constant, indicating a request from a host for an address translation */
/** ARP header operation constant, indicating a request from a host for an address translation. */
#define ARP_OPERATION_REQUEST 1
/** ARP header operation constant, indicating a reply from a host giving an address translation */
/** ARP header operation constant, indicating a reply from a host giving an address translation. */
#define ARP_OPERATION_REPLY 2
/* Type Defines: */

@ -45,52 +45,52 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** DHCP operation constant, indicating a request from a host to a DHCP server */
/** DHCP operation constant, indicating a request from a host to a DHCP server. */
#define DHCP_OP_BOOTREQUEST 0x01
/** DHCP operation constant, indicating a reply from a DHCP server to a host */
/** DHCP operation constant, indicating a reply from a DHCP server to a host. */
#define DHCP_OP_BOOTREPLY 0x02
/** Hardware type constant, indicating Ethernet as a carrier */
/** Hardware type constant, indicating Ethernet as a carrier. */
#define DHCP_HTYPE_ETHERNET 0x01
/** Magic boot protocol "cookie", inserted into all BOOTP packets (BOOTP is the carrier of DHCP) */
/** Magic boot protocol "cookie", inserted into all BOOTP packets (BOOTP is the carrier of DHCP). */
#define DHCP_MAGIC_COOKIE 0x63825363
/** DHCP option list entry header, indicating that a subnet mask will follow */
/** DHCP option list entry header, indicating that a subnet mask will follow. */
#define DHCP_OPTION_SUBNETMASK 1
/** DHCP option list entry header, indicating that the DHCP message type constant will follow */
/** DHCP option list entry header, indicating that the DHCP message type constant will follow. */
#define DHCP_OPTION_MESSAGETYPE 53
/** DHCP option list entry header, indicating that the IP address of the DHCP server will follow */
/** DHCP option list entry header, indicating that the IP address of the DHCP server will follow. */
#define DHCP_OPTION_DHCPSERVER 54
/** DHCP option list entry header, used to pad out option data */
/** DHCP option list entry header, used to pad out option data. */
#define DHCP_OPTION_PAD 0
/** DHCP option list entry header, indicating the end of option data */
/** DHCP option list entry header, indicating the end of option data. */
#define DHCP_OPTION_END 255
/** Message type constant, used in the DHCP option data field, requesting that a DHCP server offer an IP address */
/** Message type constant, used in the DHCP option data field, requesting that a DHCP server offer an IP address. */
#define DHCP_MESSAGETYPE_DISCOVER 1
/** Message type constant, used in the DHCP option data field, indicating that a DHCP server is offering an IP address */
/** Message type constant, used in the DHCP option data field, indicating that a DHCP server is offering an IP address. */
#define DHCP_MESSAGETYPE_OFFER 2
/** Message type constant, used in the DHCP option data field, requesting that a DHCP server lease a given IP address */
/** Message type constant, used in the DHCP option data field, requesting that a DHCP server lease a given IP address. */
#define DHCP_MESSAGETYPE_REQUEST 3
/** Message type constant, used in the DHCP option data field, declining an offered DHCP server IP address lease */
/** Message type constant, used in the DHCP option data field, declining an offered DHCP server IP address lease. */
#define DHCP_MESSAGETYPE_DECLINE 4
/** Message type constant, used in the DHCP option data field, ACKing a host IP lease request */
/** Message type constant, used in the DHCP option data field, ACKing a host IP lease request. */
#define DHCP_MESSAGETYPE_ACK 5
/** Message type constant, used in the DHCP option data field, NACKing a host IP lease request */
/** Message type constant, used in the DHCP option data field, NACKing a host IP lease request. */
#define DHCP_MESSAGETYPE_NACK 6
/** Message type constant, used in the DHCP option data field, indicating that a host is releasing a leased IP address */
/** Message type constant, used in the DHCP option data field, indicating that a host is releasing a leased IP address. */
#define DHCP_MESSAGETYPE_RELEASE 7
/* Type Defines: */

@ -50,13 +50,13 @@
#include "IP.h"
/* Macros: */
/** Physical MAC address of the USB RNDIS network adapter */
/** Physical MAC address of the USB RNDIS network adapter. */
#define ADAPTER_MAC_ADDRESS {0x02, 0x00, 0x02, 0x00, 0x02, 0x00}
/** Physical MAC address of the virtual server on the network */
/** Physical MAC address of the virtual server on the network. */
#define SERVER_MAC_ADDRESS {0x00, 0x01, 0x00, 0x01, 0x00, 0x01}
/** Physical MAC address of the network broadcast address */
/** Physical MAC address of the network broadcast address. */
#define BROADCAST_MAC_ADDRESS {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
/** Performs a comparison between two MAC addresses, indicating if they are identical.
@ -68,16 +68,16 @@
*/
#define MAC_COMPARE(MAC1, MAC2) (memcmp(MAC1, MAC2, sizeof(MAC_Address_t)) == 0)
/** Maximum size of an incoming or outgoing Ethernet frame in bytes */
/** Maximum size of an incoming or outgoing Ethernet frame in bytes. */
#define ETHERNET_FRAME_SIZE_MAX 1500
/** Minimum size of an Ethernet packet in bytes, to conform to the Ethernet V2 packet standard */
/** Minimum size of an Ethernet packet in bytes, to conform to the Ethernet V2 packet standard. */
#define ETHERNET_VER2_MINSIZE 0x0600
/** Return value for all sub protocol handling routines, indicating that no response packet has been generated */
/** Return value for all sub protocol handling routines, indicating that no response packet has been generated. */
#define NO_RESPONSE 0
/** Return value for all sub protocol handling routines, indicating that the packet has not yet been handled */
/** Return value for all sub protocol handling routines, indicating that the packet has not yet been handled. */
#define NO_PROCESS -1
/* Type Defines: */
@ -89,7 +89,7 @@
bool FrameInBuffer; /**< Indicates if a frame is currently stored in the buffer */
} Ethernet_Frame_Info_t;
/** Type define for an Ethernet frame header */
/** Type define for an Ethernet frame header. */
typedef struct
{
MAC_Address_t Destination; /**< Physical MAC address of the packet recipient */

@ -72,13 +72,13 @@
#define PROTOCOL_SCTP 132
/* Type Defines: */
/** Type define for a physical MAC address of a device on a network */
/** Type define for a physical MAC address of a device on a network. */
typedef struct
{
uint8_t Octets[6]; /**< Individual bytes of a MAC address */
} MAC_Address_t;
/** Type define for a protocol IP address of a device on a network */
/** Type define for a protocol IP address of a device on a network. */
typedef struct
{
uint8_t Octets[4]; /**< Individual bytes of an IP address */

@ -45,22 +45,22 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** ICMP message type constant, indicating an ICMP ECHO Reply message */
/** ICMP message type constant, indicating an ICMP ECHO Reply message. */
#define ICMP_TYPE_ECHOREPLY 0
/** ICMP message type constant, indicating a packet destination is unreachable */
/** ICMP message type constant, indicating a packet destination is unreachable. */
#define ICMP_TYPE_DESTINATIONUNREACHABLE 3
/** ICMP message type constant, indicating an ICMP Source Quench message */
/** ICMP message type constant, indicating an ICMP Source Quench message. */
#define ICMP_TYPE_SOURCEQUENCH 4
/** ICMP message type constant, indicating an ICMP Redirect message */
/** ICMP message type constant, indicating an ICMP Redirect message. */
#define ICMP_TYPE_REDIRECTMESSAGE 5
/** ICMP message type constant, indicating an ICMP ECHO Request message */
/** ICMP message type constant, indicating an ICMP ECHO Request message. */
#define ICMP_TYPE_ECHOREQUEST 8
/** ICMP message type constant, indicating an ICMP Time Exceeded message */
/** ICMP message type constant, indicating an ICMP Time Exceeded message. */
#define ICMP_TYPE_TIMEEXCEEDED 11
/* Type Defines: */

@ -45,16 +45,18 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** Protocol IP address of the host (client) machine, once assigned by DHCP */
/** Protocol IP address of the host (client) machine, once assigned by DHCP. */
#define CLIENT_IP_ADDRESS { 10, 0, 0, 1}
/** Protocol IP address of the virtual server machine */
/** Protocol IP address of the virtual server machine. */
#define SERVER_IP_ADDRESS { 10, 0, 0, 2}
/** Protocol IP address of the broadcast address */
/** Protocol IP address of the broadcast address. */
#define BROADCAST_IP_ADDRESS {0xFF, 0xFF, 0xFF, 0xFF}
/** Default Time To Live (TTL) value for sent packets, indicating the maximum allowable hops until their destination is reached */
/** Default Time To Live (TTL) value for sent packets, indicating the maximum allowable hops until their destination
* is reached.
*/
#define DEFAULT_TTL 128
/** Performs a comparison between two IP addresses, indicating if they are identical.

@ -45,16 +45,16 @@
#include "Ethernet.h"
/* Macros: */
/** Implemented RNDIS Version Major */
/** Implemented RNDIS Version Major. */
#define REMOTE_NDIS_VERSION_MAJOR 0x01
/** Implemented RNDIS Version Minor */
/** Implemented RNDIS Version Minor. */
#define REMOTE_NDIS_VERSION_MINOR 0x00
/** RNDIS request to issue a host-to-device NDIS command */
/** RNDIS request to issue a host-to-device NDIS command. */
#define REQ_SendEncapsulatedCommand 0x00
/** RNDIS request to issue a device-to-host NDIS response */
/** RNDIS request to issue a device-to-host NDIS response. */
#define REQ_GetEncapsulatedResponse 0x01
/* Enums: */
@ -66,7 +66,7 @@
RNDIS_Data_Initialized = 2, /**< Adapter currently initialized and ready for data transfers */
};
/** Enum for the NDIS hardware states */
/** Enum for the NDIS hardware states. */
enum NDIS_Hardware_Status_t
{
NdisHardwareStatusReady, /**< Hardware Ready to accept commands from the host */
@ -77,14 +77,14 @@
};
/* Type Defines: */
/** Type define for a RNDIS message header, sent before RNDIS messages */
/** Type define for a RNDIS message header, sent before RNDIS messages. */
typedef struct
{
uint32_t MessageType; /**< RNDIS message type, a REMOTE_NDIS_*_MSG constant */
uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */
} RNDIS_Message_Header_t;
/** Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter */
/** Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter. */
typedef struct
{
uint32_t MessageType;
@ -100,7 +100,7 @@
uint32_t Reserved;
} RNDIS_Packet_Message_t;
/** Type define for a RNDIS Initialize command message */
/** Type define for a RNDIS Initialize command message. */
typedef struct
{
uint32_t MessageType;
@ -112,7 +112,7 @@
uint32_t MaxTransferSize;
} RNDIS_Initialize_Message_t;
/** Type define for a RNDIS Initialize complete response message */
/** Type define for a RNDIS Initialize complete response message. */
typedef struct
{
uint32_t MessageType;
@ -131,7 +131,7 @@
uint32_t AFListSize;
} RNDIS_Initialize_Complete_t;
/** Type define for a RNDIS Keepalive command message */
/** Type define for a RNDIS Keepalive command message. */
typedef struct
{
uint32_t MessageType;
@ -139,7 +139,7 @@
uint32_t RequestId;
} RNDIS_KeepAlive_Message_t;
/** Type define for a RNDIS Keepalive complete message */
/** Type define for a RNDIS Keepalive complete message. */
typedef struct
{
uint32_t MessageType;
@ -148,7 +148,7 @@
uint32_t Status;
} RNDIS_KeepAlive_Complete_t;
/** Type define for a RNDIS Reset complete message */
/** Type define for a RNDIS Reset complete message. */
typedef struct
{
uint32_t MessageType;
@ -158,7 +158,7 @@
uint32_t AddressingReset;
} RNDIS_Reset_Complete_t;
/** Type define for a RNDIS Set command message */
/** Type define for a RNDIS Set command message. */
typedef struct
{
uint32_t MessageType;
@ -171,7 +171,7 @@
uint32_t DeviceVcHandle;
} RNDIS_Set_Message_t;
/** Type define for a RNDIS Set complete response message */
/** Type define for a RNDIS Set complete response message. */
typedef struct
{
uint32_t MessageType;
@ -180,7 +180,7 @@
uint32_t Status;
} RNDIS_Set_Complete_t;
/** Type define for a RNDIS Query command message */
/** Type define for a RNDIS Query command message. */
typedef struct
{
uint32_t MessageType;
@ -193,7 +193,7 @@
uint32_t DeviceVcHandle;
} RNDIS_Query_Message_t;
/** Type define for a RNDIS Query complete response message */
/** Type define for a RNDIS Query complete response message. */
typedef struct
{
uint32_t MessageType;

@ -45,46 +45,46 @@
#include "ProtocolDecoders.h"
/* Macros: */
/** Maximum number of TCP ports which can be open at the one time */
/** Maximum number of TCP ports which can be open at the one time. */
#define MAX_OPEN_TCP_PORTS 1
/** Maximum number of TCP connections which can be sustained at the one time */
/** Maximum number of TCP connections which can be sustained at the one time. */
#define MAX_TCP_CONNECTIONS 3
/** TCP window size, giving the maximum number of bytes which can be buffered at the one time */
/** TCP window size, giving the maximum number of bytes which can be buffered at the one time. */
#define TCP_WINDOW_SIZE 512
/** Port number for HTTP transmissions */
/** Port number for HTTP transmissions. */
#define TCP_PORT_HTTP SwapEndian_16(80)
/** Data direction indicator for a TCP application buffer, indicating data from host-to-device */
/** Data direction indicator for a TCP application buffer, indicating data from host-to-device. */
#define TCP_PACKETDIR_IN false
/** Data direction indicator for a TCP application buffer, indicating data from device-to-host */
/** Data direction indicator for a TCP application buffer, indicating data from device-to-host. */
#define TCP_PACKETDIR_OUT true
/** Congestion Window Reduced TCP flag mask */
/** Congestion Window Reduced TCP flag mask. */
#define TCP_FLAG_CWR (1 << 7)
/** Explicit Congestion Notification TCP flag mask */
/** Explicit Congestion Notification TCP flag mask. */
#define TCP_FLAG_ECE (1 << 6)
/** Urgent TCP flag mask */
/** Urgent TCP flag mask. */
#define TCP_FLAG_URG (1 << 5)
/** Data Acknowledge TCP flag mask */
/** Data Acknowledge TCP flag mask. */
#define TCP_FLAG_ACK (1 << 4)
/** Data Push TCP flag mask */
/** Data Push TCP flag mask. */
#define TCP_FLAG_PSH (1 << 3)
/** Reset TCP flag mask */
/** Reset TCP flag mask. */
#define TCP_FLAG_RST (1 << 2)
/** Synchronize TCP flag mask */
/** Synchronize TCP flag mask. */
#define TCP_FLAG_SYN (1 << 1)
/** Connection Finalize TCP flag mask */
/** Connection Finalize TCP flag mask. */
#define TCP_FLAG_FIN (1 << 0)
/** Application macro: Determines if the given application buffer contains a packet received from the host
@ -147,14 +147,14 @@
#define TCP_APP_CLOSECONNECTION(Connection) MACROS{ Connection->State = TCP_Connection_Closing; }MACROE
/* Enums: */
/** Enum for possible TCP port states */
/** Enum for possible TCP port states. */
enum TCP_PortStates_t
{
TCP_Port_Closed = 0, /**< TCP port closed, no connections to a host may be made on this port. */
TCP_Port_Open = 1, /**< TCP port open, connections to a host may be made on this port. */
};
/** Enum for possible TCP connection states */
/** Enum for possible TCP connection states. */
enum TCP_ConnectionStates_t
{
TCP_Connection_Listen = 0, /**< Listening for a connection from a host */
@ -171,7 +171,7 @@
};
/* Type Defines: */
/** Type define for a TCP connection buffer structure, including size, data and direction */
/** Type define for a TCP connection buffer structure, including size, data and direction. */
typedef struct
{
uint16_t Length; /**< Length of data in the TCP application buffer */
@ -180,10 +180,10 @@
bool Ready; /**< If data from host, indicates buffer ready to be read, otherwise indicates
* buffer ready to be sent to the host
*/
bool InUse; /** Indicates if the buffer is locked to to the current direction, and cannot be changed */
bool InUse; /**< Indicates if the buffer is locked to to the current direction, and cannot be changed */
} TCP_ConnectionBuffer_t;
/** Type define for a TCP connection information structure */
/** Type define for a TCP connection information structure. */
typedef struct
{
uint32_t SequenceNumberIn; /**< Current TCP sequence number for host-to-device */
@ -191,7 +191,7 @@
TCP_ConnectionBuffer_t Buffer; /**< Connection application data buffer */
} TCP_ConnectionInfo_t;
/** Type define for a complete TCP connection state */
/** Type define for a complete TCP connection state. */
typedef struct
{
uint16_t Port; /**< Connection port number on the device */
@ -201,7 +201,7 @@
uint8_t State; /**< Current connection state, a value from the TCP_ConnectionStates_t enum */
} TCP_ConnectionState_t;
/** Type define for a TCP port state */
/** Type define for a TCP port state. */
typedef struct
{
uint16_t Port; /**< TCP port number on the device */
@ -210,7 +210,7 @@
TCP_ConnectionBuffer_t* Buffer); /**< Port application handler */
} TCP_PortState_t;
/** Type define for a TCP packet header */
/** Type define for a TCP packet header. */
typedef struct
{
uint16_t SourcePort; /**< Source port of the TCP packet */
@ -228,9 +228,6 @@
uint16_t UrgentPointer; /**< Urgent data pointer */
} TCP_Header_t;
/* External Variables: */
TCP_PortState_t PortStateTable[MAX_OPEN_TCP_PORTS];
/* Function Prototypes: */
void TCP_Init(void);
void TCP_Task(void);

@ -45,17 +45,17 @@
#include "DHCP.h"
/* Macros: */
/** Source UDP port for a DHCP request */
/** Source UDP port for a DHCP request. */
#define UDP_PORT_DHCP_REQUEST 67
/** Destination UDP port for a DHCP reply */
/** Destination UDP port for a DHCP reply. */
#define UDP_PORT_DHCP_REPLY 68
/** Source UDP port for a DNS request/response */
/** Source UDP port for a DNS request/response. */
#define UDP_PORT_DNS 53
/* Type Defines: */
/** Type define for a UDP packet header */
/** Type define for a UDP packet header. */
typedef struct
{
uint16_t SourcePort; /**< Packet source port */

@ -64,19 +64,19 @@
/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
/** HID Report Descriptor Usage Page value for a toggle button */
/** HID Report Descriptor Usage Page value for a toggle button. */
#define USAGE_PAGE_BUTTON 0x09
/** HID Report Descriptor Usage Page value for a Generic Desktop Control */
/** HID Report Descriptor Usage Page value for a Generic Desktop Control. */
#define USAGE_PAGE_GENERIC_DCTRL 0x01
/** HID Report Descriptor Usage for a Joystick */
/** HID Report Descriptor Usage for a Joystick. */
#define USAGE_JOYSTICK 0x04
/** HID Report Descriptor Usage value for a X axis movement */
/** HID Report Descriptor Usage value for a X axis movement. */
#define USAGE_X 0x30
/** HID Report Descriptor Usage value for a Y axis movement */
/** HID Report Descriptor Usage value for a Y axis movement. */
#define USAGE_Y 0x31
/* Function Prototypes: */

@ -64,7 +64,7 @@
/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
/** HID Report Descriptor Usage Page value for a desktop keyboard */
/** HID Report Descriptor Usage Page value for a desktop keyboard. */
#define USAGE_PAGE_KEYBOARD 0x07
/* Function Prototypes: */

@ -64,22 +64,22 @@
/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
/** HID Report Descriptor Usage Page value for a toggle button */
/** HID Report Descriptor Usage Page value for a toggle button. */
#define USAGE_PAGE_BUTTON 0x09
/** HID Report Descriptor Usage Page value for a Generic Desktop Control */
/** HID Report Descriptor Usage Page value for a Generic Desktop Control. */
#define USAGE_PAGE_GENERIC_DCTRL 0x01
/** HID Report Descriptor Usage for a Mouse */
/** HID Report Descriptor Usage for a Mouse. */
#define USAGE_MOUSE 0x02
/** HID Report Descriptor Usage value for a X axis movement */
/** HID Report Descriptor Usage value for a X axis movement. */
#define USAGE_X 0x30
/** HID Report Descriptor Usage value for a Y axis movement */
/** HID Report Descriptor Usage value for a Y axis movement. */
#define USAGE_Y 0x31
/** HID Report Descriptor Usage value for a Scroll Wheel movement */
/** HID Report Descriptor Usage value for a Scroll Wheel movement. */
#define USAGE_SCROLL_WHEEL 0x38
/* Function Prototypes: */

@ -36,7 +36,7 @@
#include "BluetoothHost.h"
/** Bluetooth configuration structure. This structure configures the bluetooth stack's user alterable settings. */
/** Bluetooth configuration structure. This structure configures the Bluetooth stack's user alterable settings. */
Bluetooth_Device_t Bluetooth_DeviceConfiguration =
{
Class: (DEVICE_CLASS_SERVICE_CAPTURING | DEVICE_CLASS_MAJOR_COMPUTER | DEVICE_CLASS_MINOR_COMPUTER_PALM),
@ -214,7 +214,7 @@ void Bluetooth_StackInitialized(void)
Bluetooth_State.LocalBDADDR[5], Bluetooth_State.LocalBDADDR[4], Bluetooth_State.LocalBDADDR[3],
Bluetooth_State.LocalBDADDR[2], Bluetooth_State.LocalBDADDR[1], Bluetooth_State.LocalBDADDR[0]);
/* Reinitialize the services placed on top of the bluetooth stack ready for new connections */
/* Reinitialize the services placed on top of the Bluetooth stack ready for new connections */
SDP_Initialize();
RFCOMM_Initialize();
}

@ -65,7 +65,7 @@ uint8_t ProcessConfigurationDescriptor(void)
return ControlError;
}
/* The bluetooth USB transport addendum 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);
@ -73,11 +73,11 @@ uint8_t ProcessConfigurationDescriptor(void)
if (!(CurrConfigBytesRem))
return NoBTInterfaceFound;
/* Get the data IN, data OUT and event notification endpoints for the bluetooth interface */
/* Get the data IN, data OUT and event notification endpoints for the Bluetooth interface */
while (FoundEndpoints != ((1 << BLUETOOTH_DATA_IN_PIPE) | (1 << BLUETOOTH_DATA_OUT_PIPE) |
(1 << BLUETOOTH_EVENTS_PIPE)))
{
/* Fetch the next endpoint from the current bluetooth interface */
/* Fetch the next endpoint from the current Bluetooth interface */
if (USB_GetNextDescriptorComp(&CurrConfigBytesRem, &CurrConfigLocation,
DComp_NextInterfaceBluetoothDataEndpoint))
{

@ -42,13 +42,13 @@
#include "BluetoothHost.h"
/* Macros: */
/** Device Class value for the Bluetooth Device class */
/** Device Class value for the Bluetooth Device class. */
#define BLUETOOTH_DEVICE_CLASS 0xE0
/** Device Subclass value for the Bluetooth Device class */
/** Device Subclass value for the Bluetooth Device class. */
#define BLUETOOTH_DEVICE_SUBCLASS 0x01
/** Device Protocol value for the Bluetooth Device class */
/** Device Protocol value for the Bluetooth Device class. */
#define BLUETOOTH_DEVICE_PROTOCOL 0x01
/* Enums: */

@ -249,7 +249,7 @@ uint8_t Bluetooth_SendPacket(void* Data, const uint16_t DataLen, Bluetooth_Chann
return BT_SENDPACKET_NoError;
}
/** Opens a bluetooth channel to the currently connected remote device, so that data can be exchanged.
/** Opens a Bluetooth channel to the currently connected remote device, so that data can be exchanged.
*
* \note The channel is not immediately opened when this function returns - it must undergo a two way
* connection and configuration process first as the main Bluetooth stack processing task is
@ -312,7 +312,7 @@ Bluetooth_Channel_t* Bluetooth_OpenChannel(const uint16_t PSM)
return ChannelData;
}
/** Closes a bluetooth channel that is open to the currently connected remote device, so that no further data
/** Closes a Bluetooth channel that is open to the currently connected remote device, so that no further data
* can be exchanged.
*
* \note The channel is not immediately closed when this function returns - it must undergo an asynchronous

@ -51,13 +51,13 @@
#define BT_ACL_DEBUG(l, s, ...) do { if (ACL_DEBUG_LEVEL >= l) printf_P(PSTR("(ACL) " s "\r\n"), ##__VA_ARGS__); } while (0)
#define ACL_DEBUG_LEVEL 0
/** Lowest possible channel number for L2CAP data channels */
/** Lowest possible channel number for L2CAP data channels. */
#define BT_CHANNELNUMBER_BASEOFFSET 0x0040
/** Bluetooth specification defined channel number for signalling commands */
/** Bluetooth specification defined channel number for signalling commands. */
#define BT_CHANNEL_SIGNALING 0x0001
/** Bluetooth specification defined channel number for connectionless data */
/** Bluetooth specification defined channel number for connectionless data. */
#define BT_CHANNEL_CONNECTIONLESS 0x0002
#define BT_ACL_FIRST_AUTOFLUSH (1 << 13)
@ -98,14 +98,14 @@
uint16_t DataLength; /**< Length of the packet payload, in bytes */
} BT_ACL_Header_t;
/** Bluetooth ACL data packet header structure, for ACL packets containing L2CAP data */
/** Bluetooth ACL data packet header structure, for ACL packets containing L2CAP data. */
typedef struct
{
uint16_t PayloadLength; /**< Size of the data payload, in bytes */
uint16_t DestinationChannel; /**< Destination channel in the device the data is directed to */
} BT_DataPacket_Header_t;
/** Bluetooth signalling command header structure, for all ACL packets containing a signalling command */
/** Bluetooth signalling command header structure, for all ACL packets containing a signalling command. */
typedef struct
{
uint8_t Code; /**< Signal code, a BT_SIGNAL_* mask value */

@ -182,7 +182,7 @@ void Bluetooth_HCITask(void)
ParameterLength: 0,
};
/* Send the command to reset the bluetooth dongle controller */
/* Send the command to reset the Bluetooth dongle controller */
Bluetooth_SendHCICommand(&HCICommandHeader, NULL, 0);
Bluetooth_State.NextHCIState = Bluetooth_Init_ReadBufferSize;
@ -197,7 +197,7 @@ void Bluetooth_HCITask(void)
ParameterLength: 0,
};
/* Send the command to read the bluetooth buffer size (mandatory before device sends any data) */
/* Send the command to read the Bluetooth buffer size (mandatory before device sends any data) */
Bluetooth_SendHCICommand(&HCICommandHeader, NULL, 0);
Bluetooth_State.NextHCIState = Bluetooth_Init_GetBDADDR;
@ -212,7 +212,7 @@ void Bluetooth_HCITask(void)
ParameterLength: 0,
};
/* Send the command to retrieve the BDADDR of the inserted bluetooth dongle */
/* Send the command to retrieve the BDADDR of the inserted Bluetooth dongle */
Bluetooth_SendHCICommand(&HCICommandHeader, NULL, 0);
Bluetooth_State.NextHCIState = Bluetooth_Init_SetLocalName;
@ -227,7 +227,7 @@ void Bluetooth_HCITask(void)
ParameterLength: 248,
};
/* Send the command to set the bluetooth dongle's name for other devices to see */
/* Send the command to set the Bluetooth dongle's name for other devices to see */
Bluetooth_SendHCICommand(&HCICommandHeader, Bluetooth_DeviceConfiguration.Name, strlen(Bluetooth_DeviceConfiguration.Name));
Bluetooth_State.NextHCIState = Bluetooth_Init_SetDeviceClass;

@ -63,7 +63,7 @@
#define MAXIMUM_CHANNEL_MTU 255
/* Enums: */
/** Enum for the possible states for a bluetooth ACL channel. */
/** Enum for the possible states for a Bluetooth ACL channel. */
enum BT_ChannelStates_t
{
Channel_Closed = 0, /**< Channel is closed and inactive. No data may be sent or received. */
@ -85,7 +85,7 @@
enum BT_SendPacket_ErrorCodes_t
{
BT_SENDPACKET_NoError = 0, /**< The packet was sent sucessfully. */
BT_SENDPACKET_NotConnected = 1, /**< The bluetooth stack is not currently connected to a remote device. */
BT_SENDPACKET_NotConnected = 1, /**< The Bluetooth stack is not currently connected to a remote device. */
BT_SENDPACKET_ChannelNotOpen = 2, /**< The given channel is not currently in the Open state. */
};
@ -122,7 +122,7 @@
{
uint32_t Class; /**< Class of the local device, a mask of DEVICE_CLASS_* masks. */
char PINCode[16]; /**< Pin code required to send or receive in order to authenticate with a remote device. */
char Name[]; /**< Name of the local bluetooth device, up to 248 characters. */
char Name[]; /**< Name of the local Bluetooth device, up to 248 characters. */
} Bluetooth_Device_t;
/** Bluetooth stack state information structure, for the containment of the Bluetooth stack state. The values in
@ -136,7 +136,7 @@
bool IsInitialized; /**< Indicates if the Bluetooth stack is currently initialized and ready for connections
* to or from a remote Bluetooth device.
*/
uint8_t LocalBDADDR[6]; /**< Local bluetooth adapter's BDADDR, valid when the stack is fully initialized. */
uint8_t LocalBDADDR[6]; /**< Local Bluetooth adapter's BDADDR, valid when the stack is fully initialized. */
} Bluetooth_Stack_State_t;
/* Includes: */

@ -68,23 +68,56 @@ void RFCOMM_ProcessPacket(void* Data, Bluetooth_Channel_t* const Channel)
switch (FrameHeader->FrameType & ~FRAME_POLL_FINAL)
{
case RFCOMM_Frame_SABM:
BT_RFCOMM_DEBUG(1, "<< SABM Received");
RFCOMM_ProcessSABM(FrameHeader, Channel);
break;
case RFCOMM_Frame_UA:
BT_RFCOMM_DEBUG(1, "<< UA Received");
RFCOMM_ProcessUA(FrameHeader, Channel);
break;
case RFCOMM_Frame_DM:
BT_RFCOMM_DEBUG(1, "<< DM Received");
RFCOMM_ProcessDM(FrameHeader, Channel);
break;
case RFCOMM_Frame_DISC:
BT_RFCOMM_DEBUG(1, "<< DISC Received");
RFCOMM_ProcessDISC(FrameHeader, Channel);
break;
case RFCOMM_Frame_UIH:
BT_RFCOMM_DEBUG(1, "<< UIH Received");
RFCOMM_ProcessUIH(FrameHeader, Channel);
break;
}
}
static void RFCOMM_ProcessSABM(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)
{
uint8_t* CurrBufferPos = ((uint8_t*)FrameHeader + sizeof(RFCOMM_Header_t));
uint16_t DataLen = RFCOMM_GetFrameDataLength(&CurrBufferPos);
BT_RFCOMM_DEBUG(1, "<< SABM Received");
BT_RFCOMM_DEBUG(2, "-- Data Length 0x%04X", DataLen);
for (uint16_t i = 0; i < DataLen; i++)
printf("0x%02X ", CurrBufferPos[i]);
printf("\r\n");
}
static void RFCOMM_ProcessUA(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)
{
BT_RFCOMM_DEBUG(1, "<< UA Received");
}
static void RFCOMM_ProcessDM(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)
{
BT_RFCOMM_DEBUG(1, "<< DM Received");
}
static void RFCOMM_ProcessDISC(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)
{
BT_RFCOMM_DEBUG(1, "<< DISC Received");
}
static void RFCOMM_ProcessUIH(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel)
{
BT_RFCOMM_DEBUG(1, "<< UIH Received");
}
static uint16_t RFCOMM_GetFrameDataLength(void** BufferPos)
{
uint8_t FirstOctet = *((uint8_t*)*BufferPos);

@ -55,6 +55,7 @@
#define FRAME_POLL_FINAL (1 << 5)
/* Enums: */
/** Enum for the types of RFCOMM frames which can be exchanged on a Bluetooth channel. */
enum RFCOMM_Frame_Types_t
{
RFCOMM_Frame_SABM = 0x2F, /**< Set Asynchronous Balance Mode Field */
@ -70,7 +71,7 @@
struct
{
unsigned char LogicalChannel : 6;
unsigned char CommandResponse : 1;
unsigned char PollResponse : 1;
unsigned char LastAddressOctet : 1;
} Header;
@ -82,6 +83,12 @@
void RFCOMM_ProcessPacket(void* Data, Bluetooth_Channel_t* const Channel);
#if defined(INCLUDE_FROM_RFCOMM_C)
static void RFCOMM_ProcessSABM(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel);
static void RFCOMM_ProcessUA(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel);
static void RFCOMM_ProcessDM(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel);
static void RFCOMM_ProcessDISC(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel);
static void RFCOMM_ProcessUIH(const RFCOMM_Header_t* const FrameHeader, Bluetooth_Channel_t* const Channel);
static uint16_t RFCOMM_GetFrameDataLength(void** BufferPos);
#endif

@ -77,7 +77,7 @@ const struct
(sizeof(ItemUUID_t) + sizeof(Item8Bit_t)),
{
{(SDP_DATATYPE_UUID | SDP_DATASIZE_128Bit), RFCOMM_UUID},
{(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_8Bit), 0x03},
{(SDP_DATATYPE_UnsignedInt | SDP_DATASIZE_8Bit), 0x00},
},
},
};

@ -42,7 +42,7 @@
#include "GenericHIDHost.h"
/* Macros: */
/** Interface Class value for the Human Interface Device class */
/** Interface Class value for the Human Interface Device class. */
#define HID_CLASS 0x03
/* Enums: */

@ -53,10 +53,10 @@
#include "ConfigDescriptor.h"
/* Macros: */
/** Pipe number for the HID data IN pipe */
/** Pipe number for the HID data IN pipe. */
#define HID_DATA_IN_PIPE 1
/** Pipe number for the HID data OUT pipe */
/** Pipe number for the HID data OUT pipe. */
#define HID_DATA_OUT_PIPE 2
/** HID Class specific request to send a HID report to the device. */

@ -42,16 +42,16 @@
#include "HIDReport.h"
/* Macros: */
/** Interface Class value for the Human Interface Device class */
/** Interface Class value for the Human Interface Device class. */
#define JOYSTICK_CLASS 0x03
/** Interface Protocol value for a Boot Protocol Mouse compliant device */
/** Interface Protocol value for a Boot Protocol Mouse compliant device. */
#define JOYSTICK_PROTOCOL 0x02
/** Descriptor header type constant for a HID descriptor */
/** Descriptor header type constant for a HID descriptor. */
#define DTYPE_HID 0x21
/** Descriptor header type constant for a HID report descriptor */
/** Descriptor header type constant for a HID report descriptor. */
#define DTYPE_Report 0x22
/* Enums: */

@ -43,19 +43,19 @@
#include "JoystickHostWithParser.h"
/* Macros: */
/** HID Report Descriptor Usage for a Joystick */
/** HID Report Descriptor Usage for a Joystick. */
#define USAGE_JOYSTICK 0x04
/** HID Report Descriptor Usage Page value for a toggle button */
/** HID Report Descriptor Usage Page value for a toggle button. */
#define USAGE_PAGE_BUTTON 0x09
/** HID Report Descriptor Usage Page value for a Generic Desktop Control */
/** HID Report Descriptor Usage Page value for a Generic Desktop Control. */
#define USAGE_PAGE_GENERIC_DCTRL 0x01
/** HID Report Descriptor Usage value for a X axis movement */
/** HID Report Descriptor Usage value for a X axis movement. */
#define USAGE_X 0x30
/** HID Report Descriptor Usage value for a Y axis movement */
/** HID Report Descriptor Usage value for a Y axis movement. */
#define USAGE_Y 0x31
/* Enums: */

@ -54,7 +54,7 @@
#include "HIDReport.h"
/* Macros: */
/** Pipe number for the joystick report data pipe */
/** Pipe number for the joystick report data pipe. */
#define JOYSTICK_DATAPIPE 1
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */

@ -42,10 +42,10 @@
#include "KeyboardHost.h"
/* Macros: */
/** Interface Class value for the Human Interface Device class */
/** Interface Class value for the Human Interface Device class. */
#define KEYBOARD_CLASS 0x03
/** Interface Protocol value for a Boot Protocol Keyboard compliant device */
/** Interface Protocol value for a Boot Protocol Keyboard compliant device. */
#define KEYBOARD_PROTOCOL 0x01
/* Enums: */

@ -53,10 +53,10 @@
#include "ConfigDescriptor.h"
/* Macros: */
/** Pipe number for the keyboard data IN pipe */
/** Pipe number for the keyboard data IN pipe. */
#define KEYBOARD_DATAPIPE 1
/** HID Class Specific request to set the report protocol mode */
/** HID Class Specific request to set the report protocol mode. */
#define REQ_SetProtocol 0x0B
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
@ -72,7 +72,7 @@
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
/* Type Defines: */
/** Type define for a standard Boot Protocol Keyboard report */
/** Type define for a standard Boot Protocol Keyboard report. */
typedef struct
{
uint8_t Modifier; /**< Keyboard modifier byte, indicating pressed modifier keys (such as Shift, Control, etc.) */

@ -42,16 +42,16 @@
#include "HIDReport.h"
/* Macros: */
/** Interface Class value for the Human Interface Device class */
/** Interface Class value for the Human Interface Device class. */
#define KEYBOARD_CLASS 0x03
/** Interface Protocol value for a Boot Protocol Keyboard compliant device */
/** Interface Protocol value for a Boot Protocol Keyboard compliant device. */
#define KEYBOARD_PROTOCOL 0x01
/** Descriptor header type constant for a HID descriptor */
/** Descriptor header type constant for a HID descriptor. */
#define DTYPE_HID 0x21
/** Descriptor header type constant for a HID report descriptor */
/** Descriptor header type constant for a HID report descriptor. */
#define DTYPE_Report 0x22
/* Enums: */

@ -43,7 +43,7 @@
#include "KeyboardHostWithParser.h"
/* Macros: */
/** HID Report Descriptor Usage Page value for a desktop keyboard */
/** HID Report Descriptor Usage Page value for a desktop keyboard. */
#define USAGE_PAGE_KEYBOARD 0x07
/* Enums: */

@ -49,7 +49,7 @@
#include "HIDReport.h"
/* Macros: */
/** Pipe number for the keyboard report data pipe */
/** Pipe number for the keyboard report data pipe. */
#define KEYBOARD_DATAPIPE 1
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */

@ -42,13 +42,13 @@
#include "MIDIHost.h"
/* Macros: */
/** Interface Class value for the MIDI Audio class */
/** Interface Class value for the MIDI Audio class. */
#define MIDI_STREAMING_CLASS 0x01
/** Interface Class value for the MIDI Audio Streaming subclass */
/** Interface Class value for the MIDI Audio Streaming subclass. */
#define MIDI_STREAMING_SUBCLASS 0x03
/** Interface Class value for the MIDI Audio Streaming protocol */
/** Interface Class value for the MIDI Audio Streaming protocol. */
#define MIDI_STREAMING_PROTOCOL 0x00
/* Enums: */

@ -55,13 +55,13 @@
#include "ConfigDescriptor.h"
/* Macros: */
/** MIDI command for a note on (activation) event */
/** MIDI command for a note on (activation) event. */
#define MIDI_COMMAND_NOTE_ON 0x90
/** MIDI command for a note off (deactivation) event */
/** MIDI command for a note off (deactivation) event. */
#define MIDI_COMMAND_NOTE_OFF 0x80
/** Standard key press velocity value used for all note events, as no pressure sensor is mounted */
/** Standard key press velocity value used for all note events, as no pressure sensor is mounted. */
#define MIDI_STANDARD_VELOCITY 64
/** Convenience macro. MIDI channels are numbered from 1-10 (natural numbers) however the logical channel
@ -71,10 +71,10 @@
*/
#define MIDI_CHANNEL(channel) (channel - 1)
/** Pipe number for the MIDI data IN pipe */
/** Pipe number for the MIDI data IN pipe. */
#define MIDI_DATAPIPE_IN 1
/** Pipe number for the MIDI data OUT pipe */
/** Pipe number for the MIDI data OUT pipe. */
#define MIDI_DATAPIPE_OUT 2
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */

@ -42,13 +42,13 @@
#include "MassStorageHost.h"
/* Macros: */
/** Interface Class value for the Mass Storage Device class */
/** Interface Class value for the Mass Storage Device class. */
#define MASS_STORE_CLASS 0x08
/** Interface Class value for the Mass Storage Device subclass */
/** Interface Class value for the Mass Storage Device subclass. */
#define MASS_STORE_SUBCLASS 0x06
/** Interface Protocol value for the Bulk Only transport protocol */
/** Interface Protocol value for the Bulk Only transport protocol. */
#define MASS_STORE_PROTOCOL 0x50
/* Enums: */

@ -45,34 +45,34 @@
#include <LUFA/Drivers/USB/USB.h>
/* Macros: */
/** Class specific request to reset the Mass Storage interface of the attached device */
/** Class specific request to reset the Mass Storage interface of the attached device. */
#define REQ_MassStorageReset 0xFF
/** Class specific request to retrieve the maximum Logical Unit Number (LUN) index of the attached device */
/** Class specific request to retrieve the maximum Logical Unit Number (LUN) index of the attached device. */
#define REQ_GetMaxLUN 0xFE
/** Command Block Wrapper signature byte, for verification of valid CBW blocks */
/** Command Block Wrapper signature byte, for verification of valid CBW blocks. */
#define CBW_SIGNATURE 0x43425355UL
/** Command Static Wrapper signature byte, for verification of valid CSW blocks */
/** Command Static Wrapper signature byte, for verification of valid CSW blocks. */
#define CSW_SIGNATURE 0x53425355UL
/** Data direction mask for the Flags field of a CBW, indicating Host-to-Device transfer direction */
/** Data direction mask for the Flags field of a CBW, indicating Host-to-Device transfer direction. */
#define COMMAND_DIRECTION_DATA_OUT (0 << 7)
/** Data direction mask for the Flags field of a CBW, indicating Device-to-Host transfer direction */
/** Data direction mask for the Flags field of a CBW, indicating Device-to-Host transfer direction. */
#define COMMAND_DIRECTION_DATA_IN (1 << 7)
/** Timeout period between the issuing of a CBW to a device, and the reception of the first packet */
/** Timeout period between the issuing of a CBW to a device, and the reception of the first packet. */
#define COMMAND_DATA_TIMEOUT_MS 10000
/** Pipe number of the Mass Storage data IN pipe */
/** Pipe number of the Mass Storage data IN pipe. */
#define MASS_STORE_DATA_IN_PIPE 1
/** Pipe number of the Mass Storage data OUT pipe */
/** Pipe number of the Mass Storage data OUT pipe. */
#define MASS_STORE_DATA_OUT_PIPE 2
/** Additional error code for Mass Storage functions when a device returns a logical command failure */
/** Additional error code for Mass Storage functions when a device returns a logical command failure. */
#define MASS_STORE_SCSI_COMMAND_FAILED 0xC0
/* Type defines: */
@ -175,7 +175,7 @@
} SCSI_Capacity_t;
/* Enums: */
/** CSW status return codes, indicating the overall status of the issued CBW */
/** CSW status return codes, indicating the overall status of the issued CBW. */
enum MassStorageHost_CommandStatusCodes_t
{
Command_Pass = 0, /**< Command completed successfully */

@ -42,10 +42,10 @@
#include "MouseHost.h"
/* Macros: */
/** Interface Class value for the Human Interface Device class */
/** Interface Class value for the Human Interface Device class. */
#define MOUSE_CLASS 0x03
/** Interface Protocol value for a Boot Protocol Mouse compliant device */
/** Interface Protocol value for a Boot Protocol Mouse compliant device. */
#define MOUSE_PROTOCOL 0x02
/* Enums: */

@ -53,10 +53,10 @@
#include "ConfigDescriptor.h"
/* Macros: */
/** Pipe number for the mouse data IN pipe */
/** Pipe number for the mouse data IN pipe. */
#define MOUSE_DATAPIPE 1
/** HID Class Specific request to set the report protocol mode */
/** HID Class Specific request to set the report protocol mode. */
#define REQ_SetProtocol 0x0B
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */
@ -72,7 +72,7 @@
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
/* Type Defines: */
/** Type define for a standard Boot Protocol Mouse report */
/** Type define for a standard Boot Protocol Mouse report. */
typedef struct
{
uint8_t Button; /**< Button mask for currently pressed buttons in the mouse */

@ -42,16 +42,16 @@
#include "HIDReport.h"
/* Macros: */
/** Interface Class value for the Human Interface Device class */
/** Interface Class value for the Human Interface Device class. */
#define MOUSE_CLASS 0x03
/** Interface Protocol value for a Boot Protocol Mouse compliant device */
/** Interface Protocol value for a Boot Protocol Mouse compliant device. */
#define MOUSE_PROTOCOL 0x02
/** Descriptor header type constant for a HID descriptor */
/** Descriptor header type constant for a HID descriptor. */
#define DTYPE_HID 0x21
/** Descriptor header type constant for a HID report descriptor */
/** Descriptor header type constant for a HID report descriptor. */
#define DTYPE_Report 0x22
/* Enums: */

@ -43,22 +43,22 @@
#include "MouseHostWithParser.h"
/* Macros: */
/** HID Report Descriptor Usage for a Mouse */
/** HID Report Descriptor Usage for a Mouse. */
#define USAGE_MOUSE 0x02
/** HID Report Descriptor Usage Page value for a toggle button */
/** HID Report Descriptor Usage Page value for a toggle button. */
#define USAGE_PAGE_BUTTON 0x09
/** HID Report Descriptor Usage Page value for a Generic Desktop Control */
/** HID Report Descriptor Usage Page value for a Generic Desktop Control. */
#define USAGE_PAGE_GENERIC_DCTRL 0x01
/** HID Report Descriptor Usage value for a X axis movement */
/** HID Report Descriptor Usage value for a X axis movement. */
#define USAGE_X 0x30
/** HID Report Descriptor Usage value for a Y axis movement */
/** HID Report Descriptor Usage value for a Y axis movement. */
#define USAGE_Y 0x31
/** HID Report Descriptor Usage value for a Scroll Wheel movement */
/** HID Report Descriptor Usage value for a Scroll Wheel movement. */
#define USAGE_SCROLL_WHEEL 0x38
/* Enums: */

@ -54,7 +54,7 @@
#include "HIDReport.h"
/* Macros: */
/** Pipe number for the mouse report data pipe */
/** Pipe number for the mouse report data pipe. */
#define MOUSE_DATAPIPE 1
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */

@ -38,13 +38,13 @@
#include "Lib/PrinterCommands.h"
/* Macros: */
/** Interface Class value for the Printer Device class */
/** Interface Class value for the Printer Device class. */
#define PRINTER_CLASS 0x07
/** Interface Subclass value for the Printer Device class */
/** Interface Subclass value for the Printer Device class. */
#define PRINTER_SUBCLASS 0x01
/** Interface Protocol value for a Bidirectional communication encapsulation */
/** Interface Protocol value for a Bidirectional communication encapsulation. */
#define PRINTER_PROTOCOL 0x02
/* Enums: */

@ -43,19 +43,19 @@
#include <LUFA/Drivers/USB/USB.h>
/* Macros: */
/** Printer class-specific request to retrieve the printer's ID string */
/** Printer class-specific request to retrieve the printer's ID string. */
#define REQ_GetDeviceID 0
/** Printer class-specific request to retrieve the printer's virtual port status flags */
/** Printer class-specific request to retrieve the printer's virtual port status flags. */
#define REQ_GetPortStatus 1
/** Printer class-specific request to soft-reset the device */
/** Printer class-specific request to soft-reset the device. */
#define REQ_SoftReset 2
/** Pipe number of the Printer data IN pipe */
/** Pipe number of the Printer data IN pipe. */
#define PRINTER_DATA_IN_PIPE 1
/** Pipe number of the Printer data OUT pipe */
/** Pipe number of the Printer data OUT pipe. */
#define PRINTER_DATA_OUT_PIPE 2
/* Function Prototypes: */

@ -42,22 +42,22 @@
#include "RNDISEthernetHost.h"
/* Macros: */
/** Interface Class value for the CDC class */
/** Interface Class value for the CDC class. */
#define CDC_CONTROL_CLASS 0x02
/** Interface Class value for the CDC Communication Interface subclass */
/** Interface Class value for the CDC Communication Interface subclass. */
#define CDC_CONTROL_SUBCLASS 0x02
/** Interface Class value for the CDC RNDIS vendor specific protocol */
/** Interface Class value for the CDC RNDIS vendor specific protocol. */
#define CDC_CONTROL_PROTOCOL 0xFF
/** Interface Class value for the CDC data class */
/** Interface Class value for the CDC data class. */
#define CDC_DATA_CLASS 0x0A
/** Interface Class value for the CDC data subclass */
/** Interface Class value for the CDC data subclass. */
#define CDC_DATA_SUBCLASS 0x00
/** Interface Class value for the CDC data protocol */
/** Interface Class value for the CDC data protocol. */
#define CDC_DATA_PROTOCOL 0x00
/* Enums: */

@ -46,14 +46,14 @@
#include "RNDISConstants.h"
/* Type Defines: */
/** Type define for a RNDIS message header, sent before RNDIS messages */
/** Type define for a RNDIS message header, sent before RNDIS messages. */
typedef struct
{
uint32_t MessageType; /**< RNDIS message type, a REMOTE_NDIS_*_MSG constant */
uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */
} RNDIS_Message_Header_t;
/** Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter */
/** Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter. */
typedef struct
{
uint32_t MessageType;
@ -69,7 +69,7 @@
uint32_t Reserved;
} RNDIS_Packet_Message_t;
/** Type define for a RNDIS Initialize command message */
/** Type define for a RNDIS Initialize command message. */
typedef struct
{
uint32_t MessageType;
@ -81,7 +81,7 @@
uint32_t MaxTransferSize;
} RNDIS_Initialize_Message_t;
/** Type define for a RNDIS Initialize complete response message */
/** Type define for a RNDIS Initialize complete response message. */
typedef struct
{
uint32_t MessageType;
@ -100,7 +100,7 @@
uint32_t AFListSize;
} RNDIS_Initialize_Complete_t;
/** Type define for a RNDIS Keepalive command message */
/** Type define for a RNDIS Keepalive command message. */
typedef struct
{
uint32_t MessageType;
@ -108,7 +108,7 @@
uint32_t RequestId;
} RNDIS_KeepAlive_Message_t;
/** Type define for a RNDIS Keepalive complete message */
/** Type define for a RNDIS Keepalive complete message. */
typedef struct
{
uint32_t MessageType;
@ -117,7 +117,7 @@
uint32_t Status;
} RNDIS_KeepAlive_Complete_t;
/** Type define for a RNDIS Reset complete message */
/** Type define for a RNDIS Reset complete message. */
typedef struct
{
uint32_t MessageType;
@ -127,7 +127,7 @@
uint32_t AddressingReset;
} RNDIS_Reset_Complete_t;
/** Type define for a RNDIS Set command message */
/** Type define for a RNDIS Set command message. */
typedef struct
{
uint32_t MessageType;
@ -140,7 +140,7 @@
uint32_t DeviceVcHandle;
} RNDIS_Set_Message_t;
/** Type define for a RNDIS Set complete response message */
/** Type define for a RNDIS Set complete response message. */
typedef struct
{
uint32_t MessageType;
@ -149,7 +149,7 @@
uint32_t Status;
} RNDIS_Set_Complete_t;
/** Type define for a RNDIS Query command message */
/** Type define for a RNDIS Query command message. */
typedef struct
{
uint32_t MessageType;
@ -162,7 +162,7 @@
uint32_t DeviceVcHandle;
} RNDIS_Query_Message_t;
/** Type define for a RNDIS Query complete response message */
/** Type define for a RNDIS Query complete response message. */
typedef struct
{
uint32_t MessageType;
@ -175,28 +175,28 @@
} RNDIS_Query_Complete_t;
/* Macros: */
/** RNDIS request to issue a host-to-device NDIS command */
/** RNDIS request to issue a host-to-device NDIS command. */
#define REQ_SendEncapsulatedCommand 0x00
/** RNDIS request to issue a device-to-host NDIS response */
/** RNDIS request to issue a device-to-host NDIS response. */
#define REQ_GetEncapsulatedResponse 0x01
/** Implemented RNDIS Version Major */
/** Implemented RNDIS Version Major. */
#define REMOTE_NDIS_VERSION_MAJOR 0x01
/** Implemented RNDIS Version Minor */
/** Implemented RNDIS Version Minor. */
#define REMOTE_NDIS_VERSION_MINOR 0x00
/** Pipe number for the RNDIS data IN pipe */
/** Pipe number for the RNDIS data IN pipe. */
#define RNDIS_DATAPIPE_IN 1
/** Pipe number for the RNDIS data OUT pipe */
/** Pipe number for the RNDIS data OUT pipe. */
#define RNDIS_DATAPIPE_OUT 2
/** Pipe number for the RNDIS notification pipe */
/** Pipe number for the RNDIS notification pipe. */
#define RNDIS_NOTIFICATIONPIPE 3
/** Additional error code for RNDIS functions when a device returns a logical command failure */
/** Additional error code for RNDIS functions when a device returns a logical command failure. */
#define RNDIS_COMMAND_FAILED 0xC0
/* Function Prototypes: */

@ -42,13 +42,13 @@
#include "StillImageHost.h"
/* Macros: */
/** Interface Class value for the Still Image Device class */
/** Interface Class value for the Still Image Device class. */
#define SIMAGE_CLASS 0x06
/** Interface Class value for the Still Image Device subclass */
/** Interface Class value for the Still Image Device subclass. */
#define SIMAGE_SUBCLASS 0x01
/** Interface Class value for the Still Image Device protocol */
/** Interface Class value for the Still Image Device protocol. */
#define SIMAGE_PROTOCOL 0x01
/* Enums: */

@ -42,22 +42,22 @@
#include "PIMACodes.h"
/* Macros: */
/** Pipe number of the Still Image data IN pipe */
/** Pipe number of the Still Image data IN pipe. */
#define SIMAGE_DATA_IN_PIPE 0x01
/** Pipe number of the Still Image data OUT pipe */
/** Pipe number of the Still Image data OUT pipe. */
#define SIMAGE_DATA_OUT_PIPE 0x02
/** Pipe number of the Still Image events pipe */
/** Pipe number of the Still Image events pipe. */
#define SIMAGE_EVENTS_PIPE 0x03
/** Length in bytes of a given Unicode string's character length
/** Length in bytes of a given Unicode string's character length.
*
* \param[in] chars Total number of Unicode characters in the string
*/
#define UNICODE_STRING_LENGTH(chars) ((chars) << 1)
/** Timeout period between the issuing of a command to a device, and the reception of the first packet */
/** Timeout period between the issuing of a command to a device, and the reception of the first packet. */
#define COMMAND_DATA_TIMEOUT_MS 10000
/** Used in the DataLength field of a PIMA container, to give the total container size in bytes for

@ -42,22 +42,22 @@
#include "VirtualSerialHost.h"
/* Macros: */
/** Interface Class value for the CDC class */
/** Interface Class value for the CDC class. */
#define CDC_CONTROL_CLASS 0x02
/** Interface Class value for the CDC Communication Interface subclass */
/** Interface Class value for the CDC Communication Interface subclass. */
#define CDC_CONTROL_SUBCLASS 0x02
/** Interface Class value for the CDC protocol */
/** Interface Class value for the CDC protocol. */
#define CDC_CONTROL_PROTOCOL 0x01
/** Interface Class value for the CDC data class */
/** Interface Class value for the CDC data class. */
#define CDC_DATA_CLASS 0x0A
/** Interface Class value for the CDC data subclass */
/** Interface Class value for the CDC data subclass. */
#define CDC_DATA_SUBCLASS 0x00
/** Interface Class value for the CDC data protocol */
/** Interface Class value for the CDC data protocol. */
#define CDC_DATA_PROTOCOL 0x00
/* Enums: */

@ -53,13 +53,13 @@
#include "ConfigDescriptor.h"
/* Macros: */
/** Pipe number for the CDC data IN pipe */
/** Pipe number for the CDC data IN pipe. */
#define CDC_DATAPIPE_IN 1
/** Pipe number for the CDC data OUT pipe */
/** Pipe number for the CDC data OUT pipe. */
#define CDC_DATAPIPE_OUT 2
/** Pipe number for the CDC notification pipe */
/** Pipe number for the CDC notification pipe. */
#define CDC_NOTIFICATIONPIPE 3
/** LED mask for the library LED driver, to indicate that the USB interface is not ready. */

@ -74,7 +74,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -86,7 +86,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -75,7 +75,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -88,7 +88,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -80,7 +80,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -74,7 +74,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS LEDS_LED1
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -92,7 +92,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -83,8 +83,8 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
/** LED mask for the none of the board LEDs */
#define LEDS_NO_LEDS 0
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */
#if !defined(__DOXYGEN__)

@ -83,7 +83,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -74,7 +74,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (1 << 6)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -83,7 +83,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3 | LEDS_LED4)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -75,7 +75,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -74,7 +74,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS LEDS_LED1
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -82,13 +82,13 @@
/** Audio class descriptor jack type value for an external (physical) MIDI input or output jack. */
#define MIDI_JACKTYPE_EXTERNAL 0x02
/** MIDI command for a note on (activation) event */
/** MIDI command for a note on (activation) event. */
#define MIDI_COMMAND_NOTE_ON 0x90
/** MIDI command for a note off (deactivation) event */
/** MIDI command for a note off (deactivation) event. */
#define MIDI_COMMAND_NOTE_OFF 0x80
/** Standard key press velocity value used for all note events */
/** Standard key press velocity value used for all note events. */
#define MIDI_STANDARD_VELOCITY 64
/** Convenience macro. MIDI channels are numbered from 1-10 (natural numbers) however the logical channel

@ -213,7 +213,7 @@
{
uint32_t Signature; /**< Command block signature, must be CBW_SIGNATURE to indicate a valid Command Block */
uint32_t Tag; /**< Unique command ID value, to associate a command block wrapper with its command status wrapper */
uint32_t DataTransferLength; /** Length of the optional data portion of the issued command, in bytes */
uint32_t DataTransferLength; /**< Length of the optional data portion of the issued command, in bytes */
uint8_t Flags; /**< Command block flags, indicating command data direction */
uint8_t LUN; /**< Logical Unit number this command is issued to */
uint8_t SCSICommandLength; /**< Length of the issued SCSI command within the SCSI command data array */

@ -71,25 +71,25 @@
#endif
/* Macros: */
/** Implemented RNDIS Version Major */
/** Implemented RNDIS Version Major. */
#define REMOTE_NDIS_VERSION_MAJOR 0x01
/** Implemented RNDIS Version Minor */
/** Implemented RNDIS Version Minor. */
#define REMOTE_NDIS_VERSION_MINOR 0x00
/** RNDIS request to issue a host-to-device NDIS command */
/** RNDIS request to issue a host-to-device NDIS command. */
#define REQ_SendEncapsulatedCommand 0x00
/** RNDIS request to issue a device-to-host NDIS response */
/** RNDIS request to issue a device-to-host NDIS response. */
#define REQ_GetEncapsulatedResponse 0x01
/** Maximum size in bytes of a RNDIS control message which can be sent or received */
/** Maximum size in bytes of a RNDIS control message which can be sent or received. */
#define RNDIS_MESSAGE_BUFFER_SIZE 128
/** Maximum size in bytes of an Ethernet frame according to the Ethernet standard */
/** Maximum size in bytes of an Ethernet frame according to the Ethernet standard. */
#define ETHERNET_FRAME_SIZE_MAX 1500
/** Notification request value for a RNDIS Response Available notification */
/** Notification request value for a RNDIS Response Available notification. */
#define NOTIF_ResponseAvailable 1
/* Enums: */
@ -101,7 +101,7 @@
RNDIS_Data_Initialized = 2, /**< Adapter currently initialized and ready for data transfers */
};
/** Enum for the NDIS hardware states */
/** Enum for the NDIS hardware states. */
enum NDIS_Hardware_Status_t
{
NDIS_HardwareStatus_Ready, /**< Hardware Ready to accept commands from the host */

@ -103,15 +103,15 @@
uint8_t DataINEndpointNumber; /**< Endpoint number of the CDC interface's IN data endpoint */
uint16_t DataINEndpointSize; /**< Size in bytes of the CDC interface's IN data endpoint */
bool DataINEndpointDoubleBank; /** Indicates if the CDC interface's IN data endpoint should use double banking */
bool DataINEndpointDoubleBank; /**< Indicates if the CDC interface's IN data endpoint should use double banking */
uint8_t DataOUTEndpointNumber; /**< Endpoint number of the CDC interface's OUT data endpoint */
uint16_t DataOUTEndpointSize; /**< Size in bytes of the CDC interface's OUT data endpoint */
bool DataOUTEndpointDoubleBank; /** Indicates if the CDC interface's OUT data endpoint should use double banking */
bool DataOUTEndpointDoubleBank; /**< Indicates if the CDC interface's OUT data endpoint should use double banking */
uint8_t NotificationEndpointNumber; /**< Endpoint number of the CDC interface's IN notification endpoint, if used */
uint16_t NotificationEndpointSize; /**< Size in bytes of the CDC interface's IN notification endpoint, if used */
bool NotificationEndpointDoubleBank; /** Indicates if the CDC interface's notification endpoint should use double banking */
bool NotificationEndpointDoubleBank; /**< Indicates if the CDC interface's notification endpoint should use double banking */
} Config; /**< Config data for the USB class interface within the device. All elements in this section
* <b>must</b> be set or the interface will fail to enumerate and operate correctly.
*/

@ -89,7 +89,7 @@
uint8_t ReportINEndpointNumber; /**< Endpoint number of the HID interface's IN report endpoint */
uint16_t ReportINEndpointSize; /**< Size in bytes of the HID interface's IN report endpoint */
bool ReportINEndpointDoubleBank; /** Indicates if the HID interface's IN report endpoint should use double banking */
bool ReportINEndpointDoubleBank; /**< Indicates if the HID interface's IN report endpoint should use double banking */
void* PrevReportINBuffer; /**< Pointer to a buffer where the previously created HID input report can be
* stored by the driver, for comparison purposes to detect report changes that

@ -85,11 +85,11 @@
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 */
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) */
uint16_t DataOUTEndpointSize; /**< Size in bytes of the outgoing MIDI data endpoint, if available (zero if unused) */
bool DataOUTEndpointDoubleBank; /** Indicates if the MIDI interface's IN data endpoint should use double banking */
bool DataOUTEndpointDoubleBank; /**< Indicates if the MIDI interface's IN data endpoint should use double banking */
} Config; /**< Config data for the USB class interface within the device. All elements in this section
* <b>must</b> be set or the interface will fail to enumerate and operate correctly.
*/

@ -85,11 +85,11 @@
uint8_t DataINEndpointNumber; /**< Endpoint number of the Mass Storage interface's IN data endpoint */
uint16_t DataINEndpointSize; /**< Size in bytes of the Mass Storage interface's IN data endpoint */
bool DataINEndpointDoubleBank; /** Indicates if the Mass Storage interface's IN data endpoint should use double banking */
bool DataINEndpointDoubleBank; /**< Indicates if the Mass Storage interface's IN data endpoint should use double banking */
uint8_t DataOUTEndpointNumber; /**< Endpoint number of the Mass Storage interface's OUT data endpoint */
uint16_t DataOUTEndpointSize; /**< Size in bytes of the Mass Storage interface's OUT data endpoint */
bool DataOUTEndpointDoubleBank; /** Indicates if the Mass Storage interface's OUT data endpoint should use double banking */
bool DataOUTEndpointDoubleBank; /**< Indicates if the Mass Storage interface's OUT data endpoint should use double banking */
uint8_t TotalLUNs; /**< Total number of logical drives in the Mass Storage interface */
} Config; /**< Config data for the USB class interface within the device. All elements in this section

@ -85,15 +85,15 @@
uint8_t DataINEndpointNumber; /**< Endpoint number of the CDC interface's IN data endpoint */
uint16_t DataINEndpointSize; /**< Size in bytes of the CDC interface's IN data endpoint */
bool DataINEndpointDoubleBank; /** Indicates if the RNDIS interface's IN data endpoint should use double banking */
bool DataINEndpointDoubleBank; /**< Indicates if the RNDIS interface's IN data endpoint should use double banking */
uint8_t DataOUTEndpointNumber; /**< Endpoint number of the CDC interface's OUT data endpoint */
uint16_t DataOUTEndpointSize; /**< Size in bytes of the CDC interface's OUT data endpoint */
bool DataOUTEndpointDoubleBank; /** Indicates if the RNDIS interface's OUT data endpoint should use double banking */
bool DataOUTEndpointDoubleBank; /**< Indicates if the RNDIS interface's OUT data endpoint should use double banking */
uint8_t NotificationEndpointNumber; /**< Endpoint number of the CDC interface's IN notification endpoint, if used */
uint16_t NotificationEndpointSize; /**< Size in bytes of the CDC interface's IN notification endpoint, if used */
bool NotificationEndpointDoubleBank; /** Indicates if the RNDIS interface's notification endpoint should use double banking */
bool NotificationEndpointDoubleBank; /**< Indicates if the RNDIS interface's notification endpoint should use double banking */
char* AdapterVendorDescription; /**< String description of the adapter vendor */
MAC_Address_t AdapterMACAddress; /**< MAC address of the adapter */

@ -83,13 +83,13 @@
const struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the CDC interface's IN data pipe */
bool DataINPipeDoubleBank; /** Indicates if the CDC interface's IN data pipe should use double banking */
bool DataINPipeDoubleBank; /**< Indicates if the CDC interface's IN data pipe should use double banking */
uint8_t DataOUTPipeNumber; /**< Pipe number of the CDC interface's OUT data pipe */
bool DataOUTPipeDoubleBank; /** Indicates if the CDC interface's OUT data pipe should use double banking */
bool DataOUTPipeDoubleBank; /**< Indicates if the CDC interface's OUT data pipe should use double banking */
uint8_t NotificationPipeNumber; /**< Pipe number of the CDC interface's IN notification endpoint, if used */
bool NotificationPipeDoubleBank; /** Indicates if the CDC interface's notification pipe should use double banking */
bool NotificationPipeDoubleBank; /**< Indicates if the CDC interface's notification pipe should use double banking */
} Config; /**< Config data for the USB class interface within the device. All elements in this section
* <b>must</b> be set or the interface will fail to enumerate and operate correctly.
*/
@ -126,10 +126,10 @@
* CDCDevice_LineCodingParity_t enum
*/
uint8_t DataBits; /**< Bits of data per character of the virtual serial port */
} LineEncoding; /** Line encoding used in the virtual serial port, for the device's information. This is generally
* only used if the virtual serial port data is to be reconstructed on a physical UART. When set
* by the host application, the \ref CDC_Host_SetLineEncoding() function must be called to push
* the changes to the device.
} LineEncoding; /**< Line encoding used in the virtual serial port, for the device's information. This is generally
* only used if the virtual serial port data is to be reconstructed on a physical UART. When set
* by the host application, the \ref CDC_Host_SetLineEncoding() function must be called to push
* the changes to the device.
*/
} 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

@ -71,7 +71,7 @@
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Error code for some HID Host functions, indicating a logical (and not hardware) error */
/** Error code for some HID Host functions, indicating a logical (and not hardware) error. */
#define HID_ERROR_LOGICAL 0x80
/* Type Defines: */
@ -86,10 +86,10 @@
const struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the HID interface's IN data pipe */
bool DataINPipeDoubleBank; /** Indicates if the HID interface's IN data pipe should use double banking */
bool DataINPipeDoubleBank; /**< Indicates if the HID interface's IN data pipe should use double banking */
uint8_t DataOUTPipeNumber; /**< Pipe number of the HID interface's OUT data pipe */
bool DataOUTPipeDoubleBank; /** Indicates if the HID interface's OUT data pipe should use double banking */
bool DataOUTPipeDoubleBank; /**< Indicates if the HID interface's OUT data pipe should use double banking */
uint8_t HIDInterfaceProtocol; /**< HID interface protocol value to match against if a specific
* boot subclass protocol is required, either \ref HID_BOOT_MOUSE_PROTOCOL,

@ -142,7 +142,7 @@
/* Public Interface - May be used in end-application: */
/* Enums: */
/** Enum for the possible error codes in the return value of the \ref USB_ProcessHIDReport() function */
/** Enum for the possible error codes in the return value of the \ref USB_ProcessHIDReport() function. */
enum HID_Parse_ErrorCodes_t
{
HID_PARSE_Successful = 0, /**< Successful parse of the HID report descriptor, no error. */
@ -239,9 +239,9 @@
*/
typedef struct
{
uint8_t ReportID; /** Report ID of the report within the HID interface */
uint16_t ReportSizeBits[3]; /** Total number of bits in each report type for the given Report ID,
* indexed by the \ref HID_ReportItemTypes_t enum
uint8_t ReportID; /**< Report ID of the report within the HID interface */
uint16_t ReportSizeBits[3]; /**< Total number of bits in each report type for the given Report ID,
* indexed by the \ref HID_ReportItemTypes_t enum
*/
} HID_ReportSizeInfo_t;

@ -80,10 +80,10 @@
const struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the MIDI interface's streaming IN data pipe */
bool DataINPipeDoubleBank; /** Indicates if the MIDI interface's IN data pipe should use double banking */
bool DataINPipeDoubleBank; /**< Indicates if the MIDI interface's IN data pipe should use double banking */
uint8_t DataOUTPipeNumber; /**< Pipe number of the MIDI interface's streaming OUT data pipe */
bool DataOUTPipeDoubleBank; /** Indicates if the MIDI interface's OUT data pipe should use double banking */
bool DataOUTPipeDoubleBank; /**< Indicates if the MIDI interface's OUT data pipe should use double banking */
} Config; /**< Config data for the USB class interface within the device. All elements in this section
* <b>must</b> be set or the interface will fail to enumerate and operate correctly.
*/

@ -69,7 +69,7 @@
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Error code for some Mass Storage Host functions, indicating a logical (and not hardware) error */
/** Error code for some Mass Storage Host functions, indicating a logical (and not hardware) error. */
#define MS_ERROR_LOGICAL_CMD_FAILED 0x80
/* Type Defines: */
@ -84,10 +84,10 @@
const struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the Mass Storage interface's IN data pipe */
bool DataINPipeDoubleBank; /** Indicates if the Mass Storage interface's IN data pipe should use double banking */
bool DataINPipeDoubleBank; /**< Indicates if the Mass Storage interface's IN data pipe should use double banking */
uint8_t DataOUTPipeNumber; /**< Pipe number of the Mass Storage interface's OUT data pipe */
bool DataOUTPipeDoubleBank; /** Indicates if the Mass Storage interface's OUT data pipe should use double banking */
bool DataOUTPipeDoubleBank; /**< Indicates if the Mass Storage interface's OUT data pipe should use double banking */
} Config; /**< Config data for the USB class interface within the device. All elements in this section
* <b>must</b> be set or the interface will fail to enumerate and operate correctly.
*/

@ -80,10 +80,10 @@
const struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the Printer interface's IN data pipe */
bool DataINPipeDoubleBank; /** Indicates if the Printer interface's IN data pipe should use double banking */
bool DataINPipeDoubleBank; /**< Indicates if the Printer interface's IN data pipe should use double banking */
uint8_t DataOUTPipeNumber; /**< Pipe number of the Printer interface's OUT data pipe */
bool DataOUTPipeDoubleBank; /** Indicates if the Printer interface's OUT data pipe should use double banking */
bool DataOUTPipeDoubleBank; /**< Indicates if the Printer interface's OUT data pipe should use double banking */
} Config; /**< Config data for the USB class interface within the device. All elements in this section
* <b>must</b> be set or the interface will fail to enumerate and operate correctly.
*/

@ -84,13 +84,13 @@
const struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the RNDIS interface's IN data pipe */
bool DataINPipeDoubleBank; /** Indicates if the RNDIS interface's IN data pipe should use double banking */
bool DataINPipeDoubleBank; /**< Indicates if the RNDIS interface's IN data pipe should use double banking */
uint8_t DataOUTPipeNumber; /**< Pipe number of the RNDIS interface's OUT data pipe */
bool DataOUTPipeDoubleBank; /** Indicates if the RNDIS interface's OUT data pipe should use double banking */
bool DataOUTPipeDoubleBank; /**< Indicates if the RNDIS interface's OUT data pipe should use double banking */
uint8_t NotificationPipeNumber; /**< Pipe number of the RNDIS interface's IN notification endpoint, if used */
bool NotificationPipeDoubleBank; /** Indicates if the RNDIS interface's notification pipe should use double banking */
bool NotificationPipeDoubleBank; /**< Indicates if the RNDIS interface's notification pipe should use double banking */
uint32_t HostMaxPacketSize; /**< Maximum size of a packet which can be buffered by the host */
} Config; /**< Config data for the USB class interface within the device. All elements in this section
@ -128,7 +128,7 @@
};
/* Macros: */
/** Additional error code for RNDIS functions when a device returns a logical command failure */
/** Additional error code for RNDIS functions when a device returns a logical command failure. */
#define RNDIS_COMMAND_FAILED 0xC0
/* Function Prototypes: */

@ -69,7 +69,7 @@
/* Public Interface - May be used in end-application: */
/* Macros: */
/** Error code for some Still Image Host functions, indicating a logical (and not hardware) error */
/** Error code for some Still Image Host functions, indicating a logical (and not hardware) error. */
#define SI_ERROR_LOGICAL_CMD_FAILED 0x80
/* Type Defines: */
@ -84,13 +84,13 @@
const struct
{
uint8_t DataINPipeNumber; /**< Pipe number of the Still Image interface's IN data pipe */
bool DataINPipeDoubleBank; /** Indicates if the Still Image interface's IN data pipe should use double banking */
bool DataINPipeDoubleBank; /**< Indicates if the Still Image interface's IN data pipe should use double banking */
uint8_t DataOUTPipeNumber; /**< Pipe number of the Still Image interface's OUT data pipe */
bool DataOUTPipeDoubleBank; /** Indicates if the Still Image interface's OUT data pipe should use double banking */
bool DataOUTPipeDoubleBank; /**< Indicates if the Still Image interface's OUT data pipe should use double banking */
uint8_t EventsPipeNumber; /**< Pipe number of the Still Image interface's IN events endpoint, if used */
bool EventsPipeDoubleBank; /** Indicates if the Still Image interface's events data pipe should use double banking */
bool EventsPipeDoubleBank; /**< Indicates if the Still Image interface's events data pipe should use double banking */
} Config; /**< Config data for the USB class interface within the device. All elements in this section
* <b>must</b> be set or the interface will fail to enumerate and operate correctly.
*/

@ -472,7 +472,7 @@
USB_Descriptor_Header_t Header; /**< Descriptor header, including type and size. */
uint8_t FirstInterfaceIndex; /**< Index of the first associated interface. */
uint8_t TotalInterfaces; /** Total number of associated interfaces. */
uint8_t TotalInterfaces; /**< Total number of associated interfaces. */
uint8_t Class; /**< Interface class ID. */
uint8_t SubClass; /**< Interface subclass ID. */
@ -504,7 +504,7 @@
* given by the specific class.
*/
uint8_t bFirstInterface; /**< Index of the first associated interface. */
uint8_t bInterfaceCount; /** Total number of associated interfaces. */
uint8_t bInterfaceCount; /**< Total number of associated interfaces. */
uint8_t bFunctionClass; /**< Interface class ID. */
uint8_t bFunctionSubClass; /**< Interface subclass ID. */
uint8_t bFunctionProtocol; /**< Interface protocol ID. */

@ -64,7 +64,7 @@
#define NO_STREAM_CALLBACK NULL
/* Enums: */
/** Enum for the possible error return codes of a stream callback function */
/** Enum for the possible error return codes of a stream callback function. */
enum StreamCallback_Return_ErrorCodes_t
{
STREAMCALLBACK_Continue = 0, /**< Continue sending or receiving the stream. */

@ -54,7 +54,7 @@
#endif
/* Macros: */
/** Mask for the reading or writing of the high byte in a FLASH word when issuing a low-level programming command */
/** Mask for the reading or writing of the high byte in a FLASH word when issuing a low-level programming command. */
#define READ_WRITE_HIGH_BYTE_MASK (1 << 3)
#define PROG_MODE_PAGED_WRITES_MASK (1 << 0)

@ -56,9 +56,10 @@
#endif
/* Macros: */
/** Total number of allowable ISP programming speeds supported by the device */
/** Total number of allowable ISP programming speeds supported by the device. */
#define TOTAL_ISP_PROGRAMMING_SPEEDS 7
/** Low level device command to issue an extended FLASH address, for devices with other 128KB of FLASH. */
#define LOAD_EXTENDED_ADDRESS_CMD 0x4D
/* Function Prototypes: */

@ -63,16 +63,16 @@
#define _GETADCMUXMASK(x, y) _GETADCMUXMASK2(x, y)
#endif
/** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing */
/** Programmer ID string, returned to the host during the CMD_SIGN_ON command processing. */
#define PROGRAMMER_ID "AVRISP_MK2"
/** Timeout period for each issued command from the host before it is aborted */
/** Timeout period for each issued command from the host before it is aborted. */
#define COMMAND_TIMEOUT_MS 200
/** Command timeout counter register, GPIOR for speed */
/** Command timeout counter register, GPIOR for speed. */
#define TimeoutMSRemaining GPIOR0
/** MUX mask for the VTARGET ADC channel number */
/** MUX mask for the VTARGET ADC channel number. */
#define VTARGET_ADC_CHANNEL_MASK _GETADCMUXMASK(ADC_CHANNEL, VTARGET_ADC_CHANNEL)
#if !defined(WIN_AVRDUDE_COMPAT)

@ -51,10 +51,10 @@
#include "ISP/ISPTarget.h"
/* Macros: */
/** Parameter privilege 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 privilege 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)
/** Total number of parameters in the parameter table */

@ -55,10 +55,10 @@
#endif
#endif
/** Serial carrier TPI/PDI speed when hardware TPI/PDI mode is used */
/** Serial carrier TPI/PDI speed when hardware TPI/PDI mode is used. */
#define XPROG_HARDWARE_SPEED 1000000
/** Total number of bits in a single USART frame */
/** Total number of bits in a single USART frame. */
#define BITS_IN_USART_FRAME 12
#define PDI_CMD_LDS 0x00

@ -41,10 +41,10 @@
#include <stdbool.h>
/* Defines: */
/** Size of each ring buffer, in bytes */
/** Size of each ring buffer, in bytes. */
#define BUFFER_SIZE 128
/** Type of data to store into the buffer */
/** Type of data to store into the buffer. */
#define RingBuff_Data_t uint8_t
/* Type Defines: */

@ -62,7 +62,7 @@
/** LED mask for all the LEDs on the board. */
#define LEDS_ALL_LEDS (LEDS_LED1 | LEDS_LED2 | LEDS_LED3)
/** LED mask for the none of the board LEDs */
/** LED mask for the none of the board LEDs. */
#define LEDS_NO_LEDS 0
/* Inline Functions: */

@ -42,7 +42,7 @@
#include "MissileLauncher.h"
/* Macros: */
/** Interface Class value for the Human Interface Device class */
/** Interface Class value for the Human Interface Device class. */
#define HID_CLASS 0x03
/* Enums: */

@ -54,10 +54,10 @@
#include "ConfigDescriptor.h"
/* Macros: */
/** Pipe number for the HID data IN pipe */
/** Pipe number for the HID data IN pipe. */
#define HID_DATA_IN_PIPE 1
/** Pipe number for the HID data OUT pipe */
/** Pipe number for the HID data OUT pipe. */
#define HID_DATA_OUT_PIPE 2
/** HID Class specific request to send a HID report to the device. */
@ -75,7 +75,7 @@
/** LED mask for the library LED driver, to indicate that an error has occurred in the USB interface. */
#define LEDMASK_USB_ERROR (LEDS_LED1 | LEDS_LED3)
/** Size of the Launcher report command buffer */
/** Size of the Launcher report command buffer. */
#define LAUNCHER_CMD_BUFFER_SIZE 64
/* Function Prototypes: */

@ -77,7 +77,7 @@
/** Filename for the log data when written to the dataflash FAT filesystem. */
#define LOG_FILENAME "TEMPLOG.txt"
/** Data log interval between samples, in tens of milliseconds */
/** Data log interval between samples, in tens of milliseconds. */
#define LOG_INTERVAL_10MS 1000
/* Type Defines: */

@ -44,76 +44,76 @@
#include "../Webserver.h"
/* Macros: */
/** UDP listen port for a BOOTP server */
/** UDP listen port for a BOOTP server. */
#define DHCPC_SERVER_PORT 67
/** UDP listen port for a BOOTP client */
/** UDP listen port for a BOOTP client. */
#define DHCPC_CLIENT_PORT 68
/** BOOTP message type for a BOOTP REQUEST message */
/** BOOTP message type for a BOOTP REQUEST message. */
#define DHCP_OP_BOOTREQUEST 0x01
/** BOOTP message type for a BOOTP REPLY message */
/** BOOTP message type for a BOOTP REPLY message. */
#define DHCP_OP_BOOTREPLY 0x02
/** BOOTP flag for a BOOTP broadcast message */
/** BOOTP flag for a BOOTP broadcast message. */
#define BOOTP_BROADCAST 0x8000
/** Magic DHCP cookie for a BOOTP message to identify it as a DHCP message */
/** Magic DHCP cookie for a BOOTP message to identify it as a DHCP message. */
#define DHCP_MAGIC_COOKIE 0x63538263
/** Unique transaction ID used to identify DHCP responses to the client */
/** Unique transaction ID used to identify DHCP responses to the client. */
#define DHCP_TRANSACTION_ID 0x13245466
/** DHCP message type for a DISCOVER message */
/** DHCP message type for a DISCOVER message. */
#define DHCP_DISCOVER 1
/** DHCP message type for an OFFER message */
/** DHCP message type for an OFFER message. */
#define DHCP_OFFER 2
/** DHCP message type for a REQUEST message */
/** DHCP message type for a REQUEST message. */
#define DHCP_REQUEST 3
/** DHCP message type for a DECLINE message */
/** DHCP message type for a DECLINE message. */
#define DHCP_DECLINE 4
/** DHCP message type for an ACK message */
/** DHCP message type for an ACK message. */
#define DHCP_ACK 5
/** DHCP message type for a NAK message */
/** DHCP message type for a NAK message. */
#define DHCP_NAK 6
/** DHCP message type for a RELEASE message */
/** DHCP message type for a RELEASE message. */
#define DHCP_RELEASE 7
/** DHCP medium type for standard Ethernet */
/** DHCP medium type for standard Ethernet. */
#define DHCP_HTYPE_ETHERNET 1
/** DHCP message option for the network subnet mask */
/** DHCP message option for the network subnet mask. */
#define DHCP_OPTION_SUBNET_MASK 1
/** DHCP message option for the network gateway IP */
/** DHCP message option for the network gateway IP. */
#define DHCP_OPTION_ROUTER 3
/** DHCP message option for the network DNS server */
/** DHCP message option for the network DNS server. */
#define DHCP_OPTION_DNS_SERVER 6
/** DHCP message option for the requested client IP address */
/** DHCP message option for the requested client IP address. */
#define DHCP_OPTION_REQ_IPADDR 50
/** DHCP message option for the IP address lease time */
/** DHCP message option for the IP address lease time. */
#define DHCP_OPTION_LEASE_TIME 51
/** DHCP message option for the DHCP message type */
/** DHCP message option for the DHCP message type. */
#define DHCP_OPTION_MSG_TYPE 53
/** DHCP message option for the DHCP server IP */
/** DHCP message option for the DHCP server IP. */
#define DHCP_OPTION_SERVER_ID 54
/** DHCP message option for the list of required options from the server */
/** DHCP message option for the list of required options from the server. */
#define DHCP_OPTION_REQ_LIST 55
/** DHCP message option for the options list terminator */
/** DHCP message option for the options list terminator. */
#define DHCP_OPTION_END 255
/* Type Defines: */
@ -141,7 +141,7 @@
uint32_t Cookie; /**< Magic BOOTP protocol cookie to indicate a valid packet */
uint8_t Options[]; /** DHCP message options */
uint8_t Options[]; /**< DHCP message options */
} DHCP_Header_t;
/* Enums: */

@ -65,7 +65,7 @@
} MIME_Type_t;
/* Macros: */
/** TCP listen port for incoming HTTP traffic */
/** TCP listen port for incoming HTTP traffic. */
#define HTTP_SERVER_PORT 80
/* Function Prototypes: */

@ -44,7 +44,7 @@
#include <uip.h>
/* Macros: */
/** TCP listen port for incoming TELNET traffic */
/** TCP listen port for incoming TELNET traffic. */
#define TELNET_SERVER_PORT 23
/* Enums: */

@ -68,10 +68,10 @@
/** LED mask for the library LED driver, to indicate that the USB interface is busy. */
#define LEDMASK_USB_BUSY (LEDS_LED1 | LEDS_LED3 | LEDS_LED4)
/** LED mask for the uIP stack idling with no IP configuration */
/** LED mask for the uIP stack idling with no IP configuration. */
#define LEDMASK_UIP_READY_NOCONFIG LEDS_LED3
/** LED mask for the uIP stack idling with a valid IP configuration */
/** LED mask for the uIP stack idling with a valid IP configuration. */
#define LEDMASK_UIP_READY_CONFIG LEDS_LED4
/* Function Prototypes: */

@ -41,10 +41,10 @@
#include <stdbool.h>
/* Defines: */
/** Size of each ring buffer, in bytes */
/** Size of each ring buffer, in bytes. */
#define BUFFER_SIZE 128
/** Type of data to store into the buffer */
/** Type of data to store into the buffer. */
#define RingBuff_Data_t uint8_t
/* Type Defines: */

Loading…
Cancel
Save