LCOV - code coverage report
Current view: top level - libs/bsw/uds/src/util - RoutineControlOptionParser.cpp (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 19 19
Test Date: 2026-02-24 11:21:15 Functions: 100.0 % 4 4

            Line data    Source code
       1              : // Copyright 2024 Accenture.
       2              : 
       3              : #include "util/RoutineControlOptionParser.h"
       4              : 
       5              : #include <etl/unaligned_type.h>
       6              : 
       7              : namespace uds
       8              : {
       9              : uint8_t
      10            1 : RoutineControlOptionParser::getLogicalBlockNumberLength(uint8_t const lengthFormatIdentifier)
      11              : {
      12            1 :     return (lengthFormatIdentifier & 0xF0U) >> 4U;
      13              : }
      14              : 
      15            1 : uint8_t RoutineControlOptionParser::getMemoryAddressLength(uint8_t const lengthFormatIdentifier)
      16              : {
      17            1 :     return (lengthFormatIdentifier & 0xF0U) >> 4U;
      18              : }
      19              : 
      20            1 : uint8_t RoutineControlOptionParser::getMemorySizeLength(uint8_t const lengthFormatIdentifier)
      21              : {
      22            1 :     return (lengthFormatIdentifier & 0x0FU);
      23              : }
      24              : 
      25              : uint32_t
      26            5 : RoutineControlOptionParser::parseParameter(uint8_t const* const buffer, uint8_t const length)
      27              : {
      28            5 :     switch (length)
      29              :     {
      30            1 :         case 1U:
      31              :         {
      32            1 :             return static_cast<uint32_t>(*buffer);
      33              :         }
      34            1 :         case 2U:
      35              :         {
      36            1 :             return static_cast<uint32_t>(::etl::be_uint16_t(buffer));
      37              :         }
      38            1 :         case 3U:
      39              :         {
      40            1 :             return (static_cast<uint32_t>(*buffer) << 16)
      41            1 :                    | static_cast<uint32_t>(::etl::be_uint16_t(buffer + 1));
      42              :         }
      43            1 :         case 4U:
      44              :         {
      45            1 :             return ::etl::be_uint32_t(buffer);
      46              :         }
      47            1 :         default:
      48              :         {
      49            1 :             return 0U;
      50              :         }
      51              :     }
      52              : }
      53              : 
      54              : } // namespace uds
        

Generated by: LCOV version 2.0-1