LCOV - code coverage report
Current view: top level - src/lib - pokitmeter.cpp (source / functions) Coverage Total Hit
Project: Dokit Lines: 84.1 % 88 74
Version: Functions: 85.7 % 7 6

            Line data    Source code
       1              : // SPDX-FileCopyrightText: 2022-2025 Paul Colby <git@colby.id.au>
       2              : // SPDX-License-Identifier: LGPL-3.0-or-later
       3              : 
       4              : /*!
       5              :  * \file
       6              :  * Declares the PokitMeter namespace.
       7              :  */
       8              : 
       9              : #include <qtpokit/pokitmeter.h>
      10              : 
      11              : #include <QCoreApplication>
      12              : #include <QLoggingCategory>
      13              : 
      14              : QTPOKIT_BEGIN_NAMESPACE
      15              : 
      16              : namespace PokitMeter {
      17              : 
      18            0 : static Q_LOGGING_CATEGORY(lc, "dokit.pokit.products.meter", QtInfoMsg); ///< Logging category for this file.
      19              : 
      20              : namespace {
      21              :     class Private
      22              :     {
      23            0 :         Q_DECLARE_TR_FUNCTIONS(PokitMeter)
      24              :     };
      25              : }
      26              : 
      27              : /// Returns \a range as a user-friendly string.
      28         9680 : QString toString(const CurrentRange &range)
      29         4088 : {
      30        13768 :     switch (range) {
      31          680 :     case CurrentRange::_10mA:     return Private::tr("Up to 10mA");
      32          680 :     case CurrentRange::_30mA:     return Private::tr("Up to 30mA");
      33         6000 :     case CurrentRange::_150mA:    return Private::tr("Up to 150mA");
      34          680 :     case CurrentRange::_300mA:    return Private::tr("Up to 300mA");
      35         5048 :     case CurrentRange::_2A:       return Private::tr("Up to 2A");
      36          680 :     case CurrentRange::AutoRange: return Private::tr("Auto-range");
      37            0 :     default:                      return QString();
      38         4088 :     }
      39         4088 : }
      40              : 
      41              : /*!
      42              :  * Returns the maximum value for \a range in microamps, or 0 if \a range is not a known value for Pokit Meter devices.
      43              :  */
      44         4080 : quint32 maxValue(const CurrentRange &range)
      45         2856 : {
      46         6936 :     switch (range) {
      47          728 :     case CurrentRange::_10mA:     return    10'000;
      48         1496 :     case CurrentRange::_30mA:     return    30'000;
      49         2176 :     case CurrentRange::_150mA:    return   150'000;
      50          816 :     case CurrentRange::_300mA:    return   300'000;
      51          308 :     case CurrentRange::_2A:       return 2'000'000;
      52           77 :     case CurrentRange::AutoRange: return 2'000'000;
      53            0 :     default:
      54            0 :         qCWarning(lc).noquote() << Private::tr("Unknown CurrentRange value: %1").arg((int)range);
      55            0 :         return 0;
      56         2856 :     }
      57         2856 : }
      58              : 
      59              : /// Returns \a range as a user-friendly string.
      60         4320 : QString toString(const ResistanceRange &range)
      61         2832 : {
      62         7152 :     switch (range) {
      63          680 :     case ResistanceRange::_160:      return Private::tr("Up to 160Ω");
      64          680 :     case ResistanceRange::_330:      return Private::tr("Up to 330Ω");
      65          680 :     case ResistanceRange::_890:      return Private::tr("Up to 890Ω");
      66          680 :     case ResistanceRange::_1K5:      return Private::tr("Up to 1.5KΩ");
      67         1304 :     case ResistanceRange::_10K:      return Private::tr("Up to 10KΩ");
      68          680 :     case ResistanceRange::_100K:     return Private::tr("Up to 100KΩ");
      69         1088 :     case ResistanceRange::_470K:     return Private::tr("Up to 470KΩ");
      70          680 :     case ResistanceRange::_1M:       return Private::tr("Up to 1MΩ");
      71          680 :     case ResistanceRange::AutoRange: return Private::tr("Auto-range");
      72            0 :     default:                         return QString();
      73         2832 :     }
      74         2832 : }
      75              : 
      76              : /*!
      77              :  * Returns the maximum value for \a range in ohms, or 0 if \a range is not a known value for Pokit Meter devices.
      78              :  */
      79         7920 : quint32 maxValue(const ResistanceRange &range)
      80         5544 : {
      81        13464 :     switch (range) {
      82         1064 :     case ResistanceRange::_160:      return       160;
      83         2312 :     case ResistanceRange::_330:      return       330;
      84         2040 :     case ResistanceRange::_890:      return       890;
      85         1768 :     case ResistanceRange::_1K5:      return     1'500;
      86         1496 :     case ResistanceRange::_10K:      return    10'000;
      87         1224 :     case ResistanceRange::_100K:     return   100'000;
      88         1360 :     case ResistanceRange::_470K:     return   470'000;
      89          308 :     case ResistanceRange::_1M:       return 1'000'000;
      90           77 :     case ResistanceRange::AutoRange: return 1'000'000;
      91            0 :     default:
      92            0 :         qCWarning(lc).noquote() << Private::tr("Unknown ResistanceRange value: %1").arg((int)range);
      93            0 :         return 0;
      94         5544 :     }
      95         5544 : }
      96              : 
      97              : /// Returns \a range as a user-friendly string.
      98        10080 : QString toString(const VoltageRange &range)
      99         4368 : {
     100        14448 :     switch (range) {
     101         1632 :     case VoltageRange::_300mV:    return Private::tr("Up to 300mV");
     102         9416 :     case VoltageRange::_2V:       return Private::tr("Up to 2V");
     103          680 :     case VoltageRange::_6V:       return Private::tr("Up to 6V");
     104          680 :     case VoltageRange::_12V:      return Private::tr("Up to 12V");
     105          680 :     case VoltageRange::_30V:      return Private::tr("Up to 30V");
     106          680 :     case VoltageRange::_60V:      return Private::tr("Up to 60V");
     107          680 :     case VoltageRange::AutoRange: return Private::tr("Auto-range");
     108            0 :     default:                      return QString();
     109         4368 :     }
     110         4368 : }
     111              : 
     112              : /*!
     113              :  * Returns the maximum value for \a range in millivolts, or 0 if \a range is not a known value for Pokit Meter devices.
     114              :  */
     115         5360 : quint32 maxValue(const VoltageRange &range)
     116         3752 : {
     117         9112 :     switch (range) {
     118         1232 :     case VoltageRange::_300mV:    return    300;
     119         1768 :     case VoltageRange::_2V:       return  2'000;
     120         1496 :     case VoltageRange::_6V:       return  6'000;
     121         1224 :     case VoltageRange::_12V:      return 12'000;
     122          952 :     case VoltageRange::_30V:      return 30'000;
     123          308 :     case VoltageRange::_60V:      return 60'000;
     124           77 :     case VoltageRange::AutoRange: return 60'000;
     125            0 :     default:
     126            0 :         qCWarning(lc).noquote() << Private::tr("Unknown VoltageRange value: %1").arg((int)range);
     127            0 :         return 0;
     128         3752 :     }
     129         3752 : }
     130              : 
     131              : }
     132              : 
     133              : QTPOKIT_END_NAMESPACE
        

Generated by: LCOV version 2.3.1-1