• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wirenboard / wb-mqtt-serial / 1

20 Oct 2026 04:57AM UTC coverage: 86.817% (+14.0%) from 72.836%
1

Pull #1281

github

fab311
KraPete
Fix device model fallback in device/LoadConfig RPC

The short model register was never read because the extended register
error was converted to TRPCException. The RPC error now says that
the device model could not be read.
Pull Request #1281: Fix device model fallback in device/LoadConfig RPC

31180 of 80922 branches covered (38.53%)

74 of 76 new or added lines in 2 files covered. (97.37%)

1379 existing lines in 84 files now uncovered.

22464 of 25875 relevant lines covered (86.82%)

5205.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

83.33
/src/serial_client_device_access_handler.cpp
1
#include "serial_client_device_access_handler.h"
2
#include "log.h"
3

4
#define LOG(logger) logger.Log() << "[serial client] "
5

6
TSerialClientDeviceAccessHandler::TSerialClientDeviceAccessHandler(PSerialClientEventsReader eventsReader)
596 ✔
7
    : EventsReader(eventsReader)
596 ✔
8
{}
596 ✔
9

10
bool TSerialClientDeviceAccessHandler::PrepareToAccess(TFeaturePort& port, PSerialDevice dev)
10,366 ✔
11
{
12
    if (LastAccessedDevice && dev != LastAccessedDevice) {
10,366 ✔
13
        try {
14
            LastAccessedDevice->EndSession(port);
356 !
15
        } catch (const TSerialDeviceException& e) {
×
16
            auto& logger =
17
                (LastAccessedDevice->GetConnectionState() == TDeviceConnectionState::DISCONNECTED) ? Debug : Warn;
×
18
            LOG(logger) << "TSerialDevice::EndSession(): " << e.what() << " [slave_id is "
×
19
                        << LastAccessedDevice->ToString() + "]";
×
UNCOV
20
        }
×
21
        LastAccessedDevice = nullptr;
356 ✔
22
    }
23
    if (dev) {
10,366 ✔
24
        try {
25
            if (EventsReader) {
9,986 !
26
                bool devWasDisconnected = dev->GetConnectionState() != TDeviceConnectionState::CONNECTED;
9,986 !
27
                if (devWasDisconnected || dev != LastAccessedDevice) {
9,986 ✔
28
                    dev->Prepare(port);
804 ✔
29
                    if (devWasDisconnected) {
757 ✔
30
                        try {
31
                            EventsReader->EnableEvents(dev, port);
438 ✔
32
                        } catch (const TSerialDeviceException& e) {
2 !
33
                            dev->SetDisconnected();
2 !
34
                            throw;
2 ✔
35
                        }
2 ✔
36
                    }
37
                }
38
            }
39
            LastAccessedDevice = dev;
9,937 ✔
40
            return true;
9,937 ✔
41
        } catch (const TSerialDeviceException& e) {
49 !
42
            auto& logger = (dev->GetConnectionState() == TDeviceConnectionState::DISCONNECTED) ? Debug : Warn;
49 !
43
            LOG(logger) << "Failed to open session: " << e.what() << " [slave_id is " << dev->ToString() + "]";
49 !
44
        }
49 ✔
45
    }
46
    return false;
429 ✔
47
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc