Skip to content

Commit

Permalink
Use priming in speedtests
Browse files Browse the repository at this point in the history
  • Loading branch information
kauwua committed Jun 6, 2024
1 parent 42cf9f0 commit ab4cc34
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
12 changes: 12 additions & 0 deletions test/speedtest_fullspeed.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,18 @@ def handle_data_requested(self, ep):
print(f"sending {len(self.random_buffer)} bytes on {ep}")
self.send(ep.number, self.random_buffer)

def handle_buffer_empty(self, endpoint: USBEndpoint):
""" Handler called when a given endpoint first has an empty buffer.
Often, an empty buffer indicates an opportunity to queue data
for sending ('prime an endpoint'), but doesn't necessarily mean
that the host is planning on reading the data.
This function is called only once per buffer.
"""
print(f"priming {len(self.random_buffer)} bytes on {endpoint}")
self.send(endpoint.number, self.random_buffer)


if __name__ == "__main__":
default_main(USBSpeedtest)
11 changes: 11 additions & 0 deletions test/speedtest_highspeed.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,17 @@ def handle_data_requested(self, ep):
print(f"sending {len(self.random_buffer)} bytes on {ep}")
self.send(ep.number, self.random_buffer)

def handle_buffer_empty(self, endpoint: USBEndpoint):
""" Handler called when a given endpoint first has an empty buffer.
Often, an empty buffer indicates an opportunity to queue data
for sending ('prime an endpoint'), but doesn't necessarily mean
that the host is planning on reading the data.
This function is called only once per buffer.
"""
print(f"priming {len(self.random_buffer)} bytes on {endpoint}")
self.send(endpoint.number, self.random_buffer)

if __name__ == "__main__":
default_main(USBSpeedtest)

0 comments on commit ab4cc34

Please sign in to comment.