Difference between revisions of "Component: Embed File (Storage)"

From Flowcode Help
Jump to navigationJump to search
 
(4 intermediate revisions by the same user not shown)
Line 15: Line 15:
 
A component to simplify the process of embedding files into ROM. Stores the file inside a ROM look up table.
 
A component to simplify the process of embedding files into ROM. Stores the file inside a ROM look up table.
  
==Detailed description==
+
==Component Pack==
  
''No detailed description exists yet for this component''
+
STORAGE
  
==Examples==
+
==Detailed description==
  
  
Basic example program which embeds a text file into the microcontrollers ROM memory and then prints the file out to a LCD display.
 
{{Fcfile|EmbedFileExample.fcfx|EmbedFileExample}}
 
Text file to go with the example, must be placed into the same directory as the Flowcode file.
 
  
[[File:TextFile.txt]]
 
  
  
Here is an archive which packages the example and text file together for you.
 
  
{{Zip|EmbedFile.zip|Embed File Example Files}}
 
  
  
The file is selected using the File component property.
 
  
Clicking the small arrow to the right of the property and selecting Browse allows you to select a file using a Windows file explorer.
 
  
[[File:EmbedFile.jpg]]
 
  
 +
''No detailed description exists yet for this component''
  
==Downloadable macro reference==
+
==Examples==
  
{| 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;" | '''GetFileByte'''
 
|-
 
| colspan="2" | Reads a single byte from the file at the specified address. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Address
 
|-
 
| colspan="2" | Address range 0 to NumBytesInFile - 1 
 
|-
 
| 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;" | '''GetFileLength'''
 
|-
 
| colspan="2" | Returns the file size in bytes. 
 
|-
 
|-
 
| 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''
 
|}
 
  
  
{| 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;" | '''SetByteArray'''
 
|-
 
| colspan="2" | Writes an array of bytes to the EE memory. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Address
 
|-
 
| colspan="2" | Starting address of the first value to write 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Data
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Count
 
|-
 
| colspan="2" | Number of bytes to write to the EE memory, Range: 1 to 128 bytes 
 
|-
 
| 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;" | '''SetInt'''
 
|-
 
| colspan="2" | Writes a 16-bit value to the EE memory. For consecutive 16-bit values the address must be incremented by 2. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Address
 
|-
 
| colspan="2" | Address of the value to write 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Value
 
|-
 
| colspan="2" | 16-bit value to write 
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | MSBFirst
 
|-
 
| colspan="2" | 0: LSB is the first byte, 1: MSB is the first 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''
 
|}
 
  
  
{| 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;" | '''AddressSpecificDevice'''
 
|-
 
| colspan="2" | Starts a temperature conversion on a specific device using a hex string identifier. SerialNumber parameter should be 12 characters and contain the 48-bit Serial. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
 
| width="90%" | SerialNumber
 
|-
 
| colspan="2" | 48-bit Serial Number e.g. "32DF4A3C1901" 
 
|-
 
| 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;" | '''GetSerialString'''
 
|-
 
| colspan="2" | Gets the Serial String for the current addressed device. 
 
|-
 
|-
 
| 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''
 
|}
 
  
 +
Basic example program which embeds a text file into the microcontrollers ROM memory and then prints the file out to a LCD display.
 +
{{Fcfile|EmbedFileExample.fcfx|EmbedFileExample}}
 +
Text file to go with the example, must be placed into the same directory as the Flowcode file.
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
[[File:TextFile.txt]]
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AddressNextDevice'''
 
|-
 
| colspan="2" | Scans for the next connected device with a matching family code. Goes through the device list generated by the ScanBus macro. 
 
|-
 
|-
 
| 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;"
+
Here is an archive which packages the example and text file together for you.
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetLong'''
 
|-
 
| colspan="2" | Writes a 32-bit value to the EE memory. For consecutive 32-bit values the address must be incremented by 4. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Address
 
|-
 
| colspan="2" | Address of the value to write 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG
 
| width="90%" | Value
 
|-
 
| colspan="2" | 32-bit value to write 
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | MSBFirst
 
|-
 
| colspan="2" | 0: LSB is the first byte, 1: MSB is the first 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''
 
|}
 
  
 +
{{Zip|EmbedFile.zip|Embed File Example Files}}
  
