Flowcode Project File Parser

Ben Rowland 2019 (C) Matrix TSL


Target Device

PIC.16F.16F18877

Constants

SIGNED INT ERROR_COULD_NOT_OPEN_SOCKET     SIGNED INT ERROR_NOT_CONNECTED     SIGNED INT ERROR_MQTT_CONNECT_FAILED     SIGNED INT ERROR_MQTT_DATA_MALFORMED     SIGNED INT ERROR_MQTT_SERVICE_UNAVAILABLE     SIGNED INT ERROR_MQTT_SUBSCRIBE_FAILED     SIGNED INT ERROR_MQTT_WRONG_PROTOCOL     SIGNED INT ERROR_COULD_NOT_SEND_DATA     SIGNED INT ERROR_MQTT_NOT_AUTHORIZED     SIGNED INT ERROR_MQTT_CLIENT_ID_NOT_ALLOWED     SIGNED INT ERROR_COULD_NOT_CONNECT_TO_HOST     SIGNED INT ERROR_NO_REPLY_DATA    

Globals

BYTE PacketSize     BYTE LastError     UNSIGNED INT Pot     STRING Data     BYTE Packet     UNSIGNED INT OldPot     BYTE LastID     BOOL Subscribed     BYTE Connected     UNSIGNED INT DataIn     FLOAT fVar    

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

ErrorAsString

Return:     STRING
Params:     BYTE Error    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

PublishString

Return:     BYTE
Params:     BYTE TopicID     STRING Data    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

MQTT_Read

Return:     UNSIGNED INT

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

MQTT_Subscribe

Return:     BYTE
Params:     STRING Topic    
Vars:     BYTE ReplySize     BYTE Topiclength     BYTE x    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

GetTopicID

Return:     BYTE

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Connect

Return:     BYTE

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

GetPayloadInteger

Return:     SIGNED LONG
Vars:     STRING DataStr    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Ev_Initialise

Return:     UNSIGNED LONG
Vars:     HANDLE handle     STRING TempStr    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

MQTT_Connect

Return:     BYTE
Vars:     BYTE AuthNameLength     STRING AuthName     BYTE AuthPasswordLength     STRING AuthPassword     STRING ClientID     BYTE ClientLength     BYTE ReplySize     BYTE x    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

MQTT_Publish

Return:     BYTE
Params:     STRING Topic     STRING Payload    
Vars:     BYTE PayloadSize     BYTE TopicSize     BYTE x    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

LastError

Return:     BYTE

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Read

Return:     UNSIGNED INT
Vars:     STRING TopicStr    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Disconnect

Return:     BYTE

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Ev_Property

Return:     UNSIGNED LONG
Vars:     BYTE idx     STRING str     HANDLE Handle    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Ev_LoadComplete

Return:     UNSIGNED LONG

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

PublishFloat

Return:     BYTE
Params:     BYTE TopicID     FLOAT Data    
Vars:     STRING DataStr    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Ping

Return:     BYTE
Vars:     BYTE ReplySize    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

PublishInteger

Return:     BYTE
Params:     BYTE TopicID     SIGNED LONG Data    
Vars:     STRING DataStr    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

MQTT_PacketTransfer

Return:     BYTE
Params:     BYTE ExpectReply    
Vars:     UNSIGNED INT Timer    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Ev_Renamed

Return:     UNSIGNED LONG
Vars:     STRING Name    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

GetPayloadFloat

Return:     FLOAT
Vars:     STRING DataStr    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

MQTT_GetTopic

Return:     BYTE
Params:     STRING Topic     BYTE Size    
Vars:     BYTE x    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Ev_Start

Return:     UNSIGNED LONG

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Main

Return:     VOID

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

GetPayloadString

Return:     BYTE
Params:     STRING Payload     BYTE Size    
Vars:     BYTE x    

Your browser does not support the HTML5 canvas tag.

ErrorAsString    /    PublishString    /    MQTT_Read    /    MQTT_Subscribe    /    GetTopicID    /    Connect    /    GetPayloadInteger    /    Ev_Initialise    /    MQTT_Connect    /    MQTT_Publish    /    LastError    /    Read    /    Disconnect    /    Ev_Property    /    Ev_LoadComplete    /    PublishFloat    /    Ping    /    PublishInteger    /    MQTT_PacketTransfer    /    Ev_Renamed    /    GetPayloadFloat    /    MQTT_GetTopic    /    Ev_Start    /    Main    /    GetPayloadString    /    Initialise

Initialise

Return:     VOID

Your browser does not support the HTML5 canvas tag.

Verison History

Version 0.6
12/09/19 BR - Created initial recursive parser
14/09/19 BR - Added support for disabled icons
18/09/19 BR - Fixed decision icon parsing
19/09/19 BR - Added switch icon support
23/09/19 BR - Fixed recursive loop spacing
27/09/19 BR - Further tweaked spacing and added Macro menu
30/09/19 BR - Improved all string spacing
01/10/19 BR - Improved While icon support