Line data Source code
1 : // SPDX-FileCopyrightText: 2022-2023 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 2299 : QString toString(const CurrentRange &range) 17 : { 18 2299 : switch (range) { 19 95 : case CurrentRange::_10mA: return QCoreApplication::translate("PokitMeter", "Up to 10mA", "CurrentRange"); 20 95 : case CurrentRange::_30mA: return QCoreApplication::translate("PokitMeter", "Up to 30mA", "CurrentRange"); 21 1026 : case CurrentRange::_150mA: return QCoreApplication::translate("PokitMeter", "Up to 150mA", "CurrentRange"); 22 95 : case CurrentRange::_300mA: return QCoreApplication::translate("PokitMeter", "Up to 300mA", "CurrentRange"); 23 893 : case CurrentRange::_2A: return QCoreApplication::translate("PokitMeter", "Up to 2A", "CurrentRange"); 24 95 : 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 969 : QVariant maxValue(const CurrentRange &range) 34 : { 35 969 : switch (range) { 36 247 : case CurrentRange::_10mA: return 10'000; 37 209 : case CurrentRange::_30mA: return 30'000; 38 304 : case CurrentRange::_150mA: return 150'000; 39 114 : case CurrentRange::_300mA: return 300'000; 40 76 : case CurrentRange::_2A: return 2'000'000; 41 24 : 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 1026 : QString toString(const ResistanceRange &range) 48 : { 49 1026 : switch (range) { 50 95 : case ResistanceRange::_160: return QCoreApplication::translate("PokitMeter", "Up to 160Ω", "ResistanceRange"); 51 95 : case ResistanceRange::_330: return QCoreApplication::translate("PokitMeter", "Up to 330Ω", "ResistanceRange"); 52 95 : case ResistanceRange::_890: return QCoreApplication::translate("PokitMeter", "Up to 890Ω", "ResistanceRange"); 53 95 : case ResistanceRange::_1K5: return QCoreApplication::translate("PokitMeter", "Up to 1.5KΩ", "ResistanceRange"); 54 209 : case ResistanceRange::_10K: return QCoreApplication::translate("PokitMeter", "Up to 10KΩ", "ResistanceRange"); 55 95 : case ResistanceRange::_100K: return QCoreApplication::translate("PokitMeter", "Up to 100KΩ", "ResistanceRange"); 56 152 : case ResistanceRange::_470K: return QCoreApplication::translate("PokitMeter", "Up to 470KΩ", "ResistanceRange"); 57 95 : case ResistanceRange::_1M: return QCoreApplication::translate("PokitMeter", "Up to 1MΩ", "ResistanceRange"); 58 95 : 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 1881 : QVariant maxValue(const ResistanceRange &range) 68 : { 69 1881 : switch (range) { 70 361 : case ResistanceRange::_160: return 160; 71 323 : case ResistanceRange::_330: return 330; 72 285 : case ResistanceRange::_890: return 890; 73 247 : case ResistanceRange::_1K5: return 1'500; 74 209 : case ResistanceRange::_10K: return 10'000; 75 171 : case ResistanceRange::_100K: return 100'000; 76 190 : case ResistanceRange::_470K: return 470'000; 77 76 : case ResistanceRange::_1M: return 1'000'000; 78 24 : 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 2394 : QString toString(const VoltageRange &range) 85 : { 86 2394 : switch (range) { 87 228 : case VoltageRange::_300mV: return QCoreApplication::translate("PokitMeter", "Up to 300mV", "VoltageRange"); 88 1691 : case VoltageRange::_2V: return QCoreApplication::translate("PokitMeter", "Up to 2V", "VoltageRange"); 89 95 : case VoltageRange::_6V: return QCoreApplication::translate("PokitMeter", "Up to 6V", "VoltageRange"); 90 95 : case VoltageRange::_12V: return QCoreApplication::translate("PokitMeter", "Up to 12V", "VoltageRange"); 91 95 : case VoltageRange::_30V: return QCoreApplication::translate("PokitMeter", "Up to 30V", "VoltageRange"); 92 95 : case VoltageRange::_60V: return QCoreApplication::translate("PokitMeter", "Up to 60V", "VoltageRange"); 93 95 : 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 1273 : QVariant maxValue(const VoltageRange &range) 103 : { 104 1273 : switch (range) { 105 418 : case VoltageRange::_300mV: return 300; 106 247 : case VoltageRange::_2V: return 2'000; 107 209 : case VoltageRange::_6V: return 6'000; 108 171 : case VoltageRange::_12V: return 12'000; 109 133 : case VoltageRange::_30V: return 30'000; 110 76 : case VoltageRange::_60V: return 60'000; 111 24 : case VoltageRange::AutoRange: return QCoreApplication::translate("PokitMeter", "Auto", "VoltageRange"); 112 : default: return QVariant(); 113 : } 114 : } 115 : 116 : }