Jump to content

Component: IoT Made Easy (Comms: IoT/Cloud): Difference between revisions

From Flowcode Help
XML import
 
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{| style="width:50%"
 
{| width="50%"
|-
|-
| width="20%" style="color: gray;" | Author
| width="20%" style="color:gray;" | Author
| Matrix TSL
| Matrix TSL
|-
|-
| width="20%" style="color: gray;" | Version
| width="20%" style="color:gray;" | Version
| 1.0 (Release)
| 1.0
|-
|-
| width="20%" style="color: gray;" | Category
| width="20%" style="color:gray;" | Category
| Comms: IoT/Cloud
| Comms: IoT/Cloud
|}
|}




==IoT Made Easy component==
A component designed to simplify MQTT comms allowing for multiple data streams to be dealt with in a simple manner. Deals with translating values to and from the broker from topic strings into  message IDs and numeric values. Works with lots of different MQTT brokers.


==[[File:Component Icon 2740a93b_32a9_48d1_8fc3_089d13b50bb5.png|Image]] IoT Made Easy component==
==Component Source Code==
A component designed to simplify MQTT comms allowing for multiple data streams to be dealt with
in a simple manner. Deals with translating values to and from the broker from topic strings into
message IDs and numeric values. Works with lots of different MQTT brokers.


==Examples==
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_IoTMadeEasy.fcfx FC_Comp_Source_IoTMadeEasy.fcfx]
''<span style="color:red;">No additional examples</span>''


Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_IoTMadeEasy.fcfx FC_Comp_Source_IoTMadeEasy.fcfx]


==Downloadable macro reference==
==Detailed description==


===<span style="font-weight: normal;"><u><tt>ErrorAsString</tt></u></span>===
''<span style="color:red;">No additional information</span>''






'''Parameters'''


:[[Variable Types|BYTE]] ''Error''




'''Return value'''


:[[Variable Types|STRING]]




===<span style="font-weight: normal;"><u><tt>PublishString</tt></u></span>===
Publishes data to the selected topic ID using a data string.


Returns none zero if successful


'''Parameters'''


:[[Variable Types|BYTE]] ''TopicID''
::The topic ID to publish data to


:[[Variable Types|<- STRING]] ''Data''
::Data string to publish
::''This parameter may be returned back to the caller''




'''Return value'''


:[[Variable Types|BYTE]]




===<span style="font-weight: normal;"><u><tt>GetTopicID</tt></u></span>===
Compares the topic ID of the last received message with enabled IDs.


Returns the topic ID received.


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:[[Variable Types|BYTE]]
''No detailed description exists yet for this component''


==Examples==


===<span style="font-weight: normal;"><u><tt>Connect</tt></u></span>===
Connect to the MQTT Server.


Returns the connected state.


0 if not connected, 1 if successful connection, or already connected.


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:[[Variable Types|BYTE]]




===<span style="font-weight: normal;"><u><tt>GetPayloadInteger</tt></u></span>===
Get the Payload of the last received (Read) packet as a signed long value


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:[[Variable Types|LONG]]




===<span style="font-weight: normal;"><u><tt>LastError</tt></u></span>===
Returns the last error


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:[[Variable Types|BYTE]]




===<span style="font-weight: normal;"><u><tt>Read</tt></u></span>===
Read incoming data.


Returns non-zero if packet received.


Use GetTopicID and GetPayloadXXX to read the contents.
''<span style="color:red;">No additional examples</span>''


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:[[Variable Types|UINT]]




===<span style="font-weight: normal;"><u><tt>Disconnect</tt></u></span>===
Disconnects from the MQTT server and the network


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:[[Variable Types|BYTE]]
==Macro reference==


===Connect===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''Connect'''
|-
| colspan="2" | Connect to the MQTT Server. Returns the connected state. 0 if not connected, 1 if successful connection, or already connected. &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''
|}


===<span style="font-weight: normal;"><u><tt>PublishFloat</tt></u></span>===
Publishes data to the selected topic ID using a floating point value.


Returns none zero if successful
===Disconnect===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''Disconnect'''
|-
| colspan="2" | Disconnects from the MQTT server and the network&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''
|}


'''Parameters'''


