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        12463 : QString toString(const CurrentRange &range)
      29         9440 : {
      30        21903 :     switch (range) {
      31         1155 :     case CurrentRange::_10mA:     return Private::tr("Up to 10mA");
      32         1155 :     case CurrentRange::_30mA:     return Private::tr("Up to 30mA");
      33         9450 :     case CurrentRange::_150mA:    return Private::tr("Up to 150mA");
      34         1155 :     case CurrentRange::_300mA:    return Private::tr("Up to 300mA");
      35         7833 :     case CurrentRange::_2A:       return Private::tr("Up to 2A");
      36         1155 :     case CurrentRange::AutoRange: return Private::tr("Auto-range");
      37            0 :     default:                      return QString();
      38         9440 :     }
      39         9440 : }
      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         5253 : quint32 maxValue(const CurrentRange &range)
      45         6528 : {
      46        11781 :     switch (range) {
      47         1664 :     case CurrentRange::_10mA:     return    10'000;
      48         2541 :     case CurrentRange::_30mA:     return    30'000;
      49         3696 :     case CurrentRange::_150mA:    return   150'000;
      50         1386 :     case CurrentRange::_300mA:    return   300'000;
      51          604 :     case CurrentRange::_2A:       return 2'000'000;
      52          151 :     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         6528 :     }
      57         6528 : }
      58              : 
      59              : /// Returns \a range as a user-friendly string.
      60         5562 : QString toString(const ResistanceRange &range)
      61         6480 : {
      62        12042 :     switch (range) {
      63         1155 :     case ResistanceRange::_160:      return Private::tr("Up to 160Ω");
      64         1155 :     case ResistanceRange::_330:      return Private::tr("Up to 330Ω");
      65         1155 :     case ResistanceRange::_890:      return Private::tr("Up to 890Ω");
      66         1155 :     case ResistanceRange::_1K5:      return Private::tr("Up to 1.5KΩ");
      67         2109 :     case ResistanceRange::_10K:      return Private::tr("Up to 10KΩ");
      68         1155 :     case ResistanceRange::_100K:     return Private::tr("Up to 100KΩ");
      69         1848 :     case ResistanceRange::_470K:     return Private::tr("Up to 470KΩ");
      70         1155 :     case ResistanceRange::_1M:       return Private::tr("Up to 1MΩ");
      71         1155 :     case ResistanceRange::AutoRange: return Private::tr("Auto-range");
      72            0 :     default:                         return QString();
      73         6480 :     }
      74         6480 : }
      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        10197 : quint32 maxValue(const ResistanceRange &range)
      80        12672 : {
      81        22869 :     switch (range) {
      82         2432 :     case ResistanceRange::_160:      return       160;
      83         3927 :     case ResistanceRange::_330:      return       330;
      84         3465 :     case ResistanceRange::_890:      return       890;
      85         3003 :     case ResistanceRange::_1K5:      return     1'500;
      86         2541 :     case ResistanceRange::_10K:      return    10'000;
      87         2079 :     case ResistanceRange::_100K:     return   100'000;
      88         2310 :     case ResistanceRange::_470K:     return   470'000;
      89          604 :     case ResistanceRange::_1M:       return 1'000'000;
      90          151 :     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        12672 :     }
      95        12672 : }
      96              : 
      97              : /// Returns \a range as a user-friendly string.
      98        12978 : QString toString(const VoltageRange &range)
      99        10080 : {
     100        23058 :     switch (range) {
     101         2772 :     case VoltageRange::_300mV:    return Private::tr("Up to 300mV");
     102        14511 :     case VoltageRange::_2V:       return Private::tr("Up to 2V");
     103         1155 :     case VoltageRange::_6V:       return Private::tr("Up to 6V");
     104         1155 :     case VoltageRange::_12V:      return Private::tr("Up to 12V");
     105         1155 :     case VoltageRange::_30V:      return Private::tr("Up to 30V");
     106         1155 :     case VoltageRange::_60V:      return Private::tr("Up to 60V");
     107         1155 :     case VoltageRange::AutoRange: return Private::tr("Auto-range");
     108            0 :     default:                      return QString();
     109        10080 :     }
     110        10080 : }
     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         6901 : quint32 maxValue(const VoltageRange &range)
     116         8576 : {
     117        15477 :     switch (range) {
     118         2816 :     case VoltageRange::_300mV:    return    300;
     119         3003 :     case VoltageRange::_2V:       return  2'000;
     120         2541 :     case VoltageRange::_6V:       return  6'000;
     121         2079 :     case VoltageRange::_12V:      return 12'000;
     122         1617 :     case VoltageRange::_30V:      return 30'000;
     123          604 :     case VoltageRange::_60V:      return 60'000;
     124          151 :     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         8576 :     }
     129         8576 : }
     130              : 
     131              : }
     132              : 
     133              : QTPOKIT_END_NAMESPACE
        

Generated by: LCOV version 2.5-0