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              : namespace PokitMeter {
      15              : 
      16            0 : static Q_LOGGING_CATEGORY(lc, "dokit.pokit.products.meter", QtInfoMsg); ///< Logging category for this file.
      17              : 
      18              : namespace {
      19              :     class Private
      20              :     {
      21            0 :         Q_DECLARE_TR_FUNCTIONS(PokitMeter)
      22              :     };
      23              : }
      24              : 
      25              : /// Returns \a range as a user-friendly string.
      26         5445 : QString toString(const CurrentRange &range)
      27         3772 : {
      28         9217 :     switch (range) {
      29          485 :     case CurrentRange::_10mA:     return Private::tr("Up to 10mA");
      30          485 :     case CurrentRange::_30mA:     return Private::tr("Up to 30mA");
      31         3978 :     case CurrentRange::_150mA:    return Private::tr("Up to 150mA");
      32          485 :     case CurrentRange::_300mA:    return Private::tr("Up to 300mA");
      33         3299 :     case CurrentRange::_2A:       return Private::tr("Up to 2A");
      34          485 :     case CurrentRange::AutoRange: return Private::tr("Auto-range");
      35            0 :     default:                      return QString();
      36         3772 :     }
      37         3772 : }
      38              : 
      39              : /*!
      40              :  * Returns the maximum value for \a range in microamps, or 0 if \a range is not a known value for Pokit Meter devices.
      41              :  */
      42         2295 : quint32 maxValue(const CurrentRange &range)
      43         2652 : {
      44         4947 :     switch (range) {
      45          676 :     case CurrentRange::_10mA:     return    10'000;
      46         1067 :     case CurrentRange::_30mA:     return    30'000;
      47         1552 :     case CurrentRange::_150mA:    return   150'000;
      48          582 :     case CurrentRange::_300mA:    return   300'000;
      49          208 :     case CurrentRange::_2A:       return 2'000'000;
      50           52 :     case CurrentRange::AutoRange: return 2'000'000;
      51            0 :     default:
      52            0 :         qCWarning(lc).noquote() << Private::tr("Unknown CurrentRange value: %1").arg((int)range);
      53            0 :         return 0;
      54         2652 :     }
      55         2652 : }
      56              : 
      57              : /// Returns \a range as a user-friendly string.
      58         2430 : QString toString(const ResistanceRange &range)
      59         2628 : {
      60         5058 :     switch (range) {
      61          485 :     case ResistanceRange::_160:      return Private::tr("Up to 160Ω");
      62          485 :     case ResistanceRange::_330:      return Private::tr("Up to 330Ω");
      63          485 :     case ResistanceRange::_890:      return Private::tr("Up to 890Ω");
      64          485 :     case ResistanceRange::_1K5:      return Private::tr("Up to 1.5KΩ");
      65          887 :     case ResistanceRange::_10K:      return Private::tr("Up to 10KΩ");
      66          485 :     case ResistanceRange::_100K:     return Private::tr("Up to 100KΩ");
      67          776 :     case ResistanceRange::_470K:     return Private::tr("Up to 470KΩ");
      68          485 :     case ResistanceRange::_1M:       return Private::tr("Up to 1MΩ");
      69          485 :     case ResistanceRange::AutoRange: return Private::tr("Auto-range");
      70            0 :     default:                         return QString();
      71         2628 :     }
      72         2628 : }
      73              : 
      74              : /*!
      75              :  * Returns the maximum value for \a range in ohms, or 0 if \a range is not a known value for Pokit Meter devices.
      76              :  */
      77         4455 : quint32 maxValue(const ResistanceRange &range)
      78         5148 : {
      79         9603 :     switch (range) {
      80          988 :     case ResistanceRange::_160:      return       160;
      81         1649 :     case ResistanceRange::_330:      return       330;
      82         1455 :     case ResistanceRange::_890:      return       890;
      83         1261 :     case ResistanceRange::_1K5:      return     1'500;
      84         1067 :     case ResistanceRange::_10K:      return    10'000;
      85          873 :     case ResistanceRange::_100K:     return   100'000;
      86          970 :     case ResistanceRange::_470K:     return   470'000;
      87          208 :     case ResistanceRange::_1M:       return 1'000'000;
      88           52 :     case ResistanceRange::AutoRange: return 1'000'000;
      89            0 :     default:
      90            0 :         qCWarning(lc).noquote() << Private::tr("Unknown ResistanceRange value: %1").arg((int)range);
      91            0 :         return 0;
      92         5148 :     }
      93         5148 : }
      94              : 
      95              : /// Returns \a range as a user-friendly string.
      96         5670 : QString toString(const VoltageRange &range)
      97         4032 : {
      98         9702 :     switch (range) {
      99         1164 :     case VoltageRange::_300mV:    return Private::tr("Up to 300mV");
     100         6113 :     case VoltageRange::_2V:       return Private::tr("Up to 2V");
     101          485 :     case VoltageRange::_6V:       return Private::tr("Up to 6V");
     102          485 :     case VoltageRange::_12V:      return Private::tr("Up to 12V");
     103          485 :     case VoltageRange::_30V:      return Private::tr("Up to 30V");
     104          485 :     case VoltageRange::_60V:      return Private::tr("Up to 60V");
     105          485 :     case VoltageRange::AutoRange: return Private::tr("Auto-range");
     106            0 :     default:                      return QString();
     107         4032 :     }
     108         4032 : }
     109              : 
     110              : /*!
     111              :  * Returns the maximum value for \a range in millivolts, or 0 if \a range is not a known value for Pokit Meter devices.
     112              :  */
     113         3015 : quint32 maxValue(const VoltageRange &range)
     114         3484 : {
     115         6499 :     switch (range) {
     116         1144 :     case VoltageRange::_300mV:    return    300;
     117         1261 :     case VoltageRange::_2V:       return  2'000;
     118         1067 :     case VoltageRange::_6V:       return  6'000;
     119          873 :     case VoltageRange::_12V:      return 12'000;
     120          679 :     case VoltageRange::_30V:      return 30'000;
     121          208 :     case VoltageRange::_60V:      return 60'000;
     122           52 :     case VoltageRange::AutoRange: return 60'000;
     123            0 :     default:
     124            0 :         qCWarning(lc).noquote() << Private::tr("Unknown VoltageRange value: %1").arg((int)range);
     125            0 :         return 0;
     126         3484 :     }
     127         3484 : }
     128              : 
     129              : }
        

Generated by: LCOV version 2.3-1