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 : * 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 2080 : QString toString(const CapacitanceRange &range)
38 1728 : {
39 3808 : switch (range) {
40 912 : case CapacitanceRange::_100nF: return Private::tr("Up to 100nF");
41 760 : case CapacitanceRange::_10uF: return Private::tr("Up to 10μF");
42 1376 : case CapacitanceRange::_1mF: return Private::tr("Up to 1mF");
43 760 : case CapacitanceRange::AutoRange: return Private::tr("Auto-range");
44 0 : default: return QString();
45 1728 : }
46 1728 : }
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 2000 : quint32 maxValue(const CapacitanceRange &range)
52 1800 : {
53 3800 : switch (range) {
54 720 : case CapacitanceRange::_100nF: return 100;
55 1064 : case CapacitanceRange::_10uF: return 10'000;
56 651 : case CapacitanceRange::_1mF: return 1'000'000;
57 93 : 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 1800 : }
62 1800 : }
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 3760 : QString toString(const CurrentRange &range)
75 3384 : {
76 7144 : switch (range) {
77 1824 : case CurrentRange::_500uA: return Private::tr("Up to 500μA");
78 760 : case CurrentRange::_2mA: return Private::tr("Up to 2mA");
79 760 : case CurrentRange::_10mA: return Private::tr("Up to 10mA");
80 760 : case CurrentRange::_125mA: return Private::tr("Up to 125mA");
81 760 : case CurrentRange::_300mA: return Private::tr("Up to 300mA");
82 760 : case CurrentRange::_3A: return Private::tr("Up to 3A");
83 760 : case CurrentRange::_10A: return Private::tr("Up to 10A");
84 760 : case CurrentRange::AutoRange: return Private::tr("Auto-range");
85 0 : default: return QString();
86 3384 : }
87 3384 : }
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 6560 : quint32 maxValue(const CurrentRange &range)
93 5904 : {
94 12464 : switch (range) {
95 1728 : case CurrentRange::_500uA: return 500;
96 2280 : case CurrentRange::_2mA: return 2'000;
97 1976 : case CurrentRange::_10mA: return 10'000;
98 1672 : case CurrentRange::_125mA: return 125'000;
99 1216 : case CurrentRange::_300mA: return 300'000;
100 912 : case CurrentRange::_3A: return 3'000'000;
101 372 : case CurrentRange::_10A: return 10'000'000;
102 93 : 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 5904 : }
107 5904 : }
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 5040 : QString toString(const ResistanceRange &range)
120 4536 : {
121 9576 : switch (range) {
122 760 : case ResistanceRange::_30: return Private::tr("Up to 30Ω");
123 760 : case ResistanceRange::_75: return Private::tr("Up to 75Ω");
124 760 : case ResistanceRange::_400: return Private::tr("Up to 400Ω");
125 760 : case ResistanceRange::_5K: return Private::tr("Up to 5KΩ");
126 760 : case ResistanceRange::_10K: return Private::tr("Up to 10KΩ");
127 760 : case ResistanceRange::_15K: return Private::tr("Up to 15KΩ");
128 760 : case ResistanceRange::_40K: return Private::tr("Up to 40KΩ");
129 760 : case ResistanceRange::_500K: return Private::tr("Up to 500KΩ");
130 760 : case ResistanceRange::_700K: return Private::tr("Up to 700KΩ");
131 760 : case ResistanceRange::_1M: return Private::tr("Up to 1MΩ");
132 1216 : case ResistanceRange::_3M: return Private::tr("Up to 3MΩ");
133 760 : case ResistanceRange::AutoRange: return Private::tr("Auto-range");
134 0 : default: return QString();
135 4536 : }
136 4536 : }
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 13280 : quint32 maxValue(const ResistanceRange &range)
142 11952 : {
143 25232 : switch (range) {
144 1800 : case ResistanceRange::_30: return 30;
145 3496 : case ResistanceRange::_75: return 75;
146 3192 : case ResistanceRange::_400: return 400;
147 2888 : case ResistanceRange::_5K: return 5'000;
148 2584 : case ResistanceRange::_10K: return 10'000;
149 2280 : case ResistanceRange::_15K: return 15'000;
150 1976 : case ResistanceRange::_40K: return 40'000;
151 1672 : case ResistanceRange::_500K: return 500'000;
152 1216 : case ResistanceRange::_700K: return 700'000;
153 912 : case ResistanceRange::_1M: return 1'000'000;
154 651 : case ResistanceRange::_3M: return 3'000'000;
155 93 : 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 11952 : }
160 11952 : }
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 4160 : QString toString(const VoltageRange &range)
173 3744 : {
174 7904 : switch (range) {
175 760 : case VoltageRange::_250mV: return Private::tr("Up to 250mV");
176 760 : case VoltageRange::_2V: return Private::tr("Up to 2V");
177 760 : case VoltageRange::_10V: return Private::tr("Up to 10V");
178 760 : case VoltageRange::_30V: return Private::tr("Up to 30V");
179 760 : case VoltageRange::_60V: return Private::tr("Up to 60V");
180 760 : case VoltageRange::_125V: return Private::tr("Up to 125V");
181 760 : case VoltageRange::_400V: return Private::tr("Up to 400V");
182 1824 : case VoltageRange::_600V: return Private::tr("Up to 600V");
183 760 : case VoltageRange::AutoRange: return Private::tr("Auto-range");
184 0 : default: return QString();
185 3744 : }
186 3744 : }
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 8160 : quint32 maxValue(const VoltageRange &range)
192 7344 : {
193 15504 : switch (range) {
194 1368 : case VoltageRange::_250mV: return 250;
195 2584 : case VoltageRange::_2V: return 2'000;
196 2280 : case VoltageRange::_10V: return 10'000;
197 1976 : case VoltageRange::_30V: return 30'000;
198 1672 : case VoltageRange::_60V: return 60'000;
199 1368 : case VoltageRange::_125V: return 125'000;
200 912 : case VoltageRange::_400V: return 400'000;
201 1023 : case VoltageRange::_600V: return 600'000;
202 93 : 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 7344 : }
207 7344 : }
208 :
209 : }
210 :
211 : QTPOKIT_END_NAMESPACE
|