Jump to content

Component: TCP/IP (WIZ810MJ W5100) (Comms: Networking): Difference between revisions

From Flowcode Help
No edit summary
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(15 intermediate revisions by 2 users not shown)
Line 5: Line 5:
|-
|-
| width="20%" style="color:gray;" | Version
| width="20%" style="color:gray;" | Version
| 2.0
| 7.7
|-
|-
| width="20%" style="color:gray;" | Category
| width="20%" style="color:gray;" | Category
Line 15: Line 15:
TCP/IP component designed to work with the WIZ810MJ module or W5100 IC from Wiznet, as used on version 2 EB023 E-block and the MIAC Industrial Addon module.
TCP/IP component designed to work with the WIZ810MJ module or W5100 IC from Wiznet, as used on version 2 EB023 E-block and the MIAC Industrial Addon module.


==Component Source Code==
==Version information==


Please click here for the component source code: [https://www.flowcode.co.uk/wikicopy/componentsource/FC_Comp_Source_TCPIP_WIZ810MJ.fcfx FC_Comp_Source_TCPIP_WIZ810MJ.fcfx]
Library Version, Component Version, Date, Author, Info
7, 7.0, 10-04-25, MW, Fixed a bug that prevented TCPClose from working correctly


==Detailed description==
==Detailed description==




Line 26: Line 35:


==Examples==
==Examples==






''<span style="color:red;">No additional examples</span>''
''<span style="color:red;">No additional examples</span>''


==Macro reference==
==Macro reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===CreateIPSocket===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TxSendMyIP'''
| width="90%" class="mtx-class-macrohead" | '''CreateIPSocket'''
|-
|-
| colspan="2" | This macro fills the specified channel's transmit buffer with 4 bytes of data representing this Internet E-Block's IP address as specified in the component's property page.&nbsp;
| colspan="2" | Note that sockets on up to 4 channels can be simultaneously opened and these channels are numbered 0 to 3.  Note that sockets with different modes can be opened on different channels.&nbsp;
|-
|-
|-
|-
Line 46: Line 74:
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" | Protocol
|}
 
 
{| 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;" | '''RxMatchMyIP'''
|-
| colspan="2" | This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's IP address.&nbsp;
|-
|-
| colspan="2" | Specifies which IP protocol to use&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | Broadcast
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Allows broadcast type packets to be sent and received&nbsp;
|-
|-
| 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 69: Line 89:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===CreateMACSocket===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxMatch_4_Bytes'''
| width="90%" class="mtx-class-macrohead" | '''CreateMACSocket'''
|-
|-
| colspan="2" | This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as those passed as parameters.  There are similar functions that check for 2 bytes and 6 bytes.&nbsp;
| colspan="2" | This macro creates a socket for sending and receiving Ethernet data using raw data.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | Promiscuous
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Receive everything (1) or just data bound for your MAC (0)&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte1
| width="90%" | Broadcast
|-
|-
| colspan="2" | Specifies the value of the first byte&nbsp;
| colspan="2" | Allows broadcast messages to be accepted (1) or rejected (0)&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte2
| width="90%" | Error
|-
| colspan="2" | Allowsmessages with errors to be accepted (1) or rejected (0)&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''
|}
 
 
===CreateTCPSocket===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''CreateTCPSocket'''
|-
| colspan="2" | This macro creates a socket for sending and receiving TCP data.&nbsp;
|-
|-
| colspan="2" | Specifies the value of the second byte&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte3
| width="90%" | Channel
|-
|-
| colspan="2" | Specifies the value of the third byte&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Byte4
| width="90%" | Src_Port
|-
|-
| colspan="2" | Specifies the value of the fourth byte&nbsp;
| colspan="2" | Port Number&nbsp;
|-
|-
| 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 107: Line 142:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===CreateUDPSocket===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetMyIP'''
| width="90%" class="mtx-class-macrohead" | '''CreateUDPSocket'''
|-
|-
| colspan="2" | This macro sets up the Internet E-Block's own IP address.  In most circumstances, this macro will not be required as the IP address setting in the component property page will remain constant throughout your application.&nbsp;
| colspan="2" | This macro creates a socket for sending and receiving UDP data.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP0
| width="90%" | Channel
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Src_Port
|-
|-
| colspan="2" | First Byte of IP address&nbsp;
| colspan="2" | Port Number&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP1
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===GetSocketStatus===
{| class="mtx-class-macrotable wikitable"
|-
|-
| colspan="2" | Second Byte of IP address&nbsp;
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''GetSocketStatus'''
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| colspan="2" | This returns the state of the requested channel's socket.&nbsp;
| width="90%" | IP2
|-
|-
| colspan="2" | Third Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP3
| width="90%" | Channel
|-
|-
| colspan="2" | Fourth Byte of IP address&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===Initialise===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TxSendString'''
| width="90%" class="mtx-class-macrohead" | '''Initialise'''
|-
|-
| colspan="2" | This macro fills the specified channel's transmit buffer with data. It can fill the buffer with a string of information.&nbsp;
| colspan="2" | Resets and initialises the Internet E-Block. It sets up the gateway address, subnet mask, device IP address and device MAC address as defined in the properties of the Flowcode component. This macro must be called before any other TCP_IP component macros &nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
 
 
===MIAC_Module_GetData===
{| class="mtx-class-macrotable wikitable"
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''MIAC_Module_GetData'''
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| colspan="2" | &nbsp;
| width="90%" | Data
|-
|-
| colspan="2" | Data byte to append to Tx buffer.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Length
| width="90%" | Index
|-
|-
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===MIAC_Module_Message===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxReadHeader'''
| width="90%" class="mtx-class-macrohead" | '''MIAC_Module_Message'''
|-
|-
| colspan="2" | Once data in a particular channel has been received, the header will be filled with information about the received data.  This macro will return the information in the header.  The idx parameter specifies which byte of information in the header to read &nbsp;
| colspan="2" | &nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Channel
| width="90%" | CAN_ID
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Idx
| width="90%" | CMD_ID
|-
|-
| colspan="2" | Specifies the byte index to return&nbsp;
| colspan="2" | &nbsp;
|-
|-
| 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 191: Line 242:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===MIAC_Module_PushData===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxSkipBytes'''
| width="90%" class="mtx-class-macrohead" | '''MIAC_Module_PushData'''
|-
|-
| colspan="2" | Often when receiving data packets, it may be necessary to ignore large sections of the data.  This can be achieved by reading each byte individually (and ignoring the returned data), but a better way is to use this Rx_skipbytes macro.&nbsp;
| colspan="2" | &nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | Data
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Count
|-
| colspan="2" | Specifies how many bytes to skip&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 214: Line 261:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===MIAC_Module_SetData===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MIAC_Module_SetData'''
| width="90%" class="mtx-class-macrohead" | '''MIAC_Module_SetData'''
|-
|-
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
Line 262: Line 310:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxDataAvailable===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateIPSocket'''
| width="90%" class="mtx-class-macrohead" | '''RxDataAvailable'''
|-
|-
| colspan="2" | Note that sockets on up to 4 channels can be simultaneously opened and these channels are numbered 0 to 3Note that sockets with different modes can be opened on different channels.&nbsp;
| colspan="2" | This macro is used to check whether or not data has been received by the Internet E-Block. A return value of zero indicated that no data has been receivedA positive return value indicates that data is available.&nbsp;
|-
|-
|-
|-
Line 274: Line 323:
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Protocol
|-
| colspan="2" | Specifies which IP protocol to use&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Broadcast
|-
| colspan="2" | Allows broadcast type packets to be sent and received&nbsp;
|-
|-
| 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 290: Line 329:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxDataSize===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetDestination'''
| width="90%" class="mtx-class-macrohead" | '''RxDataSize'''
|-
|-
| colspan="2" | This is used in IP and UDP modes to set the destination of the intended data transfer.  The destination IP address needs to be set for both IP and UDP modes.&nbsp;
| colspan="2" | This macro is used to detect the size of data collected by the Rx_data_available macro.&nbsp;
|-
|-
|-
|-
Line 303: Line 343:
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Dst_IP0
|-
| colspan="2" | Specifies the first byte of an IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Dst_IP1
|-
| colspan="2" | Specifies the second byte of an IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Dst_IP2
|-
| colspan="2" | Specifies the third byte of an IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Dst_IP3
|-
| colspan="2" | Specifies the fourth byte of an IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Dst_Port
|-
| colspan="2" | Destination Port&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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxFlushData===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''MIAC_Module_GetData'''
| width="90%" class="mtx-class-macrohead" | '''RxFlushData'''
|-
|-
| colspan="2" | &nbsp;
| colspan="2" | Once data reception has been completed, this macro should be called to discard the data packet and allow other data packets to be read.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Index
| width="90%" | Channel
|-
|-
| colspan="2" | &nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| 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-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxMatchMyIP===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TxStart'''
| width="90%" class="mtx-class-macrohead" | '''RxMatchMyIP'''
|-
|-
| colspan="2" | This macro indicates the start of data transmission for the specified buffer.  In TCP mode, data transmission can only begin once the socket has become established.  In other modes, data transmission can occur as soon as the socket has been opened.&nbsp;
| colspan="2" | This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's IP address.&nbsp;
|-
|-
|-
|-
Line 363: Line 380:
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&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''
|}
{| 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;" | '''MIAC_Module_Message'''
|-
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | CAN_ID
|-
| colspan="2" | &nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | CMD_ID
|-
| colspan="2" | &nbsp;
|-
|-
| 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 392: Line 386:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxMatchMyMAC===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxReadByte'''
| width="90%" class="mtx-class-macrohead" | '''RxMatchMyMAC'''
|-
|-
| colspan="2" | A call to this macro will return a byte of data in the reception buffer of the specified channel.  It will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte &nbsp;
| colspan="2" | This macro returns a non-zero value when the next 6 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's MAC address entered in the component's property page.&nbsp;
|-
|-
|-
|-
Line 410: Line 405:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxMatch_2_Bytes===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateUDPSocket'''
| width="90%" class="mtx-class-macrohead" | '''RxMatch_2_Bytes'''
|-
|-
| colspan="2" | This macro creates a socket for sending and receiving UDP data.&nbsp;
| colspan="2" | This macro returns a non-zero value when the next 2 bytes of data in the specified channel's reception buffer are the same as those passed as parameters.  There are similar functions that check for 4 bytes and 6 bytes.&nbsp;
|-
|-
|-
|-
Line 423: Line 419:
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Src_Port
| width="90%" | Byte1
|-
| colspan="2" | Specifies the value of the first byte&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte2
|-
|-
| colspan="2" | Port Number&nbsp;
| colspan="2" | Specifies the value of the second byte&nbsp;
|-
|-
| 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 433: Line 434:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxMatch_4_Bytes===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxMatch_6_Bytes'''
| width="90%" class="mtx-class-macrohead" | '''RxMatch_4_Bytes'''
|-
|-
| colspan="2" | This macro returns a non-zero value when the next 6 bytes of data in the specified channel's reception buffer are the same as those passed as parameters.  There are similar functions that check for 2 bytes and 4 bytes.&nbsp;
| colspan="2" | This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as those passed as parameters.  There are similar functions that check for 2 bytes and 6 bytes.&nbsp;
|-
|-
|-
|-
Line 465: Line 467:
|-
|-
| colspan="2" | Specifies the value of the fourth byte&nbsp;
| colspan="2" | Specifies the value of the fourth byte&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte5
|-
| colspan="2" | Specifies the value of the fifth byte&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte6
|-
| colspan="2" | Specifies the value of the sixth byte&nbsp;
|-
|-
| 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 481: Line 473:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxMatch_6_Bytes===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxMatch_2_Bytes'''
| width="90%" class="mtx-class-macrohead" | '''RxMatch_6_Bytes'''
|-
|-
| colspan="2" | This macro returns a non-zero value when the next 2 bytes of data in the specified channel's reception buffer are the same as those passed as parameters.  There are similar functions that check for 4 bytes and 6 bytes.&nbsp;
| colspan="2" | This macro returns a non-zero value when the next 6 bytes of data in the specified channel's reception buffer are the same as those passed as parameters.  There are similar functions that check for 2 bytes and 4 bytes.&nbsp;
|-
|-
|-
|-
Line 504: Line 497:
| colspan="2" | Specifies the value of the second byte&nbsp;
| colspan="2" | Specifies the value of the second byte&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" | Byte3
|}
 
 
{| 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;" | '''TxEnd'''
|-
| colspan="2" | Once the transmit buffer has been filled with data, call this macro to actually send the data.&nbsp;
|-
|-
| colspan="2" | Specifies the value of the third byte&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | Byte4
|-
| colspan="2" | Specifies the communications channel 0-3&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''
|}
 
 
{| 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;" | '''RxReadString'''
|-
| colspan="2" | A call to this macro will return a string of data in the reception buffer of the specified channel.  It will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte &nbsp;
|-
|-
| colspan="2" | Specifies the value of the fourth byte&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | Byte5
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the value of the fifth byte&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Length
| width="90%" | Byte6
|-
|-
| colspan="2" | &nbsp;
| colspan="2" | Specifies the value of the sixth byte&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxReadByte===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateTCPSocket'''
| width="90%" class="mtx-class-macrohead" | '''RxReadByte'''
|-
|-
| colspan="2" | This macro creates a socket for sending and receiving TCP data.&nbsp;
| colspan="2" | A call to this macro will return a byte of data in the reception buffer of the specified channel. It will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte &nbsp;
|-
|-
|-
|-
Line 562: Line 535:
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Src_Port
|-
| colspan="2" | Port Number&nbsp;
|-
|-
| 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 573: Line 541:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxReadHeader===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxDataAvailable'''
| width="90%" class="mtx-class-macrohead" | '''RxReadHeader'''
|-
|-
| colspan="2" | This macro is used to check whether or not data has been received by the Internet E-Block. A return value of zero indicated that no data has been receivedA positive return value indicates that data is available.&nbsp;
| colspan="2" | Once data in a particular channel has been received, the header will be filled with information about the received data.  This macro will return the information in the header. The idx parameter specifies which byte of information in the header to read &nbsp;
|-
|-
|-
|-
Line 585: Line 554:
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&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''
|}
{| 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;" | '''MIAC_Module_PushData'''
|-
| colspan="2" | &nbsp;
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Data
| width="90%" | Idx
|-
|-
| colspan="2" | &nbsp;
| colspan="2" | Specifies the byte index to return&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxReadString===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TxSendByte'''
| width="90%" class="mtx-class-macrohead" | '''RxReadString'''
|-
|-
| colspan="2" | This macro fills the specified channel's transmit buffer with data.  It can fill the buffer with a single byte of data, or with a string of information.&nbsp;
| colspan="2" | A call to this macro will return a string of data in the reception buffer of the specified channel.  It will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte &nbsp;
|-
|-
|-
|-
Line 623: Line 580:
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Data
| width="90%" | Length
|-
|-
| colspan="2" | Data byte to append to Tx buffer.&nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| 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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===RxSkipBytes===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TCPListen'''
| width="90%" class="mtx-class-macrohead" | '''RxSkipBytes'''
|-
|-
| colspan="2" | This macro puts a previously opened TCP channel in "passive open" mode.  This is the required mode when writing a TCP server application (e.g. a web server to display HTML web pages).&nbsp;
| colspan="2" | Often when receiving data packets, it may be necessary to ignore large sections of the data.  This can be achieved by reading each byte individually (and ignoring the returned data), but a better way is to use this Rx_skipbytes macro.&nbsp;
|-
|-
|-
|-
Line 644: Line 602:
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&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''
|}
{| 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;" | '''TxSendByte_Sim'''
|-
| colspan="2" | This macro fills the specified channel's transmit buffer with data.  It can fill the buffer with a single byte of data, or with a string of information.&nbsp;
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | Count
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies how many bytes to skip&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Data
|-
| colspan="2" | Data byte to append to Tx buffer.&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 673: Line 613:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SetDestination===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxFlushData'''
| width="90%" class="mtx-class-macrohead" | '''SetDestination'''
|-
|-
| colspan="2" | Once data reception has been completed, this macro should be called to discard the data packet and allow other data packets to be read.&nbsp;
| colspan="2" | This is used in IP and UDP modes to set the destination of the intended data transferThe destination IP address needs to be set for both IP and UDP modes.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
|-
| colspan="2" | Specifies the communications channel 0-3&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''
|}
 
 
{| 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;" | '''TCPConnect'''
|-
| colspan="2" | This macro puts a previously opened TCP channel in "active open" modeThis is the required mode when writing a TCP client application (e.g. using SMTP to send an email).&nbsp;
|-
|-
|-
|-
Line 707: Line 630:
| width="90%" | Dst_IP0
| width="90%" | Dst_IP0
|-
|-
| colspan="2" | First Byte of IP address&nbsp;
| colspan="2" | Specifies the first byte of an IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Dst_IP1
| width="90%" | Dst_IP1
|-
|-
| colspan="2" | Second Byte of IP address&nbsp;
| colspan="2" | Specifies the second byte of an IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Dst_IP2
| width="90%" | Dst_IP2
|-
|-
| colspan="2" | Third Byte of IP address&nbsp;
| colspan="2" | Specifies the third byte of an IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Dst_IP3
| width="90%" | Dst_IP3
|-
|-
| colspan="2" | Fourth Byte of IP address&nbsp;
| colspan="2" | Specifies the fourth byte of an IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
Line 734: Line 657:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SetGateway===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxReadByte_Sim'''
| width="90%" class="mtx-class-macrohead" | '''SetGateway'''
|-
|-
| colspan="2" | A call to this macro will return a byte of data in the reception buffer of the specified channelIt will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte &nbsp;
| colspan="2" | This macro sets up the Internet E-Block's Gateway addressIn most circumstances, this macro will not be required as the gateway address setting in the component property page will remain constant throughout your application.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | IP0
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | First Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" | IP1
|}
 
 
{| 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;" | '''RxMatchMyMAC'''
|-
| colspan="2" | This macro returns a non-zero value when the next 6 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's MAC address entered in the component's property page.&nbsp;
|-
|-
| colspan="2" | Second Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | IP2
|-
| colspan="2" | Specifies the communications channel 0-3&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''
|}
 
 
{| 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;" | '''RxFlushData_Sim'''
|-
| colspan="2" | Once data reception has been completed, this macro should be called to discard the data packet and allow other data packets to be read.&nbsp;
|-
|-
| colspan="2" | Third Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | IP3
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Fourth Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 788: Line 691:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SetMACAddress===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxDataSize'''
| width="90%" class="mtx-class-macrohead" | '''SetMACAddress'''
|-
|-
| colspan="2" | This macro is used to detect the size of data collected by the Rx_data_available macro.&nbsp;
| colspan="2" | This macro sets up the Internet E-Block's MAC address.  In most circumstances, this macro will not be required as the MAC address setting in the component property page will remain constant throughout your application.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | MAC0
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | First Byte of address&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" | MAC1
|}
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| colspan="2" | Second Byte of address&nbsp;
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateMACSocket'''
|-
|-
| colspan="2" | This macro creates a socket for sending and receiving Ethernet data using raw data.&nbsp;
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | MAC2
|-
|-
| colspan="2" | Third Byte of address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Promiscuous
| width="90%" | MAC3
|-
|-
| colspan="2" | Receive everything (1) or just data bound for your MAC (0)&nbsp;
| colspan="2" | Fourth Byte of address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Broadcast
| width="90%" | MAC4
|-
|-
| colspan="2" | Allows broadcast messages to be accepted (1) or rejected (0)&nbsp;
| colspan="2" | Fourth Byte of address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Error
| width="90%" | MAC5
|-
|-
| colspan="2" | Allowsmessages with errors to be accepted (1) or rejected (0)&nbsp;
| colspan="2" | Fifth Byte of address&nbsp;
|-
|-
| 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-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SetMyIP===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateUDPSocket_Sim'''
| width="90%" class="mtx-class-macrohead" | '''SetMyIP'''
|-
|-
| colspan="2" | This macro creates a socket for sending and receiving UDP data.&nbsp;
| colspan="2" | This macro sets up the Internet E-Block's own IP address.  In most circumstances, this macro will not be required as the IP address setting in the component property page will remain constant throughout your application.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | IP0
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | First Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Src_Port
| width="90%" | IP1
|-
|-
| colspan="2" | Port Number&nbsp;
| colspan="2" | Second Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" | IP2
|}
 
 
{| 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;" | '''TxSendMyMAC'''
|-
| colspan="2" | This macro fills the specified channel's transmit buffer with 6 bytes of data representing this Internet E-Block's MAC address as specified in the component's property page.&nbsp;
|-
|-
| colspan="2" | Third Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Channel
| width="90%" | IP3
|-
|-
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Fourth Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 875: Line 769:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===SetSubnetMask===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetMACAddress'''
| width="90%" class="mtx-class-macrohead" | '''SetSubnetMask'''
|-
|-
| colspan="2" | This macro sets up the Internet E-Block's MAC address.  In most circumstances, this macro will not be required as the MAC address setting in the component property page will remain constant throughout your application.&nbsp;
| colspan="2" | This macro sets up the Internet E-Block's Subnet Mask.  In most circumstances, this macro will not be required as the subnet mask setting in the component property page will remain constant throughout your application.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | MAC0
| width="90%" | IP0
|-
|-
| colspan="2" | First Byte of address&nbsp;
| colspan="2" | First Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | MAC1
| width="90%" | IP1
|-
|-
| colspan="2" | Second Byte of address&nbsp;
| colspan="2" | Second Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | MAC2
| width="90%" | IP2
|-
|-
| colspan="2" | Third Byte of address&nbsp;
| colspan="2" | Third Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | MAC3
| width="90%" | IP3
|-
| colspan="2" | Fourth Byte of IP address&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''
|}
 
 
===TCPClose===
{| class="mtx-class-macrotable wikitable"
|-
|-
| colspan="2" | Fourth Byte of address&nbsp;
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''TCPClose'''
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| colspan="2" | When an established TCP connection has finished transmission of data, either the local application (i.e. your code) or the remote application (i.e. the application at the other end of the connection) can initiate closure of the socket.&nbsp;
| width="90%" | MAC4
|-
|-
| colspan="2" | Fourth Byte of address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | MAC5
| width="90%" | Channel
|-
|-
| colspan="2" | Fifth Byte of address&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 918: Line 822:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===TCPConnect===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxMatch_4_Bytes_Sim'''
| width="90%" class="mtx-class-macrohead" | '''TCPConnect'''
|-
|-
| colspan="2" | This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as those passed as parameters. There are similar functions that check for 2 bytes and 6 bytes.&nbsp;
| colspan="2" | This macro puts a previously opened TCP channel in "active open" mode.  This is the required mode when writing a TCP client application (e.g. using SMTP to send an email).&nbsp;
|-
|-
|-
|-
Line 932: Line 837:
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte1
| width="90%" | Dst_IP0
|-
|-
| colspan="2" | Specifies the value of the first byte&nbsp;
| colspan="2" | First Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte2
| width="90%" | Dst_IP1
|-
|-
| colspan="2" | Specifies the value of the second byte&nbsp;
| colspan="2" | Second Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte3
| width="90%" | Dst_IP2
|-
|-
| colspan="2" | Specifies the value of the third byte&nbsp;
| colspan="2" | Third Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte4
| width="90%" | Dst_IP3
|-
| colspan="2" | Fourth Byte of IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| width="90%" | Dst_Port
|-
|-
| colspan="2" | Specifies the value of the fourth byte&nbsp;
| colspan="2" | Destination Port&nbsp;
|-
|-
| 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 956: Line 866:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===TCPListen===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxDataSize_Sim'''
| width="90%" class="mtx-class-macrohead" | '''TCPListen'''
|-
|-
| colspan="2" | This macro is used to detect the size of data collected by the Rx_data_available macro.&nbsp;
| colspan="2" | This macro puts a previously opened TCP channel in "passive open" mode.  This is the required mode when writing a TCP server application (e.g. a web server to display HTML web pages).&nbsp;
|-
|-
|-
|-
Line 969: Line 880:
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| 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-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===TxEnd===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetSubnetMask'''
| width="90%" class="mtx-class-macrohead" | '''TxEnd'''
|-
|-
| colspan="2" | This macro sets up the Internet E-Block's Subnet Mask.  In most circumstances, this macro will not be required as the subnet mask setting in the component property page will remain constant throughout your application.&nbsp;
| colspan="2" | Once the transmit buffer has been filled with data, call this macro to actually send the data.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP0
| width="90%" | Channel
|-
|-
| colspan="2" | First Byte of IP address&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP1
|-
| colspan="2" | Second Byte of IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP2
|-
| colspan="2" | Third Byte of IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP3
|-
| colspan="2" | Fourth Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
Line 1,007: Line 904:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===TxSendByte===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxMatch_2_Bytes_Sim'''
| width="90%" class="mtx-class-macrohead" | '''TxSendByte'''
|-
|-
| colspan="2" | This macro returns a non-zero value when the next 2 bytes of data in the specified channel's reception buffer are the same as those passed as parametersThere are similar functions that check for 4 bytes and 6 bytes.&nbsp;
| colspan="2" | This macro fills the specified channel's transmit buffer with dataIt can fill the buffer with a single byte of data, or with a string of information.&nbsp;
|-
|-
|-
|-
Line 1,021: Line 919:
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Byte1
| width="90%" | Data
|-
|-
| colspan="2" | Specifies the value of the first byte&nbsp;
| colspan="2" | Data byte to append to Tx buffer.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" | Byte2
|-
| colspan="2" | Specifies the value of the second byte&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''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===TxSendMyIP===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''RxMatchMyMAC_Sim'''
| width="90%" class="mtx-class-macrohead" | '''TxSendMyIP'''
|-
|-
| colspan="2" | This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's IP address.&nbsp;
| colspan="2" | This macro fills the specified channel's transmit buffer with 4 bytes of data representing this Internet E-Block's IP address as specified in the component's property page.&nbsp;
|-
|-
|-
|-
Line 1,048: Line 942:
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| 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-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===TxSendMyMAC===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TCPClose'''
| width="90%" class="mtx-class-macrohead" | '''TxSendMyMAC'''
|-
|-
| colspan="2" | When an established TCP connection has finished transmission of data, either the local application (i.e. your code) or the remote application (i.e. the application at the other end of the connection) can initiate closure of the socket.&nbsp;
| colspan="2" | This macro fills the specified channel's transmit buffer with 6 bytes of data representing this Internet E-Block's MAC address as specified in the component's property page.&nbsp;
|-
|-
|-
|-
Line 1,071: Line 966:




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===TxSendString===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetSocketStatus'''
| width="90%" class="mtx-class-macrohead" | '''TxSendString'''
|-
|-
| colspan="2" | This returns the state of the requested channel's socket.&nbsp;
| colspan="2" | This macro fills the specified channel's transmit buffer with data.  It can fill the buffer with a string of information.&nbsp;
|-
|-
|-
|-
Line 1,084: Line 980:
| colspan="2" | Specifies the communications channel 0-3&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" | Data
|}
 
 
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| colspan="2" | Data byte to append to Tx buffer.&nbsp;
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
|-
|-
| colspan="2" | Resets and initialises the Internet E-Block. It sets up the gateway address, subnet mask, device IP address and device MAC address as defined in the properties of the Flowcode component. This macro must be called before any other TCP_IP component macros &nbsp;
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Length
|-
|-
| colspan="2" | &nbsp;
|-
|-
| 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-void-icon.png]] - VOID
| width="90%" style="border-top: 2px solid #000;" | ''Return''
| width="90%" style="border-top: 2px solid #000;" | ''Return''
|}
|}




