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 : * Declares the PokitMeter namespace.
7 : */
8 :
9 : #include <qtpokit/pokitmeter.h>
10 :
11 : #include <QCoreApplication>
12 : #include <QLoggingCategory>
13 :
14 : QTPOKIT_BEGIN_NAMESPACE
15 :
16 : namespace PokitMeter {
17 :
18 0 : static Q_LOGGING_CATEGORY(lc, "dokit.pokit.products.meter", QtInfoMsg); ///< Logging category for this file.
19 :
20 : namespace {
21 : class Private
22 : {
23 0 : Q_DECLARE_TR_FUNCTIONS(PokitMeter)
24 0 : };
25 0 : }
26 0 :
27 0 : /// Returns \a range as a user-friendly string.
28 7865 : QString toString(const CurrentRange &range)
29 4680 : {
30 12545 : switch (range) {
31 685 : case CurrentRange::_10mA: return Private::tr("Up to 10mA");
32 685 : case CurrentRange::_30mA: return Private::tr("Up to 30mA");
33 5382 : case CurrentRange::_150mA: return Private::tr("Up to 150mA");
34 685 : case CurrentRange::_300mA: return Private::tr("Up to 300mA");
35 4423 : case CurrentRange::_2A: return Private::tr("Up to 2A");
36 685 : case CurrentRange::AutoRange: return Private::tr("Auto-range");
37 0 : default: return QString();
38 4680 : }
39 4680 : }
40 :
41 : /*!
42 : * Returns the maximum value for \a range in microamps, or 0 if \a range is not a known value for Pokit Meter devices.
43 : */
44 3315 : quint32 maxValue(const CurrentRange &range)
45 3672 : {
46 6987 : switch (range) {
47 936 : case CurrentRange::_10mA: return 10'000;
48 1507 : case CurrentRange::_30mA: return 30'000;
49 2192 : case CurrentRange::_150mA: return 150'000;
50 822 : case CurrentRange::_300mA: return 300'000;
51 372 : case CurrentRange::_2A: return 2'000'000;
52 93 : case CurrentRange::AutoRange: return 2'000'000;
53 0 : default:
54 0 : qCWarning(lc).noquote() << Private::tr("Unknown CurrentRange value: %1").arg((int)range);
55 0 : return 0;
56 3672 : }
57 3672 : }
58 :
59 : /// Returns \a range as a user-friendly string.
60 3510 : QString toString(const ResistanceRange &range)
61 3600 : {
62 7110 : switch (range) {
63 685 : case ResistanceRange::_160: return Private::tr("Up to 160Ω");
64 685 : case ResistanceRange::_330: return Private::tr("Up to 330Ω");
65 685 : case ResistanceRange::_890: return Private::tr("Up to 890Ω");
66 685 : case ResistanceRange::_1K5: return Private::tr("Up to 1.5KΩ");
67 1219 : case ResistanceRange::_10K: return Private::tr("Up to 10KΩ");
68 685 : case ResistanceRange::_100K: return Private::tr("Up to 100KΩ");
69 1096 : case ResistanceRange::_470K: return Private::tr("Up to 470KΩ");
70 685 : case ResistanceRange::_1M: return Private::tr("Up to 1MΩ");
71 685 : case ResistanceRange::AutoRange: return Private::tr("Auto-range");
72 0 : default: return QString();
73 3600 : }
74 3600 : }
75 :
76 : /*!
77 : * Returns the maximum value for \a range in ohms, or 0 if \a range is not a known value for Pokit Meter devices.
78 : */
79 6435 : quint32 maxValue(const ResistanceRange &range)
80 7128 : {
81 13563 : switch (range) {
82 1368 : case ResistanceRange::_160: return 160;
83 2329 : case ResistanceRange::_330: return 330;
84 2055 : case ResistanceRange::_890: return 890;
85 1781 : case ResistanceRange::_1K5: return 1'500;
86 1507 : case ResistanceRange::_10K: return 10'000;
87 1233 : case ResistanceRange::_100K: return 100'000;
88 1370 : case ResistanceRange::_470K: return 470'000;
89 372 : case ResistanceRange::_1M: return 1'000'000;
90 93 : case ResistanceRange::AutoRange: return 1'000'000;
91 0 : default:
92 0 : qCWarning(lc).noquote() << Private::tr("Unknown ResistanceRange value: %1").arg((int)range);
93 0 : return 0;
94 7128 : }
95 7128 : }
96 :
97 : /// Returns \a range as a user-friendly string.
98 8190 : QString toString(const VoltageRange &range)
99 5040 : {
100 13230 : switch (range) {
101 1644 : case VoltageRange::_300mV: return Private::tr("Up to 300mV");
102 8161 : case VoltageRange::_2V: return Private::tr("Up to 2V");
103 685 : case VoltageRange::_6V: return Private::tr("Up to 6V");
104 685 : case VoltageRange::_12V: return Private::tr("Up to 12V");
105 685 : case VoltageRange::_30V: return Private::tr("Up to 30V");
106 685 : case VoltageRange::_60V: return Private::tr("Up to 60V");
107 685 : case VoltageRange::AutoRange: return Private::tr("Auto-range");
108 0 : default: return QString();
109 5040 : }
110 5040 : }
111 :
112 : /*!
113 : * Returns the maximum value for \a range in millivolts, or 0 if \a range is not a known value for Pokit Meter devices.
114 : */
115 4355 : quint32 maxValue(const VoltageRange &range)
116 4824 : {
117 9179 : switch (range) {
118 1584 : case VoltageRange::_300mV: return 300;
119 1781 : case VoltageRange::_2V: return 2'000;
120 1507 : case VoltageRange::_6V: return 6'000;
121 1233 : case VoltageRange::_12V: return 12'000;
122 959 : case VoltageRange::_30V: return 30'000;
123 372 : case VoltageRange::_60V: return 60'000;
124 93 : case VoltageRange::AutoRange: return 60'000;
125 0 : default:
126 0 : qCWarning(lc).noquote() << Private::tr("Unknown VoltageRange value: %1").arg((int)range);
127 0 : return 0;
128 4824 : }
129 4824 : }
130 :
131 : }
132 :
133 : QTPOKIT_END_NAMESPACE
|