Difference between revisions of "Component: Circular Buffer (Float) (Storage)"

From Flowcode Help
Jump to navigationJump to search
(XML import)
 
Line 1: Line 1:
 
+
{| style="width:50%"
 
 
{| width="50%"
 
 
|-
 
|-
| width="20%" style="color: gray;" | Author
+
| width="20%" style="color:gray;" | Author
 
| Matrix Ltd
 
| Matrix Ltd
 
|-
 
|-
| width="20%" style="color: gray;" | Version
+
| width="20%" style="color:gray;" | Version
| 1.5 (Release)
+
| 1.5
 
|-
 
|-
| width="20%" style="color: gray;" | Category
+
| width="20%" style="color:gray;" | Category
 
| Storage
 
| Storage
 
|}
 
|}
  
  
 +
==Circular Buffer (Float) component==
 +
Circular buffer component allowing easy and efficient first in first out (FIFO) style data storage. Also features macros to allow you to check for specific floating point values.
  
==[[File:Component Icon ed491c82_9f85_4627_93ce_d2b588352539.png|Image]] Circular Buffer (Float) component==
+
==Detailed description==
Circular buffer component allowing easy and efficient first in first out (FIFO) style data storage.
+
 
Also features macros to allow you to check for specific floating point values.
+
''No detailed description exists yet for this component''
  
 
==Examples==
 
==Examples==
 +
 +
 
''<span style="color:red;">No additional examples</span>''
 
''<span style="color:red;">No additional examples</span>''
  
Line 25: Line 27:
 
==Downloadable macro reference==
 
==Downloadable macro reference==
  
===<span style="font-weight: normal;"><u><tt>WaitForValues</tt></u></span>===
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
Waits for an array of values to appear in the circular buffer.
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WaitForValues'''
 +
|-
 +
| colspan="2" | Waits for an array of values to appear in the circular buffer. Returns 0 to indicate a timeout. Returns 1 to indicate the data has been found.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:]] -
 +
| width="90%" | Values
 +
|-
 +
| colspan="2" | &nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | NumValues
 +
|-
 +
| colspan="2" | Number of values to try and look for&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | RemoveContent
 +
|-
 +
| colspan="2" | 0=Leave the buffer contents untouched, 1=Remove values as you go&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | Timeout
 +
|-
 +
| colspan="2" | Max amount of time to wait in milliseconds before returning 0=WaitForever&nbsp;
 +
|-
 +
| 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''
 +
|}
  
Returns 0 to indicate a timeout.
 
  
Returns 1 to indicate the data has been found.
+
{| 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;" | '''GetNumberValues'''
 +
|-
 +
| colspan="2" | Returns the number of valid 16-bit data values currently stored inside the buffer.&nbsp;
 +
|-
 +
|-
 +
| 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''
 +
|}
  
'''Parameters'''
 
  
:[[Variable Types|FLOAT]] ''Values''
+
{| 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;" | '''PeekData'''
 +
|-
 +
| colspan="2" | Reads the next available 16-bit data value from the circular buffer without advancing the current index,  Returns the default value if the buffer is empty.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
:[[Variable Types|BYTE]] ''NumValues''
 
::Number of values to try and look for
 
  
:[[Variable Types|BYTE]] ''RemoveContent''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
::0=Leave the buffer contents untouched, 1=Remove values as you go
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''PutData'''
 +
|-
 +
| colspan="2" | Add a 32-bit floating point value to the next free location inside the circular buffer. If the data goes into the buffer correctly then return 1. Otherwise the buffer is full and the return value will equal 0.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:]] -
 +
| width="90%" | Data
 +
|-
 +
| colspan="2" | &nbsp;
 +
|-
 +
| 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''
 +
|}
  
:[[Variable Types|UINT]] ''Timeout''
 
::Max amount of time to wait in milliseconds before returning 0=WaitForever
 
  
 +
{| 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;" | '''LookForValues'''
 +
|-
 +
| colspan="2" | Scans the buffer for an array of specific values. Returns 0 if the value is not found. Returns 1 if the value is found.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:]] -
 +
| width="90%" | Values
 +
|-
 +
| colspan="2" | &nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | NumValues
 +
|-
 +
| colspan="2" | The number of values you wish to try and match&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | RemoveContent
 +
|-
 +
| colspan="2" | 0=Leave data alone, 1=Remove data from buffer&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | ResetFind
 +
|-
 +
| colspan="2" | 0=Continue the find from the last operation, 1=Start again&nbsp;
 +
|-
 +
| 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''
 +
|}
  
