====== LAN Bridge CFLink Protocol ======
The following documentation is for the LAN Bridge device CFLink protocol messages.\\
The LAN Bridge also has an on-board RS232 port, for which documentation is available in the [[on-board-rs232-port-protocol|On-Board RS232 docs]].
===== Common Definitions =====
The following communication slots exist on a LAN Bridge:
* ''1'' = CFLink slot
* ''2'' = On-board RS232 slot
* ''3'' = UDP Broadcasting slot (not available for subscriptions, can only be enabled/disabled via [[hardware:cflink:lanbridge-cflink-protocol#udb-udp-broadcasting-configuration|UDB command]])
* ''4'' - ''10'' = Reserved for future use
* ''11'' - ''20'' = Configurable as TCP or UDP communication
===== Authentication =====
By default, authentication on LAN Bridge is disabled. To enable it, use the [[#pwd-login-password|Configure Password command]].
When authentication is enabled, the LAN Bridge will send a ''RLANATH'' command when first connecting. When this command has been sent, no other commands will be accepted until the correct username and password has been received.
If an incorrect login message is received, the LAN Bridge will respond with [[hardware:cflink:error-codes#lan-bridge-solo-error-codes|''RLANERR'' message, with error code 134]].
Once successfully logged in, the LAN Bridge will reply with ''RLANWHO'' response to acknowledge that login is correct and the device will now respond to other commands.
===== Queries =====
==== WHO - Device discovery ====
The ''WHO'' query is used to discover what device is at a specific address.\\
The ''WHO'' reply will be automatically broadcast as a notification to the CFLink network when a device is powered up or reset.
=== Data ===
The ''WHO'' query does not have any associated data.
> [F2][F3]QCFXWHO[F4][F5][F5]
=== Reply ===
< [F2][F3]RLANWHO[F4]LANBridge:::::[F5][F5]
=== Example ===
// Request the details for the device at CFLink ID [02]
> [F2][02][F3]TCFXWHO[F4][F5][F5]
// The Reply if a LAN Bridge is found
< [F2][02][F3]RLANWHO[F4]LANBridge:00000012:1.0.1:1.0.4:192.168.0.100:00.04.A3.19.D5.70[F5][F5]
==== CFG - Query Configuration ====
The ''CFG'' query is used to obtain details about the configuration of a specific LAN Bridge unit.
=== Data ===
The ''CFG'' query does not have any associated data.
> [F2][F3]QLANCFG[F4][F5][F5]
=== Reply ===
< [F2][F3]RLANCFG[F4]::::::::::::[F5][F5]
* **** = The IPv4 address the LAN Bridge is currently assigned.
* **** = The IPv4 subnet mask the LAN Bridge is currently assigned.
* **** = The IPv4 gateway the LAN Bridge is currently assigned.
* **** = The IPv4 DNS the LAN Bridge is currently assigned.
* **** = DHCP mode disabled or enabled (''0'' or ''1'').
* **** = The mode of the RS232 port (''PGM'' or ''232'').
* **** = The baud rate of the RS232 port:
* 100
* 300
* 600
* 1200
* 2400
* 4800
* 9600
* 14400
* 19200
* 38400
* 57600
* 115200
* 128000
* 256000
* **** = The data bits of the RS232 port, always 8.
* **** = The parity of the RS232 port (single char):
* ''N'' None
* ''O'' Odd
* ''E'' Even
* **** = The stop bits of the RS232 port (''1'' or ''2'').
* **** = The flow control of the RS232 port (''0'' = None, ''1'' = RTS/CTS).
* **** = UDP Broadcast communication for CFLink protocol on port 10207 disabled or enabled (''0'' or ''1'').
* **** = The number of communication slots enabled
=== Example ===
// Query configuration of LAN Bridge on ID [02]
> [F2][02][F3]QLANCFG[F4][F5][F5]
// Configuration query reply
< [F2][02][F3]RLANCFG[F4]192.168.0.100:255.255.255.0:192.168.0.1:PGM:115200:8:N:1:1:1:3[F5][F5]
==== SLT - Query Slot Configuration ====
The SLT query returns the configuration of a specific communication slot.
=== Data ===
> [F2][F3]QLANSLT[F4][F5][F5]
* **** = The communication slot number to request configuration from
=== Reply ===
// If the slot is configured for TCP communications:
< [F2][F3]RLANSLT[F4]:TCP::::::[F5][F5]
// If the slot is configured for UDP communications:
< [F2][F3]RLANSLT[F4]:UDP:::[F5][F5]
* **** = The communication slot number being described.
* **** = Server ''S'' or client ''C''.
* **** = Unicast ''U'', Multicast ''M'', Broadcast ''B''.
* **** = The IP Address assigned to the slot:
* TCP Server = The IP Address to allow connections from (''0.0.0.0'' to allow connections from any IP Address)
* TCP Client = The IP Address of the TCP Server to connect to
* UDP Unicast = The IP Address to send data to
* UDP Multicast = The IP Address of the multicast group to subscribe to
* UDP Broadcast = The IP Address to broadcast data to (''255.255.255.255'' to send to all IP Addresses)
* **** = The port number assigned to the slot (same rules apply as **** above)
* **** = The time in seconds to hold a TCP connection open for without any data transmissions. ''0'' = Disable timeout.
* **** = The maximum number of connections a TCP Server slot can handle at once. ''0'' = Unlimited connections. Ignored for TCP Client slots.
* **** = Option to echo data received on a TCP Server slot from any TCP Client to all other connected clients. Ignored for TCP Client slots. (''0'' or ''1'')
=== Example ===
// Query the configuration for slot 12 of LAN Bridge on ID [02]
> [F2][02][F3]QLANSLT[F4]12[F5][F5]
// Reply when slot configured as a TCP Server
< [F2][02][F3]RLANSLT[F4]12:TCP:11:S:0.0.0.0:9602:0:10:1[F5][F5]
// Query the configuration for slot 13 of LAN Bridge on ID [02]
> [F2][02][F3]QLANSLT[F4]13[F5][F5]
// Reply when slot configured for UDP Unicast
< [F2][02][F3]RLANSLT[F4]13:UDP:U:192.168.0.100:9601[F5][F5]
==== SLS - Query Slot Startup Command Configuration ====
The ''SLS'' query returns the configuration of a specific communication slot's startup command.
=== Data ===
> [F2][F3]QLANSLS[F4][F5][F5]
* **** = The communication slot number to request startup command configuration from
=== Reply ===
// If the slot has a startup command assigned:
< [F2][F3]RLANSLS[F4]::[F5][F5]
// If the slot has no startup command
< [F2][F3]RLANSLT[F4]:0:[F5][F5]
* **** = The communication slot number being described.
* **** = The time (in 100ms resolution) to delay before sending the command data after each connection. eg. ''10'' = 1 second.
* **** = The command data to send on startup.
=== Example ===
// Query the startup configuration for slot 12 of LAN Bridge on ID [02]
> [F2][02][F3]QLANSLS[F4]12[F5][F5]
// Reply when the data 'Startup Command Data ' is to be sent after a 1 second delay.
< [F2][02][F3]RLANSLS[F4]12:10:Startup Command Data\x0D[F5][F5]
// Query the configuration for slot 13 of LAN Bridge on ID [02]
> [F2][02][F3]QLANSLS[F4]13[F5][F5]
// Reply when no startup command is defined
< [F2][02][F3]RLANSLS[F4]13:0:[F5][F5]
==== SUB - Query Slot Subscription Configuration ====
The SUB query returns the configuration of a specific slot subscription.
=== Data ===
Each communication slot (Slot A) can be subscribed to another slot (Slot B). Only one subscription per slot is allowed.\\
So to retrieve the subscription details, you need to provide the slot number for the Slot A parameter.
> [F2][F3]QLANSUB[F4][F5][F5]
* **** = The communication slot number of the subscription 'Slot A' parameter.
=== Reply ===
< [F2][F3]RLANSUB[F4]:::::[F5][F5]
* **** = The communication slot number that will transfer data to/from **** (''2'' or ''11''-''20''). See [[hardware:cflink:lanbridge-cflink-protocol?sub-configure-slot-subscription|SUB Configuration Command]] for more details
* **** = The communication slot number that will transfer data to/from **** (''1'', ''2'' or ''11''-''20'')
* **** = If **** is configured to slot 1 (CFLink), the CFLink ID is the device on the CFLink network to forward data to/from. This allows you to subscribe a communication slot to a single device on the network. (used only when **** is configured to CFLink Slot ''1'').
* **** = If **** is configured to subscribe to a modular device (such as MOD4), then you can optionally specify which module slot to subscribe to. ''0'' means not subscribed to a module. (optional)
* **** = The 7 char command to use when wrapping the incoming data from **** before sending it out via **** as valid CFLink protocol. Optional, only used when **** is configured to CFLink Slot 0. If **** is left empty, then all data received on **** will be sent out **** without any manipulation, and must be valid CFLink protocol.
* **** = The 7 char command to strip data from when received from **** before sending it out via ****. Optional, only used when **** is configured to CFLink Slot ''1''. If **** is left empty, then all data received on **** will be sent out **** in it's full CFLink protocol format.
=== Example ===
// Query subscription config for slot 12 of a LAN Bridge on CFLink ID [02]
> [F2][02][F3]QLANSUB[F4]12[F5][F5]
// Slot 12 is subscribed to CFLink Slot 0, to CFLink ID [03], Module 1.
// All incoming data from slot 12 will be wrapped into a CFLink protocol message for setting relay states.
// All outgoing data to slot 12 will be stripped from a relay state reply
< [F2][02][F3]RLANSUB[F4]12:0:03:M1:TRLYSET:RRLYSTA[F5][F5]
// Query subscription config for slot 13 of a LAN Bridge on CFLink ID [02]
> [F2][02][F3]QLANSUB[F4]13[F5][F5]
// Slot 13 is subscribed to Slot 14 (possibly a TCP Client slot subscribed to a TCP Server)
< [F2][02][F3]RLANSUB[F4]13:14[F5][F5]
==== TME - Real Time Clock status ====
The ''TME'' query will return the current configuration of the real time clock on-board the LAN Bridge.
=== Data ===
The ''TME'' query does not have any associated data.
> [F2][F3]QLANTME[F4][F5][F5]
=== Reply ===
< [F2][F3]RLANTME[F4]::::::::::[F5][F5]
* **** = 4 digit year.
* **** = 2 digit month (''01''-''12'').
* **** = 2 digit day (''01''-''31'').
* **** = 1 digit day of week. Sunday = ''1'', Saturday = ''7'' (''1''-''7'')
* **** = 2 digit hour, in 24 hour military format (''00''-''23'')
* **** = 2 digit minute (''00''-''59'')
* **** = 2 digit second (''00''-''59'')
* **** = ID from [[#timezone-lookup-table|Timezone Lookup Table]] (2 digits, ''01''-''40'')
* **** = String representation of the timezone
* **** = Whether or not the unit is configured to sync to a time server.
* **** = The time server that the unit is syncing to. Refer to list below.
Available time server IDs:
* ''1'' = pool.ntp.org
* ''2'' = europe.pool.ntp.org
* ''3'' = asia.pool.ntp.org
* ''4'' = oceania.pool.ntp.org
* ''5'' = north-america.pool.ntp.org
* ''6'' = south-america.pool.ntp.org
* ''7'' = africa.pool.ntp.org
=== Example ===
// Query time from LAN Bridge on CFLink ID [02]
> [F2][02][F3]QLANTME[F4][F5][F5]
// Reply
< [F2][02][F3]RLANTME[F4]2011:10:27:3:18:12:12:29:UTC+8.00:1:4[F5][F5]
===== Configuration Messages =====
==== PWD - Login Password ====
The ''PWD'' command configures a password that must be sent before any additional commands will be accepted. By default the password is disabled.\\
To clear the login, you must first have issued the correct login/password, then send this command without any username or password data.
=== Data ===
> [F2][F3]CLANPWD[F4]:[F5][F5]
* **** = The login username to set
* **** = The login password to set
=== Reply ===
// The reply is just an echo of the command in reply format, without the password .
< [F2][F3]RLANPWD[F4][F5][F5]
=== Example ===
// Configure username as 'admin' and password as 'mysecretpass' of LAN Bridge on CFLink ID [02]
> [F2][02][F3]CLANPWD[F4]admin:mysecretpass[F5][F5]
// Reply
< [F2][02][F3]RLANPWD[F4]admin[F5][F5]
// Remove the login completely from LAN Bridge on CFLink ID [02]
> [F2][02][F3]CLANPWD[F4][F5][F5]
// Reply
< [F2][02][F3]RLANPWD[F4][F5][F5]
==== IP4 - IPv4 Address ====
The ''IP4'' command will configure the IPv4 address used by the LAN Bridge if DHCP is disabled. It will be ignored if DHCP is enabled.\\
The change will not take effect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANIP4[F4][F5][F5]
* **** = The IPv4 Address to assign to the LAN Bridge
=== Reply ===
// The reply is just an echo of the command in reply format.
// The change does not take effect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANIP4[F4][F5][F5]
=== Example ===
// Configure IP Address of LAN Bridge on CFLink ID [02]
> [F2][02][F3]CLANIP4[F4]192.168.0.100[F5][F5]
// Reply
< [F2][02][F3]RLANIP4[F4][F5][F5]
==== SNM - Subnet Mask ====
The ''SNM'' (Subnet Mask) command will configure the subnet mask used by the LAN Bridge if DHCP is disabled. It will be ignored if DHCP is enabled.\\
The change will not take effect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANSNM[F4][F5][F5]
* **** = The IPv4 Subnet Mask to assign to the LAN Bridge
=== Reply ===
// The reply is just an echo of the command in reply format.
// The change does not take effect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANSNM[F4][F5][F5]
=== Example ===
// Configure Subnet Mask of LAN Bridge on CFLink ID [02]
> [F2][02][F3]CLANSNM[F4]255.255.255.0[F5][F5]
// Reply
< [F2][02][F3]RLANSNM[F4][F5][F5]
==== GTW - Default Gateway ====
The ''GTW'' (Gateway) command will configure the default gateway used by the LAN Bridge if DHCP is disabled. It will be ignored if DHCP is enabled.\\
The change will not take effect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANGTW[F4][F5][F5]
* **** = The IPv4 Gateway to assign to the LAN Bridge
=== Reply ===
// The reply is just an echo of the command in reply format.
// The change does not take effect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANGTW[F4][F5][F5]
=== Example ===
// Configure Default Gateway of LAN Bridge on CFLink ID [02]
> [F2][02][F3]CLANGTW[F4]192.168.0.1[F5][F5]
// Reply
< [F2][02][F3]RLANGTW[F4][F5][F5]
==== DNS - Domain Name System Server ====
The ''DNS'' (Domain Name System) command will configure the DNS Server used by the LAN Bridge if DHCP is disabled. It will be ignored if DHCP is enabled.\\
The change will not take effect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANDNS[F4][F5][F5]
* **** = The IPv4 DNS Server Address to assign to the LAN Bridge
=== Reply ===
// The reply is just an echo of the command in reply format.
// The change does not take effect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANDNS[F4][F5][F5]
=== Example ===
// Configure DNS of LAN Bridge on CFLink ID [02]
> [F2][02][F3]CLANDNS[F4]192.168.0.1[F5][F5]
// Reply
< [F2][02][F3]RLANDNS[F4][F5][F5]
==== DHC - DHCP Mode ====
The DHC (DHCP) command will configure the DHCP mode of the LAN Bridge.\\
The change will not take affect until the LAN Bridge is rebooted.
DHCP Mode is enabled by default.\\
=== Data ===
> [F2][F3]CLANDHC[F4][F5][F5]
* **** = DHCP mode enable/disable (''1'' or ''0'').
=== Reply ===
// The reply is just an echo of the command in reply format.
// The change does not take affect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANDHC[F4][F5][F5]
=== Example ===
// Disable DHCP mode of LAN Bridge on CFLink ID [02]
> [F2][02][F3]CLANDHC[F4]0[F5][F5]
// Reply
< [F2][02][F3]RLANDHC[F4][F5][F5]
==== UDB - UDP Broadcasting Configuration ====
The ''UDB'' (UDP Broadcast) command is used to enable/disable broadcasting of UDP Data from CFLink.\\
The change will take affect immediately.
\\
UDP Broadcasting is enabled by default.
=== Data ===
> [F2][F3]CLANUDB[F4][F5][F5]
* **** = UDP Broadcasting mode enable/disable (''1'' or ''0'').
=== Reply ===
// The reply is an echo of the command in reply format.
< [F2][F3]RLANUDB[F4][F5][F5]
=== Example ===
// Disable UDB mode of LAN Bridge on CFLink ID [02]
> [F2][02][F3]CLANUDB[F4]0[F5][F5]
// Reply
< [F2][02][F3]RLANUDB[F4]0[F5][F5]
==== SLT - Configure TCP Slot ====
The ''SLT'' (Slot TCP) command is used to configure a communication slot for TCP communication.\\
The change will not take effect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANSLT[F4]::::::[F5][F5]
* **** = The slot number to configure for TCP communication.
* **** = ''S'' for TCP Server, ''C'' for TCP Client.
* **** = The IPv4 Address to assign to the slot:
* TCP Server = The IP Address to allow connections from (''0.0.0.0'' to allow connections from any IP Address)
* TCP Client = The IP Address of the TCP Server to connect to
* **** = The port number to assign to the slot (same rules apply as **** above)
* **** = The time in seconds to hold a TCP connection open for without any data transmissions. ''0'' = Disable timeout. Valid range ''0''-''4294967295'' seconds.
* **** = The maximum number of connections a TCP Server slot can handle at once. ''0'' = Unlimited connections. Ignored for TCP Client slots. Valid range ''0''-''25''.
* **** = Option to echo data received on a TCP Server slot from any TCP Client to all other connected clients. Ignored for TCP Client slots. (''0'' or ''1'')
=== Reply ===
// The reply is an echo of the command in reply format.
// The change does not take effect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANSLT[F4][F5][F5]
=== Example ===
// Configure slot 11 to be a TCP Server, on LAN Bridge ID [02]
> [F2][02][F3]CLANSLT[F4]11:S:0.0.0.0:9601:0:10:1[F5][F5]
// Reply
< [F2][02][F3]RLANSLT[F4][F5][F5]
==== SLU - Configure UDP Slot ====
The ''SLU'' (Slot UDP) command is used to configure a communication slot for UDP communication.\\
The change will not take effect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANSLU[F4]:::[F5][F5]
* **** = The slot number to configure for TCP communication.
* <**UDPMODE>** = ''U'' for Unicast, ''M'' for Multicast, ''B'' for Broadcast.
* = The IPv4 Address to assign to the slot:
* UDP Unicast = The IP Address to send data to
* UDP Multicast = The IP Address of the multicast group to subscribe to
* UDP Broadcast = The IP Address to broadcast data to ''(255.255.255.255'' to send to all IP Addresses)
* **** = The port number to assign to the slot (same rules apply as **** above)
=== Reply ===
// The reply is an echo of the command in reply format.
// The change does not take affect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANSLU[F4][F5][F5]
=== Example ===
// Configure slot 12 to be UDP Unicast, on LAN Bridge ID [02]
> [F2][02][F3]CLANSLT[F4]12:U:192.168.0.101:9602[F5][F5]
// Reply
< [F2][02][F3]RLANSLU[F4][F5][F5]
==== SLO - Disable Communication Slot ====
The ''SLO'' (Slot Off) command is used to disable a specific communication slot.\\
The change will not take affect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANSLO[F4][F5][F5]
* **** = The slot number to disable.
=== Reply ===
// The reply is an echo of the command in reply format.
// The change does not take affect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANSLO[F4][F5][F5]
=== Example ===
// Disable slot 13 on LAN Bridge ID [02]
> [F2][02][F3]CLANSLO[F4]13[F5][F5]
// Reply
< [F2][02][F3]RLANSLO[F4][F5][F5]
==== SLS - Configure Slot Startup Command ====
The ''SLS'' (Slot Startup) command is used to configure a communication slot startup command for TCP communication slots.\\
The startup command is sent whenever a client connects (if TCP Server mode) or whenever the slot connects to a server (if TCP Client mode), with an adjustable delay.\\
The startup command has no effect on UDP slots.\\
The change will not take effect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANSLS[F4]::[F5][F5]
* **** = The slot number to configure the startup command for. Startup commands valid for slots ''11'' to ''20'' only.
* **** = The time (in 100ms resolution) to delay before the startup command is sent after each connection. eg. ''10'' = 1 second. Max allowed delay value is ''9999999'' (999999.9 seconds)
* **** = The command data to send on startup. Maximum of 100 bytes is allowed for the startup command data.
=== Reply ===
// The reply is an echo of the command in reply format.
// The change does not take effect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANSLS[F4][F5][F5]
=== Example ===
// Configure slot 11 on LAN Bridge ID [02] to send a startup command 'Hello World ' after a 1.5 second delay.
> [F2][02][F3]CLANSLS[F4]11:15:Hello World\x0D[F5][F5]
// Reply
< [F2][02][F3]RLANSLS[F4][F5][F5]
=== Error ===
* 134 = Invalid startup command settings.
* 135 = Invalid startup command delay format or value (0 to 9999999 only).
* 136 = Invalid command data length. Max data length is 100 bytes.
* 137 = Invalid slot number. Startup command only valid for slots 11-20.
==== SLD - Delete Slot Startup Command ====
The ''SLD'' (Slot Startup Delete) command is used to remove the startup command for a specific communication slot.\\
The change will not take effect until the LAN Bridge is rebooted.
=== Data ===
> [F2][F3]CLANSLD[F4][F5][F5]
* **** = The slot number to remove the startup command from.
=== Reply ===
// The reply is an echo of the command in reply format.
// The change does not take effect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANSLD[F4][F5][F5]
=== Example ===
// Remove the startup command from slot 11 on LAN Bridge ID [02].
> [F2][02][F3]CLANSLD[F4]11[F5][F5]
// Reply
< [F2][02][F3]RLANSLD[F4][F5][F5]
=== Error ===
* 137 = Invalid slot number.
==== SUB - Configure Slot Subscription ====
The ''SUB'' (Subscription) command is used to configure a slot subscription. A subscription is a way to send/receive data between two communication slots on the LAN Bridge automatically.\\
\\
When subscribing to the CFLink slot, a subscription can be refined to communicate only with a device at a specific CFLink ID and optionally which module.\\
\\
When subscribing to the CFLink slot, a subscription can also handle automatically manipulating the incoming data to wrap it in CFLink protocol formatting, and stripping the CFLink formatting before sending the outgoing data.\\
\\
This allows TCP/UDP communication slots to send basic commands like ''P01:0|P02:0'' and have it automatically wrapped into a CFLink command targeted at a specific device and module to open relays in this example.
And the same in reverse, taking CFLink protocol message and only sending the data segment.\\
\\
See the [[hardware:cflink:lanbridge-cflink-protocol#common-definitions|Common Definitions]] for a list of available communication slots.
=== Data ===
> [F2][F3]CLANSUB[F4]:::::[F5][F5]
* **** = The communication slot number that will transfer data to/from **** (''2'' or ''11''-''20'').
* **** = The communication slot number that will transfer data to/from **** (''0'',''1'', ''2'' or ''11''-''20''). ''0'' = Turn off subscription for ****.
* **** = If **** is configured to slot ''1'' (CFLink), the CFLink ID is the device on the CFLink network to forward data to/from. This allows you to subscribe a communication slot to a single device on the network. (used only when **** is configured to CFLink Slot ''1'').
* **** = If **** is configured to subscribe to a modular device (such as MOD4), then you can optionally specify which module slot to subscribe to. ''0'' means not subscribed to a module. (optional)
* **** = The 7 char command to use when wrapping the incoming data from **** before sending it out via **** as valid CFLink protocol. Optional, only used when **** is configured to CFLink Slot ''1''. If **** is left empty, then all data received on **** will be sent out **** without any manipulation, and must be valid CFLink protocol.
* **** = The 7 char command to strip data from when received from **** before sending it out via ****. Optional, only used when **** is configured to CFLink Slot ''1''. If **** is left empty, then all data received on **** will be sent out **** in it's full CFLink protocol format.
=== Reply ===
// The reply is an echo of the command in reply format.
// The change does not take affect until the LAN Bridge is rebooted, so the reply will not contain any data.
< [F2][F3]RLANSUB[F4][F5][F5]
=== Example ===
// Subscribe slot 12 to CFLink Slot 1, CFLink ID [02], Module 1, with relay commands for manipulating incoming/outgoing data
> [F2][02][F3]CLANSUB[F4]12:1:02:M1:TRLYSET:RRLYSTA[F5][F5]
// Reply
< [F2][02][F3]RLANSUB[F4][F5][F5]
=== Error ===
* 100 = Invalid Subscription
==== TME - Configure Real Time Clock ====
The TME command is used to set the time and date settings for the real time clock on-board the LAN Bridge.
=== Data ===
> [F2][F3]CLANTME[F4]:::::::::[F5][F5]
* **** = 4 digit year.
* **** = 2 digit month (''01''-''12'').
* **** = 2 digit day (''01''-''31'').
* **** = 1 digit day of week. Sunday = ''1'', Saturday = ''7'' (''1''-''7'')
* **** = 2 digit hour, in 24 hour military format (''00''-''23'')
* **** = 2 digit minute (''00''-''59'')
* **** = 2 digit second (''00''-''59'')
* **** = ID from [[#timezone-lookup-table|Timezone Lookup Table]] (2 digits, ''01''-''40'')
* **** = Whether or not to sync to a time server.
* **** = The time server that the unit should syncing to. Refer to list below.
Available time server IDs:
* ''1'' = pool.ntp.org
* ''2'' = europe.pool.ntp.org
* ''3'' = asia.pool.ntp.org
* ''4'' = oceania.pool.ntp.org
* ''5'' = north-america.pool.ntp.org
* ''6'' = south-america.pool.ntp.org
* ''7'' = africa.pool.ntp.org
=== Reply ===
// Reply with the data used to configure the time/date.
< [F2][F3]RLANTME[F4]::::::::::[F5][F5]
=== Example ===
// Configure the real time clock on a LAN Bridge ID [02]
> [F2][02][F3]CLANTME[F4]2011:12:27:3:18:12:12:29:1:4[F5][F5]
// Reply
< [F2][02][F3]RLANTME[F4]2011:12:27:3:18:12:12:29:UTC+8.00:1:4[F5][F5]
=== Error ===
* 100 = Invalid UTC Timezone
* 100 = Invalid Date
* 100 = Invalid Time
===== Transmission Messages =====
==== PWD - Authenticate Password ====
The ''PWD'' (Password) command allows you to login to a LAN Bridge that has a login configured.\\
No other commands will be accepted until the correct login details are entered if a login has been configured.\\
=== Data ===
> [F2][F3]TLANPWD[F4]:[F5][F5]
* **** = The username to login with
* **** = The password to login with
=== Reply ===
< [F2][F3]RLANPWD[F4][F5][F5]
=== Example ===
// Login to LAN Bridge on CFLink ID [02] with username 'admin' and password 'mysecretpass'
> [F2][02][F3]TLANPWD[F4]admin:mysecretpass[F5][F5]
// Reply
< [F2][02][F3]RLANPWD[F4]admin[F5][F5]
==== SND - Send Data ====
The ''SND'' (Send) command allows you to send data to a specific communication slot defined on the LAN Bridge.\\
Any other communication slots subscribed to the slot targeted by the ''SND'' command will also receive the data.\\
This command is not to be used to send data to the RS232 slot (Slot 1), instead use the [[on-board-rs232-port-protocol|''SPW'' Command]] common to all devices with an on-board RS232 port.\\
=== Data ===
> [F2][F3]TLANSND[F4]:[F5][F5]
* **** = The communication slot number to send data to. Known as the 'target slot'.
* **** = The actual data to send to the target slot. Hex bytes should be defined in \xFF format. eg. A carriage return is written as \x0D
=== Reply ===
// In an effort to reduce network traffic on the CFLink bus, the reply will not contain the sent, only the slot it was sent to.
< [F2][F3]RLANSND[F4][F5][F5]
=== Example ===
// Send a command to an ethernet device connected to slot 11, for LAN Bridge on CFLink ID [02]
> [F2][02][F3]TLANSND[F4]11:Hello World!\x0D[F5][F5]
// Reply
< [F2][02][F3]RLANSND[F4]11[F5][F5]
=== Error ===
* 100 = Invalid Slot Number
====== Timezone Lookup Table ======
* ''01'' - UTC-1200
* ''02'' - UTC-1100
* ''03'' - UTC-1000
* ''04'' - UTC-930
* ''05'' - UTC-900
* ''06'' - UTC-800
* ''07'' - UTC-700
* ''08'' - UTC-600
* ''09'' - UTC-500
* ''10'' - UTC-430
* ''11'' - UTC-400
* ''12'' - UTC-330
* ''13'' - UTC-300
* ''14'' - UTC-200
* ''15'' - UTC-100
* ''16'' - UTC-0
* ''17'' - UTC+100
* ''18'' - UTC+200
* ''19'' - UTC+300
* ''20'' - UTC+330
* ''21'' - UTC+400
* ''22'' - UTC+430
* ''23'' - UTC+500
* ''24'' - UTC+530
* ''25'' - UTC+545
* ''26'' - UTC+600
* ''27'' - UTC+630
* ''28'' - UTC+700
* ''29'' - UTC+800
* ''30'' - UTC+845
* ''31'' - UTC+900
* ''32'' - UTC+930
* ''33'' - UTC+1000
* ''34'' - UTC+1030
* ''35'' - UTC+1100
* ''36'' - UTC+1130
* ''37'' - UTC+1200
* ''38'' - UTC+1245
* ''39'' - UTC+1300
* ''40'' - UTC+1400