Line data Source code
1 : // SPDX-FileCopyrightText: 2022-2024 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 : 13 : namespace PokitMeter { 14 : 15 : /// Returns \a range as a user-friendly string. 16 2420 : QString toString(const CurrentRange &range) 17 : { 18 2420 : switch (range) { 19 100 : case CurrentRange::_10mA: return QCoreApplication::translate("PokitMeter", "Up to 10mA", "CurrentRange"); 20 100 : case CurrentRange::_30mA: return QCoreApplication::translate("PokitMeter", "Up to 30mA", "CurrentRange"); 21 1080 : case CurrentRange::_150mA: return QCoreApplication::translate("PokitMeter", "Up to 150mA", "CurrentRange"); 22 100 : case CurrentRange::_300mA: return QCoreApplication::translate("PokitMeter", "Up to 300mA", "CurrentRange"); 23 940 : case CurrentRange::_2A: return QCoreApplication::translate("PokitMeter", "Up to 2A", "CurrentRange"); 24 100 : case CurrentRange::AutoRange: return QCoreApplication::translate("PokitMeter", "Auto-range", "CurrentRange"); 25 : default: return QString(); 26 : } 27 : } 28 : 29 : /*! 30 : * Returns the maximum value for \a range in (integer) microamps, or the string "Auto". 31 : * If \a range is not a known valid value, then an null QVariant is returned. 32 : */ 33 1020 : QVariant maxValue(const CurrentRange &range) 34 : { 35 1020 : switch (range) { 36 260 : case CurrentRange::_10mA: return 10'000; 37 220 : case CurrentRange::_30mA: return 30'000; 38 320 : case CurrentRange::_150mA: return 150'000; 39 120 : case CurrentRange::_300mA: return 300'000; 40 80 : case CurrentRange::_2A: return 2'000'000; 41 26 : case CurrentRange::AutoRange: return QCoreApplication::translate("PokitMeter", "Auto", "CurrentRange"); 42 : default: return QVariant(); 43 : } 44 : } 45 : 46 : /// Returns \a range as a user-friendly string. 47 1080 : QString toString(const ResistanceRange &range) 48 : { 49 1080 : switch (range) { 50 100 : case ResistanceRange::_160: return QCoreApplication::translate("PokitMeter", "Up to 160Ω", "ResistanceRange"); 51 100 : case ResistanceRange::_330: return QCoreApplication::translate("PokitMeter", "Up to 330Ω", "ResistanceRange"); 52 100 : case ResistanceRange::_890: return QCoreApplication::translate("PokitMeter", "Up to 890Ω", "ResistanceRange"); 53 100 : case ResistanceRange::_1K5: return QCoreApplication::translate("PokitMeter", "Up to 1.5KΩ", "ResistanceRange"); 54 220 : case ResistanceRange::_10K: return QCoreApplication::translate("PokitMeter", "Up to 10KΩ", "ResistanceRange"); 55 100 : case ResistanceRange::_100K: return QCoreApplication::translate("PokitMeter", "Up to 100KΩ", "ResistanceRange"); 56 160 : case ResistanceRange::_470K: return QCoreApplication::translate("PokitMeter", "Up to 470KΩ", "ResistanceRange"); 57 100 : case ResistanceRange::_1M: return QCoreApplication::translate("PokitMeter", "Up to 1MΩ", "ResistanceRange"); 58 100 : case ResistanceRange::AutoRange: return QCoreApplication::translate("PokitMeter", "Auto-range", "ResistanceRange"); 59 : default: return QString(); 60 : } 61 : } 62 : 63 : /*! 64 : * Returns the maximum value for \a range in (integer) ohms, or the string "Auto". 65 : * If \a range is not a known valid value, then an null QVariant is returned. 66 : */ 67 1980 : QVariant maxValue(const ResistanceRange &range) 68 : { 69 1980 : switch (range) { 70 380 : case ResistanceRange::_160: return 160; 71 340 : case ResistanceRange::_330: return 330; 72 300 : case ResistanceRange::_890: return 890; 73 260 : case ResistanceRange::_1K5: return 1'500; 74 220 : case ResistanceRange::_10K: return 10'000; 75 180 : case ResistanceRange::_100K: return 100'000; 76 200 : case ResistanceRange::_470K: return 470'000; 77 80 : case ResistanceRange::_1M: return 1'000'000; 78 26 : case ResistanceRange::AutoRange: return QCoreApplication::translate("PokitMeter", "Auto", "ResistanceRange"); 79 : default: return QVariant(); 80 : } 81 : } 82 : 83 : /// Returns \a range as a user-friendly string. 84 2520 : QString toString(const VoltageRange &range) 85 : { 86 2520 : switch (range) { 87 240 : case VoltageRange::_300mV: return QCoreApplication::translate("PokitMeter", "Up to 300mV", "VoltageRange"); 88 1780 : case VoltageRange::_2V: return QCoreApplication::translate("PokitMeter", "Up to 2V", "VoltageRange"); 89 100 : case VoltageRange::_6V: return QCoreApplication::translate("PokitMeter", "Up to 6V", "VoltageRange"); 90 100 : case VoltageRange::_12V: return QCoreApplication::translate("PokitMeter", "Up to 12V", "VoltageRange"); 91 100 : case VoltageRange::_30V: return QCoreApplication::translate("PokitMeter", "Up to 30V", "VoltageRange"); 92 100 : case VoltageRange::_60V: return QCoreApplication::translate("PokitMeter", "Up to 60V", "VoltageRange"); 93 100 : case VoltageRange::AutoRange: return QCoreApplication::translate("PokitMeter", "Auto-range", "VoltageRange"); 94 : default: return QString(); 95 : } 96 : } 97 : 98 : /*! 99 : * Returns the maximum value for \a range in (integer) millivolts, or the string "Auto". 100 : * If \a range is not a known valid value, then an null QVariant is returned. 101 : */ 102 1340 : QVariant maxValue(const VoltageRange &range) 103 : { 104 1340 : switch (range) { 105 440 : case VoltageRange::_300mV: return 300; 106 260 : case VoltageRange::_2V: return 2'000; 107 220 : case VoltageRange::_6V: return 6'000; 108 180 : case VoltageRange::_12V: return 12'000; 109 140 : case VoltageRange::_30V: return 30'000; 110 80 : case VoltageRange::_60V: return 60'000; 111 26 : case VoltageRange::AutoRange: return QCoreApplication::translate("PokitMeter", "Auto", "VoltageRange"); 112 : default: return QVariant(); 113 : } 114 : } 115 : 116 : }