Jump to content

Component: UART Software (Timer) (Comms: Interface): Difference between revisions

From Flowcode Help
No edit summary
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(23 intermediate revisions by 2 users not shown)
Line 16: Line 16:


==Detailed description==
==Detailed description==


''No detailed description exists yet for this component''
''No detailed description exists yet for this component''


==Examples==
==Examples==




Line 28: Line 72:




==Downloadable macro reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
 
 
 
 
 
 
 
 
 
 
 
 
==Macro reference==
 
===CheckBuffer===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendString'''
| width="90%" class="mtx-class-macrohead" | '''CheckBuffer'''
|-
|-
| colspan="2" | Sends an string to the transmit buffer 
| colspan="2" | Returns the number of values in the transmit or receive buffer 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Data
| width="90%" | Buffer
|-
|-
| colspan="2" |  
| colspan="2" | 0=Transmit / 1=Receive 
|-
|-
| 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-u16-icon.png]] - UINT
| 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;"
===Initialise===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''Initialise'''
|-
| colspan="2" | Initialises the UART component pins ready to send and receive data 
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveArray'''
|-
|-
| colspan="2" | Gets an array of values from the receive buffer. Returns number of values received. 
| 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''
|}
 
 
===ReceiveBinary16Bit===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''ReceiveBinary16Bit'''
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| colspan="2" | Receives a binary 16-bit value split across two bytes. 
| width="90%" | Values
|-
|-
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | NumValues
| width="90%" | MSBfirst
|-
|-
| colspan="2" |  
| colspan="2" | 0=Least significant byte first, 1=Most significant byte first 
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Timeout
| width="90%" | Timeout
|-
|-
| colspan="2" | Time in milliseconds to wait for data 
| colspan="2" | Max amount of time in ms to wait between bytes 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
Line 76: Line 145:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===ReceiveBinary32Bit===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendArray'''
| width="90%" class="mtx-class-macrohead" | '''ReceiveBinary32Bit'''
|-
|-
| colspan="2" | Sends an array of values to the transmit buffer 
| colspan="2" | Receives a binary 32-bit value split across four bytes. 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Values
| width="90%" | MSBfirst
|-
|-
| colspan="2" |  
| colspan="2" | 0=Least significant byte first, 1=Most significant byte first 
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | NumValues
| width="90%" | Timeout
|-
|-
| colspan="2" |  
| colspan="2" | Max amount of time in ms to wait between bytes 
|-
|-
| 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-u32-icon.png]] - ULONG
| 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;"
===ReceiveBinaryFloat===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''ReceiveBinaryFloat'''
|-
| colspan="2" | Receives a binary 32-bit floating point value split across four bytes. 
|-
|-
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | MSBfirst
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| colspan="2" | 0=Least significant byte first, 1=Most significant byte first 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''UART_Timer_Process'''
|-
|-
| colspan="2" | Called as part of a timer interrupt at the specific UART baud rate. 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Timeout
|-
|-
| colspan="2" | Max amount of time in ms to wait between bytes 
|-
|-
| 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-f32-icon.png]] - FLOAT
| 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;"
===ReceiveBytetArray===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''ReceiveBytetArray'''
|-
| colspan="2" | Gets an array of values from the receive buffer. Returns number of values received. 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Values
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| colspan="2" |  
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveValue'''
|-
|-
| colspan="2" | Gets a single value from the receive buffer 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | NumValues
|-
|-
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
Line 125: Line 217:
| colspan="2" | Time in milliseconds to wait for data 
| colspan="2" | Time in milliseconds to wait for data 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===ReceiveChar===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendValue'''
| width="90%" class="mtx-class-macrohead" | '''ReceiveChar'''
|-
|-
| colspan="2" | Sends a single value to the transmit buffer 
| colspan="2" | Attempts to receive a single packet from the UART interface. 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Value
| width="90%" | Timeout
|-
|-
| colspan="2" |  
| colspan="2" | Time to wait in milliseconds for valid data before returning, 0=Dont wait, 255=Wait forever. 
|-
|-
| 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-s16-icon.png]] - INT
| 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;"
===ReceiveFloat===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''ReceiveFloat'''
|-
| colspan="2" | Attempts to receive a floating point number as ASCII characters and convert back into a numeric value. Note this function will receive until a timeout or a none numeric char is received, the none numeric char will be lost. 
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckBuffer'''
|-
|-
| colspan="2" | Returns the number of values in the transmit or receive buffer 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Timeout
|-
|-
| colspan="2" | Max time in ms to wait in between bytes 
|-
|-
| width="10%" align="center" | [[File:]] -  
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Buffer
| width="90%" | IgnoreData
|-
|-
| colspan="2" | 0=Transmit / 1=Receive 
| colspan="2" | 0=Dont ignore any data, 1=Ignore any initial none numeric data 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-f32-icon.png]] - FLOAT
| 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;"
===ReceiveHexNumber===
|-
{| class="mtx-class-macrotable wikitable"
| 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" | Gets a string from the receive buffer 
|-
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''ReceiveHexNumber'''
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| colspan="2" | Attempts to receive a hex number as ASCII characters and convert back into a numeric value. Note this function will receive until a timeout or a none hexadecimal char is received, the none numeric char will be lost. 
| width="90%" | MaxChars
|-
|-
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Timeout
| width="90%" | Timeout
|-
|-
| colspan="2" | Time in milliseconds to wait for data 
| colspan="2" | Max time in ms to wait in between bytes 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" | IgnoreData
|}
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| colspan="2" | 0=Dont ignore any data, 1=Ignore any initial none numeric data 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
|-
|-
| colspan="2" | Initialises the UART component pins ready to send and receive data 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Prefix
|-
|-
| colspan="2" | Look for prefix before receiving, 1=0xFF, 0=FF 
|-
|-
| 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-u32-icon.png]] - ULONG
| 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;"
===ReceiveINTArray===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByteArray'''
| width="90%" class="mtx-class-macrohead" | '''ReceiveINTArray'''
|-
|-
| colspan="2" | Receives an array of bytes and returns the number of bytes received. 
| colspan="2" | Receives an array of 16-bit INT/UINT values and returns the number of values received. 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Data
| width="90%" | Data
|-
|-
| colspan="2" | A byte array variable to hold the received data 
| colspan="2" | Array to store the incoming data 
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | NumBytes
| width="90%" | NumValues
|-
| colspan="2" | Maximum number of values to try and receive 
|-
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | MSBfirst
|-
|-
| colspan="2" | Maximum number of bytes to try and receive 
| colspan="2" | 0=Least significant byte first, 1=Most significant byte first 
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
Line 225: Line 323:
| colspan="2" | Max amount of time in ms to wait between bytes 
| colspan="2" | Max amount of time in ms to wait between bytes 
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===ReceiveNumber===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''ReceiveNumber'''
|-
| colspan="2" | Attempts to receive a number as ASCII characters and convert back into a numeric value. Note this function will receive until a timeout or a none numeric char is received, the none numeric char will be lost. 
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Timeout
|-
| colspan="2" | Max time in ms to wait in between bytes 
|-
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | IgnoreData
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| colspan="2" | 0=Dont ignore any data, 1=Ignore any initial none numeric data 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveString'''
|-
|-
| colspan="2" | Receives a string of bytes and returns the number of bytes received. 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-s32-icon.png]] - LONG
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===ReceiveString===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''ReceiveString'''
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| colspan="2" | Gets a string from the receive buffer 
| width="90%" | StringData
|-
|-
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | NumBytes
| width="90%" | MaxChars
|-
|-
| colspan="2" | Maximum number of bytes to try and receive 
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Timeout
| width="90%" | Timeout
|-
|-
| colspan="2" | Max amount of time in ms to wait between bytes 
| colspan="2" | Time in milliseconds to wait for data 
|-
|-
| 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-string-icon.png]] - STRING
| 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;"
===SendBinary16Bit===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''SendBinary16Bit'''
|-
| colspan="2" | Sends out a 16-bit binary value split across two bytes. 
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Value
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| colspan="2" |  
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Uninit'''
|-
|-
| colspan="2" | Un-initialize the UART and release the resources 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | MSBfirst
|-
|-
| colspan="2" | 0=Least significant byte first, 1=Most significant byte first 
|-
|-
| 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-void-icon.png]] - VOID
Line 271: Line 400:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SendBinary32Bit===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetList'''
| width="90%" class="mtx-class-macrohead" | '''SendBinary32Bit'''
|-
|-
| colspan="2" | Gets Named property List 
| colspan="2" | Sends out a 32-bit binary value split across four bytes. 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG
| width="90%" | Name
| width="90%" | Value
|-
|-
| colspan="2" |  
| colspan="2" |  
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | MSBfirst
|-
| colspan="2" | 0=Least significant byte first, 1=Most significant byte first 
|-
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SendBinaryFloat===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''SendBinaryFloat'''
|-
| colspan="2" | Sends out a 32-bit binary floating point value split across four bytes. 
|-
|-
| width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
| width="90%" | Value
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| colspan="2" |  
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Delay'''
|-
|-
| colspan="2" | Software UART Bit Delay 
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | MSBfirst
|-
|-
| colspan="2" | 0=Least significant byte first, 1=Most significant byte first 
|-
|-
| 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-void-icon.png]] - VOID
Line 302: Line 448:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SendByteArray===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetValue'''
| width="90%" class="mtx-class-macrohead" | '''SendByteArray'''
|-
|-
| colspan="2" | set Value of Named property 
| colspan="2" | Sends an array of bytes to the transmit buffer 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Name
| width="90%" | Values
|-
|-
| colspan="2" |  
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Value
| width="90%" | NumValues
|-
|-
| colspan="2" |  
| colspan="2" |  
Line 325: Line 472:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SendChar===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''SendChar'''
|-
| colspan="2" | Sends out a single packet from the UART interface. 
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Uninit'''
|-
|-
| colspan="2" | Un-initialize the UART and release the resources 
| width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
| width="90%" | Char
|-
|-
| 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-void-icon.png]] - VOID
Line 338: Line 491:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SendFloat===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetList'''
| width="90%" class="mtx-class-macrohead" | '''SendFloat'''
|-
|-
| colspan="2" | Gets Named property List 
| colspan="2" | Sends a single float  to the transmit buffer 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
| width="90%" | Name
| width="90%" | Value
|-
|-
| colspan="2" |  
| colspan="2" |  
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SendHexNumber===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByteArray'''
| width="90%" class="mtx-class-macrohead" | '''SendHexNumber'''
|-
|-
| colspan="2" | Receives an array of bytes and returns the number of bytes received. 
| colspan="2" | Sends out a number as an ASCII hexadecimal String from the UART interface. 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG
| width="90%" | Data
| width="90%" | Number
|-
|-
| colspan="2" |  
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | NumBytes
| width="90%" | NumChars
|-
|-
| colspan="2" | Maximum number of bytes to try and receive 
| colspan="2" | Number of characters in the string data, 0 for auto, 2 for 0x00, 4 for 0x0000 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | Timeout
| width="90%" | Prefix
|-
|-
| colspan="2" | Max amount of time in ms to wait between bytes 
| colspan="2" | Generate hexadecimal prefix 0x e.g. 1= 0xFF, 0= FF 
|-
|-
| 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-void-icon.png]] - VOID
| 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;"
===SendIntArray===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveString'''
| width="90%" class="mtx-class-macrohead" | '''SendIntArray'''
|-
|-
| colspan="2" | Receives a string of bytes and returns the number of bytes received. 
| colspan="2" | Sends an array of ints to the transmit buffer 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-s16-icon.png]] - INT
| width="90%" | StringData
| width="90%" | Data
|-
|-
| colspan="2" |  
| colspan="2" |  
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | NumBytes
| width="90%" | NumValues
|-
| colspan="2" |  
|-
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | MSBfirst
|-
| colspan="2" | 0=Least significant byte first, 1=Most significant byte first 
|-
| 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''
|}
 
 
===SendNumber===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''SendNumber'''
|-
| colspan="2" | Sends out a number as an ASCII String to the transmit buffer 
|-
|-
| colspan="2" | Maximum number of bytes to try and receive 
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-s32-icon.png]] - LONG
| width="90%" | Timeout
| width="90%" | Number
|-
|-
| colspan="2" | Max amount of time in ms to wait between bytes 
| 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-void-icon.png]] - VOID
| 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;"
===SendString===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetList'''
| width="90%" class="mtx-class-macrohead" | '''SendString'''
|-
|-
| colspan="2" | returns Named property list 
| colspan="2" | Sends an string to the transmit buffer 
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="90%" | Name
| width="90%" | Data
|-
|-
| colspan="2" |  
| colspan="2" |  
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




