Add RAK13800 Ethernet Companion targets with multi-client TCP support#2929
Add RAK13800 Ethernet Companion targets with multi-client TCP support#2929mathisono wants to merge 2 commits into
Conversation
11ac52f to
8cd4f64
Compare
|
Rebased this PR onto dev after #1983 merged and converted it into a follow-up to the new Ethernet foundation. What changed: Added canonical RAK13800 board-support targets: This is not the repeater CLI target. |
|
I want to call out the main functional change in this PR because the title may undersell it: This is not only target-name cleanup. The PR also changes the Companion Ethernet transport from single-client behavior to multi-client framed Companion TCP. The important behavior is: multiple TCP clients can stay connected at the same time This is intended to make the RAK13800 Ethernet Companion target usable by a backend such as Crow while still allowing another Companion client to remain connected. |
|
Transport verification update: I checked the key Companion Ethernet transport requirements before the final PR update. Results:
Target wiring check:
So the main pass/fail requirements are passing:
|
|
Transport verification update: I checked the key Companion Ethernet transport requirements before the final PR update. Results:
Target wiring check:
So the main pass/fail requirements are passing:
|
|
Superseded by #2972. The new PR uses branch \ and makes the multi-client framed Companion TCP work the headline feature. |
|
Superseded by #2972. The new PR uses branch |
This PR is now rebased on top of the Ethernet support merged in #1983.
It adds the RAK13800 Ethernet Companion board-support layer and upgrades the Companion Ethernet transport from single-client behavior to multi-client framed Companion TCP.
Headline changes
Multi-client framed Companion TCP
This PR updates
SerialEthernetInterfaceso multiple Companion TCP clients can remain connected at the same time.The transport now supports:
MAX_ETH_CLIENTS, defaulting to 3_last_rxtracking for command response routingThis avoids the old failure mode where a second connection or incoming packet could close the live Companion socket.
Framed Companion API preserved
This is still MeshCore Companion framing, not CLI/raw-line mode:
This PR intentionally does not enable raw line mode for the Companion target.
RAK13800 board-support targets
Adds canonical RAK13800 Ethernet Companion targets:
RAK_RAK13800_companion_radio_ethRAK_RAK13800_companion_radio_eth_static_diagKeeps compatibility aliases for older names:
RAK_4631_companion_radio_eth_cleanRAK_4631_companion_radio_eth_static_diagRAK_4631_companion_radio_ethernetCrow / gateway settings
The RAK13800 Companion target uses:
ETHERNET_ENABLED=1ETHERNET_TCP_PORT=4403FORCE_CLIENT_REPEAT=0MAX_CONTACTS=128The static diagnostic target adds:
10.245.94.4710.245.94.3310.245.94.33255.255.255.224Device model
Ethernet builds report:
Normal RAK4631 builds continue to report the normal RAK4631 model string.
What this is not
This is the framed MeshCore Companion API over Ethernet TCP, with multi-client support for RAK4631 + RAK13800/W5100S hardware.
Validation
Added Companion TCP smoke-test scripts for:
Expected validation:
Expected static diagnostic hardware result:
10.245.94.47/274403openAPP_STARTreceives a responseDEVICE_QUERYreceives response code0x0d