Component: TCP Template (Comms: Networking): Difference between revisions
Appearance
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 91: | Line 91: | ||
===AcceptClose=== | ===AcceptClose=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''AcceptClose''' | ||
|- | |- | ||
| colspan="2" | Close the accept socket | | colspan="2" | Close the accept socket | ||
| Line 105: | Line 105: | ||
===AcceptOpen=== | ===AcceptOpen=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''AcceptOpen''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 119: | Line 119: | ||
===Connect=== | ===Connect=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Connect''' | ||
|- | |- | ||
| colspan="2" | Attempt to connect to the given address and port. First open a socket on the local device using the Socket function and check that it is successful. | | colspan="2" | Attempt to connect to the given address and port. First open a socket on the local device using the Socket function and check that it is successful. | ||
| Line 143: | Line 143: | ||
===CreateIPSocket=== | ===CreateIPSocket=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''CreateIPSocket''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 172: | Line 172: | ||
===CreateMACSocket=== | ===CreateMACSocket=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''CreateMACSocket''' | ||
|- | |- | ||
| colspan="2" | This macro creates a socket for sending and receiving Ethernet data using raw data. | | colspan="2" | This macro creates a socket for sending and receiving Ethernet data using raw data. | ||
| Line 201: | Line 201: | ||
===CreateTCPSocket=== | ===CreateTCPSocket=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''CreateTCPSocket''' | ||
|- | |- | ||
| colspan="2" | This macro creates a socket for sending and receiving TCP data. | | colspan="2" | This macro creates a socket for sending and receiving TCP data. | ||
| Line 230: | Line 230: | ||
===CreateUDPSocket=== | ===CreateUDPSocket=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''CreateUDPSocket''' | ||
|- | |- | ||
| colspan="2" | This macro creates a socket for sending and receiving UDP data. | | colspan="2" | This macro creates a socket for sending and receiving UDP data. | ||
| Line 259: | Line 259: | ||
===ForcePropEvent=== | ===ForcePropEvent=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ForcePropEvent''' | ||
|- | |- | ||
| colspan="2" | Allows the property event to be fired, doing things like fetching the correct IP for the network interface. | | colspan="2" | Allows the property event to be fired, doing things like fetching the correct IP for the network interface. | ||
| Line 273: | Line 273: | ||
===GetConsole=== | ===GetConsole=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetConsole''' | ||
|- | |- | ||
| colspan="2" | Obtain the console instance for the TCP/IP base. | | colspan="2" | Obtain the console instance for the TCP/IP base. | ||
| Line 287: | Line 287: | ||
===GetPropertyVal=== | ===GetPropertyVal=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetPropertyVal''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 306: | Line 306: | ||
===GetSocketStatus=== | ===GetSocketStatus=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''GetSocketStatus''' | ||
|- | |- | ||
| colspan="2" | This returns the state of the requested channel's socket. | | colspan="2" | This returns the state of the requested channel's socket. | ||
| Line 325: | Line 325: | ||
===Initialise=== | ===Initialise=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''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 | | 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 | ||
| Line 339: | Line 339: | ||
===Listen=== | ===Listen=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Listen''' | ||
|- | |- | ||
| colspan="2" | Bind the socket to a port on the local host and set to listen mode. First open a socket on the local device using the Socket function and check that it is successful. | | colspan="2" | Bind the socket to a port on the local host and set to listen mode. First open a socket on the local device using the Socket function and check that it is successful. | ||
| Line 358: | Line 358: | ||
===Receive=== | ===Receive=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Receive''' | ||
|- | |- | ||
| colspan="2" | Receive data into the data buffer. Returns the number of bytes received | | colspan="2" | Receive data into the data buffer. Returns the number of bytes received | ||
| Line 382: | Line 382: | ||
===RxDataAvailable=== | ===RxDataAvailable=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxDataAvailable''' | ||
|- | |- | ||
| 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 received. A positive return value indicates that data is available. | | 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 received. A positive return value indicates that data is available. | ||
| Line 401: | Line 401: | ||
===RxDataSize=== | ===RxDataSize=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxDataSize''' | ||
|- | |- | ||
| colspan="2" | This macro is used to detect the size of data collected by the Rx_data_available macro. | | colspan="2" | This macro is used to detect the size of data collected by the Rx_data_available macro. | ||
| Line 420: | Line 420: | ||
===RxFlushData=== | ===RxFlushData=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxFlushData''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 439: | Line 439: | ||
===RxMatchMyIP=== | ===RxMatchMyIP=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''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. | | 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. | ||
| Line 458: | Line 458: | ||
===RxMatchMyMAC=== | ===RxMatchMyMAC=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''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. | | 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. | ||
| Line 477: | Line 477: | ||
===RxMatch_2_Bytes=== | ===RxMatch_2_Bytes=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxMatch_2_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. | | 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. | ||
| Line 506: | Line 506: | ||
===RxMatch_4_Bytes=== | ===RxMatch_4_Bytes=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxMatch_4_Bytes''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 545: | Line 545: | ||
===RxMatch_6_Bytes=== | ===RxMatch_6_Bytes=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxMatch_6_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. | | 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. | ||
| Line 594: | Line 594: | ||
===RxReadByte=== | ===RxReadByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxReadByte''' | ||
|- | |- | ||
| 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 'RxReadByte' (or any other read function) will read the next byte | | 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 'RxReadByte' (or any other read function) will read the next byte | ||
| Line 613: | Line 613: | ||
===RxReadHeader=== | ===RxReadHeader=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxReadHeader''' | ||
|- | |- | ||
| 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 | | 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 | ||
| Line 637: | Line 637: | ||
===RxReadString=== | ===RxReadString=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxReadString''' | ||
|- | |- | ||
| 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 | | 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 | ||
| Line 661: | Line 661: | ||
===RxSkipBytes=== | ===RxSkipBytes=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''RxSkipBytes''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 685: | Line 685: | ||
===SecureClose=== | ===SecureClose=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SecureClose''' | ||
|- | |- | ||
| colspan="2" | Close the secure connection | | colspan="2" | Close the secure connection | ||
| Line 699: | Line 699: | ||
===SecureConnect=== | ===SecureConnect=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SecureConnect''' | ||
|- | |- | ||
| colspan="2" | Connect securely to host and port. e.g. “www.bbc.co.uk:443” Returns 1 if successful, 0 if not | | colspan="2" | Connect securely to host and port. e.g. “www.bbc.co.uk:443” Returns 1 if successful, 0 if not | ||
| Line 718: | Line 718: | ||
===SecureInit=== | ===SecureInit=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SecureInit''' | ||
|- | |- | ||
| colspan="2" | Call once to initialise the secure socket funtionality | | colspan="2" | Call once to initialise the secure socket funtionality | ||
| Line 732: | Line 732: | ||
===SecureRead=== | ===SecureRead=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SecureRead''' | ||
|- | |- | ||
| colspan="2" | Attempts to read max number of bytes from the secure socket into the buffer. Returns actual number of bytes read. | | colspan="2" | Attempts to read max number of bytes from the secure socket into the buffer. Returns actual number of bytes read. | ||
| Line 756: | Line 756: | ||
===SecureWrite=== | ===SecureWrite=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SecureWrite''' | ||
|- | |- | ||
| colspan="2" | Attempts to write max number of bytes to the secure socket from the buffer. Returns actual number of bytes written. | | colspan="2" | Attempts to write max number of bytes to the secure socket from the buffer. Returns actual number of bytes written. | ||
| Line 780: | Line 780: | ||
===Send=== | ===Send=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Send''' | ||
|- | |- | ||
| colspan="2" | Send data | | colspan="2" | Send data | ||
| Line 804: | Line 804: | ||
===SendTo=== | ===SendTo=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SendTo''' | ||
|- | |- | ||
| colspan="2" | Send data to a destination host. Returns the number of bytes sent. | | colspan="2" | Send data to a destination host. Returns the number of bytes sent. | ||
| Line 838: | Line 838: | ||
===SetChannel=== | ===SetChannel=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetChannel''' | ||
|- | |- | ||
| colspan="2" | Dictates the TCP IP channel used for socket communications allowing for multiple parrallel communication streams to co-exist, Used by the network comms component to drive the TCP IP runtime comms | | colspan="2" | Dictates the TCP IP channel used for socket communications allowing for multiple parrallel communication streams to co-exist, Used by the network comms component to drive the TCP IP runtime comms | ||
| Line 857: | Line 857: | ||
===SetDestination=== | ===SetDestination=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetDestination''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 906: | Line 906: | ||
===SetMyIP=== | ===SetMyIP=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetMyIP''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 940: | Line 940: | ||
===SetPropertyVal=== | ===SetPropertyVal=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SetPropertyVal''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
| Line 964: | Line 964: | ||
===SocketClose=== | ===SocketClose=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SocketClose''' | ||
|- | |- | ||
| colspan="2" | Close the socket | | colspan="2" | Close the socket | ||
| Line 978: | Line 978: | ||
===SocketOpen=== | ===SocketOpen=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SocketOpen''' | ||
|- | |- | ||
| colspan="2" | Attempts to create a socket on the local device. Type =0 for TCP, =1 for UDP This must be successfully done before attempting connection with a remote destination. Returns 1 if successful, 0 if not. | | colspan="2" | Attempts to create a socket on the local device. Type =0 for TCP, =1 for UDP This must be successfully done before attempting connection with a remote destination. Returns 1 if successful, 0 if not. | ||
| Line 997: | Line 997: | ||
===TCPClose=== | ===TCPClose=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TCPClose''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 1,016: | Line 1,016: | ||
===TCPConnect=== | ===TCPConnect=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TCPConnect''' | ||
|- | |- | ||
| 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). | | 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). | ||
| Line 1,065: | Line 1,065: | ||
===TCPListen=== | ===TCPListen=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TCPListen''' | ||
|- | |- | ||
| 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). | | 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). | ||
| Line 1,084: | Line 1,084: | ||
===TxEnd=== | ===TxEnd=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TxEnd''' | ||
|- | |- | ||
| colspan="2" | Once the transmit buffer has been filled with data, call this macro to actually send the data. | | colspan="2" | Once the transmit buffer has been filled with data, call this macro to actually send the data. | ||
| Line 1,103: | Line 1,103: | ||
===TxSendByte=== | ===TxSendByte=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TxSendByte''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 1,127: | Line 1,127: | ||
===TxSendMyIP=== | ===TxSendMyIP=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TxSendMyIP''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 1,146: | Line 1,146: | ||
===TxSendMyMAC=== | ===TxSendMyMAC=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''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. | | 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. | ||
| Line 1,165: | Line 1,165: | ||
===TxSendString=== | ===TxSendString=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TxSendString''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 1,189: | Line 1,189: | ||
===TxStart=== | ===TxStart=== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''TxStart''' | ||
|- | |- | ||
| 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. | | 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. | ||
| Line 1,209: | Line 1,209: | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| Line 1,225: | Line 1,225: | ||
| colspan="2" | List of network interfaces connected to the PC. Sets which interface we are communicating via. | | colspan="2" | List of network interfaces connected to the PC. Sets which interface we are communicating via. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Gateway IP | ||
|- | |- | ||
|- | |- | ||
| Line 1,249: | Line 1,249: | ||
| colspan="2" | Gateway IP address to the Internet, auto populated from the selected interface. | | colspan="2" | Gateway IP address to the Internet, auto populated from the selected interface. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Subnet Mask | ||
|- | |- | ||
|- | |- | ||
| Line 1,273: | Line 1,273: | ||
| colspan="2" | Network IP subnet mask, auto populated from the selected interface. | | colspan="2" | Network IP subnet mask, auto populated from the selected interface. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | IP Address | ||
|- | |- | ||
|- | |- | ||
| Line 1,297: | Line 1,297: | ||
| colspan="2" | Network IP address, auto populated from the selected interface. | | colspan="2" | Network IP address, auto populated from the selected interface. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | MAC Address | ||
|- | |- | ||
|- | |- | ||
| Line 1,331: | Line 1,331: | ||
| colspan="2" | Network MAC address, auto populated from the selected interface. | | colspan="2" | Network MAC address, auto populated from the selected interface. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Notify | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:37, 13 July 2026
| Author | Matrix Ltd. |
| Version | 2.2 |
| Category | Comms: Networking |
TCP Template component
Base TCP/IP component with simulation only interface to allow TCP/IP style network communications in simulation. Suitable for inheriting
Component Source Code
Please click here to download the component source project: FC_Comp_Source_TCPIP_Base.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_TCPIP_Base.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Additional examples can be found in the “Apps and Bundles” section of this Wiki:
Wireless LAN Application Guide
Macro reference
AcceptClose
| AcceptClose | |
| Close the accept socket | |
| Return | |
AcceptOpen
| AcceptOpen | |
| Return | |
Connect
CreateIPSocket
CreateMACSocket
CreateTCPSocket
CreateUDPSocket
ForcePropEvent
| ForcePropEvent | |
| Allows the property event to be fired, doing things like fetching the correct IP for the network interface. | |
| Return | |
GetConsole
| GetConsole | |
| Obtain the console instance for the TCP/IP base. | |
| Return | |
GetPropertyVal
| GetPropertyVal | |
| Property | |
| Return | |
GetSocketStatus
| GetSocketStatus | |
| This returns the state of the requested channel's socket. | |
| Channel | |
| Specifies the communications channel 0-3 | |
| Return | |
Initialise
Listen
| Listen | |
| Bind the socket to a port on the local host and set to listen mode. First open a socket on the local device using the Socket function and check that it is successful. | |
| Port | |
| Return | |
Receive
| Receive | |
| Receive data into the data buffer. Returns the number of bytes received | |
| Data | |
| Data byte buffer to receive the data | |
| Count | |
| Maximum number of bytes to read | |
| Return | |
RxDataAvailable
RxDataSize
| RxDataSize | |
| This macro is used to detect the size of data collected by the Rx_data_available macro. | |
| Channel | |
| Specifies the communications channel 0-3 | |
| Return | |
RxFlushData
RxMatchMyIP
RxMatchMyMAC
RxMatch_2_Bytes
RxMatch_4_Bytes
RxMatch_6_Bytes
RxReadByte
RxReadHeader
RxReadString
RxSkipBytes
SecureClose
| SecureClose | |
| Close the secure connection | |
| Return | |
SecureConnect
| SecureConnect | |
| Connect securely to host and port. e.g. “www.bbc.co.uk:443” Returns 1 if successful, 0 if not | |
| host | |
| Host:Port as string | |
| Return | |
SecureInit
| SecureInit | |
| Call once to initialise the secure socket funtionality | |
| Return | |
SecureRead
| SecureRead | |
| Attempts to read max number of bytes from the secure socket into the buffer. Returns actual number of bytes read. | |
| buffer | |
| max | |
| Return | |
SecureWrite
| SecureWrite | |
| Attempts to write max number of bytes to the secure socket from the buffer. Returns actual number of bytes written. | |
| buffer | |
| max | |
| Return | |
Send
| Send | |
| Send data | |
| Data | |
| Data byte buffer to send | |
| Count | |
| Number of bytes to send | |
| Return | |
SendTo
| SendTo | |
| Send data to a destination host. Returns the number of bytes sent. | |
| Data | |
| Data byte buffer to send | |
| Count | |
| Number of bytes to send | |
| Address | |
| Port | |
| Return | |
SetChannel
SetDestination
SetMyIP
SetPropertyVal
| SetPropertyVal | |
| Property | |
| Value | |
| Return | |
SocketClose
| SocketClose | |
| Close the socket | |
| Return | |
SocketOpen
TCPClose
TCPConnect
TCPListen
TxEnd
| TxEnd | |
| Once the transmit buffer has been filled with data, call this macro to actually send the data. | |
| Channel | |
| Specifies the communications channel 0-3 | |
| Return | |
TxSendByte
TxSendMyIP
TxSendMyMAC
TxSendString
TxStart