Coverage report: 77%

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.