LCOV - code coverage report
Current view: top level - src/lib - pokitmeter.cpp (source / functions) Coverage Total Hit
Project: Dokit Lines: 80.4 % 92 74
Version: Functions: 87.5 % 8 7

            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            0 :     };
      25            0 : }
      26            0 : 
      27            0 : /// Returns \a range as a user-friendly string.
      28         9680 : QString toString(const CurrentRange &range)
      29         4680 : {
      30        14360 :     switch (range) {
      31          760 :     case CurrentRange::_10mA:     return Private::tr("Up to 10mA");
      32          760 :     case CurrentRange::_30mA:     return Private::tr("Up to 30mA");
      33         6192 :     case CurrentRange::_150mA:    return Private::tr("Up to 150mA");
      34          760 :     case CurrentRange::_300mA:    return Private::tr("Up to 300mA");
      35         5128 :     case CurrentRange::_2A:       return Private::tr("Up to 2A");
      36          760 :     case CurrentRange::AutoRange: return Private::tr("Auto-range");
      37            0 :     default:                      return QString();
      38         4680 :     }
      39         4680 : }
      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         3672 : {
      46         7752 :     switch (range) {
      47          936 :     case CurrentRange::_10mA:     return    10'000;
      48         1672 :     case CurrentRange::_30mA:     return    30'000;
      49         2432 :     case CurrentRange::_150mA:    return   150'000;
      50          912 :     case CurrentRange::_300mA:    return   300'000;
      51          372 :     case CurrentRange::_2A:       return 2'000'000;
      52           93 :     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         3672 :     }
      57         3672 : }
      58              : 
      59              : /// Returns \a range as a user-friendly string.
      60         4320 : QString toString(const ResistanceRange &range)
      61         3600 : {
      62         7920 :     switch (range) {
      63          760 :     case ResistanceRange::_160:      return Private::tr("Up to 160Ω");
      64          760 :     case ResistanceRange::_330:      return Private::tr("Up to 330Ω");
      65          760 :     case ResistanceRange::_890:      return Private::tr("Up to 890Ω");
      66          760 :     case ResistanceRange::_1K5:      return Private::tr("Up to 1.5KΩ");
      67         1384 :     case ResistanceRange::_10K:      return Private::tr("Up to 10KΩ");
      68          760 :     case ResistanceRange::_100K:     return Private::tr("Up to 100KΩ");
      69         1216 :     case ResistanceRange::_470K:     return Private::tr("Up to 470KΩ");
      70          760 :     case ResistanceRange::_1M:       return Private::tr("Up to 1MΩ");
      71          760 :     case ResistanceRange::AutoRange: return Private::tr("Auto-range");
      72            0 :     default:                         return QString();
      73         3600 :     }
      74         3600 : }
      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         7128 : {
      81        15048 :     switch (range) {
      82         1368 :     case ResistanceRange::_160:      return       160;
      83         2584 :     case ResistanceRange::_330:      return       330;
      84         2280 :     case ResistanceRange::_890:      return       890;
      85         1976 :     case ResistanceRange::_1K5:      return     1'500;
      86         1672 :     case ResistanceRange::_10K:      return    10'000;
      87         1368 :     case ResistanceRange::_100K:     return   100'000;
      88         1520 :     case ResistanceRange::_470K:     return   470'000;
      89          372 :     case ResistanceRange::_1M:       return 1'000'000;
      90           93 :     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         7128 :     }
      95         7128 : }
      96              : 
      97              : /// Returns \a range as a user-friendly string.
      98        10080 : QString toString(const VoltageRange &range)
      99         5040 : {
     100        15120 :     switch (range) {
     101         1824 :     case VoltageRange::_300mV:    return Private::tr("Up to 300mV");
     102         9496 :     case VoltageRange::_2V:       return Private::tr("Up to 2V");
     103          760 :     case VoltageRange::_6V:       return Private::tr("Up to 6V");
     104          760 :     case VoltageRange::_12V:      return Private::tr("Up to 12V");
     105          760 :     case VoltageRange::_30V:      return Private::tr("Up to 30V");
     106          760 :     case VoltageRange::_60V:      return Private::tr("Up to 60V");
     107          760 :     case VoltageRange::AutoRange: return Private::tr("Auto-range");
     108            0 :     default:                      return QString();
     109         5040 :     }
     110         5040 : }
     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         4824 : {
     117        10184 :     switch (range) {
     118         1584 :     case VoltageRange::_300mV:    return    300;
     119         1976 :     case VoltageRange::_2V:       return  2'000;
     120         1672 :     case VoltageRange::_6V:       return  6'000;
     121         1368 :     case VoltageRange::_12V:      return 12'000;
     122         1064 :     case VoltageRange::_30V:      return 30'000;
     123          372 :     case VoltageRange::_60V:      return 60'000;
     124           93 :     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         4824 :     }
     129         4824 : }
     130              : 
     131              : }
     132              : 
     133              : QTPOKIT_END_NAMESPACE
        

Generated by: LCOV version 2.3.2-1