Skip to content

Random fixes and improvements - #1097

Merged
patrickelectric merged 13 commits into
masterfrom
improve-network
Aug 8, 2026
Merged

Random fixes and improvements#1097
patrickelectric merged 13 commits into
masterfrom
improve-network

Conversation

@patrickelectric

Copy link
Copy Markdown
Member

extends the software's lifespan

Discovery marked every entry unavailable on each scan cycle, so the list
flickered whenever a single reply was missed. Keep a last-seen timestamp
and expire entries with a TTL instead, and never expire a connected
device. Skip interfaces that are not up and running so stale link-local
addresses stop producing false subnet matches, broadcast discovery and IP
configuration to the limited broadcast address so a link-local device is
still reached, flag a device on an unreachable subnet as needing
configuration, and escalate a persistent UDP failure once with an
actionable message.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
windeployqt on the VS2026 runner no longer copies the OpenSSL 1.1 DLLs
that Qt 5.15.2 needs for HTTPS, so the packaged app could not talk to the
update and firmware servers.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Logger is a function-local static, so log calls from later destructors
would re-enter an already destroyed Logger during static teardown.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
A GUI-subsystem binary launched from Explorer has no console, and fmt >= 10
throws std::system_error when the styled print fails to write. A Qt message
handler must never throw, so probe stdout once and keep a try/catch backstop.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
DeviceManager destroys the current sensor whenever a new connection is made,
so the 250ms singleShot could fire on a freed Ping360. Give it a context
object and fall through to the configuration path when the probe cannot run.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
requestNextProfile() can reach resetBaudrate(), which closes and reopens the
port, but handleMessage runs synchronously inside QSerialPort::readyRead. Defer
the request to the event loop so the port is never closed from its own signal.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
…tatic

The function-local static shadowed the member, was shared across every sensor
instance and was never reset. Drop it and initialise the real member instead.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
A zero num_points reaches calculateSamplePeriod() as a divisor and makes the
firmware NACK the configuration, so stop the reduction loops at one point.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
@patrickelectric
patrickelectric merged commit e1b1c7a into master Aug 8, 2026
8 checks passed
@patrickelectric
patrickelectric deleted the improve-network branch August 8, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant