Coverage report:
77%
hide covered
Files
Functions
Classes
coverage.py v7.15.4
, created at 2026-08-13 13:27 +0000
File
function
statements
missing
excluded
coverage
kv4p
/
__init__.py
encode_vendor_payload
1
0
0
100%
kv4p
/
__init__.py
decode_vendor_payload
7
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.__init__
12
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.__enter__
6
3
0
50%
kv4p
/
__init__.py
Kv4pRadio.__exit__
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.connect
7
1
0
86%
kv4p
/
__init__.py
Kv4pRadio.disconnect
11
3
0
73%
kv4p
/
__init__.py
Kv4pRadio.reset
5
2
0
60%
kv4p
/
__init__.py
Kv4pRadio.set_frequency
6
1
0
83%
kv4p
/
__init__.py
Kv4pRadio.set_bandwidth
2
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.set_squelch
2
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.set_ctcss
2
2
0
0%
kv4p
/
__init__.py
Kv4pRadio.set_high_power
2
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.set_tx_allowed
2
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.set_rssi
2
2
0
0%
kv4p
/
__init__.py
Kv4pRadio.set_rx_audio_open
2
2
0
0%
kv4p
/
__init__.py
Kv4pRadio.set_status_reports
2
2
0
0%
kv4p
/
__init__.py
Kv4pRadio.set_filters
4
4
0
0%
kv4p
/
__init__.py
Kv4pRadio.set_ptt
2
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.send_tx_audio
2
2
0
0%
kv4p
/
__init__.py
Kv4pRadio.send_ax25_frame
2
2
0
0%
kv4p
/
__init__.py
Kv4pRadio.flush
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.on_rx_audio
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.on_sql
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.on_phy_ptt
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.on_tx_active
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.on_ax25_frame
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.on_device_state
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.hello
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.is_ready
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.phy_ptt
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.tx_active
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.sql_open
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.mode
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.codec
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.freq_rx
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.freq_tx
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.bandwidth
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.squelch
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.ctcss_rx
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.ctcss_tx
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.high_power
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.tx_allowed
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio.rssi
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.rx_audio_open
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.status_reports
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.filter_pre
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.filter_high
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio.filter_low
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio._on_kiss_frame
20
10
0
50%
kv4p
/
__init__.py
Kv4pRadio._handle_ax25_frame
3
3
0
0%
kv4p
/
__init__.py
Kv4pRadio._handle_debug
3
3
0
0%
kv4p
/
__init__.py
Kv4pRadio._handle_hello
3
0
0
100%
kv4p
/
__init__.py
Kv4pRadio._handle_device_state
4
4
0
0%
kv4p
/
__init__.py
Kv4pRadio._handle_rx_audio
1
1
0
0%
kv4p
/
__init__.py
Kv4pRadio._handle_window_update
3
3
0
0%
kv4p
/
__init__.py
Kv4pRadio._on_transport_error
2
2
0
0%
kv4p
/
__init__.py
Kv4pRadio._send_desired_state
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio._send_vendor
1
0
0
100%
kv4p
/
__init__.py
Kv4pRadio._claim_and_write
6
4
0
33%
kv4p
/
__init__.py
Kv4pRadio._require_ready
4
1
0
75%
kv4p
/
__init__.py
(no function)
102
0
0
100%
kv4p
/
constants
/
__init__.py
(no function)
0
0
0
100%
kv4p
/
constants
/
kiss.py
(no function)
7
0
0
100%
kv4p
/
constants
/
messages.py
(no function)
16
0
0
100%
kv4p
/
constants
/
vendor.py
(no function)
15
0
0
100%
kv4p
/
flow_control.py
FlowControlWindow.__init__
2
0
0
100%
kv4p
/
flow_control.py
FlowControlWindow.reset
3
0
0
100%
kv4p
/
flow_control.py
FlowControlWindow.add
3
0
0
100%
kv4p
/
flow_control.py
FlowControlWindow.claim
9
0
0
100%
kv4p
/
flow_control.py
(no function)
8
0
0
100%
kv4p
/
messages
/
__init__.py
(no function)
0
0
0
100%
kv4p
/
messages
/
desired_state.py
bandwidth_to_dra818
6
3
0
50%
kv4p
/
messages
/
desired_state.py
dra818_to_bandwidth
1
0
0
100%
kv4p
/
messages
/
desired_state.py
HostDesiredState.to_bytes
1
0
0
100%
kv4p
/
messages
/
desired_state.py
(no function)
19
0
0
100%
kv4p
/
messages
/
device_state.py
RadioMode._missing_
1
0
0
100%
kv4p
/
messages
/
device_state.py
DeviceState.from_bytes
4
0
0
100%
kv4p
/
messages
/
device_state.py
DeviceState.sql_open
1
0
0
100%
kv4p
/
messages
/
device_state.py
(no function)
33
0
0
100%
kv4p
/
messages
/
hello.py
Hello.from_bytes
6
1
0
83%
kv4p
/
messages
/
hello.py
(no function)
10
0
0
100%
kv4p
/
messages
/
version.py
RadioFeatures.hl
1
0
0
100%
kv4p
/
messages
/
version.py
RadioFeatures.phy_ptt
1
0
0
100%
kv4p
/
messages
/
version.py
RadioFeatures.esp32_afsk
1
0
0
100%
kv4p
/
messages
/
version.py
Version.from_bytes
4
0
0
100%
kv4p
/
messages
/
version.py
(no function)
26
0
0
100%
kv4p
/
messages
/
window_update.py
WindowUpdate.from_bytes
3
3
0
0%
kv4p
/
messages
/
window_update.py
(no function)
9
0
0
100%
kv4p
/
protocol
/
__init__.py
(no function)
0
0
0
100%
kv4p
/
protocol
/
kiss.py
KissParser.__init__
4
0
0
100%
kv4p
/
protocol
/
kiss.py
KissParser.feed
2
0
0
100%
kv4p
/
protocol
/
kiss.py
KissParser._feed_byte
24
0
0
100%
kv4p
/
protocol
/
kiss.py
encode_kiss_frame
9
0
0
100%
kv4p
/
protocol
/
kiss.py
(no function)
10
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.__init__
22
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.on_hello
10
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.wait_for_hello
1
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.on_device_state
23
1
0
96%
kv4p
/
state_tracker.py
DeviceStateTracker.on_rx_audio
2
2
0
0%
kv4p
/
state_tracker.py
DeviceStateTracker.request_ptt
12
5
0
58%
kv4p
/
state_tracker.py
DeviceStateTracker.set_frequency
6
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.set_bandwidth
3
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.set_squelch
3
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.set_ctcss
6
6
0
0%
kv4p
/
state_tracker.py
DeviceStateTracker.set_flag
5
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker._send_desired_state_locked
8
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker._build_desired_state_locked
1
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.hello
2
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.device_state
2
2
0
0%
kv4p
/
state_tracker.py
DeviceStateTracker.flags
2
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.freq_rx
2
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.freq_tx
2
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.bandwidth
2
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.squelch
2
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker.ctcss_rx
2
2
0
0%
kv4p
/
state_tracker.py
DeviceStateTracker.ctcss_tx
2
2
0
0%
kv4p
/
state_tracker.py
DeviceStateTracker.tx_audio_command
2
2
0
0%
kv4p
/
state_tracker.py
DeviceStateTracker.phy_ptt
4
1
0
75%
kv4p
/
state_tracker.py
DeviceStateTracker.tx_active
4
1
0
75%
kv4p
/
state_tracker.py
DeviceStateTracker.sql_open
4
1
0
75%
kv4p
/
state_tracker.py
DeviceStateTracker.mode
4
4
0
0%
kv4p
/
state_tracker.py
DeviceStateTracker._seed_settings_locked
6
0
0
100%
kv4p
/
state_tracker.py
DeviceStateTracker._log_device_status
5
1
0
80%
kv4p
/
state_tracker.py
(no function)
55
0
0
100%
kv4p
/
transports
/
__init__.py
Kv4pTransport.open
1
1
0
0%
kv4p
/
transports
/
__init__.py
Kv4pTransport.close
1
1
0
0%
kv4p
/
transports
/
__init__.py
Kv4pTransport.write_frame
1
1
0
0%
kv4p
/
transports
/
__init__.py
Kv4pTransport.flush
1
1
0
0%
kv4p
/
transports
/
__init__.py
Kv4pTransport.reset
1
1
0
0%
kv4p
/
transports
/
__init__.py
(no function)
8
0
0
100%
kv4p
/
transports
/
dummy.py
DummyTransport.__init__
8
0
0
100%
kv4p
/
transports
/
dummy.py
DummyTransport.open
2
0
0
100%
kv4p
/
transports
/
dummy.py
DummyTransport.close
2
0
0
100%
kv4p
/
transports
/
dummy.py
DummyTransport.reset
3
0
0
100%
kv4p
/
transports
/
dummy.py
DummyTransport._build_hello_bytes
3
0
0
100%
kv4p
/
transports
/
dummy.py
DummyTransport._deliver
2
0
0
100%
kv4p
/
transports
/
dummy.py
DummyTransport.write_frame
2
0
0
100%
kv4p
/
transports
/
dummy.py
DummyTransport.flush
1
1
0
0%
kv4p
/
transports
/
dummy.py
_encode_vendor_payload
1
0
0
100%
kv4p
/
transports
/
dummy.py
(no function)
21
0
0
100%
kv4p
/
transports
/
serial.py
Kv4pSerialTransport.__init__
8
8
0
0%
kv4p
/
transports
/
serial.py
Kv4pSerialTransport.open
10
10
0
0%
kv4p
/
transports
/
serial.py
Kv4pSerialTransport.close
11
11
0
0%
kv4p
/
transports
/
serial.py
Kv4pSerialTransport.reset
9
9
0
0%
kv4p
/
transports
/
serial.py
Kv4pSerialTransport.write_frame
6
6
0
0%
kv4p
/
transports
/
serial.py
Kv4pSerialTransport.flush
2
2
0
0%
kv4p
/
transports
/
serial.py
Kv4pSerialTransport._read_loop
11
11
0
0%
kv4p
/
transports
/
serial.py
(no function)
18
18
0
0%
Total
839
190
0
77%
No items found using the specified filter.