Line data Source code
1 : // SPDX-FileCopyrightText: 2022-2026 Paul Colby <git@colby.id.au>
2 : // SPDX-License-Identifier: LGPL-3.0-or-later
3 :
4 : /*!
5 : * \file
6 : * Defined the PokitPro helper functions.
7 : */
8 :
9 : #include <qtpokit/pokitpro.h>
10 :
11 : #include <QCoreApplication>
12 : #include <QLoggingCategory>
13 :
14 : QTPOKIT_BEGIN_NAMESPACE
15 :
16 : namespace PokitPro {
17 :
18 0 : static Q_LOGGING_CATEGORY(lc, "dokit.pokit.products.pro", QtInfoMsg); ///< Logging category for this file.
19 :
20 : namespace {
21 : class Private
22 : {
23 0 : Q_DECLARE_TR_FUNCTIONS(PokitPro)
24 0 : };
25 0 : }
26 0 :
27 0 : /*!
28 0 : * \cond internal
29 0 : * \enum CapacitanceRange
30 0 : * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
31 0 : * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
32 0 : * [dokit](https://github.com/pcolby/dokit) project.
33 0 : * \endcond
34 0 : */
35 0 :
36 0 : /// Returns \a range as a user-friendly string.
37 1820 : QString toString(const CapacitanceRange &range)
38 2631 : {
39 4451 : switch (range) {
40 1086 : case CapacitanceRange::_100nF: return Private::tr("Up to 100nF");
41 905 : case CapacitanceRange::_10uF: return Private::tr("Up to 10μF");
42 1555 : case CapacitanceRange::_1mF: return Private::tr("Up to 1mF");
43 905 : case CapacitanceRange::AutoRange: return Private::tr("Auto-range");
44 0 : default: return QString();
45 2631 : }
46 2631 : }
47 :
48 : /*!
49 : * Returns the maximum value for \a range in nanofarads, or 0 if \a range is not a known value for Pokit Pro devices.
50 : */
51 1750 : quint32 maxValue(const CapacitanceRange &range)
52 2775 : {
53 4525 : switch (range) {
54 1110 : case CapacitanceRange::_100nF: return 100;
55 1267 : case CapacitanceRange::_10uF: return 10'000;
56 931 : case CapacitanceRange::_1mF: return 1'000'000;
57 133 : case CapacitanceRange::AutoRange: return 1'000'000;
58 0 : default:
59 0 : qCWarning(lc).noquote() << Private::tr("Unknown CapacitanceRange value: %1").arg((int)range);
60 0 : return 0;
61 2775 : }
62 2775 : }
63 :
64 : /*!
65 : * \cond internal
66 : * \enum CurrentRange
67 : * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
68 : * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
69 : * [dokit](https://github.com/pcolby/dokit) project.
70 : * \endcond
71 : */
72 :
73 : /// Returns \a range as a user-friendly string.
74 3290 : QString toString(const CurrentRange &range)
75 5217 : {
76 8507 : switch (range) {
77 2172 : case CurrentRange::_500uA: return Private::tr("Up to 500μA");
78 905 : case CurrentRange::_2mA: return Private::tr("Up to 2mA");
79 905 : case CurrentRange::_10mA: return Private::tr("Up to 10mA");
80 905 : case CurrentRange::_125mA: return Private::tr("Up to 125mA");
81 905 : case CurrentRange::_300mA: return Private::tr("Up to 300mA");
82 905 : case CurrentRange::_3A: return Private::tr("Up to 3A");
83 905 : case CurrentRange::_10A: return Private::tr("Up to 10A");
84 905 : case CurrentRange::AutoRange: return Private::tr("Auto-range");
85 0 : default: return QString();
86 5217 : }
87 5217 : }
88 :
89 : /*!
90 : * Returns the maximum value for \a range in microamps, or 0 if \a range is not a known value for Pokit Pro devices.
91 : */
92 5740 : quint32 maxValue(const CurrentRange &range)
93 9102 : {
94 14842 : switch (range) {
95 2664 : case CurrentRange::_500uA: return 500;
96 2715 : case CurrentRange::_2mA: return 2'000;
97 2353 : case CurrentRange::_10mA: return 10'000;
98 1991 : case CurrentRange::_125mA: return 125'000;
99 1448 : case CurrentRange::_300mA: return 300'000;
100 1086 : case CurrentRange::_3A: return 3'000'000;
101 532 : case CurrentRange::_10A: return 10'000'000;
102 133 : case CurrentRange::AutoRange: return 10'000'000;
103 0 : default:
104 0 : qCWarning(lc).noquote() << Private::tr("Unknown CurrentRange value: %1").arg((int)range);
105 0 : return 0;
106 9102 : }
107 9102 : }
108 :
109 : /*!
110 : * \cond internal
111 : * \enum ResistanceRange
112 : * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
113 : * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
114 : * [dokit](https://github.com/pcolby/dokit) project.
115 : * \endcond
116 : */
117 :
118 : /// Returns \a range as a user-friendly string.
119 4410 : QString toString(const ResistanceRange &range)
120 6993 : {
121 11403 : switch (range) {
122 905 : case ResistanceRange::_30: return Private::tr("Up to 30Ω");
123 905 : case ResistanceRange::_75: return Private::tr("Up to 75Ω");
124 905 : case ResistanceRange::_400: return Private::tr("Up to 400Ω");
125 905 : case ResistanceRange::_5K: return Private::tr("Up to 5KΩ");
126 905 : case ResistanceRange::_10K: return Private::tr("Up to 10KΩ");
127 905 : case ResistanceRange::_15K: return Private::tr("Up to 15KΩ");
128 905 : case ResistanceRange::_40K: return Private::tr("Up to 40KΩ");
129 905 : case ResistanceRange::_500K: return Private::tr("Up to 500KΩ");
130 905 : case ResistanceRange::_700K: return Private::tr("Up to 700KΩ");
131 905 : case ResistanceRange::_1M: return Private::tr("Up to 1MΩ");
132 1448 : case ResistanceRange::_3M: return Private::tr("Up to 3MΩ");
133 905 : case ResistanceRange::AutoRange: return Private::tr("Auto-range");
134 0 : default: return QString();
135 6993 : }
136 6993 : }
137 :
138 : /*!
139 : * Returns the maximum value for \a range in ohms, or 0 if \a range is not a known value for Pokit Pro devices.
140 : */
141 11620 : quint32 maxValue(const ResistanceRange &range)
142 18426 : {
143 30046 : switch (range) {
144 2775 : case ResistanceRange::_30: return 30;
145 4163 : case ResistanceRange::_75: return 75;
146 3801 : case ResistanceRange::_400: return 400;
147 3439 : case ResistanceRange::_5K: return 5'000;
148 3077 : case ResistanceRange::_10K: return 10'000;
149 2715 : case ResistanceRange::_15K: return 15'000;
150 2353 : case ResistanceRange::_40K: return 40'000;
151 1991 : case ResistanceRange::_500K: return 500'000;
152 1448 : case ResistanceRange::_700K: return 700'000;
153 1086 : case ResistanceRange::_1M: return 1'000'000;
154 931 : case ResistanceRange::_3M: return 3'000'000;
155 133 : case ResistanceRange::AutoRange: return 3'000'000;
156 0 : default:
157 0 : qCWarning(lc).noquote() << Private::tr("Unknown ResistanceRange value: %1").arg((int)range);
158 0 : return 0;
159 18426 : }
160 18426 : }
161 :
162 : /*!
163 : * \cond internal
164 : * \enum VoltageRange
165 : * \pokitApi These Pokit Pro enumeration values are as-yet undocumented by Pokit Innovations.
166 : * [\@pcolby](https://github.com/pcolby) reverse-engineered them as part of the
167 : * [dokit](https://github.com/pcolby/dokit) project.
168 : * \endcond
169 : */
170 :
171 : /// Returns \a range as a user-friendly string.
172 3640 : QString toString(const VoltageRange &range)
173 5772 : {
174 9412 : switch (range) {
175 905 : case VoltageRange::_250mV: return Private::tr("Up to 250mV");
176 905 : case VoltageRange::_2V: return Private::tr("Up to 2V");
177 905 : case VoltageRange::_10V: return Private::tr("Up to 10V");
178 905 : case VoltageRange::_30V: return Private::tr("Up to 30V");
179 905 : case VoltageRange::_60V: return Private::tr("Up to 60V");
180 905 : case VoltageRange::_125V: return Private::tr("Up to 125V");
181 905 : case VoltageRange::_400V: return Private::tr("Up to 400V");
182 2172 : case VoltageRange::_600V: return Private::tr("Up to 600V");
183 905 : case VoltageRange::AutoRange: return Private::tr("Auto-range");
184 0 : default: return QString();
185 5772 : }
186 5772 : }
187 :
188 : /*!
189 : * Returns the maximum value for \a range in millivolts, or 0 if \a range is not a known value for Pokit Pro devices.
190 : */
191 7140 : quint32 maxValue(const VoltageRange &range)
192 11322 : {
193 18462 : switch (range) {
194 2109 : case VoltageRange::_250mV: return 250;
195 3077 : case VoltageRange::_2V: return 2'000;
196 2715 : case VoltageRange::_10V: return 10'000;
197 2353 : case VoltageRange::_30V: return 30'000;
198 1991 : case VoltageRange::_60V: return 60'000;
199 1629 : case VoltageRange::_125V: return 125'000;
200 1086 : case VoltageRange::_400V: return 400'000;
201 1463 : case VoltageRange::_600V: return 600'000;
202 133 : case VoltageRange::AutoRange: return 600'000;
203 0 : default:
204 0 : qCWarning(lc).noquote() << Private::tr("Unknown VoltageRange value: %1").arg((int)range);
205 0 : return 0;
206 11322 : }
207 11322 : }
208 :
209 : }
210 :
211 : QTPOKIT_END_NAMESPACE
|