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 : namespace PokitMeter {
15 :
16 0 : static Q_LOGGING_CATEGORY(lc, "dokit.pokit.products.meter", QtInfoMsg); ///< Logging category for this file.
17 :
18 : namespace {
19 : class Private
20 : {
21 0 : Q_DECLARE_TR_FUNCTIONS(PokitMeter)
22 : };
23 : }
24 :
25 : /// Returns \a range as a user-friendly string.
26 5445 : QString toString(const CurrentRange &range)
27 3772 : {
28 9217 : switch (range) {
29 485 : case CurrentRange::_10mA: return Private::tr("Up to 10mA");
30 485 : case CurrentRange::_30mA: return Private::tr("Up to 30mA");
31 3978 : case CurrentRange::_150mA: return Private::tr("Up to 150mA");
32 485 : case CurrentRange::_300mA: return Private::tr("Up to 300mA");
33 3299 : case CurrentRange::_2A: return Private::tr("Up to 2A");
34 485 : case CurrentRange::AutoRange: return Private::tr("Auto-range");
35 0 : default: return QString();
36 3772 : }
37 3772 : }
38 :
39 : /*!
40 : * Returns the maximum value for \a range in microamps, or 0 if \a range is not a known value for Pokit Meter devices.
41 : */
42 2295 : quint32 maxValue(const CurrentRange &range)
43 2652 : {
44 4947 : switch (range) {
45 676 : case CurrentRange::_10mA: return 10'000;
46 1067 : case CurrentRange::_30mA: return 30'000;
47 1552 : case CurrentRange::_150mA: return 150'000;
48 582 : case CurrentRange::_300mA: return 300'000;
49 208 : case CurrentRange::_2A: return 2'000'000;
50 52 : case CurrentRange::AutoRange: return 2'000'000;
51 0 : default:
52 0 : qCWarning(lc).noquote() << Private::tr("Unknown CurrentRange value: %1").arg((int)range);
53 0 : return 0;
54 2652 : }
55 2652 : }
56 :
57 : /// Returns \a range as a user-friendly string.
58 2430 : QString toString(const ResistanceRange &range)
59 2628 : {
60 5058 : switch (range) {
61 485 : case ResistanceRange::_160: return Private::tr("Up to 160Ω");
62 485 : case ResistanceRange::_330: return Private::tr("Up to 330Ω");
63 485 : case ResistanceRange::_890: return Private::tr("Up to 890Ω");
64 485 : case ResistanceRange::_1K5: return Private::tr("Up to 1.5KΩ");
65 887 : case ResistanceRange::_10K: return Private::tr("Up to 10KΩ");
66 485 : case ResistanceRange::_100K: return Private::tr("Up to 100KΩ");
67 776 : case ResistanceRange::_470K: return Private::tr("Up to 470KΩ");
68 485 : case ResistanceRange::_1M: return Private::tr("Up to 1MΩ");
69 485 : case ResistanceRange::AutoRange: return Private::tr("Auto-range");
70 0 : default: return QString();
71 2628 : }
72 2628 : }
73 :
74 : /*!
75 : * Returns the maximum value for \a range in ohms, or 0 if \a range is not a known value for Pokit Meter devices.
76 : */
77 4455 : quint32 maxValue(const ResistanceRange &range)
78 5148 : {
79 9603 : switch (range) {
80 988 : case ResistanceRange::_160: return 160;
81 1649 : case ResistanceRange::_330: return 330;
82 1455 : case ResistanceRange::_890: return 890;
83 1261 : case ResistanceRange::_1K5: return 1'500;
84 1067 : case ResistanceRange::_10K: return 10'000;
85 873 : case ResistanceRange::_100K: return 100'000;
86 970 : case ResistanceRange::_470K: return 470'000;
87 208 : case ResistanceRange::_1M: return 1'000'000;
88 52 : case ResistanceRange::AutoRange: return 1'000'000;
89 0 : default:
90 0 : qCWarning(lc).noquote() << Private::tr("Unknown ResistanceRange value: %1").arg((int)range);
91 0 : return 0;
92 5148 : }
93 5148 : }
94 :
95 : /// Returns \a range as a user-friendly string.
96 5670 : QString toString(const VoltageRange &range)
97 4032 : {
98 9702 : switch (range) {
99 1164 : case VoltageRange::_300mV: return Private::tr("Up to 300mV");
100 6113 : case VoltageRange::_2V: return Private::tr("Up to 2V");
101 485 : case VoltageRange::_6V: return Private::tr("Up to 6V");
102 485 : case VoltageRange::_12V: return Private::tr("Up to 12V");
103 485 : case VoltageRange::_30V: return Private::tr("Up to 30V");
104 485 : case VoltageRange::_60V: return Private::tr("Up to 60V");
105 485 : case VoltageRange::AutoRange: return Private::tr("Auto-range");
106 0 : default: return QString();
107 4032 : }
108 4032 : }
109 :
110 : /*!
111 : * Returns the maximum value for \a range in millivolts, or 0 if \a range is not a known value for Pokit Meter devices.
112 : */
113 3015 : quint32 maxValue(const VoltageRange &range)
114 3484 : {
115 6499 : switch (range) {
116 1144 : case VoltageRange::_300mV: return 300;
117 1261 : case VoltageRange::_2V: return 2'000;
118 1067 : case VoltageRange::_6V: return 6'000;
119 873 : case VoltageRange::_12V: return 12'000;
120 679 : case VoltageRange::_30V: return 30'000;
121 208 : case VoltageRange::_60V: return 60'000;
122 52 : case VoltageRange::AutoRange: return 60'000;
123 0 : default:
124 0 : qCWarning(lc).noquote() << Private::tr("Unknown VoltageRange value: %1").arg((int)range);
125 0 : return 0;
126 3484 : }
127 3484 : }
128 :
129 : }
|