LCOV - code coverage report
Current view: top level - uds/src/util - RoutineControlOptionParser.cpp (source / functions) Hit Total Coverage
Test: coverage.info Lines: 20 20 100.0 %
Date: 2025-01-20 13:53:09 Functions: 4 4 100.0 %

          Line data    Source code
       1             : // Copyright 2024 Accenture.
       2             : 
       3             : #include "util/RoutineControlOptionParser.h"
       4             : 
       5             : #include <estd/big_endian.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           1 :         {
      32           1 :             return static_cast<uint32_t>(*buffer);
      33             :         }
      34           1 :         case 2U:
      35           1 :         {
      36           1 :             return static_cast<uint32_t>(::estd::read_be<uint16_t>(buffer));
      37             :         }
      38           1 :         case 3U:
      39           1 :         {
      40           1 :             return ::estd::read_be_24(buffer);
      41             :         }
      42           1 :         case 4U:
      43           1 :         {
      44           1 :             return ::estd::read_be<uint32_t>(buffer);
      45             :         }
      46             :         default:
      47             :         {
      48             :             return 0U;
      49             :         }
      50             :     }
      51             : }
      52             : 
      53             : } // namespace uds

Generated by: LCOV version 1.14