Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
cbbd3d74
Commit
cbbd3d74
authored
Jul 26, 2009
by
Dean Camera
Browse files
Added new Pipe_BoundEndpointNumber() and Pipe_IsEndpointBound() functions.
parent
200821fe
Changes
4
Hide whitespace changes
Inline
Side-by-side
LUFA/Drivers/USB/LowLevel/Host.c
View file @
cbbd3d74
...
...
@@ -187,7 +187,6 @@ void USB_Host_ProcessNextHostState(void)
EVENT_USB_DeviceEnumerationComplete
();
USB_HostState
=
HOST_STATE_Addressed
;
break
;
}
...
...
LUFA/Drivers/USB/LowLevel/Pipe.c
View file @
cbbd3d74
...
...
@@ -70,6 +70,22 @@ void Pipe_ClearPipes(void)
}
}
bool
Pipe_IsEndpointBound
(
uint8_t
EndpointAddress
)
{
uint8_t
PrevPipeNumber
=
Pipe_GetPipeNumber
();
for
(
uint8_t
PNum
=
0
;
PNum
<
PIPE_TOTAL_PIPES
;
PNum
++
)
{
Pipe_SelectPipe
(
PNum
);
if
(
Pipe_IsConfigured
()
&&
(
Pipe_BoundEndpointAddress
()
==
EndpointAddress
))
return
true
;
}
Pipe_SelectPipe
(
PrevPipeNumber
);
return
false
;
}
uint8_t
Pipe_WaitUntilReady
(
void
)
{
#if (USB_STREAM_TIMEOUT_MS < 0xFF)
...
...
LUFA/Drivers/USB/LowLevel/Pipe.h
View file @
cbbd3d74
...
...
@@ -257,6 +257,13 @@
*/
static
inline
bool
Pipe_IsConfigured
(
void
);
/** Retrieves the endpoint number of the endpoint within the attached device that the currently selected
* pipe is bound to.
*
* \return Endpoint number the currently selected pipe is bound to
*/
static
inline
uint8_t
Pipe_BoundEndpointNumber
(
void
);
/** Sets the period between interrupts for an INTERRUPT type pipe to a specified number of milliseconds.
*
* \param[in] Milliseconds Number of milliseconds between each pipe poll
...
...
@@ -427,6 +434,8 @@
#define Pipe_IsConfigured() ((UPSTAX & (1 << CFGOK)) ? true : false)
#define Pipe_BoundEndpointNumber() ((UPCFG0X >> PEPNUM0) & PIPE_EPNUM_MASK)
#define Pipe_SetInterruptPeriod(ms) MACROS{ UPCFG2X = ms; }MACROE
#define Pipe_GetPipeInterrupts() UPINT
...
...
@@ -764,14 +773,23 @@
bool
Pipe_ConfigurePipe
(
const
uint8_t
Number
,
const
uint8_t
Type
,
const
uint8_t
Token
,
const
uint8_t
EndpointNumber
,
const
uint16_t
Size
,
const
uint8_t
Banks
);
/** Spinloops until the currently selected non-control pipe is ready for the next packed of data
*
to be read
or written to it.
/** Spinloops until the currently selected non-control pipe is ready for the next packed of data
to be read
* or written to it
, aborting in the case of an error condition (such as a timeout or device disconnect)
.
*
* \ingroup Group_PipeRW
*
* \return A value from the Pipe_WaitUntilReady_ErrorCodes_t enum.
*/
uint8_t
Pipe_WaitUntilReady
(
void
);
uint8_t
Pipe_WaitUntilReady
(
void
);
/** Determines if a pipe has been bound to the given device endpoint address. If a pipe which is bound to the given
* endpoint is found, it is automatically selected.
*
* \param EndpointAddress Address of the endpoint within the attached device to check
*
* \return Boolean true if a pipe bound to the given endpoint address is found, false otherwise
*/
bool
Pipe_IsEndpointBound
(
uint8_t
EndpointAddress
);
/** Reads and discards the given number of bytes from the pipe, discarding fully read packets from the host
* as needed. The last packet is not automatically discarded once the remaining bytes has been read; the
...
...
LUFA/ManPages/ChangeLog.txt
View file @
cbbd3d74
...
...
@@ -33,6 +33,7 @@
* - Added new Endpoint_ClearStatusStage() convenience function to assist with the status stages of control transfers
* - Added new Benito Arduino Programmer project
* - Added new LEDs_ToggleLEDs() function to the LEDs driver
* - Added new Pipe_BoundEndpointNumber() and Pipe_IsEndpointBound() functions
*
* <b>Changed:</b>
* - Deprecated psuedo-scheduler and removed dynamic memory allocator from the library (first no longer needed and second unused)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment