|  |   | 
| (5 intermediate revisions by the same user not shown) | 
| Line 17: | Line 17: | 
|  | ==Component Source Code== |  | ==Component Source Code== | 
|  |  |  |  | 
| − | Please click here to download the component source project: [https://www.flowcode.co.uk/wikicopy/componentsource/FC_Comp_Source_USBHID.fcfx FC_Comp_Source_USBHID.fcfx] | + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_USBHID.fcfx FC_Comp_Source_USBHID.fcfx] | 
|  |  |  |  | 
|  | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_USBHID.fcfx FC_Comp_Source_USBHID.fcfx] |  | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_USBHID.fcfx FC_Comp_Source_USBHID.fcfx] | 
|  |  |  |  | 
|  | ==Detailed description== |  | ==Detailed description== | 
|  | + |  | 
|  | + |  | 
|  | + |  | 
|  | + |  | 
|  |  |  |  | 
|  |  |  |  | 
| Line 46: | Line 50: | 
|  |  |  |  | 
|  | ==Examples== |  | ==Examples== | 
|  | + |  | 
|  | + |  | 
|  | + |  | 
|  | + |  | 
|  |  |  |  | 
|  |  |  |  | 
| Line 131: | Line 139: | 
|  | [[File:HID Descriptor Tool.zip]] |  | [[File:HID Descriptor Tool.zip]] | 
|  |  |  |  | 
| − | ==Macro reference==
 |  | 
|  |  |  |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByte'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Receives a byte from the USB. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | Idx
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
|  |  |  |  | 
|  |  |  |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetSerialNumber'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Allows the device serial number to be edited. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
 |  | 
| − | | width="90%" | SerialNumber
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
|  |  |  |  | 
|  |  |  |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendData'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Sends the contents of the transmit buffer to the USB. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
|  |  |  |  | 
|  |  |  |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckRx'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Checks for any incoming data. Returns the number of data bytes received since the last check. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
|  |  |  |  | 
|  |  |  |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''UpdateData'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Allows a byte of the transmit buffer to be assigned. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | idx
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | value
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
|  |  |  |  | 
|  | + | ==Macro reference== | 
|  |  |  |  | 
|  | + | ===CheckRx=== | 
|  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | 
|  | |- |  | |- | 
|  | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] |  | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveString''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckRx''' | 
|  | |- |  | |- | 
| − | | colspan="2" | Receives a string of bytesfrom theUSB  | + | | colspan="2" | Checks for any incoming data. Returns the number of data bytes received since the last check.  | 
|  | |- |  | |- | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | NumBytes
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − | 
 |  | 
| − | 
 |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendDataDirect'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Sends data directly to the USB 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
 |  | 
| − | | width="90%" | Data
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
|  | |- |  | |- | 
|  | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE |  | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | 
| Line 254: | Line 165: | 
|  |  |  |  | 
|  |  |  |  | 
|  | + | ===Initialise=== | 
|  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | 
|  | |- |  | |- | 
| Line 267: | Line 179: | 
|  |  |  |  | 
|  |  |  |  | 
| − |   | + | ===ReceiveByte=== | 
| − |   |  | 
| − | ==Property reference== |  | 
| − |   |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 |  | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | USB Properties
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 |  | 
| − | | width="90%" | Vendor ID
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | USB vendor identifier tied to the manufacturer of the USB device 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 |  | 
| − | | width="90%" | Product ID
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | USB product identifier 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 |  | 
| − | | width="90%" | Device Name
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Name used to identify the device 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 |  | 
| − | | width="90%" | Manufacturer
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Manufacturer of the device 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Major Version
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Firmware major version 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Minor Version
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Device firmware minor version  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 |  | 
| − | | width="90%" | Enumeration Timeout
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Specifies if the initialise routine is allowed to timeout instead of waiting forever for success 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Maximum Current (mA)
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Maximum current the host should source to the device - max 500mA 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 |  | 
| − | | width="90%" | Country Code
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Specific country code - if required 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 |  | 
| − | | width="90%" | Descriptor Select
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Built in descriptor selection  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-11-icon.png]]
 |  | 
| − | | width="90%" | HID Descriptor
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Contents of the HID descriptor 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 |  | 
| − | | width="90%" | Subclass
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | USB Subclass - Normally only mice and keyboards are boot devices 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 |  | 
| − | | width="90%" | Interface
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Standard HID interface type 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Transmit Packet Size
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Number of bytes to send to the PC  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Transmit Period (ms)
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Delay between transmit packets 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Receive Packet Size
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Number of bytes to receive from the PC 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Receive Period (ms)
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Delay between receive packets 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 |  | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 |  | 
| − | | width="90%" | Label
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Simulation label used to indicate the USB HID component on the panel. 
 |  | 
| − | |}==Macro reference==
 |  | 
| − |   |  | 
|  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | 
|  | |- |  | |- | 
| Line 394: | Line 198: | 
|  |  |  |  | 
|  |  |  |  | 
|  | + | ===ReceiveString=== | 
|  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | 
|  | |- |  | |- | 
|  | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] |  | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetSerialNumber''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveString''' | 
|  | |- |  | |- | 
| − | | colspan="2" | Allows thedevice serial number to be edited.  | + | | colspan="2" | Receives a string of bytes from the USB  | 
|  | |- |  | |- | 
|  | |- |  | |- | 
| − | | width="10%" align="center" | [[File:Fc9-string-icon.png]] -STRING | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | 
| − | | width="90%" | SerialNumber | + | | width="90%" | NumBytes | 
|  | |- |  | |- | 
|  | | colspan="2" |   |  | | colspan="2" |   | 
|  | |- |  | |- | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] -VOID | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING | 
|  | | width="90%" style="border-top: 2px solid #000;" | ''Return'' |  | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | 
|  | |} |  | |} | 
|  |  |  |  | 
|  |  |  |  | 
|  | + | ===SendData=== | 
|  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | 
|  | |- |  | |- | 
| Line 425: | Line 231: | 
|  |  |  |  | 
|  |  |  |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 | + | ===SendDataDirect=== | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckRx'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Checks for any incoming data. Returns the number of data bytes received since the last check. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − |   |  | 
| − |   |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''UpdateData'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Allows a byte of the transmit buffer to be assigned. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | idx
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | value
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − |   |  | 
| − |   |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveString'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Receives a string of bytes from the USB 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | NumBytes
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − |   |  | 
| − |   |  | 
|  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | 
|  | |- |  | |- | 
| Line 497: | Line 250: | 
|  |  |  |  | 
|  |  |  |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 | + | ===SetSerialNumber=== | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Starts up the USB connection and waits for the device driver to be correctly installed on the PC.  
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − |   |  | 
| − |   |  | 
| − |   |  | 
| − |   |  | 
| − | ==Property reference==
 |  | 
