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 : };
25 : }
26 :
27 : /// Returns \a range as a user-friendly string.
28 9680 : QString toString(const CurrentRange &range)
29 4088 : {
30 13768 : switch (range) {
31 680 : case CurrentRange::_10mA: return Private::tr("Up to 10mA");
32 680 : case CurrentRange::_30mA: return Private::tr("Up to 30mA");
33 6000 : case CurrentRange::_150mA: return Private::tr("Up to 150mA");
34 680 : case CurrentRange::_300mA: return Private::tr("Up to 300mA");
35 5048 : case CurrentRange::_2A: return Private::tr("Up to 2A");
36 680 : case CurrentRange::AutoRange: return Private::tr("Auto-range");
37 0 : default: return QString();
38 4088 : }
39 4088 : }
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 4080 : quint32 maxValue(const CurrentRange &range)
45 2856 : {
46 6936 : switch (range) {
47 728 : case CurrentRange::_10mA: return 10'000;
48 1496 : case CurrentRange::_30mA: return 30'000;
49 2176 : case CurrentRange::_150mA: return 150'000;
50 816 : case CurrentRange::_300mA: return 300'000;
51 308 : case CurrentRange::_2A: return 2'000'000;
52 77 : 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 2856 : }
57 2856 : }
58 :
59 : /// Returns \a range as a user-friendly string.
60 4320 : QString toString(const ResistanceRange &range)
61 2832 : {
62 7152 : switch (range) {
63 680 : case ResistanceRange::_160: return Private::tr("Up to 160Ω");
64 680 : case ResistanceRange::_330: return Private::tr("Up to 330Ω");
65 680 : case ResistanceRange::_890: return Private::tr("Up to 890Ω");
66 680 : case ResistanceRange::_1K5: return Private::tr("Up to 1.5KΩ");
67 1304 : case ResistanceRange::_10K: return Private::tr("Up to 10KΩ");
68 680 : case ResistanceRange::_100K: return Private::tr("Up to 100KΩ");
69 1088 : case ResistanceRange::_470K: return Private::tr("Up to 470KΩ");
70 680 : case ResistanceRange::_1M: return Private::tr("Up to 1MΩ");
71 680 : case ResistanceRange::AutoRange: return Private::tr("Auto-range");
72 0 : default: return QString();
73 2832 : }
74 2832 : }
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 7920 : quint32 maxValue(const ResistanceRange &range)
80 5544 : {
81 13464 : switch (range) {
82 1064 : case ResistanceRange::_160: return 160;
83 2312 : case ResistanceRange::_330: return 330;
84 2040 : case ResistanceRange::_890: return 890;
85 1768 : case ResistanceRange::_1K5: return 1'500;
86 1496 : case ResistanceRange::_10K: return 10'000;
87 1224 : case ResistanceRange::_100K: return 100'000;
88 1360 : case ResistanceRange::_470K: return 470'000;
89 308 : case ResistanceRange::_1M: return 1'000'000;
90 77 : 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 5544 : }
95 5544 : }
96 :
97 : /// Returns \a range as a user-friendly string.
98 10080 : QString toString(const VoltageRange &range)
99 4368 : {
100 14448 : switch (range) {
101 1632 : case VoltageRange::_300mV: return Private::tr("Up to 300mV");
102 9416 : case VoltageRange::_2V: return Private::tr("Up to 2V");
103 680 : case VoltageRange::_6V: return Private::tr("Up to 6V");
104 680 : case VoltageRange::_12V: return Private::tr("Up to 12V");
105 680 : case VoltageRange::_30V: return Private::tr("Up to 30V");
106 680 : case VoltageRange::_60V: return Private::tr("Up to 60V");
107 680 : case VoltageRange::AutoRange: return Private::tr("Auto-range");
108 0 : default: return QString();
109 4368 : }
110 4368 : }
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 5360 : quint32 maxValue(const VoltageRange &range)
116 3752 : {
117 9112 : switch (range) {
118 1232 : case VoltageRange::_300mV: return 300;
119 1768 : case VoltageRange::_2V: return 2'000;
120 1496 : case VoltageRange::_6V: return 6'000;
121 1224 : case VoltageRange::_12V: return 12'000;
122 952 : case VoltageRange::_30V: return 30'000;
123 308 : case VoltageRange::_60V: return 60'000;
124 77 : 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 3752 : }
129 3752 : }
130 :
131 : }
132 :
133 : QTPOKIT_END_NAMESPACE
|