{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
===TxStart===
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetGateway'''
| width="90%" class="mtx-class-macrohead" | '''TxStart'''
|-
|-
| colspan="2" | This macro sets up the Internet E-Block's Gateway address.  In most circumstances, this macro will not be required as the gateway address setting in the component property page will remain constant throughout your application.&nbsp;
| colspan="2" | This macro indicates the start of data transmission for the specified buffer.  In TCP mode, data transmission can only begin once the socket has become established.  In other modes, data transmission can occur as soon as the socket has been opened.&nbsp;
|-
|-
|-
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP0
| width="90%" | Channel
|-
|-
| colspan="2" | First Byte of IP address&nbsp;
| colspan="2" | Specifies the communications channel 0-3&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP1
|-
| colspan="2" | Second Byte of IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP2
|-
| colspan="2" | Third Byte of IP address&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | IP3
|-
| colspan="2" | Fourth Byte of IP address&nbsp;
|-
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| 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''
|}
|}




==Property reference==
==Property reference==


{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
{| class="mtx-class-macrotable wikitable"
|-
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
| width="90%" class="mtx-class-macrohead" | '''Properties'''  
|-
|-
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections
| width="90%" class="mtx-class-propfolder" | Connections
|-
|-
|-
|-
Line 1,179: Line 1,056:
| colspan="2" | Chip Select / Slave Select Pin  Master Mode: General purpose output pin used to select the remote SPI device. Slave Mode: Hardware chip select pin input used to select the SPI device. &nbsp;
| colspan="2" | Chip Select / Slave Select Pin  Master Mode: General purpose output pin used to select the remote SPI device. Slave Mode: Hardware chip select pin input used to select the SPI device. &nbsp;
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Gateway IP
| width="90%" class="mtx-class-propfolder" | Gateway IP
|-
|-
|-
|-
Line 1,203: Line 1,080:
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Subnet Mask
| width="90%" class="mtx-class-propfolder" | Subnet Mask
|-
|-
|-
|-
Line 1,227: Line 1,104:
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | IP Address
| width="90%" class="mtx-class-propfolder" | IP Address
|-
|-
|-
|-
Line 1,251: Line 1,128:
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | MAC Address
| width="90%" class="mtx-class-propfolder" | MAC Address
|-
|-
|-
|-
Line 1,285: Line 1,162:
| colspan="2" | &nbsp;
| colspan="2" | &nbsp;
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
| width="90%" class="mtx-class-propfolder" | Simulation
|-
|-
|-
|-
Line 1,294: Line 1,171:
| colspan="2" | Decides how to perform the simulation of the component. TCP IP - Communicates using the Windows TCP IP communications DLL SPI / Injector - Communicates using the CAL SPI to allow the communications to be analysed and debugged.&nbsp;
| colspan="2" | Decides how to perform the simulation of the component. TCP IP - Communicates using the Windows TCP IP communications DLL SPI / Injector - Communicates using the CAL SPI to allow the communications to be analysed and debugged.&nbsp;
|-
|-
| width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" style="background-color:#EAE1EA; color:#4B008D;" | TCP Simulation
| width="90%" class="mtx-class-propfolder" | TCP Simulation
|-
|-
|-
|-
Line 1,303: Line 1,180:
| colspan="2" | List of network interfaces connected to the PC.  Sets which interface we are communicating via.&nbsp;
| colspan="2" | List of network interfaces connected to the PC.  Sets which interface we are communicating via.&nbsp;
|}
|}
==Component Source Code==
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_TCPIP_WIZ810MJ.fcfx FC_Comp_Source_TCPIP_WIZ810MJ.fcfx]
Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_TCPIP_WIZ810MJ.fcfx FC_Comp_Source_TCPIP_WIZ810MJ.fcfx]

Latest revision as of 14:37, 13 July 2026

Author Matrix Ltd.
Version 7.7
Category Comms: Networking


TCP/IP (WIZ810MJ W5100) component

TCP/IP component designed to work with the WIZ810MJ module or W5100 IC from Wiznet, as used on version 2 EB023 E-block and the MIAC Industrial Addon module.

Version information

Library Version, Component Version, Date, Author, Info
7, 7.0, 10-04-25, MW, Fixed a bug that prevented TCPClose from working correctly

Detailed description

No detailed description exists yet for this component

Examples

No additional examples






Macro reference

CreateIPSocket

CreateIPSocket
Note that sockets on up to 4 channels can be simultaneously opened and these channels are numbered 0 to 3. Note that sockets with different modes can be opened on different channels. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Protocol
Specifies which IP protocol to use 
- BYTE Broadcast
Allows broadcast type packets to be sent and received 
- BYTE Return


CreateMACSocket

CreateMACSocket
This macro creates a socket for sending and receiving Ethernet data using raw data. 
- BYTE Promiscuous
Receive everything (1) or just data bound for your MAC (0) 
- BYTE Broadcast
Allows broadcast messages to be accepted (1) or rejected (0) 
- BYTE Error
Allowsmessages with errors to be accepted (1) or rejected (0) 
- BYTE Return


CreateTCPSocket

CreateTCPSocket
This macro creates a socket for sending and receiving TCP data. 
- BYTE Channel
Specifies the communications channel 0-3 
- UINT Src_Port
Port Number 
- BYTE Return


CreateUDPSocket

CreateUDPSocket
This macro creates a socket for sending and receiving UDP data. 
- BYTE Channel
Specifies the communications channel 0-3 
- UINT Src_Port
Port Number 
- BYTE Return


GetSocketStatus

GetSocketStatus
This returns the state of the requested channel's socket. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Return


Initialise

Initialise
Resets and initialises the Internet E-Block. It sets up the gateway address, subnet mask, device IP address and device MAC address as defined in the properties of the Flowcode component. This macro must be called before any other TCP_IP component macros  
- BYTE Return


MIAC_Module_GetData

MIAC_Module_GetData
 
- BYTE Index
 
- BYTE Return


MIAC_Module_Message

MIAC_Module_Message
 
- UINT CAN_ID
 
- UINT CMD_ID
 
- BYTE Return


MIAC_Module_PushData

MIAC_Module_PushData
 
- BYTE Data
 
- VOID Return


MIAC_Module_SetData

MIAC_Module_SetData
 
- BYTE Count
 
- BYTE D0
 
- BYTE D1
 
- BYTE D2
 
- BYTE D3
 
- BYTE D4
 
- BYTE D5
 
- VOID Return


RxDataAvailable

RxDataAvailable
This macro is used to check whether or not data has been received by the Internet E-Block. A return value of zero indicated that no data has been received. A positive return value indicates that data is available. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Return


RxDataSize

RxDataSize
This macro is used to detect the size of data collected by the Rx_data_available macro. 
- BYTE Channel
Specifies the communications channel 0-3 
- UINT Return


RxFlushData

RxFlushData
Once data reception has been completed, this macro should be called to discard the data packet and allow other data packets to be read. 
- BYTE Channel
Specifies the communications channel 0-3 
- VOID Return


RxMatchMyIP

RxMatchMyIP
This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's IP address. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Return


RxMatchMyMAC

RxMatchMyMAC
This macro returns a non-zero value when the next 6 bytes of data in the specified channel's reception buffer are the same as the Internet E-block's MAC address entered in the component's property page. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Return


RxMatch_2_Bytes

RxMatch_2_Bytes
This macro returns a non-zero value when the next 2 bytes of data in the specified channel's reception buffer are the same as those passed as parameters. There are similar functions that check for 4 bytes and 6 bytes. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Byte1
Specifies the value of the first byte 
- BYTE Byte2
Specifies the value of the second byte 
- BYTE Return


RxMatch_4_Bytes

RxMatch_4_Bytes
This macro returns a non-zero value when the next 4 bytes of data in the specified channel's reception buffer are the same as those passed as parameters. There are similar functions that check for 2 bytes and 6 bytes. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Byte1
Specifies the value of the first byte 
- BYTE Byte2
Specifies the value of the second byte 
- BYTE Byte3
Specifies the value of the third byte 
- BYTE Byte4
Specifies the value of the fourth byte 
- BYTE Return


RxMatch_6_Bytes

RxMatch_6_Bytes
This macro returns a non-zero value when the next 6 bytes of data in the specified channel's reception buffer are the same as those passed as parameters. There are similar functions that check for 2 bytes and 4 bytes. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Byte1
Specifies the value of the first byte 
- BYTE Byte2
Specifies the value of the second byte 
- BYTE Byte3
Specifies the value of the third byte 
- BYTE Byte4
Specifies the value of the fourth byte 
- BYTE Byte5
Specifies the value of the fifth byte 
- BYTE Byte6
Specifies the value of the sixth byte 
- BYTE Return


RxReadByte

RxReadByte
A call to this macro will return a byte of data in the reception buffer of the specified channel. It will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte  
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Return


RxReadHeader

RxReadHeader
Once data in a particular channel has been received, the header will be filled with information about the received data. This macro will return the information in the header. The idx parameter specifies which byte of information in the header to read  
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Idx
Specifies the byte index to return 
- BYTE Return


RxReadString

RxReadString
A call to this macro will return a string of data in the reception buffer of the specified channel. It will also internally increment a pointer to that data so that the next call to 'Rx_readbyte' (or any other read function) will read the next byte  
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Length
 
- STRING Return


RxSkipBytes

RxSkipBytes
Often when receiving data packets, it may be necessary to ignore large sections of the data. This can be achieved by reading each byte individually (and ignoring the returned data), but a better way is to use this Rx_skipbytes macro. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Count
Specifies how many bytes to skip 
- VOID Return


SetDestination

SetDestination
This is used in IP and UDP modes to set the destination of the intended data transfer. The destination IP address needs to be set for both IP and UDP modes. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Dst_IP0
Specifies the first byte of an IP address 
- BYTE Dst_IP1
Specifies the second byte of an IP address 
- BYTE Dst_IP2
Specifies the third byte of an IP address 
- BYTE Dst_IP3
Specifies the fourth byte of an IP address 
- UINT Dst_Port
Destination Port 
- BYTE Return


SetGateway

SetGateway
This macro sets up the Internet E-Block's Gateway address. In most circumstances, this macro will not be required as the gateway address setting in the component property page will remain constant throughout your application. 
- BYTE IP0
First Byte of IP address 
- BYTE IP1
Second Byte of IP address 
- BYTE IP2
Third Byte of IP address 
- BYTE IP3
Fourth Byte of IP address 
- VOID Return


SetMACAddress

SetMACAddress
This macro sets up the Internet E-Block's MAC address. In most circumstances, this macro will not be required as the MAC address setting in the component property page will remain constant throughout your application. 
- BYTE MAC0
First Byte of address 
- BYTE MAC1
Second Byte of address 
- BYTE MAC2
Third Byte of address 
- BYTE MAC3
Fourth Byte of address 
- BYTE MAC4
Fourth Byte of address 
- BYTE MAC5
Fifth Byte of address 
- VOID Return


SetMyIP

SetMyIP
This macro sets up the Internet E-Block's own IP address. In most circumstances, this macro will not be required as the IP address setting in the component property page will remain constant throughout your application. 
- BYTE IP0
First Byte of IP address 
- BYTE IP1
Second Byte of IP address 
- BYTE IP2
Third Byte of IP address 
- BYTE IP3
Fourth Byte of IP address 
- VOID Return


SetSubnetMask

SetSubnetMask
This macro sets up the Internet E-Block's Subnet Mask. In most circumstances, this macro will not be required as the subnet mask setting in the component property page will remain constant throughout your application. 
- BYTE IP0
First Byte of IP address 
- BYTE IP1
Second Byte of IP address 
- BYTE IP2
Third Byte of IP address 
- BYTE IP3
Fourth Byte of IP address 
- VOID Return


TCPClose

TCPClose
When an established TCP connection has finished transmission of data, either the local application (i.e. your code) or the remote application (i.e. the application at the other end of the connection) can initiate closure of the socket. 
- BYTE Channel
Specifies the communications channel 0-3 
- VOID Return


TCPConnect

TCPConnect
This macro puts a previously opened TCP channel in "active open" mode. This is the required mode when writing a TCP client application (e.g. using SMTP to send an email). 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Dst_IP0
First Byte of IP address 
- BYTE Dst_IP1
Second Byte of IP address 
- BYTE Dst_IP2
Third Byte of IP address 
- BYTE Dst_IP3
Fourth Byte of IP address 
- UINT Dst_Port
Destination Port 
- BYTE Return


TCPListen

TCPListen
This macro puts a previously opened TCP channel in "passive open" mode. This is the required mode when writing a TCP server application (e.g. a web server to display HTML web pages). 
- BYTE Channel
Specifies the communications channel 0-3 
- VOID Return


TxEnd

TxEnd
Once the transmit buffer has been filled with data, call this macro to actually send the data. 
- BYTE Channel
Specifies the communications channel 0-3 
- VOID Return


TxSendByte

TxSendByte
This macro fills the specified channel's transmit buffer with data. It can fill the buffer with a single byte of data, or with a string of information. 
- BYTE Channel
Specifies the communications channel 0-3 
- BYTE Data
Data byte to append to Tx buffer. 
- VOID Return


TxSendMyIP

TxSendMyIP
This macro fills the specified channel's transmit buffer with 4 bytes of data representing this Internet E-Block's IP address as specified in the component's property page. 
- BYTE Channel
Specifies the communications channel 0-3 
- VOID Return


TxSendMyMAC

TxSendMyMAC
This macro fills the specified channel's transmit buffer with 6 bytes of data representing this Internet E-Block's MAC address as specified in the component's property page. 
- BYTE Channel
Specifies the communications channel 0-3 
- VOID Return


TxSendString

TxSendString
This macro fills the specified channel's transmit buffer with data. It can fill the buffer with a string of information. 
- BYTE Channel
Specifies the communications channel 0-3 
- STRING Data
Data byte to append to Tx buffer. 
- BYTE Length
 
- VOID Return


TxStart

TxStart
This macro indicates the start of data transmission for the specified buffer. In TCP mode, data transmission can only begin once the socket has become established. In other modes, data transmission can occur as soon as the socket has been opened. 
- BYTE Channel
Specifies the communications channel 0-3 
- VOID Return


Property reference

Properties
Connections
Channel
SPI Channel selector 
Prescale
Prescale option selector 
MOSI
SPI Data Out Pin SDO - Also Known as Master Out Slave In (MOSI) when used in Master mode. 
MISO
SPI Data In Pin SDI - Also Known as Master In Slave Out (MISO) when used in Master mode. 
CLK
SPI Clock Pin CLK - The Clock signal is driven by the SPI master. 
CS / SS
Chip Select / Slave Select Pin Master Mode: General purpose output pin used to select the remote SPI device. Slave Mode: Hardware chip select pin input used to select the SPI device.  
Gateway IP
Gateway0
 
Gateway1
 
Gateway2
 
Gateway3
 
Subnet Mask
Subnet0
 
Subnet1
 
Subnet2
 
Subnet3
 
IP Address
IP0
 
IP1
 
IP2
 
IP3
 
MAC Address
MAC0
 
MAC1
 
MAC2
 
MAC3
 
MAC4
 
MAC5
 
Simulation
Sim Type
Decides how to perform the simulation of the component. TCP IP - Communicates using the Windows TCP IP communications DLL SPI / Injector - Communicates using the CAL SPI to allow the communications to be analysed and debugged. 
TCP Simulation
Network Interface
List of network interfaces connected to the PC. Sets which interface we are communicating via. 

Component Source Code

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

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