:[[Variable Types|BYTE]] ''TopicID''
===ErrorAsString===
::The topic ID to publish data to
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''ErrorAsString'''
|-
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Error
|-
| colspan="2" | &nbsp;
|-
| 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''
|}


:[[Variable Types|FLOAT]] ''Data''
::Data to publish


===GetPayloadFloat===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''GetPayloadFloat'''
|-
| colspan="2" | Get the Payload of the last received (Read) packet as a floating point value&nbsp;
|-
|-
| 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''
|}


'''Return value'''


:[[Variable Types|BYTE]]
===GetPayloadInteger===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''GetPayloadInteger'''
|-
| colspan="2" | Get the Payload of the last received (Read) packet as a signed long value&nbsp;
|-
|-
| 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''
|}




===<span style="font-weight: normal;"><u><tt>Ping</tt></u></span>===
===GetPayloadString===
Ping packet is sent to the server and checks for a reply.
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''GetPayloadString'''
|-
| colspan="2" | Get the Payload of the last received (Read) packet as a string value&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="90%" | Payload
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Size
|-
| 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''
|}




===GetTopicID===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''GetTopicID'''
|-
| colspan="2" | Compares the topic ID of the last received message with enabled IDs. Returns the topic ID received.&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''
|}


If nothing is sent or received within the keep alive period then a ping is required to keep the connection to the server active.


Returns non-zero value if successful
===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" | Starts up the MQTT component - call this after initialising the NetworkComms component.&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''
===LastError===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''LastError'''
|-
| colspan="2" | Returns the last error&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'''
===Ping===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''Ping'''
|-
| colspan="2" | Ping packet is sent to the server and checks for a reply.  If nothing is sent or received within the keep alive period then a ping is required to keep the connection to the server active.  Returns non-zero value if successful &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|BYTE]]


===PublishFloat===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''PublishFloat'''
|-
| colspan="2" | Publishes data to the selected topic ID using a floating point value. Returns none zero if successful&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | TopicID
|-
| colspan="2" | The topic ID to publish data to&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-f32-icon.png]] - FLOAT
| width="90%" | Data
|-
| colspan="2" | Data to publish&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''
|}


===<span style="font-weight: normal;"><u><tt>PublishInteger</tt></u></span>===
Publishes data to the selected topic ID using a signed long integer value.


Returns none zero if successful
===PublishInteger===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''PublishInteger'''
|-
| colspan="2" | Publishes data to the selected topic ID using a signed long integer value. Returns none zero if successful&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | TopicID
|-
| colspan="2" | The topic ID to publish data to&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-s32-icon.png]] - LONG
| width="90%" | Data
|-
| colspan="2" | Data to publish&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''
|}


'''Parameters'''


