LCOV - code coverage report
Current view: top level - src - message_router.cpp (source / functions) Coverage Total Hit
Test: ESP-NOW Manager Unified Coverage Lines: 100.0 % 38 38
Test Date: 2026-04-21 02:14:32 Functions: 100.0 % 2 2
Branches: 100.0 % 22 22

             Branch data     Line data    Source code
       1                 :             : #include <cstring>
       2                 :             : 
       3                 :             : #include "esp_log.h"
       4                 :             : 
       5                 :             : #include "message_router.hpp"
       6                 :             : 
       7                 :             : static const char* TAG = "MessageRouter";
       8                 :             : 
       9                 :          16 : MessageRouter::MessageRouter(
      10                 :             :     IDiscoveryManager& discovery_manager,
      11                 :             :     ITxManager& tx_manager,
      12                 :             :     IHeartbeatManager& heartbeat_manager,
      13                 :          16 :     IPairingManager& pairing_manager)
      14                 :          16 :     : discovery_manager_(discovery_manager)
      15                 :          16 :     , tx_manager_(tx_manager)
      16                 :          16 :     , heartbeat_manager_(heartbeat_manager)
      17                 :          16 :     , pairing_manager_(pairing_manager)
      18                 :             : 
      19                 :             : {
      20                 :          16 : }
      21                 :             : 
      22                 :          15 : void MessageRouter::handle_packet(const DecodedRxPacket& decoded)
      23                 :             : {
      24   [ +  +  +  +  :          15 :     switch (decoded.header.msg_type) {
             +  +  +  + ]
      25                 :           2 :     case MessageType::PAIR_REQUEST:
      26         [ +  + ]:           2 :         if (decoded.raw.len < sizeof(PairRequest)) {
      27                 :             :             ESP_LOGW(TAG, "Malformed PAIR_REQUEST: len %d < %d", (int)decoded.raw.len, (int)sizeof(PairRequest));
      28                 :             :             return;
      29                 :             :         }
      30                 :           1 :         pairing_manager_.handle_request(decoded);
      31                 :           1 :         break;
      32                 :           2 :     case MessageType::PAIR_RESPONSE:
      33         [ +  + ]:           2 :         if (decoded.raw.len < sizeof(PairResponse)) {
      34                 :             :             ESP_LOGW(TAG, "Malformed PAIR_RESPONSE: len %d < %d", (int)decoded.raw.len, (int)sizeof(PairResponse));
      35                 :             :             return;
      36                 :             :         }
      37                 :           1 :         pairing_manager_.handle_response(decoded);
      38                 :           1 :         break;
      39                 :           2 :     case MessageType::HEARTBEAT:
      40         [ +  + ]:           2 :         if (decoded.raw.len < sizeof(HeartbeatMessage)) {
      41                 :             :             ESP_LOGW(TAG, "Malformed HEARTBEAT: len %d < %d", (int)decoded.raw.len, (int)sizeof(HeartbeatMessage));
      42                 :             :             return;
      43                 :             :         }
      44                 :           1 :         heartbeat_manager_.handle_request(decoded);
      45                 :           1 :         break;
      46                 :             : 
      47                 :           2 :     case MessageType::HEARTBEAT_RESPONSE:
      48                 :           2 :     {
      49         [ +  + ]:           2 :         if (decoded.raw.len < sizeof(HeartbeatResponse)) {
      50                 :             :             ESP_LOGW(
      51                 :             :                 TAG, "Malformed HEARTBEAT_RESPONSE: len %d < %d", (int)decoded.raw.len, (int)sizeof(HeartbeatResponse));
      52                 :             :             return;
      53                 :             :         }
      54                 :           1 :         heartbeat_manager_.handle_response(decoded);
      55                 :           1 :         break;
      56                 :             :     }
      57                 :           2 :     case MessageType::ACK:
      58         [ +  + ]:           2 :         if (decoded.raw.len < sizeof(AckMessage)) {
      59                 :             :             ESP_LOGW(TAG, "Malformed ACK: len %d < %d", (int)decoded.raw.len, (int)sizeof(AckMessage));
      60                 :             :             return;
      61                 :             :         }
      62                 :           1 :         tx_manager_.handle_ack(decoded);
      63                 :           1 :         break;
      64                 :           2 :     case MessageType::CHANNEL_SCAN_PROBE:
      65         [ +  + ]:           2 :         if (decoded.raw.len < sizeof(MessageHeader)) {
      66                 :             :             ESP_LOGW(
      67                 :             :                 TAG, "Malformed CHANNEL_SCAN_PROBE: len %d < %d", (int)decoded.raw.len, (int)sizeof(MessageHeader));
      68                 :             :             return;
      69                 :             :         }
      70                 :           1 :         discovery_manager_.handle_scan_probe(decoded);
      71                 :           1 :         break;
      72                 :           2 :     case MessageType::CHANNEL_SCAN_RESPONSE:
      73         [ +  + ]:           2 :         if (decoded.raw.len < sizeof(MessageHeader)) {
      74                 :             :             ESP_LOGW(
      75                 :             :                 TAG, "Malformed CHANNEL_SCAN_RESPONSE: len %d < %d", (int)decoded.raw.len, (int)sizeof(MessageHeader));
      76                 :             :             return;
      77                 :             :         }
      78                 :           1 :         discovery_manager_.handle_scan_response(decoded);
      79                 :           1 :         break;
      80                 :             : 
      81                 :             :     default:
      82                 :             :         break;
      83                 :             :     }
      84                 :             : }
        

Generated by: LCOV version 2.0-1