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 1746 : QString toString(const CurrentRange &range) 17 : { 18 1746 : switch (range) { 19 18 : case CurrentRange::_10mA: return QCoreApplication::translate("PokitMeter", "Up to 10mA", "CurrentRange"); 20 18 : case CurrentRange::_30mA: return QCoreApplication::translate("PokitMeter", "Up to 30mA", "CurrentRange"); 21 900 : case CurrentRange::_150mA: return QCoreApplication::translate("PokitMeter", "Up to 150mA", "CurrentRange"); 22 18 : case CurrentRange::_300mA: return QCoreApplication::translate("PokitMeter", "Up to 300mA", "CurrentRange"); 23 774 : case CurrentRange::_2A: return QCoreApplication::translate("PokitMeter", "Up to 2A", "CurrentRange"); 24 18 : 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 234 : QVariant maxValue(const CurrentRange &range) 34 : { 35 234 : switch (range) { 36 18 : case CurrentRange::_10mA: return 10'000; 37 18 : case CurrentRange::_30mA: return 30'000; 38 144 : case CurrentRange::_150mA: return 150'000; 39 18 : case CurrentRange::_300mA: return 300'000; 40 18 : case CurrentRange::_2A: return 2'000'000; 41 22 : 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 324 : QString toString(const ResistanceRange &range) 48 : { 49 324 : switch (range) { 50 18 : case ResistanceRange::_160: return QCoreApplication::translate("PokitMeter", "Up to 160Ω", "ResistanceRange"); 51 18 : case ResistanceRange::_330: return QCoreApplication::translate("PokitMeter", "Up to 330Ω", "ResistanceRange"); 52 18 : case ResistanceRange::_890: return QCoreApplication::translate("PokitMeter", "Up to 890Ω", "ResistanceRange"); 53 18 : case ResistanceRange::_1K5: return QCoreApplication::translate("PokitMeter", "Up to 1.5KΩ", "ResistanceRange"); 54 126 : case ResistanceRange::_10K: return QCoreApplication::translate("PokitMeter", "Up to 10KΩ", "ResistanceRange"); 55 18 : case ResistanceRange::_100K: return QCoreApplication::translate("PokitMeter", "Up to 100KΩ", "ResistanceRange"); 56 72 : case ResistanceRange::_470K: return QCoreApplication::translate("PokitMeter", "Up to 470KΩ", "ResistanceRange"); 57 18 : case ResistanceRange::_1M: return QCoreApplication::translate("PokitMeter", "Up to 1MΩ", "ResistanceRange"); 58 18 : 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 216 : QVariant maxValue(const ResistanceRange &range) 68 : { 69 216 : switch (range) { 70 18 : case ResistanceRange::_160: return 160; 71 18 : case ResistanceRange::_330: return 330; 72 18 : case ResistanceRange::_890: return 890; 73 18 : case ResistanceRange::_1K5: return 1'500; 74 18 : case ResistanceRange::_10K: return 10'000; 75 18 : case ResistanceRange::_100K: return 100'000; 76 72 : case ResistanceRange::_470K: return 470'000; 77 18 : case ResistanceRange::_1M: return 1'000'000; 78 22 : 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 1764 : QString toString(const VoltageRange &range) 85 : { 86 1764 : switch (range) { 87 144 : case VoltageRange::_300mV: return QCoreApplication::translate("PokitMeter", "Up to 300mV", "VoltageRange"); 88 1530 : case VoltageRange::_2V: return QCoreApplication::translate("PokitMeter", "Up to 2V", "VoltageRange"); 89 18 : case VoltageRange::_6V: return QCoreApplication::translate("PokitMeter", "Up to 6V", "VoltageRange"); 90 18 : case VoltageRange::_12V: return QCoreApplication::translate("PokitMeter", "Up to 12V", "VoltageRange"); 91 18 : case VoltageRange::_30V: return QCoreApplication::translate("PokitMeter", "Up to 30V", "VoltageRange"); 92 18 : case VoltageRange::_60V: return QCoreApplication::translate("PokitMeter", "Up to 60V", "VoltageRange"); 93 18 : 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 252 : QVariant maxValue(const VoltageRange &range) 103 : { 104 252 : switch (range) { 105 144 : case VoltageRange::_300mV: return 300; 106 18 : case VoltageRange::_2V: return 2'000; 107 18 : case VoltageRange::_6V: return 6'000; 108 18 : case VoltageRange::_12V: return 12'000; 109 18 : case VoltageRange::_30V: return 30'000; 110 18 : case VoltageRange::_60V: return 60'000; 111 22 : case VoltageRange::AutoRange: return QCoreApplication::translate("PokitMeter", "Auto", "VoltageRange"); 112 : default: return QVariant(); 113 : } 114 : } 115 : 116 : }