LCOV - code coverage report
Current view: top level - src/lib - pokitpro.cpp (source / functions) Coverage Total Hit
Project: Dokit Lines: 77.4 % 137 106
Version: Functions: 90.0 % 10 9

            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              :  * 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            0 :     };
      25            0 : }
      26            0 : 
      27            0 : /*!
      28            0 :  * \cond internal
      29            0 :  * \enum CapacitanceRange
      30            0 :  * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
      31            0 :  * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
      32            0 :  * [dokit](https://github.com/pcolby/dokit) project.
      33            0 :  * \endcond
      34            0 :  */
      35            0 : 
      36            0 : /// Returns \a range as a user-friendly string.
      37         1820 : QString toString(const CapacitanceRange &range)
      38         2631 : {
      39         4451 :     switch (range) {
      40         1086 :     case CapacitanceRange::_100nF:    return Private::tr("Up to 100nF");
      41          905 :     case CapacitanceRange::_10uF:     return Private::tr("Up to 10μF");
      42         1555 :     case CapacitanceRange::_1mF:      return Private::tr("Up to 1mF");
      43          905 :     case CapacitanceRange::AutoRange: return Private::tr("Auto-range");
      44            0 :     default:                          return QString();
      45         2631 :     }
      46         2631 : }
      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         1750 : quint32 maxValue(const CapacitanceRange &range)
      52         2775 : {
      53         4525 :     switch (range) {
      54         1110 :     case CapacitanceRange::_100nF:    return       100;
      55         1267 :     case CapacitanceRange::_10uF:     return    10'000;
      56          931 :     case CapacitanceRange::_1mF:      return 1'000'000;
      57          133 :     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         2775 :     }
      62         2775 : }
      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         3290 : QString toString(const CurrentRange &range)
      75         5217 : {
      76         8507 :     switch (range) {
      77         2172 :     case CurrentRange::_500uA:    return Private::tr("Up to 500μA");
      78          905 :     case CurrentRange::_2mA:      return Private::tr("Up to 2mA");
      79          905 :     case CurrentRange::_10mA:     return Private::tr("Up to 10mA");
      80          905 :     case CurrentRange::_125mA:    return Private::tr("Up to 125mA");
      81          905 :     case CurrentRange::_300mA:    return Private::tr("Up to 300mA");
      82          905 :     case CurrentRange::_3A:       return Private::tr("Up to 3A");
      83          905 :     case CurrentRange::_10A:      return Private::tr("Up to 10A");
      84          905 :     case CurrentRange::AutoRange: return Private::tr("Auto-range");
      85            0 :     default:                      return QString();
      86         5217 :     }
      87         5217 : }
      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         5740 : quint32 maxValue(const CurrentRange &range)
      93         9102 : {
      94        14842 :     switch (range) {
      95         2664 :     case CurrentRange::_500uA:    return        500;
      96         2715 :     case CurrentRange::_2mA:      return      2'000;
      97         2353 :     case CurrentRange::_10mA:     return     10'000;
      98         1991 :     case CurrentRange::_125mA:    return    125'000;
      99         1448 :     case CurrentRange::_300mA:    return    300'000;
     100         1086 :     case CurrentRange::_3A:       return  3'000'000;
     101          532 :     case CurrentRange::_10A:      return 10'000'000;
     102          133 :     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         9102 :     }
     107         9102 : }
     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         4410 : QString toString(const ResistanceRange &range)
     120         6993 : {
     121        11403 :     switch (range) {
     122          905 :     case ResistanceRange::_30:       return Private::tr("Up to 30Ω");
     123          905 :     case ResistanceRange::_75:       return Private::tr("Up to 75Ω");
     124          905 :     case ResistanceRange::_400:      return Private::tr("Up to 400Ω");
     125          905 :     case ResistanceRange::_5K:       return Private::tr("Up to 5KΩ");
     126          905 :     case ResistanceRange::_10K:      return Private::tr("Up to 10KΩ");
     127          905 :     case ResistanceRange::_15K:      return Private::tr("Up to 15KΩ");
     128          905 :     case ResistanceRange::_40K:      return Private::tr("Up to 40KΩ");
     129          905 :     case ResistanceRange::_500K:     return Private::tr("Up to 500KΩ");
     130          905 :     case ResistanceRange::_700K:     return Private::tr("Up to 700KΩ");
     131          905 :     case ResistanceRange::_1M:       return Private::tr("Up to 1MΩ");
     132         1448 :     case ResistanceRange::_3M:       return Private::tr("Up to 3MΩ");
     133          905 :     case ResistanceRange::AutoRange: return Private::tr("Auto-range");
     134            0 :     default:                         return QString();
     135         6993 :     }
     136         6993 : }
     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        11620 : quint32 maxValue(const ResistanceRange &range)
     142        18426 : {
     143        30046 :     switch (range) {
     144         2775 :     case ResistanceRange::_30:       return        30;
     145         4163 :     case ResistanceRange::_75:       return        75;
     146         3801 :     case ResistanceRange::_400:      return       400;
     147         3439 :     case ResistanceRange::_5K:       return     5'000;
     148         3077 :     case ResistanceRange::_10K:      return    10'000;
     149         2715 :     case ResistanceRange::_15K:      return    15'000;
     150         2353 :     case ResistanceRange::_40K:      return    40'000;
     151         1991 :     case ResistanceRange::_500K:     return   500'000;
     152         1448 :     case ResistanceRange::_700K:     return   700'000;
     153         1086 :     case ResistanceRange::_1M:       return 1'000'000;
     154          931 :     case ResistanceRange::_3M:       return 3'000'000;
     155          133 :     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        18426 :     }
     160        18426 : }
     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         3640 : QString toString(const VoltageRange &range)
     173         5772 : {
     174         9412 :     switch (range) {
     175          905 :     case VoltageRange::_250mV:    return Private::tr("Up to 250mV");
     176          905 :     case VoltageRange::_2V:       return Private::tr("Up to 2V");
     177          905 :     case VoltageRange::_10V:      return Private::tr("Up to 10V");
     178          905 :     case VoltageRange::_30V:      return Private::tr("Up to 30V");
     179          905 :     case VoltageRange::_60V:      return Private::tr("Up to 60V");
     180          905 :     case VoltageRange::_125V:     return Private::tr("Up to 125V");
     181          905 :     case VoltageRange::_400V:     return Private::tr("Up to 400V");
     182         2172 :     case VoltageRange::_600V:     return Private::tr("Up to 600V");
     183          905 :     case VoltageRange::AutoRange: return Private::tr("Auto-range");
     184            0 :     default:                      return QString();
     185         5772 :     }
     186         5772 : }
     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         7140 : quint32 maxValue(const VoltageRange &range)
     192        11322 : {
     193        18462 :     switch (range) {
     194         2109 :     case VoltageRange::_250mV:    return     250;
     195         3077 :     case VoltageRange::_2V:       return   2'000;
     196         2715 :     case VoltageRange::_10V:      return  10'000;
     197         2353 :     case VoltageRange::_30V:      return  30'000;
     198         1991 :     case VoltageRange::_60V:      return  60'000;
     199         1629 :     case VoltageRange::_125V:     return 125'000;
     200         1086 :     case VoltageRange::_400V:     return 400'000;
     201         1463 :     case VoltageRange::_600V:     return 600'000;
     202          133 :     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        11322 :     }
     207        11322 : }
     208              : 
     209              : }
     210              : 
     211              : QTPOKIT_END_NAMESPACE
        

Generated by: LCOV version 2.4-0