livoxProto1: Connecting to bcast-advertised device works :)

We tested it.
It's important to note that between test runs, we need to take
into account the fact that the Avia stops sending bcast adverts
when it's been handshaken.

So the retry-delay-ms may be longer due to the fact that the Avia
may not be sending adverts for a good portion of that retry-delay-ms
time.
This commit is contained in:
2025-09-07 11:42:32 -04:00
parent 1ededb85b9
commit f587b45b38
3 changed files with 10 additions and 2 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
+edev|avia0| +edev|avia0|
structural-implexor|livoxGen1()|livoxProto1( structural-implexor|livoxGen1()|livoxProto1(
handshake-timeout-ms=1000|retry-delay-ms=1000) handshake-timeout-ms=1000)
|3JEDK380010Z39 |3JEDK380010Z39
+8
View File
@@ -129,6 +129,14 @@ void Device::connect()
return; return;
} }
/** FIXME:
* This won't work unless we return control to the ComponentThread's run()
* loop during the retry-delay time so that the ComponentThread can actually
* run the BroadcastListener's recv() calls and actually receive the
* device's broadcast messages.
* Think about ways to perhaps make all of this asynchronous. The main issue
* is that this whole sequence is synchronous.
*/
// Wait retry delay, then try known device again // Wait retry delay, then try known device again
std::this_thread::sleep_for(std::chrono::milliseconds(retryDelayMs)); std::this_thread::sleep_for(std::chrono::milliseconds(retryDelayMs));
if (connectToKnownDevice()) { if (connectToKnownDevice()) {
+1 -1
View File
@@ -153,7 +153,7 @@ extern "C" int livoxGen1_attachDeviceReq(
// Parse integer parameters from provider params with defaults // Parse integer parameters from provider params with defaults
int handshakeTimeoutMs = 250; // Default: 50ms int handshakeTimeoutMs = 250; // Default: 50ms
int retryDelayMs = 500; // Default: 500ms int retryDelayMs = 2000; // Default: 500ms
uint8_t smoSubnetNbits = 24; // Default: /24 subnet uint8_t smoSubnetNbits = 24; // Default: /24 subnet
uint16_t dataPort = 56000; // Default data port uint16_t dataPort = 56000; // Default data port
uint16_t cmdPort = 56001; // Default command port uint16_t cmdPort = 56001; // Default command port