add USB diagrams

This commit is contained in:
Jorge Aparicio 2020-07-16 11:21:55 +02:00
parent 6eb4ed8fa6
commit 138cb1909f
11 changed files with 2031 additions and 4 deletions

View file

@ -1,9 +1,13 @@
# Control Transfers
<p align="center">
<img src="/usb-control.svg" alt="TODO">
<p>
Before we continue we need to discuss how data transfers work under the USB protocol.
The control pipe handles *control transfers*, a special kind of data transfer used by the host to issue *requests*. A control transfer is a data transfer that occurs in three stages: a SETUP stage, an optional DATA stage and a STATUS stage.
During the SETUP stage the host sends 8 bytes of data that identify the control request. Depending on the issued request there may be a DATA stage or not; during the DATA stage data is transferred either from the device to the host or the other way around. During the STATUS stage the device acknowledges, or not, the whole control request.
For detailed information about control transfers check section 5.5, Control Transfers, of the [USB 2.0 specification][usb20].
For detailed information about control transfers check section 5.5, Control Transfers, of the [USB 2.0 specification][usb20].

View file

@ -1,5 +1,9 @@
# Device Descriptor
<p align="center">
<img src="/usb-device.svg" alt="TODO">
<p>
After receiving a GET_DESCRIPTOR request during the SETUP stage the device needs to respond with a *descriptor* during the DATA stage.
A descriptor is a binary encoded data structure sent by the device to the host. The device descriptor, in particular, contains information about the device, like its product and vendor identifiers and how many *configurations* it has. The format of the device descriptor is specified in section 9.6.1, Device, of the USB specification.

View file

