LCOV - code coverage report
Current view: top level - src/lib - pokitpro.cpp (source / functions) Coverage Total Hit
Project: Dokit Lines: 85.5 % 124 106
Version: Functions: 88.9 % 9 8

            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              :  * Defined the PokitPro helper functions.
       7              :  */
       8              : 
       9              : #include <qtpokit/pokitpro.h>
      10              : 
      11              : #include <QCoreApplication>
      12              : #include <QLoggingCategory>
      13              : 
      14              : QTPOKIT_BEGIN_NAMESPACE
      15              : 
      16              : namespace PokitPro {
      17              : 
      18            0 : static Q_LOGGING_CATEGORY(lc, "dokit.pokit.products.pro", QtInfoMsg); ///< Logging category for this file.
      19              : 
      20              : namespace {
      21              :     class Private
      22              :     {
      23            0 :         Q_DECLARE_TR_FUNCTIONS(PokitPro)
      24              :     };
      25              : }
      26              : 
      27              : /*!
      28              :  * \cond internal
      29              :  * \enum CapacitanceRange
      30              :  * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
      31              :  * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
      32              :  * [dokit](https://github.com/pcolby/dokit) project.
      33              :  * \endcond
      34              :  */
      35              : 
      36              : /// Returns \a range as a user-friendly string.
      37         2080 : QString toString(const CapacitanceRange &range)
      38         1360 : {
      39         3440 :     switch (range) {
      40          816 :     case CapacitanceRange::_100nF:    return Private::tr("Up to 100nF");
      41          680 :     case CapacitanceRange::_10uF:     return Private::tr("Up to 10μF");
      42         1264 :     case CapacitanceRange::_1mF:      return Private::tr("Up to 1mF");
      43          680 :     case CapacitanceRange::AutoRange: return Private::tr("Auto-range");
      44            0 :     default:                          return QString();
      45         1360 :     }
      46         1360 : }
      47              : 
      48              : /*!
      49              :  * Returns the maximum value for \a range in nanofarads, or 0 if \a range is not a known value for Pokit Pro devices.
      50              :  */
      51         2000 : quint32 maxValue(const CapacitanceRange &range)
      52         1400 : {
      53         3400 :     switch (range) {
      54          560 :     case CapacitanceRange::_100nF:    return       100;
      55          952 :     case CapacitanceRange::_10uF:     return    10'000;
      56          539 :     case CapacitanceRange::_1mF:      return 1'000'000;
      57           77 :     case CapacitanceRange::AutoRange: return 1'000'000;
      58            0 :     default:
      59            0 :         qCWarning(lc).noquote() << Private::tr("Unknown CapacitanceRange value: %1").arg((int)range);
      60            0 :         return 0;
      61         1400 :     }
      62         1400 : }
      63              : 
      64              : /*!
      65              :  * \cond internal
      66              :  * \enum CurrentRange
      67              :  * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
      68              :  * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
      69              :  * [dokit](https://github.com/pcolby/dokit) project.
      70              :  * \endcond
      71              :  */
      72              : 
      73              : /// Returns \a range as a user-friendly string.
      74         3760 : QString toString(const CurrentRange &range)
      75         2632 : {
      76         6392 :     switch (range) {
      77         1632 :     case CurrentRange::_500uA:    return Private::tr("Up to 500μA");
      78          680 :     case CurrentRange::_2mA:      return Private::tr("Up to 2mA");
      79          680 :     case CurrentRange::_10mA:     return Private::tr("Up to 10mA");
      80          680 :     case CurrentRange::_125mA:    return Private::tr("Up to 125mA");
      81          680 :     case CurrentRange::_300mA:    return Private::tr("Up to 300mA");
      82          680 :     case CurrentRange::_3A:       return Private::tr("Up to 3A");
      83          680 :     case CurrentRange::_10A:      return Private::tr("Up to 10A");
      84          680 :     case CurrentRange::AutoRange: return Private::tr("Auto-range");
      85            0 :     default:                      return QString();
      86         2632 :     }
      87         2632 : }
      88              : 
      89              : /*!
      90              :  * Returns the maximum value for \a range in microamps, or 0 if \a range is not a known value for Pokit Pro devices.
      91              :  */
      92         6560 : quint32 maxValue(const CurrentRange &range)
      93         4592 : {
      94        11152 :     switch (range) {
      95         1344 :     case CurrentRange::_500uA:    return        500;
      96         2040 :     case CurrentRange::_2mA:      return      2'000;
      97         1768 :     case CurrentRange::_10mA:     return     10'000;
      98         1496 :     case CurrentRange::_125mA:    return    125'000;
      99         1088 :     case CurrentRange::_300mA:    return    300'000;
     100          816 :     case CurrentRange::_3A:       return  3'000'000;
     101          308 :     case CurrentRange::_10A:      return 10'000'000;
     102           77 :     case CurrentRange::AutoRange: return 10'000'000;
     103            0 :     default:
     104            0 :         qCWarning(lc).noquote() << Private::tr("Unknown CurrentRange value: %1").arg((int)range);
     105            0 :         return 0;
     106         4592 :     }
     107         4592 : }
     108              : 
     109              : /*!
     110              :  * \cond internal
     111              :  * \enum ResistanceRange
     112              :  * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
     113              :  * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
     114              :  * [dokit](https://github.com/pcolby/dokit) project.
     115              :  * \endcond
     116              :  */
     117              : 
     118              : /// Returns \a range as a user-friendly string.
     119         5040 : QString toString(const ResistanceRange &range)
     120         3528 : {
     121         8568 :     switch (range) {
     122          680 :     case ResistanceRange::_30:       return Private::tr("Up to 30Ω");
     123          680 :     case ResistanceRange::_75:       return Private::tr("Up to 75Ω");
     124          680 :     case ResistanceRange::_400:      return Private::tr("Up to 400Ω");
     125          680 :     case ResistanceRange::_5K:       return Private::tr("Up to 5KΩ");
     126          680 :     case ResistanceRange::_10K:      return Private::tr("Up to 10KΩ");
     127          680 :     case ResistanceRange::_15K:      return Private::tr("Up to 15KΩ");
     128          680 :     case ResistanceRange::_40K:      return Private::tr("Up to 40KΩ");
     129          680 :     case ResistanceRange::_500K:     return Private::tr("Up to 500KΩ");
     130          680 :     case ResistanceRange::_700K:     return Private::tr("Up to 700KΩ");
     131          680 :     case ResistanceRange::_1M:       return Private::tr("Up to 1MΩ");
     132         1088 :     case ResistanceRange::_3M:       return Private::tr("Up to 3MΩ");
     133          680 :     case ResistanceRange::AutoRange: return Private::tr("Auto-range");
     134            0 :     default:                         return QString();
     135         3528 :     }
     136         3528 : }
     137              : 
     138              : /*!
     139              :  * Returns the maximum value for \a range in ohms, or 0 if \a range is not a known value for Pokit Pro devices.
     140              :  */
     141        13280 : quint32 maxValue(const ResistanceRange &range)
     142         9296 : {
     143        22576 :     switch (range) {
     144         1400 :     case ResistanceRange::_30:       return        30;
     145         3128 :     case ResistanceRange::_75:       return        75;
     146         2856 :     case ResistanceRange::_400:      return       400;
     147         2584 :     case ResistanceRange::_5K:       return     5'000;
     148         2312 :     case ResistanceRange::_10K:      return    10'000;
     149         2040 :     case ResistanceRange::_15K:      return    15'000;
     150         1768 :     case ResistanceRange::_40K:      return    40'000;
     151         1496 :     case ResistanceRange::_500K:     return   500'000;
     152         1088 :     case ResistanceRange::_700K:     return   700'000;
     153          816 :     case ResistanceRange::_1M:       return 1'000'000;
     154          539 :     case ResistanceRange::_3M:       return 3'000'000;
     155           77 :     case ResistanceRange::AutoRange: return 3'000'000;
     156            0 :     default:
     157            0 :         qCWarning(lc).noquote() << Private::tr("Unknown ResistanceRange value: %1").arg((int)range);
     158            0 :         return 0;
     159         9296 :     }
     160         9296 : }
     161              : 
     162              : /*!
     163              :  * \cond internal
     164              :  * \enum VoltageRange
     165              :  * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
     166              :  * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
     167              :  * [dokit](https://github.com/pcolby/dokit) project.
     168              :  * \endcond
     169              :  */
     170              : 
     171              : /// Returns \a range as a user-friendly string.
     172         4160 : QString toString(const VoltageRange &range)
     173         2912 : {
     174         7072 :     switch (range) {
     175          680 :     case VoltageRange::_250mV:    return Private::tr("Up to 250mV");
     176          680 :     case VoltageRange::_2V:       return Private::tr("Up to 2V");
     177          680 :     case VoltageRange::_10V:      return Private::tr("Up to 10V");
     178          680 :     case VoltageRange::_30V:      return Private::tr("Up to 30V");
     179          680 :     case VoltageRange::_60V:      return Private::tr("Up to 60V");
     180          680 :     case VoltageRange::_125V:     return Private::tr("Up to 125V");
     181          680 :     case VoltageRange::_400V:     return Private::tr("Up to 400V");
     182         1632 :     case VoltageRange::_600V:     return Private::tr("Up to 600V");
     183          680 :     case VoltageRange::AutoRange: return Private::tr("Auto-range");
     184            0 :     default:                      return QString();
     185         2912 :     }
     186         2912 : }
     187              : 
     188              : /*!
     189              :  * Returns the maximum value for \a range in millivolts, or 0 if \a range is not a known value for Pokit Pro devices.
     190              :  */
     191         8160 : quint32 maxValue(const VoltageRange &range)
     192         5712 : {
     193        13872 :     switch (range) {
     194         1064 :     case VoltageRange::_250mV:    return     250;
     195         2312 :     case VoltageRange::_2V:       return   2'000;
     196         2040 :     case VoltageRange::_10V:      return  10'000;
     197         1768 :     case VoltageRange::_30V:      return  30'000;
     198         1496 :     case VoltageRange::_60V:      return  60'000;
     199         1224 :     case VoltageRange::_125V:     return 125'000;
     200          816 :     case VoltageRange::_400V:     return 400'000;
     201          847 :     case VoltageRange::_600V:     return 600'000;
     202           77 :     case VoltageRange::AutoRange: return 600'000;
     203            0 :     default:
     204            0 :         qCWarning(lc).noquote() << Private::tr("Unknown VoltageRange value: %1").arg((int)range);
     205            0 :         return 0;
     206         5712 :     }
     207         5712 : }
     208              : 
     209              : }
     210              : 
     211              : QTPOKIT_END_NAMESPACE
        

Generated by: LCOV version 2.3.1-1