'''Return value'''
 
  
:[[Variable Types|BYTE]]
+
{| 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;" | '''GetData'''
 +
|-
 +
| colspan="2" | Reads the next available 32-bit floating point value from the circular buffer, Returns the default value if the buffer is empty.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
  
===<span style="font-weight: normal;"><u><tt>GetNumberValues</tt></u></span>===
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
Returns the number of valid 16-bit data values currently stored inside the buffer.
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''FlushBuffer'''
 +
|-
 +
| colspan="2" | Clears the contents of the buffer and re-initialises the index locations.&nbsp;
 +
|-
 +
|-
 +
| 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''
 +
|}
  
'''Parameters'''
 
  
:''This macro has no parameters''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
+
|-
 
+
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
'''Return value'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetIndexedValue'''
 
+
|-
:[[Variable Types|UINT]]
+
| colspan="2" | Gets the value of a single 32-bit floating point value at a known location in the buffer. Leaves the buffer contents and pointers untouched.&nbsp;
 
+
|-
 
+
|-
===<span style="font-weight: normal;"><u><tt>PeekData</tt></u></span>===
+
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
Reads the next available 16-bit data value from the circular buffer without advancing the current index,
+
| width="90%" | address
 
+
|-
 
+
| colspan="2" | &nbsp;
 
+
|-
Returns the default value if the buffer is empty.
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 
+
| width="90%" style="border-top: 2px solid #000;" | ''Return''
'''Parameters'''
+
|}
 
 
:''This macro has no parameters''
 
 
 
 
 
'''Return value'''
 
 
 
:[[Variable Types|FLOAT]]
 
 
 
 
 
===<span style="font-weight: normal;"><u><tt>PutData</tt></u></span>===
 
Add a 32-bit floating point value to the next free location inside the circular buffer.
 
 
 
If the data goes into the buffer correctly then return 1.
 
 
 
Otherwise the buffer is full and the return value will equal 0.
 
 
 
'''Parameters'''
 
 
 
:[[Variable Types|FLOAT]] ''Data''
 
 
 
 
 
'''Return value'''
 
 
 
:[[Variable Types|BYTE]]
 
 
 
 
 
===<span style="font-weight: normal;"><u><tt>LookForValues</tt></u></span>===
 
Scans the buffer for an array of specific values.
 
 
 
Returns 0 if the value is not found.
 
 
 
Returns 1 if the value is found.
 
 
 
'''Parameters'''
 
 
 
:[[Variable Types|FLOAT]] ''Values''
 
 
 
:[[Variable Types|BYTE]] ''NumValues''
 
::The number of values you wish to try and match
 
 
 
:[[Variable Types|BYTE]] ''RemoveContent''
 
::0=Leave data alone, 1=Remove data from buffer
 
 
 
:[[Variable Types|BYTE]] ''ResetFind''
 
::0=Continue the find from the last operation, 1=Start again
 
 
 
 
 
'''Return value'''
 
 
 
:[[Variable Types|BYTE]]
 
 
 
 
 
===<span style="font-weight: normal;"><u><tt>GetData</tt></u></span>===
 
Reads the next available 32-bit floating point value from the circular buffer,
 
 
 
Returns the default value if the buffer is empty.
 
 
 
'''Parameters'''
 
 
 
:''This macro has no parameters''
 
 
 
 
 
'''Return value'''
 
 
 
:[[Variable Types|FLOAT]]
 
 
 
 
 
===<span style="font-weight: normal;"><u><tt>FlushBuffer</tt></u></span>===
 
Clears the contents of the buffer and re-initialises the index locations.
 
 
 
'''Parameters'''
 
 
 
:''This macro has no parameters''
 
 
 
 
 
'''Return value'''
 
 
 
:''This call does not return a value''
 
 
 
 
 
===<span style="font-weight: normal;"><u><tt>GetIndexedValue</tt></u></span>===
 
Gets the value of a single 32-bit floating point value at a known location in the buffer.
 
 
 
Leaves the buffer contents and pointers untouched.
 
 
 
'''Parameters'''
 
 
 
:[[Variable Types|UINT]] ''address''
 
 
 
 
 
'''Return value'''
 
 
 
:[[Variable Types|FLOAT]]
 
  
  
 +
{| 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;" | '''FlushBuffer'''
 +
|-
 +
| colspan="2" | Clears the contents of the buffer and re-initialises the index locations.&nbsp;
 +
|-
 +
|-
 +
| 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''
 +
|}
  
==Simulation macro reference==
 
  
''This component does not contain any simulation macros''
 
  
  
 
==Property reference==
 
==Property reference==
<span style="font-weight: normal;"><u>Buffer Size</u></span>
 
  
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''BufferSize''.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
+
|-
Sets the number of byte elements inside the circular buffer.
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
<span style="font-weight: normal;"><u>Storage Type</u></span>
+
|-
 
+
|-
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''StorageType''.
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
+
| width="90%" | Buffer Size
When buffer is full this property decides what to do.
+
|-
 
+
| colspan="2" | Sets the number of byte elements inside the circular buffer.&nbsp;
Store first x values - Will retain the information inside the buffer, new data will be discarded.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
Store last x values - Will discard the oldest location in the buffer and overwrite with new data.
+
| width="90%" | Storage Type
 
+
|-
<span style="font-weight: normal;"><u>Memory Type</u></span>
+
| colspan="2" | When buffer is full this property decides what to do. Store first x values - Will retain the information inside the buffer, new data will be discarded. Store last x values - Will discard the oldest location in the buffer and overwrite with new data.&nbsp;
 
+
|-
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''MemType''.
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
+
| width="90%" | Memory Type
''<span style="color:red;">No additional information</span>''
+
|-
 
+
| colspan="2" | &nbsp;
 
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-15-icon.png]]
<span style="font-weight: normal;"><u>Default Return Data</u></span>
+
| width="90%" | Default Return Data
 
+
|-
This property is of type ''Floating point'' and can be referenced with the variable name ''RETURN''.
+
| colspan="2" | Specifies the value returned by the receive function when there is no data held in the buffer&nbsp;
 
+
|-
Specifies the value returned by the receive function when there is no data held in the 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'''  
 +
|-
 +
|}

Revision as of 20:57, 16 November 2021

Author Matrix Ltd
Version 1.5
Category Storage


Circular Buffer (Float) component

Circular buffer component allowing easy and efficient first in first out (FIFO) style data storage. Also features macros to allow you to check for specific floating point values.

Detailed description

No detailed description exists yet for this component

Examples

No additional examples


Downloadable macro reference

Fc9-comp-macro.png WaitForValues
Waits for an array of values to appear in the circular buffer. Returns 0 to indicate a timeout. Returns 1 to indicate the data has been found. 
[[File:]] - Values
 
Fc9-u8-icon.png - BYTE NumValues
Number of values to try and look for 
Fc9-u8-icon.png - BYTE RemoveContent
0=Leave the buffer contents untouched, 1=Remove values as you go 
Fc9-u16-icon.png - UINT Timeout
Max amount of time to wait in milliseconds before returning 0=WaitForever 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png GetNumberValues
Returns the number of valid 16-bit data values currently stored inside the buffer. 
Fc9-u16-icon.png - UINT Return


Fc9-comp-macro.png PeekData
Reads the next available 16-bit data value from the circular buffer without advancing the current index, Returns the default value if the buffer is empty. 
[[File:]] - Return


Fc9-comp-macro.png PutData
Add a 32-bit floating point value to the next free location inside the circular buffer. If the data goes into the buffer correctly then return 1. Otherwise the buffer is full and the return value will equal 0. 
[[File:]] - Data
 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png LookForValues
Scans the buffer for an array of specific values. Returns 0 if the value is not found. Returns 1 if the value is found. 
[[File:]] - Values
 
Fc9-u8-icon.png - BYTE NumValues
The number of values you wish to try and match 
Fc9-u8-icon.png - BYTE RemoveContent
0=Leave data alone, 1=Remove data from buffer 
Fc9-u8-icon.png - BYTE ResetFind
0=Continue the find from the last operation, 1=Start again 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png GetData
Reads the next available 32-bit floating point value from the circular buffer, Returns the default value if the buffer is empty. 
[[File:]] - Return


Fc9-comp-macro.png FlushBuffer
Clears the contents of the buffer and re-initialises the index locations. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png GetIndexedValue
Gets the value of a single 32-bit floating point value at a known location in the buffer. Leaves the buffer contents and pointers untouched. 
Fc9-u16-icon.png - UINT address
 
[[File:]] - Return


Fc9-comp-macro.png FlushBuffer
Clears the contents of the buffer and re-initialises the index locations. 
Fc9-void-icon.png - VOID Return



Property reference

Fc9-prop-icon.png Properties
Fc9-type-21-icon.png Buffer Size
Sets the number of byte elements inside the circular buffer. 
Fc9-type-16-icon.png Storage Type
When buffer is full this property decides what to do. Store first x values - Will retain the information inside the buffer, new data will be discarded. Store last x values - Will discard the oldest location in the buffer and overwrite with new data. 
Fc9-type-16-icon.png Memory Type
 
Fc9-type-15-icon.png Default Return Data
Specifies the value returned by the receive function when there is no data held in the buffer 
Fc9-conn-icon.png Connections
Fc9-conn-icon.png Simulations