:[[Variable Types|BYTE]] ''TopicID''
===PublishString===
::The topic ID to publish data to
{| class="mtx-class-macrotable wikitable"
 
|-
:[[Variable Types|LONG]] ''Data''
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
::Data to publish
| width="90%" class="mtx-class-macrohead" | '''PublishString'''
 
|-
 
| colspan="2" | Publishes data to the selected topic ID using a data string. Returns none zero if successful&nbsp;
'''Return value'''
|-
 
|-
:[[Variable Types|BYTE]]
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | TopicID
 
|-
===<span style="font-weight: normal;"><u><tt>GetPayloadFloat</tt></u></span>===
| colspan="2" | The topic ID to publish data to&nbsp;
Get the Payload of the last received (Read) packet as a floating point value
|-
 
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
'''Parameters'''
| width="90%" | Data
 
|-
:''This macro has no parameters''
| colspan="2" | Data string to publish&nbsp;
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
'''Return value'''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
:[[Variable Types|FLOAT]]
 
 
===<span style="font-weight: normal;"><u><tt>GetPayloadString</tt></u></span>===
Get the Payload of the last received (Read) packet.
 
Returns the number of bytes for the Payload
 
'''Parameters'''
 
:[[Variable Types|<- STRING]] ''Payload''
::''This parameter may be returned back to the caller''
 
:[[Variable Types|BYTE]] ''Size''
::Byte count the Payload buffer
 
 
'''Return value'''
 
:[[Variable Types|BYTE]]
 
 
===<span style="font-weight: normal;"><u><tt>Initialise</tt></u></span>===
Starts up the MQTT component - call this after initialising the NetworkComms component.
 
'''Parameters'''
 
:''This macro has no parameters''
 
 
'''Return value'''
 
:''This call does not return a value''




 
===Read===
==Simulation macro reference==
{| class="mtx-class-macrotable wikitable"
 
|-
''This component does not contain any simulation macros''
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''Read'''
|-
| colspan="2" | Read incoming data. Returns non-zero if packet received. Use GetTopicID and GetPayloadXXX to read the contents.&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''
|}




==Property reference==
==Property reference==
<span style="font-weight: normal;"><u>Host</u></span>


This property is of type ''Line of text'' and can be referenced with the variable name ''MQTT_Client1::HOST''.
{| class="mtx-class-macrotable wikitable"
 
|-
Address of MQTT Broker
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
 
| width="90%" class="mtx-class-macrohead" | '''Properties'''  
<span style="font-weight: normal;"><u>Port</u></span>
|-
 
|-
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''MQTT_Client1::PORT''.
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
 
| width="90%" class="mtx-class-propfolder" | MQTT Properties
Port used by MQTT Broker
|-
 
|-
<span style="font-weight: normal;"><u>Client identifier</u></span>
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | LinkTo
This property is of type ''Line of text'' and can be referenced with the variable name ''MQTT_Client1::CLIENT''.
|-
 
| colspan="2" | &nbsp;
Client identifier (Maximum length 20 characters)
|-
 
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
<span style="font-weight: normal;"><u>Network Timeout</u></span>
| width="90%" | Host
 
|-
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''MQTT_Client1::TIMEOUT''.
| colspan="2" | Address of MQTT Broker Can be an IP Address or URL (URL only supported by some hardware platforms)&nbsp;
 
|-
Maximum time in mS to wait for network responses
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | Port
<span style="font-weight: normal;"><u>Keep Alive</u></span>
|-
 
| colspan="2" | Port used by MQTT Broker Default 1883 for unencrypted access and 8883 for encrypted access.&nbsp;
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''MQTT_Client1::KEEP_ALIVE''.
|-
 
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
The Keep Alive is the maximum time interval that is permitted to elapse  
| width="90%" | Client identifier
 
|-
between the point at which the Client finishes transmitting one Control Packet  
| colspan="2" | Client identifier (Maximum length 20 characters) Must be unique to the broker.&nbsp;
 
|-
and the point it starts sending the next, measured in seconds.
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | Network Timeout
<span style="font-weight: normal;"><u>Network Component</u></span>
|-
 
| colspan="2" | Maximum time in mS to wait for network responses&nbsp;
This property is of type ''Panel object'' and can be referenced with the variable name ''MQTT_Client1::NETWORK_COMPONENT''.
|-
 
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
Pointer to the network communications component providing TCP simulation and abstraction for embedded
| width="90%" | Read Timeout
 
|-
TCP modules.
| colspan="2" | Time to wait in ms when waiting for incoming messages&nbsp;
 
|-
<span style="font-weight: normal;"><u>Authentication</u></span>
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | Keep Alive
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''MQTT_Client1::AUTHENTICATION''.
|-
 
| colspan="2" | The Keep Alive is the maximum time interval that is permitted to elapse between the point at which the Client finishes transmitting one Control Packet and the point it starts sending the next, measured in seconds.&nbsp;
''<span style="color:red;">No additional information</span>''
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Authentication
 
|-
<span style="font-weight: normal;"><u>Number of topics</u></span>
| colspan="2" | Selects if the broker is open or if the broker requires a username and password.&nbsp;
 
|-
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''NumTopics''.
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
 
| width="90%" class="mtx-class-propfolder" | Topics
Sets the number of data topics that can be sent or received
|-
 
|-
<span style="font-weight: normal;"><u>Topic String</u></span>
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Number of topics
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic0''.
|-
 
| colspan="2" | Sets the number of data topics that can be sent or received&nbsp;
''<span style="color:red;">No additional information</span>''
|-
 
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
 
| width="90%" class="mtx-class-propfolder" | Topic ID: 0
 
|-
<span style="font-weight: normal;"><u>Topic Type</u></span>
|-
 
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType0''.
| width="90%" | Topic String
 
|-
''<span style="color:red;">No additional information</span>''
| colspan="2" | &nbsp;
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Topic Type
<span style="font-weight: normal;"><u>Topic String</u></span>
|-
 
| colspan="2" | &nbsp;
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic1''.
|-
 
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
''<span style="color:red;">No additional information</span>''
| width="90%" class="mtx-class-propfolder" | Topic ID: 1
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
<span style="font-weight: normal;"><u>Topic Type</u></span>
| width="90%" | Topic String
 
|-
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType1''.
| colspan="2" | &nbsp;
 
|-
''<span style="color:red;">No additional information</span>''
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | Topic Type
 
|-
 
| colspan="2" | &nbsp;
<span style="font-weight: normal;"><u>Topic String</u></span>
|}
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic2''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType2''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic3''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType3''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic4''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType4''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic5''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType5''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic6''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType6''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic7''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType7''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic8''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType8''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic9''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType9''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic10''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType10''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic String</u></span>
 
This property is of type ''Line of text'' and can be referenced with the variable name ''Topic11''.
 
''<span style="color:red;">No additional information</span>''
 
 
 
<span style="font-weight: normal;"><u>Topic Type</u></span>
 
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''TopicType11''.
 
''<span style="color:red;">No additional information</span>''

Latest revision as of 14:37, 13 July 2026

Author Matrix TSL
Version 1.0
Category Comms: IoT/Cloud


IoT Made Easy component

A component designed to simplify MQTT comms allowing for multiple data streams to be dealt with in a simple manner. Deals with translating values to and from the broker from topic strings into message IDs and numeric values. Works with lots of different MQTT brokers.

Component Source Code

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

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

Detailed description

No detailed description exists yet for this component

Examples

No additional examples







Macro reference

Connect

Connect
Connect to the MQTT Server. Returns the connected state. 0 if not connected, 1 if successful connection, or already connected.  
- BYTE Return


Disconnect

Disconnect
Disconnects from the MQTT server and the network 
- BYTE Return


ErrorAsString

ErrorAsString
 
- BYTE Error
 
- STRING Return


GetPayloadFloat

GetPayloadFloat
Get the Payload of the last received (Read) packet as a floating point value 
- FLOAT Return


GetPayloadInteger

GetPayloadInteger
Get the Payload of the last received (Read) packet as a signed long value 
- LONG Return


GetPayloadString

GetPayloadString
Get the Payload of the last received (Read) packet as a string value 
- STRING Payload
 
- BYTE Size
 
- BYTE Return


GetTopicID

GetTopicID
Compares the topic ID of the last received message with enabled IDs. Returns the topic ID received. 
- BYTE Return


Initialise

Initialise
Starts up the MQTT component - call this after initialising the NetworkComms component. 
- VOID Return


LastError

LastError
Returns the last error 
- BYTE Return


Ping

Ping
Ping packet is sent to the server and checks for a reply. If nothing is sent or received within the keep alive period then a ping is required to keep the connection to the server active. Returns non-zero value if successful  
- BYTE Return


PublishFloat

PublishFloat
Publishes data to the selected topic ID using a floating point value. Returns none zero if successful 
- BYTE TopicID
The topic ID to publish data to 
- FLOAT Data
Data to publish 
- BYTE Return


PublishInteger

PublishInteger
Publishes data to the selected topic ID using a signed long integer value. Returns none zero if successful 
- BYTE TopicID
The topic ID to publish data to 
- LONG Data
Data to publish 
- BYTE Return


PublishString

PublishString
Publishes data to the selected topic ID using a data string. Returns none zero if successful 
- BYTE TopicID
The topic ID to publish data to 
- STRING Data
Data string to publish 
- BYTE Return


Read

Read
Read incoming data. Returns non-zero if packet received. Use GetTopicID and GetPayloadXXX to read the contents. 
- UINT Return


Property reference

Properties
MQTT Properties
LinkTo
 
Host
Address of MQTT Broker Can be an IP Address or URL (URL only supported by some hardware platforms) 
Port
Port used by MQTT Broker Default 1883 for unencrypted access and 8883 for encrypted access. 
Client identifier
Client identifier (Maximum length 20 characters) Must be unique to the broker. 
Network Timeout
Maximum time in mS to wait for network responses 
Read Timeout
Time to wait in ms when waiting for incoming messages 
Keep Alive
The Keep Alive is the maximum time interval that is permitted to elapse between the point at which the Client finishes transmitting one Control Packet and the point it starts sending the next, measured in seconds. 
Authentication
Selects if the broker is open or if the broker requires a username and password. 
Topics
Number of topics
Sets the number of data topics that can be sent or received 
Topic ID: 0
Topic String
 
Topic Type
 
Topic ID: 1
Topic String
 
Topic Type