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-2026 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         8470 : QString toString(const CurrentRange &range)
      29         6291 : {
      30        14761 :     switch (range) {
      31          905 :     case CurrentRange::_10mA:     return Private::tr("Up to 10mA");
      32          905 :     case CurrentRange::_30mA:     return Private::tr("Up to 30mA");
      33         6204 :     case CurrentRange::_150mA:    return Private::tr("Up to 150mA");
      34          905 :     case CurrentRange::_300mA:    return Private::tr("Up to 300mA");
      35         4937 :     case CurrentRange::_2A:       return Private::tr("Up to 2A");
      36          905 :     case CurrentRange::AutoRange: return Private::tr("Auto-range");
      37            0 :     default:                      return QString();
      38         6291 :     }
      39         6291 : }
      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         3570 : quint32 maxValue(const CurrentRange &range)
      45         5661 : {
      46         9231 :     switch (range) {
      47         1443 :     case CurrentRange::_10mA:     return    10'000;
      48         1991 :     case CurrentRange::_30mA:     return    30'000;
      49         2896 :     case CurrentRange::_150mA:    return   150'000;
      50         1086 :     case CurrentRange::_300mA:    return   300'000;
      51          532 :     case CurrentRange::_2A:       return 2'000'000;
      52          133 :     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         5661 :     }
      57         5661 : }
      58              : 
      59              : /// Returns \a range as a user-friendly string.
      60         3780 : QString toString(const ResistanceRange &range)
      61         5484 : {
      62         9264 :     switch (range) {
      63          905 :     case ResistanceRange::_160:      return Private::tr("Up to 160Ω");
      64          905 :     case ResistanceRange::_330:      return Private::tr("Up to 330Ω");
      65          905 :     case ResistanceRange::_890:      return Private::tr("Up to 890Ω");
      66          905 :     case ResistanceRange::_1K5:      return Private::tr("Up to 1.5KΩ");
      67         1481 :     case ResistanceRange::_10K:      return Private::tr("Up to 10KΩ");
      68          905 :     case ResistanceRange::_100K:     return Private::tr("Up to 100KΩ");
      69         1448 :     case ResistanceRange::_470K:     return Private::tr("Up to 470KΩ");
      70          905 :     case ResistanceRange::_1M:       return Private::tr("Up to 1MΩ");
      71          905 :     case ResistanceRange::AutoRange: return Private::tr("Auto-range");
      72            0 :     default:                         return QString();
      73         5484 :     }
      74         5484 : }
      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         6930 : quint32 maxValue(const ResistanceRange &range)
      80        10989 : {
      81        17919 :     switch (range) {
      82         2109 :     case ResistanceRange::_160:      return       160;
      83         3077 :     case ResistanceRange::_330:      return       330;
      84         2715 :     case ResistanceRange::_890:      return       890;
      85         2353 :     case ResistanceRange::_1K5:      return     1'500;
      86         1991 :     case ResistanceRange::_10K:      return    10'000;
      87         1629 :     case ResistanceRange::_100K:     return   100'000;
      88         1810 :     case ResistanceRange::_470K:     return   470'000;
      89          532 :     case ResistanceRange::_1M:       return 1'000'000;
      90          133 :     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        10989 :     }
      95        10989 : }
      96              : 
      97              : /// Returns \a range as a user-friendly string.
      98         8820 : QString toString(const VoltageRange &range)
      99         6846 : {
     100        15666 :     switch (range) {
     101         2172 :     case VoltageRange::_300mV:    return Private::tr("Up to 300mV");
     102         8969 :     case VoltageRange::_2V:       return Private::tr("Up to 2V");
     103          905 :     case VoltageRange::_6V:       return Private::tr("Up to 6V");
     104          905 :     case VoltageRange::_12V:      return Private::tr("Up to 12V");
     105          905 :     case VoltageRange::_30V:      return Private::tr("Up to 30V");
     106          905 :     case VoltageRange::_60V:      return Private::tr("Up to 60V");
     107          905 :     case VoltageRange::AutoRange: return Private::tr("Auto-range");
     108            0 :     default:                      return QString();
     109         6846 :     }
     110         6846 : }
     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         4690 : quint32 maxValue(const VoltageRange &range)
     116         7437 : {
     117        12127 :     switch (range) {
     118         2442 :     case VoltageRange::_300mV:    return    300;
     119         2353 :     case VoltageRange::_2V:       return  2'000;
     120         1991 :     case VoltageRange::_6V:       return  6'000;
     121         1629 :     case VoltageRange::_12V:      return 12'000;
     122         1267 :     case VoltageRange::_30V:      return 30'000;
     123          532 :     case VoltageRange::_60V:      return 60'000;
     124          133 :     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         7437 :     }
     129         7437 : }
     130              : 
     131              : }
     132              : 
     133              : QTPOKIT_END_NAMESPACE
        

Generated by: LCOV version 2.4-0