{| 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;" | '''GetFloat'''
 
|-
 
| colspan="2" | Reads a 32-bit floating point value starting from the specified byte address. For consecutive float values the address must be incremented by 4. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | Address
 
|-
 
| colspan="2" | The starting byte address 
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | MSBFirst
 
|-
 
| colspan="2" | 0: LSB is the first byte, 1: MSB is the first byte 
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
  
 +
The file is selected using the File component property.
  
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
+
Clicking the small arrow to the right of the property and selecting Browse allows you to select a file using a Windows file explorer.
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetLong'''
 
|-
 
| colspan="2" | Reads a 32-bit value starting from the specified byte address. For consecutive 32-bit values the address must be incremented by 4. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | Address
 
|-
 
| colspan="2" | The starting byte address 
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | MSBFirst
 
|-
 
| colspan="2" | 0: LSB is the first byte, 1: MSB is the first byte 
 
|-
 
| 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''
 
|}
 
  
 +
[[File:EmbedFile.jpg]]
  
{| 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;" | '''GetInt'''
 
|-
 
| colspan="2" | Reads a 16-bit value starting from the specified byte address. For consecutive 16-bit values the address must be incremented by 2. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | Address
 
|-
 
| colspan="2" | The starting byte address 
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | MSBFirst
 
|-
 
| colspan="2" | 0: LSB is the first byte, 1: MSB is the first byte 
 
|-
 
| 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''
 
|}
 
  
 +
==Downloadable macro reference==
  
 
{| 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;" | '''GetByteArray'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetFileByte'''
 
|-
 
|-
| colspan="2" | Reads an array of bytes starting from the selected address. 
+
| colspan="2" | Reads a single byte from the file at the specified address. 
 
|-
 
|-
 
|-
 
|-
Line 282: Line 78:
 
| width="90%" | Address
 
| width="90%" | Address
 
|-
 
|-
| colspan="2" | Starting address of the first value to read 
+
| colspan="2" | Address range 0 to NumBytesInFile - 1 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Data
 
|-
 
| colspan="2" | Byte array to store incoming data 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Count
 
|-
 
| colspan="2" | Number of bytes to read from the EE memory, Range: 1 to 128 bytes 
 
|-
 
| 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;" | '''SetByte'''
 
|-
 
| colspan="2" | Writes a single byte to the EE memory. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Address
 
|-
 
| colspan="2" | Address of the value to write 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | Data
 
|-
 
| 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;" | '''GetByte'''
 
|-
 
| colspan="2" | Reads a single byte from the selected address. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Address
 
|-
 
| colspan="2" | Address of the value to read 
 
 
|-
 
|-
 
| 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 343: Line 88:
 
|-
 
|-
 
| 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;" | '''SetFloat'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetFileLength'''
 
|-
 
|-
| colspan="2" | Writes a 32-bit floating point value to the EE memory. For consecutive float values the address must be incremented by 4. 
+
| colspan="2" | Returns the file size in bytes. 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Address
 
|-
 
| colspan="2" | Address of the value to write 
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | Value
 
|-
 
| colspan="2" | Floating point value to write 
 
|-
 
| width="10%" align="center" | [[File:]] -
 
| width="90%" | MSBFirst
 
|-
 
| colspan="2" | 0: LSB is the first byte, 1: MSB is the first 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''
 
|}
 
 
 
 
 
{| 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" | Configures each matching sensor on the bus with the specified conversion bits. 
 
|-
 
|-
 
| 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''
 
|}
 
|}
Line 405: Line 122:
 
|-
 
|-
 
| colspan="2" | Number of bytes available in the target device ROM memory 
 
| colspan="2" | Number of bytes available in the target device ROM memory 
|-
 
| 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'''
 
|-
 
 
|}
 
|}

Latest revision as of 17:24, 9 November 2022

Author Matrix TSL
Version 1.0
Category Storage


Embed File component

A component to simplify the process of embedding files into ROM. Stores the file inside a ROM look up table.

Component Pack

STORAGE

Detailed description

No detailed description exists yet for this component

Examples

Basic example program which embeds a text file into the microcontrollers ROM memory and then prints the file out to a LCD display. FC6 Icon.png EmbedFileExample Text file to go with the example, must be placed into the same directory as the Flowcode file.

File:TextFile.txt


Here is an archive which packages the example and text file together for you.

ZIP Icon.png Embed File Example Files


The file is selected using the File component property.

Clicking the small arrow to the right of the property and selecting Browse allows you to select a file using a Windows file explorer.

EmbedFile.jpg


Downloadable macro reference

Fc9-comp-macro.png GetFileByte
Reads a single byte from the file at the specified address. 
Fc9-u16-icon.png - UINT Address
Address range 0 to NumBytesInFile - 1 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png GetFileLength
Returns the file size in bytes. 
Fc9-u16-icon.png - UINT Return



Property reference

Fc9-prop-icon.png Properties
Fc9-type-13-icon.png File
File you wish to embed into the program 
Fc9-type-21-icon.png File Length
File size in bytes. Max recommended file size = 65535 bytes 8-bit PICs may struggle with files larger than 256 bytes. 
Fc9-type-21-icon.png ROM Size
Number of bytes available in the target device ROM memory