===UART_Timer_Process===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''UART_Timer_Process'''
|-
| colspan="2" | Called as part of a timer interrupt at the specific UART baud rate. 
|-
|-
| 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''
|}




==Property reference==
==Property reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
| width="90%" class="mtx-class-macrohead" | '''Properties'''
|-
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''
| width="90%" class="mtx-class-propfolder" | Global Settings
|-
|-
|-
|-
Line 459: Line 651:
|-
|-
| colspan="2" | Allows the Receive pin to be enabled / disabled 
| colspan="2" | Allows the Receive pin to be enabled / disabled 
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | Transmit Properties
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
Line 470: Line 666:
| colspan="2" | Number of bytes that can be stored in the outgoing transmit buffer 
| colspan="2" | Number of bytes that can be stored in the outgoing transmit buffer 
|-
|-
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" | Receive Pin
| width="90%" class="mtx-class-propfolder" | Simulation
|-
| colspan="2" | Pin assigned to receiving data 
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | Receive Buffer Size
|-
| colspan="2" | Number of bytes that can be stored in the incoming receive buffer 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''
|-
|-
|-
|-
Line 493: Line 675:
| colspan="2" |  
| colspan="2" |  
|}
|}
==Component Source Code==
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_UART_Software_Timer.fcfx FC_Comp_Source_UART_Software_Timer.fcfx]
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_UART_Software_Timer.fcfx FC_Comp_Source_UART_Software_Timer.fcfx]

Latest revision as of 14:37, 13 July 2026

Author MatrixTSL
Version 1.0
Category Comms: Interface


UART Software (Timer) component

Creates a reliable software UART that can be driven using a timer interrupt setup by the user. The timer interrupt must be interrupting at the required baud rate. e.g 9600Hz.

Detailed description

No detailed description exists yet for this component

Examples

Simple example showing how to enable a timer interrupt at the desired baud rate then receive a string. If anything is received then it will be echoed back out and displayed on a LCD

UART_Timer_Example









Macro reference

CheckBuffer

CheckBuffer
Returns the number of values in the transmit or receive buffer 
- BOOL Buffer
0=Transmit / 1=Receive 
- UINT Return


Initialise

Initialise
Initialises the UART component pins ready to send and receive data 
- VOID Return


ReceiveBinary16Bit

ReceiveBinary16Bit
Receives a binary 16-bit value split across two bytes. 
- BOOL MSBfirst
0=Least significant byte first, 1=Most significant byte first 
- UINT Timeout
Max amount of time in ms to wait between bytes 
- UINT Return


ReceiveBinary32Bit

ReceiveBinary32Bit
Receives a binary 32-bit value split across four bytes. 
- BOOL MSBfirst
0=Least significant byte first, 1=Most significant byte first 
- UINT Timeout
Max amount of time in ms to wait between bytes 
- ULONG Return


ReceiveBinaryFloat

ReceiveBinaryFloat
Receives a binary 32-bit floating point value split across four bytes. 
- BOOL MSBfirst
0=Least significant byte first, 1=Most significant byte first 
- UINT Timeout
Max amount of time in ms to wait between bytes 
- FLOAT Return


ReceiveBytetArray

ReceiveBytetArray
Gets an array of values from the receive buffer. Returns number of values received. 
- BYTE Values
 
- BYTE NumValues
 
- UINT Timeout
Time in milliseconds to wait for data 
- BYTE Return


ReceiveChar

ReceiveChar
Attempts to receive a single packet from the UART interface. 
- UINT Timeout
Time to wait in milliseconds for valid data before returning, 0=Dont wait, 255=Wait forever. 
- INT Return


ReceiveFloat

ReceiveFloat
Attempts to receive a floating point number as ASCII characters and convert back into a numeric value. Note this function will receive until a timeout or a none numeric char is received, the none numeric char will be lost. 
- UINT Timeout
Max time in ms to wait in between bytes 
- BOOL IgnoreData
0=Dont ignore any data, 1=Ignore any initial none numeric data 
- FLOAT Return


ReceiveHexNumber

ReceiveHexNumber
Attempts to receive a hex number as ASCII characters and convert back into a numeric value. Note this function will receive until a timeout or a none hexadecimal char is received, the none numeric char will be lost. 
- UINT Timeout
Max time in ms to wait in between bytes 
- BOOL IgnoreData
0=Dont ignore any data, 1=Ignore any initial none numeric data 
- BOOL Prefix
Look for prefix before receiving, 1=0xFF, 0=FF 
- ULONG Return


ReceiveINTArray

ReceiveINTArray
Receives an array of 16-bit INT/UINT values and returns the number of values received. 
- UINT Data
Array to store the incoming data 
- UINT NumValues
Maximum number of values to try and receive 
- BOOL MSBfirst
0=Least significant byte first, 1=Most significant byte first 
- UINT Timeout
Max amount of time in ms to wait between bytes 
- BYTE Return


ReceiveNumber

ReceiveNumber
Attempts to receive a number as ASCII characters and convert back into a numeric value. Note this function will receive until a timeout or a none numeric char is received, the none numeric char will be lost. 
- UINT Timeout
Max time in ms to wait in between bytes 
- BOOL IgnoreData
0=Dont ignore any data, 1=Ignore any initial none numeric data 
- LONG Return


ReceiveString

ReceiveString
Gets a string from the receive buffer 
- UINT MaxChars
 
- UINT Timeout
Time in milliseconds to wait for data 
- STRING Return


SendBinary16Bit

SendBinary16Bit
Sends out a 16-bit binary value split across two bytes. 
- UINT Value
 
- BOOL MSBfirst
0=Least significant byte first, 1=Most significant byte first 
- VOID Return


SendBinary32Bit

SendBinary32Bit
Sends out a 32-bit binary value split across four bytes. 
- ULONG Value
 
- BOOL MSBfirst
0=Least significant byte first, 1=Most significant byte first 
- VOID Return


SendBinaryFloat

SendBinaryFloat
Sends out a 32-bit binary floating point value split across four bytes. 
- FLOAT Value
 
- BOOL MSBfirst
0=Least significant byte first, 1=Most significant byte first 
- VOID Return


SendByteArray

SendByteArray
Sends an array of bytes to the transmit buffer 
- BYTE Values
 
- BYTE NumValues
 
- VOID Return


SendChar

SendChar
Sends out a single packet from the UART interface. 
- INT Char
 
- VOID Return


SendFloat

SendFloat
Sends a single float to the transmit buffer 
- FLOAT Value
 
- VOID Return


SendHexNumber

SendHexNumber
Sends out a number as an ASCII hexadecimal String from the UART interface. 
- ULONG Number
 
- BYTE NumChars
Number of characters in the string data, 0 for auto, 2 for 0x00, 4 for 0x0000 
- BOOL Prefix
Generate hexadecimal prefix 0x e.g. 1= 0xFF, 0= FF 
- VOID Return


SendIntArray

SendIntArray
Sends an array of ints to the transmit buffer 
- INT Data
 
- BYTE NumValues
 
- BOOL MSBfirst
0=Least significant byte first, 1=Most significant byte first 
- VOID Return


SendNumber

SendNumber
Sends out a number as an ASCII String to the transmit buffer 
- LONG Number
 
- VOID Return


SendString

SendString
Sends an string to the transmit buffer 
- STRING Data
 
- VOID Return


UART_Timer_Process

UART_Timer_Process
Called as part of a timer interrupt at the specific UART baud rate. 
- VOID Return


Property reference

Properties
Global Settings
Data Bits
 
Stop Bits
 
Use TX
Allows the Transmit pin to be enabled / disabled 
Use RX
Allows the Receive pin to be enabled / disabled 
Transmit Properties
Transmit Pin
Pin assigned to transmitting data 
Transmit Buffer Size
Number of bytes that can be stored in the outgoing transmit buffer 
Simulation
API
 

Component Source Code

Please click here to download the component source project: FC_Comp_Source_UART_Software_Timer.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_UART_Software_Timer.fcfx