@ -8,6 +8,10 @@ We have covered configurations and endpoints but what is an *interface*?
## Interface
<p align="center">
<img src="/usb-interface.svg" alt="TODO">
<p>
An interface is closest to a USB device's function. For example, a USB mouse may expose a single HID (Human Interface Device) interface to report user input to the host. USB devices can expose multiple interfaces within a configuration. For example, the nRF52840 Dongle could expose both a CDC ACM interface (AKA virtual serial port) *and* a HID interface; the first interface could be used for (`log::info!`-style) logs; and the second one could provide a RPC (Remote Procedure Call) interface to the host for controlling the nRF52840's radio.
An interface is made up of one or more *endpoints*. To give an example, a HID interface can use two (interrupt) endpoints, one IN and one OUT, for bidirectional communication with the host. A single endpoint cannot be used by more than one interface with the exception of the special "endpoint 0", which can be (and usually is) shared by all interfaces.
@ -16,6 +20,10 @@ For detailed information about interfaces check section 9.6.5, Interface, of the
## Configuration descriptor
<p align="center">
<img src="/usb-configuration.svg" alt="TODO">
<p>
The configuration descriptor describes one of the device configurations to the host. The descriptor contains the following information about a particular configuration:
- the total length of the configuration: this is the number of bytes required to transfer this configuration descriptor and the interface and endpoint descriptors associated to it
@ -29,6 +37,10 @@ The configuration descriptor describes one of the device configurations to the h
## Interface descriptor
<p align="center">
<img src="/usb-interface.svg" alt="TODO">
<p>
The interface descriptor describes one of the device interfaces to the host. The descriptor contains the following information about a particular interface:
- its interface number -- this is a zero-based index
@ -41,16 +53,20 @@ The number of endpoints can be zero and endpoint zero must not be accounted when
## Endpoint descriptor
<p align="center">
<img src="/usb-endpoint.svg" alt="TODO">
<p>
We will not need to deal with endpoint descriptors in this workshop but they are specified in section 9.6.6, Endpoint, of the USB specification.
## Response
So how should we respond to the host? As our only goal is to be enumerated we'll respond with the minimum amount of information possible.
**First, check the request:**
**First, check the request:**
Configuration descriptors are requested by *index*, not by their configuration value. Since we reported a single configuration in our device descriptor the index in the request must be zero. Any other value should be rejected by stalling the endpoint (see section [Dealing with unknown requests: Stalling the endpoint](./unknown-requests.md#dealing-with-unknown-requests-stalling-the-endpoint) for more information).
**Next, create and send a response:**
**Next, create and send a response:**
The response should consist of the configuration descriptor, followed by interface descriptors and then by (optional) endpoint descriptors. We'll include a minimal single interface descriptor in the response. Since endpoints are optional we will include none.

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="115mm"
height="99mm"
viewBox="0 0 115 99.000002"
version="1.1"
id="svg8"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="usb-endpoint.svg"
inkscape:export-filename="/home/japaric/Documents/usb.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.7732613"
inkscape:cx="253.51713"
inkscape:cy="200.55919"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1376"
inkscape:window-x="2560"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-3.7252903e-7,-0.45692272)">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.213545;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833"
width="114.78645"
height="94.786453"
x="0.10677287"
y="4.5636954"
rx="3.8352282" />
<rect
rx="3.750793"
y="11.564402"
x="5.1074805"
height="79.785042"
width="104.78503"
id="rect833-9"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stroke-dashoffset:0" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
x="10.122406"
y="10.173261"
id="text879"><tspan
sodipodi:role="line"
id="tspan877"
x="10.122406"
y="10.173261"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;stroke-width:0.264583;">configuration 1</tspan></text>
<text
id="text879-1"
y="3.6732612"
x="49.851894"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="3.6732612"
x="49.851894"
id="tspan877-2"
sodipodi:role="line">device</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.241303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7"
width="94.786263"
height="35.758698"
x="10.10687"
y="44.563793"
rx="3.3928852" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="43.435753"
y="43.434914"
id="text875"><tspan
sodipodi:role="line"
id="tspan873"
x="43.435753"
y="43.434914"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">interface 0</tspan></text>
<rect
rx="3.3932912"
y="18.558132"
x="10.10121"
height="15.757795"
width="94.797585"
id="rect833-9-7-0"
style="fill:#ffffff;stroke:#000000;stroke-width:0.242205;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text875-9"
y="16.691795"
x="61.47612"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="16.691795"
x="61.47612"
id="tspan873-3"
sodipodi:role="line">control endpoint</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.769992,94.583805 3.32698,-6.896569"
id="path966"
sodipodi:nodetypes="cc" />
<path
id="path966-6"
d="m 14.027673,94.828825 c 3.147494,-6.890042 3.147494,-6.890042 3.147494,-6.890042"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text879-0"
y="95.663483"
x="16.506218"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="95.663483"
x="16.506218"
id="tspan877-6"
sodipodi:role="line">bNumConfigurations=1</tspan></text>
<path
sodipodi:nodetypes="cc"
id="path966-2"
d="m 54.690681,83.575497 3.32698,-6.896578"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 57.948362,83.820517 c 3.147494,-6.890051 3.147494,-6.890051 3.147494,-6.890051"
id="path966-6-6" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
x="61.276436"
y="84.900742"
id="text879-0-1"><tspan
sodipodi:role="line"
id="tspan877-6-8"
x="61.276436"
y="84.900742"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000;">bNumInterfaces=1</tspan></text>
<text
id="text879-0-1-2"
y="63.611027"
x="38.344597"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="63.611027"
x="38.344597"
id="tspan877-6-8-0"
sodipodi:role="line">bNumEndpoints=3</tspan></text>
<rect
rx="1.4224799"
y="21.581923"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3"
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="18.444866"
y="27.619555"
id="text837"><tspan
sodipodi:role="line"
id="tspan835"
x="18.444866"
y="27.619555"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';fill:#0000ff;stroke-width:0.264583">endpoint 0 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-6"
width="39.739494"
height="9.7394924"
x="60.125"
y="21.581923"
rx="1.4224799" />
<text
id="text837-75"
y="27.619555"
x="62.075443"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
id="tspan1004"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';fill:#0000ff;stroke-width:0.264583"
y="27.619555"
x="62.075443"
sodipodi:role="line">endpoint 0 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-5"
width="39.739494"
height="9.7394924"
x="15.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-6"
y="54.619556"
x="18.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';fill:#0000ff;stroke-width:0.264583"
y="54.619556"
x="18.444866"
id="tspan835-2"
sodipodi:role="line">endpoint 1 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-9"
width="39.739494"
height="9.7394924"
x="15.125"
y="66.581924"
rx="1.4224799" />
<text
id="text837-1"
y="72.61956"
x="17.075441"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';fill:#0000ff;stroke-width:0.264583"
y="72.61956"
x="17.075441"
id="tspan835-27"
sodipodi:role="line">endpoint 2 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-0"
width="39.739494"
height="9.7394924"
x="60.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-9"
y="54.619556"
x="63.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';fill:#0000ff;stroke-width:0.264583"
y="54.619556"
x="63.444866"
id="tspan835-3"
sodipodi:role="line">endpoint 2 IN</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="115mm"
height="99mm"
viewBox="0 0 115 99.000002"
version="1.1"
id="svg8"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="usb-configuration.svg"
inkscape:export-filename="/home/japaric/Documents/usb.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.7732613"
inkscape:cx="253.51713"
inkscape:cy="200.55919"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1376"
inkscape:window-x="2560"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-3.7252903e-7,-0.45692272)">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.213545;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833"
width="114.78645"
height="94.786453"
x="0.10677287"
y="4.5636954"
rx="3.8352282" />
<rect
rx="3.750793"
y="11.564402"
x="5.1074805"
height="79.785042"
width="104.78503"
id="rect833-9"
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.50000001;stroke-miterlimit:4;stroke-dasharray:3.00000008,3.00000008;stroke-opacity:1;stroke-dashoffset:0" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="10.122406"
y="10.173261"
id="text879"><tspan
sodipodi:role="line"
id="tspan877"
x="10.122406"
y="10.173261"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';fill:#0000ff;stroke-width:0.264583">configuration 1</tspan></text>
<text
id="text879-1"
y="3.6732612"
x="49.851894"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="3.6732612"
x="49.851894"
id="tspan877-2"
sodipodi:role="line">device</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.241303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7"
width="94.786263"
height="35.758698"
x="10.10687"
y="44.563793"
rx="3.3928852" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="43.435753"
y="43.434914"
id="text875"><tspan
sodipodi:role="line"
id="tspan873"
x="43.435753"
y="43.434914"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">interface 0</tspan></text>
<rect
rx="3.3932912"
y="18.558132"
x="10.10121"
height="15.757795"
width="94.797585"
id="rect833-9-7-0"
style="fill:#ffffff;stroke:#000000;stroke-width:0.242205;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text875-9"
y="16.691795"
x="61.47612"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="16.691795"
x="61.47612"
id="tspan873-3"
sodipodi:role="line">control endpoint</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.769992,94.583805 3.32698,-6.896569"
id="path966"
sodipodi:nodetypes="cc" />
<path
id="path966-6"
d="m 14.027673,94.828825 c 3.147494,-6.890042 3.147494,-6.890042 3.147494,-6.890042"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text879-0"
y="95.663483"
x="16.506218"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="95.663483"
x="16.506218"
id="tspan877-6"
sodipodi:role="line">bNumConfigurations=1</tspan></text>
<path
sodipodi:nodetypes="cc"
id="path966-2"
d="m 54.690681,83.575497 3.32698,-6.896578"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 57.948362,83.820517 c 3.147494,-6.890051 3.147494,-6.890051 3.147494,-6.890051"
id="path966-6-6" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Italic';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:italic;font-stretch:normal;font-variant:normal;fill:#0000ff;"
x="61.276436"
y="84.900742"
id="text879-0-1"><tspan
sodipodi:role="line"
id="tspan877-6-8"
x="61.276436"
y="84.900742"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';stroke-width:0.264583;fill:#0000ff;">bNumInterfaces=1</tspan></text>
<text
id="text879-0-1-2"
y="63.611027"
x="38.344597"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="63.611027"
x="38.344597"
id="tspan877-6-8-0"
sodipodi:role="line">bNumEndpoints=3</tspan></text>
<rect
rx="1.4224799"
y="21.581923"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="18.444866"
y="27.619555"
id="text837"><tspan
sodipodi:role="line"
id="tspan835"
x="18.444866"
y="27.619555"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 0 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-6"
width="39.739494"
height="9.7394924"
x="60.125"
y="21.581923"
rx="1.4224799" />
<text
id="text837-75"
y="27.619555"
x="62.075443"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
id="tspan1004"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="27.619555"
x="62.075443"
sodipodi:role="line">endpoint 0 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-5"
width="39.739494"
height="9.7394924"
x="15.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-6"
y="54.619556"
x="18.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="54.619556"
x="18.444866"
id="tspan835-2"
sodipodi:role="line">endpoint 1 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-9"
width="39.739494"
height="9.7394924"
x="15.125"
y="66.581924"
rx="1.4224799" />
<text
id="text837-1"
y="72.61956"
x="17.075441"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="72.61956"
x="17.075441"
id="tspan835-27"
sodipodi:role="line">endpoint 2 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-0"
width="39.739494"
height="9.7394924"
x="60.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-9"
y="54.619556"
x="63.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="54.619556"
x="63.444866"
id="tspan835-3"
sodipodi:role="line">endpoint 2 IN</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="115mm"
height="99mm"
viewBox="0 0 115 99.000002"
version="1.1"
id="svg8"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="usb-control.svg"
inkscape:export-filename="/home/japaric/Documents/usb.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.7732613"
inkscape:cx="253.51713"
inkscape:cy="200.55919"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1376"
inkscape:window-x="2560"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-3.7252903e-7,-0.45692272)">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.213545;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833"
width="114.78645"
height="94.786453"
x="0.10677287"
y="4.5636954"
rx="3.8352282" />
<rect
rx="3.750793"
y="11.564402"
x="5.1074805"
height="79.785042"
width="104.78503"
id="rect833-9"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stroke-dashoffset:0" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
x="10.122406"
y="10.173261"
id="text879"><tspan
sodipodi:role="line"
id="tspan877"
x="10.122406"
y="10.173261"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;stroke-width:0.264583;">configuration 1</tspan></text>
<text
id="text879-1"
y="3.6732612"
x="49.851894"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="3.6732612"
x="49.851894"
id="tspan877-2"
sodipodi:role="line">device</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.241303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7"
width="94.786263"
height="35.758698"
x="10.10687"
y="44.563793"
rx="3.3928852" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="43.435753"
y="43.434914"
id="text875"><tspan
sodipodi:role="line"
id="tspan873"
x="43.435753"
y="43.434914"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">interface 0</tspan></text>
<rect
rx="3.3932912"
y="18.558132"
x="10.10121"
height="15.757795"
width="94.797585"
id="rect833-9-7-0"
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-opacity:1;stroke-dashoffset:0" />
<text
id="text875-9"
y="16.691795"
x="61.47612"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';letter-spacing:0px;word-spacing:0px;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none"
xml:space="preserve"><tspan
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';fill:#0000ff;stroke-width:0.265;stroke-miterlimit:4;stroke-dasharray:none"
y="16.691795"
x="61.47612"
id="tspan873-3"
sodipodi:role="line">control endpoint</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.769992,94.583805 3.32698,-6.896569"
id="path966"
sodipodi:nodetypes="cc" />
<path
id="path966-6"
d="m 14.027673,94.828825 c 3.147494,-6.890042 3.147494,-6.890042 3.147494,-6.890042"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text879-0"
y="95.663483"
x="16.506218"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="95.663483"
x="16.506218"
id="tspan877-6"
sodipodi:role="line">bNumConfigurations=1</tspan></text>
<path
sodipodi:nodetypes="cc"
id="path966-2"
d="m 54.690681,83.575497 3.32698,-6.896578"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 57.948362,83.820517 c 3.147494,-6.890051 3.147494,-6.890051 3.147494,-6.890051"
id="path966-6-6" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
x="61.276436"
y="84.900742"
id="text879-0-1"><tspan
sodipodi:role="line"
id="tspan877-6-8"
x="61.276436"
y="84.900742"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000;">bNumInterfaces=1</tspan></text>
<text
id="text879-0-1-2"
y="63.611027"
x="38.344597"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="63.611027"
x="38.344597"
id="tspan877-6-8-0"
sodipodi:role="line">bNumEndpoints=3</tspan></text>
<rect
rx="1.4224799"
y="21.581923"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3"
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="18.444866"
y="27.619555"
id="text837"><tspan
sodipodi:role="line"
id="tspan835"
x="18.444866"
y="27.619555"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';fill:#0000ff;stroke-width:0.264583">endpoint 0 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-6"
width="39.739494"
height="9.7394924"
x="60.125"
y="21.581923"
rx="1.4224799" />
<text
id="text837-75"
y="27.619555"
x="62.075443"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
id="tspan1004"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';fill:#0000ff;stroke-width:0.264583"
y="27.619555"
x="62.075443"
sodipodi:role="line">endpoint 0 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-5"
width="39.739494"
height="9.7394924"
x="15.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-6"
y="54.619556"
x="18.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="54.619556"
x="18.444866"
id="tspan835-2"
sodipodi:role="line">endpoint 1 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-9"
width="39.739494"
height="9.7394924"
x="15.125"
y="66.581924"
rx="1.4224799" />
<text
id="text837-1"
y="72.61956"
x="17.075441"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="72.61956"
x="17.075441"
id="tspan835-27"
sodipodi:role="line">endpoint 2 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-0"
width="39.739494"
height="9.7394924"
x="60.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-9"
y="54.619556"
x="63.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="54.619556"
x="63.444866"
id="tspan835-3"
sodipodi:role="line">endpoint 2 IN</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:export-filename="/home/japaric/Documents/usb.png"
sodipodi:docname="usb-device.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
id="svg8"
version="1.1"
viewBox="0 0 115 99.000002"
height="99mm"
width="115mm">
<defs
id="defs2" />
<sodipodi:namedview
fit-margin-bottom="0"
fit-margin-right="0"
fit-margin-left="0"
fit-margin-top="0"
inkscape:window-maximized="1"
inkscape:window-y="27"
inkscape:window-x="2560"
inkscape:window-height="1376"
inkscape:window-width="2560"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="200.55919"
inkscape:cx="253.51713"
inkscape:zoom="1.7732613"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-3.7252903e-7,-0.45692272)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<rect
rx="3.8352282"
y="4.5636954"
x="0.10677287"
height="94.786453"
width="114.78645"
id="rect833"
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.4;stroke-miterlimit:4;stroke-dasharray:2.39999999,2.39999999;stroke-opacity:1;stroke-dashoffset:0" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.214961;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9"
width="104.78503"
height="79.785042"
x="5.1074805"
y="11.564402"
rx="3.750793" />
<text
id="text879"
y="10.173261"
x="10.122406"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="10.173261"
x="10.122406"
id="tspan877"
sodipodi:role="line">configuration 1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;fill:#0000ff;"
x="49.851894"
y="3.6732612"
id="text879-1"><tspan
sodipodi:role="line"
id="tspan877-2"
x="49.851894"
y="3.6732612"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';stroke-width:0.264583;fill:#0000ff;">device</tspan></text>
<rect
rx="3.3928852"
y="44.563793"
x="10.10687"
height="35.758698"
width="94.786263"
id="rect833-9-7"
style="fill:#ffffff;stroke:#000000;stroke-width:0.241303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text875"
y="43.434914"
x="43.435753"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="43.434914"
x="43.435753"
id="tspan873"
sodipodi:role="line">interface 0</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.242205;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0"
width="94.797585"
height="15.757795"
x="10.10121"
y="18.558132"
rx="3.3932912" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="61.47612"
y="16.691795"
id="text875-9"><tspan
sodipodi:role="line"
id="tspan873-3"
x="61.47612"
y="16.691795"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">control endpoint</tspan></text>
<path
sodipodi:nodetypes="cc"
id="path966"
d="m 10.769992,94.583805 3.32698,-6.896569"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 14.027673,94.828825 c 3.147494,-6.890042 3.147494,-6.890042 3.147494,-6.890042"
id="path966-6" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Italic';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:italic;font-stretch:normal;font-variant:normal;fill:#0000ff;"
x="16.506218"
y="95.663483"
id="text879-0"><tspan
sodipodi:role="line"
id="tspan877-6"
x="16.506218"
y="95.663483"
style="font-style:italic;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Italic';stroke-width:0.264583;fill:#0000ff;">bNumConfigurations=1</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 54.690681,83.575497 3.32698,-6.896578"
id="path966-2"
sodipodi:nodetypes="cc" />
<path
id="path966-6-6"
d="m 57.948362,83.820517 c 3.147494,-6.890051 3.147494,-6.890051 3.147494,-6.890051"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text879-0-1"
y="84.900742"
x="61.276436"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="84.900742"
x="61.276436"
id="tspan877-6-8"
sodipodi:role="line">bNumInterfaces=1</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="38.344597"
y="63.611027"
id="text879-0-1-2"><tspan
sodipodi:role="line"
id="tspan877-6-8-0"
x="38.344597"
y="63.611027"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">bNumEndpoints=3</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3"
width="39.739494"
height="9.7394924"
x="15.125"
y="21.581923"
rx="1.4224799" />
<text
id="text837"
y="27.619555"
x="18.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="27.619555"
x="18.444866"
id="tspan835"
sodipodi:role="line">endpoint 0 IN</tspan></text>
<rect
rx="1.4224799"
y="21.581923"
x="60.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3-6"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="62.075443"
y="27.619555"
id="text837-75"><tspan
sodipodi:role="line"
x="62.075443"
y="27.619555"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
id="tspan1004">endpoint 0 OUT</tspan></text>
<rect
rx="1.4224799"
y="48.581924"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3-5"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="18.444866"
y="54.619556"
id="text837-6"><tspan
sodipodi:role="line"
id="tspan835-2"
x="18.444866"
y="54.619556"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 1 IN</tspan></text>
<rect
rx="1.4224799"
y="66.581924"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3-9"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="17.075441"
y="72.61956"
id="text837-1"><tspan
sodipodi:role="line"
id="tspan835-27"
x="17.075441"
y="72.61956"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 2 OUT</tspan></text>
<rect
rx="1.4224799"
y="48.581924"
x="60.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3-0"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="63.444866"
y="54.619556"
id="text837-9"><tspan
sodipodi:role="line"
id="tspan835-3"
x="63.444866"
y="54.619556"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 2 IN</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="115mm"
height="99mm"
viewBox="0 0 115 99.000002"
version="1.1"
id="svg8"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="usb-endpoint.svg"
inkscape:export-filename="/home/japaric/Documents/usb.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.7732613"
inkscape:cx="253.51713"
inkscape:cy="200.55919"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1376"
inkscape:window-x="2560"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-3.7252903e-7,-0.45692272)">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.213545;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833"
width="114.78645"
height="94.786453"
x="0.10677287"
y="4.5636954"
rx="3.8352282" />
<rect
rx="3.750793"
y="11.564402"
x="5.1074805"
height="79.785042"
width="104.78503"
id="rect833-9"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stroke-dashoffset:0" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
x="10.122406"
y="10.173261"
id="text879"><tspan
sodipodi:role="line"
id="tspan877"
x="10.122406"
y="10.173261"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;stroke-width:0.264583;">configuration 1</tspan></text>
<text
id="text879-1"
y="3.6732612"
x="49.851894"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="3.6732612"
x="49.851894"
id="tspan877-2"
sodipodi:role="line">device</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.241303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7"
width="94.786263"
height="35.758698"
x="10.10687"
y="44.563793"
rx="3.3928852" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="43.435753"
y="43.434914"
id="text875"><tspan
sodipodi:role="line"
id="tspan873"
x="43.435753"
y="43.434914"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">interface 0</tspan></text>
<rect
rx="3.3932912"
y="18.558132"
x="10.10121"
height="15.757795"
width="94.797585"
id="rect833-9-7-0"
style="fill:#ffffff;stroke:#000000;stroke-width:0.242205;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text875-9"
y="16.691795"
x="61.47612"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="16.691795"
x="61.47612"
id="tspan873-3"
sodipodi:role="line">control endpoint</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.769992,94.583805 3.32698,-6.896569"
id="path966"
sodipodi:nodetypes="cc" />
<path
id="path966-6"
d="m 14.027673,94.828825 c 3.147494,-6.890042 3.147494,-6.890042 3.147494,-6.890042"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text879-0"
y="95.663483"
x="16.506218"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="95.663483"
x="16.506218"
id="tspan877-6"
sodipodi:role="line">bNumConfigurations=1</tspan></text>
<path
sodipodi:nodetypes="cc"
id="path966-2"
d="m 54.690681,83.575497 3.32698,-6.896578"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 57.948362,83.820517 c 3.147494,-6.890051 3.147494,-6.890051 3.147494,-6.890051"
id="path966-6-6" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
x="61.276436"
y="84.900742"
id="text879-0-1"><tspan
sodipodi:role="line"
id="tspan877-6-8"
x="61.276436"
y="84.900742"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000;">bNumInterfaces=1</tspan></text>
<text
id="text879-0-1-2"
y="63.611027"
x="38.344597"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="63.611027"
x="38.344597"
id="tspan877-6-8-0"
sodipodi:role="line">bNumEndpoints=3</tspan></text>
<rect
rx="1.4224799"
y="21.581923"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="18.444866"
y="27.619555"
id="text837"><tspan
sodipodi:role="line"
id="tspan835"
x="18.444866"
y="27.619555"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 0 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-6"
width="39.739494"
height="9.7394924"
x="60.125"
y="21.581923"
rx="1.4224799" />
<text
id="text837-75"
y="27.619555"
x="62.075443"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
id="tspan1004"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="27.619555"
x="62.075443"
sodipodi:role="line">endpoint 0 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.50000001;stroke-miterlimit:4;stroke-dasharray:3.00000008,3.00000008;stroke-opacity:1;stroke-dashoffset:0"
id="rect833-9-7-0-7-3-5"
width="39.739494"
height="9.7394924"
x="15.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-6"
y="54.619556"
x="18.444866"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:bold;font-style:italic;font-stretch:normal;font-variant:normal;fill:#0000ff;"
xml:space="preserve"><tspan
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';stroke-width:0.264583;fill:#0000ff;"
y="54.619556"
x="18.444866"
id="tspan835-2"
sodipodi:role="line">endpoint 1 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:3,3;stroke-opacity:1;stroke-dashoffset:0"
id="rect833-9-7-0-7-3-9"
width="39.739494"
height="9.7394924"
x="15.125"
y="66.581924"
rx="1.4224799" />
<text
id="text837-1"
y="72.61956"
x="17.075441"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:bold;font-style:italic;font-stretch:normal;font-variant:normal;fill:#0000ff;"
xml:space="preserve"><tspan
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';stroke-width:0.264583;fill:#0000ff;"
y="72.61956"
x="17.075441"
id="tspan835-27"
sodipodi:role="line">endpoint 2 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.50000001;stroke-miterlimit:4;stroke-dasharray:3.00000008,3.00000008;stroke-opacity:1;stroke-dashoffset:0"
id="rect833-9-7-0-7-3-0"
width="39.739494"
height="9.7394924"
x="60.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-9"
y="54.619556"
x="63.444866"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:bold;font-style:italic;font-stretch:normal;font-variant:normal;fill:#0000ff;"
xml:space="preserve"><tspan
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';stroke-width:0.264583;fill:#0000ff;"
y="54.619556"
x="63.444866"
id="tspan835-3"
sodipodi:role="line">endpoint 2 IN</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,13 +1,21 @@
# USB Endpoints
<p align="center">
<img src="/usb-all-endpoints.svg" alt="TODO">
<p>
Under the USB protocol data transfers occur over *endpoints*.
Endpoints are similar to UDP or TCP ports in that they allow logical multiplexing of data over a single physical USB bus. USB endpoints, however, have directions: an endpoint can either be an IN endpoint or an OUT endpoint. The direction is always from the perspective of the host so at an IN endpoint data travels from the device to the host and at an OUT endpoint data travels from the host to the device.
Endpoints are identified by their address, a zero-based index, and direction. There are four types of endpoints: control endpoints, bulk endpoints, interrupt endpoints and isochronous endpoints. Each endpoint type has different properties: reliability, latency, etc. In this workshop we'll only need to deal with control endpoints.
<p align="center">
<img src="/usb-control.svg" alt="TODO">
<p>
All USB devices must use "endpoint 0" as the default control endpoint. "Endpoint 0" actually refers to two endpoints: endpoint 0 IN and endpoint 0 OUT. This endpoint pair is used to establish a *control pipe*, a bidirectional communication channel between the host and device where data is exchanged using a predefined format. The default control pipe over endpoint 0 is mandatory: it must always be present and must always be active.
For detailed information about endpoints check section 5.3.1, Device Endpoints, of the [USB 2.0 specification][usb20].
[usb20]: https://www.usb.org/document-library/usb-20-specification
[usb20]: https://www.usb.org/document-library/usb-20-specification

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="115mm"
height="99mm"
viewBox="0 0 115 99.000002"
version="1.1"
id="svg8"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
sodipodi:docname="usb-interface.svg"
inkscape:export-filename="/home/japaric/Documents/usb.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.7732613"
inkscape:cx="253.51713"
inkscape:cy="200.55919"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="2560"
inkscape:window-height="1376"
inkscape:window-x="2560"
inkscape:window-y="27"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-3.7252903e-7,-0.45692272)">
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.213545;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833"
width="114.78645"
height="94.786453"
x="0.10677287"
y="4.5636954"
rx="3.8352282" />
<rect
rx="3.750793"
y="11.564402"
x="5.1074805"
height="79.785042"
width="104.78503"
id="rect833-9"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stroke-dashoffset:0" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
x="10.122406"
y="10.173261"
id="text879"><tspan
sodipodi:role="line"
id="tspan877"
x="10.122406"
y="10.173261"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;stroke-width:0.264583;">configuration 1</tspan></text>
<text
id="text879-1"
y="3.6732612"
x="49.851894"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="3.6732612"
x="49.851894"
id="tspan877-2"
sodipodi:role="line">device</tspan></text>
<rect
style="fill:#ffffff;stroke:#0000ff;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:3, 3;stroke-opacity:1;stroke-dashoffset:0"
id="rect833-9-7"
width="94.786263"
height="35.758698"
x="10.10687"
y="44.563793"
rx="3.3928852" />
<text
xml:space="preserve"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';letter-spacing:0px;word-spacing:0px;fill:#0000ff;stroke-width:0.264583"
x="43.435753"
y="43.434914"
id="text875"><tspan
sodipodi:role="line"
id="tspan873"
x="43.435753"
y="43.434914"
style="font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:'monospace Bold Italic';fill:#0000ff;stroke-width:0.264583">interface 0 </tspan></text>
<rect
rx="3.3932912"
y="18.558132"
x="10.10121"
height="15.757795"
width="94.797585"
id="rect833-9-7-0"
style="fill:#ffffff;stroke:#000000;stroke-width:0.242205;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text875-9"
y="16.691795"
x="61.47612"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="16.691795"
x="61.47612"
id="tspan873-3"
sodipodi:role="line">control endpoint</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 10.769992,94.583805 3.32698,-6.896569"
id="path966"
sodipodi:nodetypes="cc" />
<path
id="path966-6"
d="m 14.027673,94.828825 c 3.147494,-6.890042 3.147494,-6.890042 3.147494,-6.890042"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text879-0"
y="95.663483"
x="16.506218"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="95.663483"
x="16.506218"
id="tspan877-6"
sodipodi:role="line">bNumConfigurations=1</tspan></text>
<path
sodipodi:nodetypes="cc"
id="path966-2"
d="m 54.690681,83.575497 3.32698,-6.896578"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 57.948362,83.820517 c 3.147494,-6.890051 3.147494,-6.890051 3.147494,-6.890051"
id="path966-6-6" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
x="61.276436"
y="84.900742"
id="text879-0-1"><tspan
sodipodi:role="line"
id="tspan877-6-8"
x="61.276436"
y="84.900742"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000;">bNumInterfaces=1</tspan></text>
<text
id="text879-0-1-2"
y="63.611027"
x="38.344597"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:'monospace Italic';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;fill:#0000ff;font-weight:normal;font-style:italic;font-stretch:normal;font-variant:normal;"
xml:space="preserve"><tspan
style="font-size:4.23333px;stroke-width:0.264583;fill:#0000ff;-inkscape-font-specification:'monospace Italic';font-family:monospace;font-weight:normal;font-style:italic;font-stretch:normal;font-variant:normal;"
y="63.611027"
x="38.344597"
id="tspan877-6-8-0"
sodipodi:role="line">bNumEndpoints=3</tspan></text>
<rect
rx="1.4224799"
y="21.581923"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="18.444866"
y="27.619555"
id="text837"><tspan
sodipodi:role="line"
id="tspan835"
x="18.444866"
y="27.619555"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 0 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-6"
width="39.739494"
height="9.7394924"
x="60.125"
y="21.581923"
rx="1.4224799" />
<text
id="text837-75"
y="27.619555"
x="62.075443"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
id="tspan1004"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="27.619555"
x="62.075443"
sodipodi:role="line">endpoint 0 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-5"
width="39.739494"
height="9.7394924"
x="15.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-6"
y="54.619556"
x="18.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="54.619556"
x="18.444866"
id="tspan835-2"
sodipodi:role="line">endpoint 1 IN</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-9"
width="39.739494"
height="9.7394924"
x="15.125"
y="66.581924"
rx="1.4224799" />
<text
id="text837-1"
y="72.61956"
x="17.075441"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="72.61956"
x="17.075441"
id="tspan835-27"
sodipodi:role="line">endpoint 2 OUT</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3-0"
width="39.739494"
height="9.7394924"
x="60.125"
y="48.581924"
rx="1.4224799" />
<text
id="text837-9"
y="54.619556"
x="63.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="54.619556"
x="63.444866"
id="tspan835-3"
sodipodi:role="line">endpoint 2 IN</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:export-filename="/home/japaric/Documents/usb.png"
sodipodi:docname="usb.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
id="svg8"
version="1.1"
viewBox="0 0 115 99.000002"
height="99mm"
width="115mm">
<defs
id="defs2" />
<sodipodi:namedview
fit-margin-bottom="0"
fit-margin-right="0"
fit-margin-left="0"
fit-margin-top="0"
inkscape:window-maximized="1"
inkscape:window-y="27"
inkscape:window-x="2560"
inkscape:window-height="1376"
inkscape:window-width="2560"
showgrid="false"
inkscape:document-rotation="0"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="200.55919"
inkscape:cx="253.51713"
inkscape:zoom="1.7732613"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-3.7252903e-7,-0.45692272)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Layer 1">
<rect
rx="3.8352282"
y="4.5636954"
x="0.10677287"
height="94.786453"
width="114.78645"
id="rect833"
style="fill:#ffffff;stroke:#000000;stroke-width:0.213545;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;stroke-dashoffset:0"
id="rect833-9"
width="104.78503"
height="79.785042"
x="5.1074805"
y="11.564402"
rx="3.750793" />
<text
id="text879"
y="10.173261"
x="10.122406"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;fill:#000000;stroke-width:0.264583;"
y="10.173261"
x="10.122406"
id="tspan877"
sodipodi:role="line">configuration 1</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="49.851894"
y="3.6732612"
id="text879-1"><tspan
sodipodi:role="line"
id="tspan877-2"
x="49.851894"
y="3.6732612"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">device</tspan></text>
<rect
rx="3.3928852"
y="44.563793"
x="10.10687"
height="35.758698"
width="94.786263"
id="rect833-9-7"
style="fill:#ffffff;stroke:#000000;stroke-width:0.241303;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
id="text875"
y="43.434914"
x="43.435753"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="43.434914"
x="43.435753"
id="tspan873"
sodipodi:role="line">interface 0</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.242205;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0"
width="94.797585"
height="15.757795"
x="10.10121"
y="18.558132"
rx="3.3932912" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="61.47612"
y="16.691795"
id="text875-9"><tspan
sodipodi:role="line"
id="tspan873-3"
x="61.47612"
y="16.691795"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">control endpoint</tspan></text>
<path
sodipodi:nodetypes="cc"
id="path966"
d="m 10.769992,94.583805 3.32698,-6.896569"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 14.027673,94.828825 c 3.147494,-6.890042 3.147494,-6.890042 3.147494,-6.890042"
id="path966-6" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="16.506218"
y="95.663483"
id="text879-0"><tspan
sodipodi:role="line"
id="tspan877-6"
x="16.506218"
y="95.663483"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">bNumConfigurations=1</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 54.690681,83.575497 3.32698,-6.896578"
id="path966-2"
sodipodi:nodetypes="cc" />
<path
id="path966-6-6"
d="m 57.948362,83.820517 c 3.147494,-6.890051 3.147494,-6.890051 3.147494,-6.890051"
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
id="text879-0-1"
y="84.900742"
x="61.276436"
style="font-size:4.23333px;line-height:1.25;font-family:monospace;-inkscape-font-specification:monospace;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill:#000000;"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583;fill:#000000;"
y="84.900742"
x="61.276436"
id="tspan877-6-8"
sodipodi:role="line">bNumInterfaces=1</tspan></text>
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="38.344597"
y="63.611027"
id="text879-0-1-2"><tspan
sodipodi:role="line"
id="tspan877-6-8-0"
x="38.344597"
y="63.611027"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">bNumEndpoints=3</tspan></text>
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect833-9-7-0-7-3"
width="39.739494"
height="9.7394924"
x="15.125"
y="21.581923"
rx="1.4224799" />
<text
id="text837"
y="27.619555"
x="18.444866"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
y="27.619555"
x="18.444866"
id="tspan835"
sodipodi:role="line">endpoint 0 IN</tspan></text>
<rect
rx="1.4224799"
y="21.581923"
x="60.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3-6"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="62.075443"
y="27.619555"
id="text837-75"><tspan
sodipodi:role="line"
x="62.075443"
y="27.619555"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583"
id="tspan1004">endpoint 0 OUT</tspan></text>
<rect
rx="1.4224799"
y="48.581924"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3-5"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="18.444866"
y="54.619556"
id="text837-6"><tspan
sodipodi:role="line"
id="tspan835-2"
x="18.444866"
y="54.619556"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 1 IN</tspan></text>
<rect
rx="1.4224799"
y="66.581924"
x="15.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3-9"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="17.075441"
y="72.61956"
id="text837-1"><tspan
sodipodi:role="line"
id="tspan835-27"
x="17.075441"
y="72.61956"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 2 OUT</tspan></text>
<rect
rx="1.4224799"
y="48.581924"
x="60.125"
height="9.7394924"
width="39.739494"
id="rect833-9-7-0-7-3-0"
style="fill:#ffffff;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-size:4.23333px;line-height:1.25;font-family:'DejaVuSansMono Nerd Font';-inkscape-font-specification:'DejaVuSansMono Nerd Font';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
x="63.444866"
y="54.619556"
id="text837-9"><tspan
sodipodi:role="line"
id="tspan835-3"
x="63.444866"
y="54.619556"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.23333px;font-family:monospace;-inkscape-font-specification:monospace;stroke-width:0.264583">endpoint 2 IN</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB