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

wirenboard / wb-mqtt-serial / 964

28 Sep 2026 06:54AM UTC coverage: 83.234% (+6.4%) from 76.817%
964

push

github

web-flow
Add disable_fast_modbus option to ports and Modbus devices (#1270)

11435 of 13496 branches covered (84.73%)

150 of 152 new or added lines in 11 files covered. (98.68%)

1282 existing lines in 91 files now uncovered.

19376 of 23279 relevant lines covered (83.23%)

1598.47 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)
180 ✔
7
    : EventsReader(eventsReader)
180 ✔
8
{}
180 ✔
9

10
bool TSerialClientDeviceAccessHandler::PrepareToAccess(TFeaturePort& port, PSerialDevice dev)
1,077 ✔
11
{
12
    if (LastAccessedDevice && dev != LastAccessedDevice) {
1,077 ✔
13
        try {
14
            LastAccessedDevice->EndSession(port);
50 ✔
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;
50 ✔
22
    }
23
    if (dev) {
1,077 ✔
24
        try {
25
            if (EventsReader) {
936 ✔
26
                bool devWasDisconnected = dev->GetConnectionState() != TDeviceConnectionState::CONNECTED;
936 ✔
27
                if (devWasDisconnected || dev != LastAccessedDevice) {
936 ✔
28
                    dev->Prepare(port);
209 ✔
29
                    if (devWasDisconnected) {
194 ✔
30
                        try {
31
                            EventsReader->EnableEvents(dev, port);
159 ✔
32
                        } catch (const TSerialDeviceException& e) {
1 ✔
33
                            dev->SetDisconnected();
1 ✔
34
                            throw;
1 ✔
35
                        }
1 ✔
36
                    }
37
                }
38
            }
39
            LastAccessedDevice = dev;
920 ✔
40
            return true;
920 ✔
41
        } catch (const TSerialDeviceException& e) {
16 ✔
42
            auto& logger = (dev->GetConnectionState() == TDeviceConnectionState::DISCONNECTED) ? Debug : Warn;
16 ✔
43
            LOG(logger) << "Failed to open session: " << e.what() << " [slave_id is " << dev->ToString() + "]";
16 ✔
44
        }
16 ✔
45
    }
46
    return false;
157 ✔
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