Component: Circular Buffer Free Sim (Buffer): Difference between revisions
Appearance
No edit summary |
m Text replacement - "width="90%" style="background-color:#D8C9D8; color:#4B008D;"" to "width="90%" class="mtx-class-macrohead"" |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 70: | Line 70: | ||
===FlushBuffer=== | ===FlushBuffer=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''FlushBuffer''' | ||
|- | |- | ||
| colspan="2" | Clears the contents of the buffer and re-initialises the index locations. | | colspan="2" | Clears the contents of the buffer and re-initialises the index locations. | ||
| Line 84: | Line 84: | ||
===GetByte=== | ===GetByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetByte''' | ||
|- | |- | ||
| colspan="2" | Reads the next available byte from the circular buffer, Returns 255/512 if the buffer is empty. | | colspan="2" | Reads the next available byte from the circular buffer, Returns 255/512 if the buffer is empty. | ||
| Line 98: | Line 98: | ||
===GetConsoleHandle=== | ===GetConsoleHandle=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetConsoleHandle''' | ||
|- | |- | ||
| colspan="2" | Gets the handle to the console allowing data displaying on the panel etc. | | colspan="2" | Gets the handle to the console allowing data displaying on the panel etc. | ||
| Line 112: | Line 112: | ||
===GetIndexedByte=== | ===GetIndexedByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetIndexedByte''' | ||
|- | |- | ||
| colspan="2" | Gets the value of a single byte at a known location in the buffer. Leaves the buffer contents and pointers untouched. | | colspan="2" | Gets the value of a single byte at a known location in the buffer. Leaves the buffer contents and pointers untouched. | ||
| Line 131: | Line 131: | ||
===GetNumberBytes=== | ===GetNumberBytes=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetNumberBytes''' | ||
|- | |- | ||
| colspan="2" | Returns the number of valid data bytes currently inside the buffer. | | colspan="2" | Returns the number of valid data bytes currently inside the buffer. | ||
| Line 145: | Line 145: | ||
===LookForValue=== | ===LookForValue=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''LookForValue''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 179: | Line 179: | ||
===PeekByte=== | ===PeekByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PeekByte''' | ||
|- | |- | ||
| colspan="2" | Reads the next available byte from the circular buffer without advancing the current index, Returns 255/512 if the buffer is empty. | | colspan="2" | Reads the next available byte from the circular buffer without advancing the current index, Returns 255/512 if the buffer is empty. | ||
| Line 193: | Line 193: | ||
===PutByte=== | ===PutByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PutByte''' | ||
|- | |- | ||
| colspan="2" | Add byte 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. | | colspan="2" | Add byte 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. | ||
| Line 212: | Line 212: | ||
===WaitForValue=== | ===WaitForValue=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''WaitForValue''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 247: | Line 247: | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:22, 13 July 2026
| Author | Matrix Ltd |
| Version | 1.5 |
| Category | Buffer |
Circular Buffer Free Sim component
Circular buffer component allowing easy and efficient first in first out (FIFO) style data byte storage. Useful when used with a comms component to capture data as it comes in ready for processing when we have time. Also features macros to allow you to check for specific incoming responses such as "OK" or "ERROR".
Component Source Code
Please click here to download the component source project: FC_Comp_Source_CircularBuffer_FreeSim.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_CircularBuffer_FreeSim.fcfx
Detailed description
No detailed description exists yet for this component
Examples
No additional examples
Macro reference
FlushBuffer
| FlushBuffer | |
| Clears the contents of the buffer and re-initialises the index locations. | |
| Return | |
GetByte
| GetByte | |
| Reads the next available byte from the circular buffer, Returns 255/512 if the buffer is empty. | |
| Return | |
GetConsoleHandle
| GetConsoleHandle | |
| Gets the handle to the console allowing data displaying on the panel etc. | |
| Return | |
GetIndexedByte
| GetIndexedByte | |
| Gets the value of a single byte at a known location in the buffer. Leaves the buffer contents and pointers untouched. | |
| address | |
| Return | |
GetNumberBytes
| GetNumberBytes | |
| Returns the number of valid data bytes currently inside the buffer. | |
| Return | |
LookForValue
PeekByte
| PeekByte | |
| Reads the next available byte from the circular buffer without advancing the current index, Returns 255/512 if the buffer is empty. | |
| Return | |
PutByte
WaitForValue