| − |   |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 |  | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | USB Properties
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 |  | 
| − | | width="90%" | Vendor ID
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | USB vendor identifier tied to the manufacturer of the USB device 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 |  | 
| − | | width="90%" | Product ID
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | USB product identifier 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 |  | 
| − | | width="90%" | Device Name
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Name used to identify the device 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 |  | 
| − | | width="90%" | Manufacturer
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Manufacturer of the device 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Major Version
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Firmware major version 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Minor Version
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Device firmware minor version  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 |  | 
| − | | width="90%" | Enumeration Timeout
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Specifies if the initialise routine is allowed to timeout instead of waiting forever for success 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Maximum Current (mA)
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Maximum current the host should source to the device - max 500mA 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 |  | 
| − | | width="90%" | Country Code
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Specific country code - if required 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 |  | 
| − | | width="90%" | Descriptor Select
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Built in descriptor selection  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-11-icon.png]]
 |  | 
| − | | width="90%" | HID Descriptor
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Contents of the HID descriptor 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 |  | 
| − | | width="90%" | Subclass
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | USB Subclass - Normally only mice and keyboards are boot devices 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 |  | 
| − | | width="90%" | Interface
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Standard HID interface type 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Transmit Packet Size
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Number of bytes to send to the PC  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Transmit Period (ms)
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Delay between transmit packets 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Receive Packet Size
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Number of bytes to receive from the PC 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
 |  | 
| − | | width="90%" | Receive Period (ms)
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Delay between receive packets 
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
 |  | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
 |  | 
| − | | width="90%" | Label
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Simulation label used to indicate the USB HID component on the panel. 
 |  | 
| − | |}==Macro reference==
 |  | 
| − |   |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByte'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Receives a byte from the USB. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | Idx
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − |   |  | 
| − |   |  | 
|  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | 
|  | |- |  | |- | 
| Line 655: | Line 269: | 
|  |  |  |  | 
|  |  |  |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 | + | ===UpdateData=== | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendData'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Sends the contents of the transmit buffer to the USB. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − |   |  | 
| − |   |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckRx'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Checks for any incoming data. Returns the number of data bytes received since the last check. 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − |   |  | 
| − |   |  | 
|  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |  | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | 
|  | |- |  | |- | 
| Line 702: | Line 291: | 
|  | | width="90%" style="border-top: 2px solid #000;" | ''Return'' |  | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | 
|  | |} |  | |} | 
| − | 
 |  | 
| − | 
 |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveString'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Receives a string of bytes from the USB 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" | NumBytes
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − | 
 |  | 
| − | 
 |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendDataDirect'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Sends data directly to the USB 
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
 |  | 
| − | | width="90%" | Data
 |  | 
| − | |-
 |  | 
| − | | colspan="2" |  
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − | 
 |  | 
| − | 
 |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 |  | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 |  | 
| − | |-
 |  | 
| − | | colspan="2" | Starts up the USB connection and waits for the device driver to be correctly installed on the PC.  
 |  | 
| − | |-
 |  | 
| − | |-
 |  | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 |  | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
 |  | 
| − | |}
 |  | 
| − | 
 |  | 
| − | 
 |  | 
|  |  |  |  | 
|  |  |  |  |