#[non_exhaustive]
#[derive(Clone, Copy, PartialEq, PartialOrd, Ord, Eq, Hash, Debug, Default)]
#[repr(u16)]
pub enum BarcodeScannerUsage {
#[default]
Undefined,
BarcodeBadgeReader,
BarcodeScanner,
DumbBarCodeScanner,
CordlessScannerBase,
BarCodeScannerCradle,
Reserved06_0F,
AttributeReport = 16,
SettingsReport,
ScannedDataReport,
RawScannedDataReport,
TriggerReport,
StatusReport,
UPC_EANControlReport,
EAN2_3LabelControlReport,
Code39ControlReport,
Interleaved2of5ControlReport,
Standard2of5ControlReport,
MSIPlesseyControlReport,
CodabarControlReport,
Code128ControlReport,
Misc1DControlReport,
_2DControlReport,
Reserved20_2F,
Aiming_PointerMode = 48,
BarCodePresentSensor,
Class1ALaser,
Class2Laser,
HeaterPresent,
ContactScanner,
ElectronicArticleSurveillanceNotification,
ConstantElectronicArticleSurveillance,
ErrorIndication,
FixedBeeper,
GoodDecodeIndication,
HandsFreeScanning,
IntrinsicallySafe,
KlasseEinsLaser,
LongRangeScanner,
MirrorSpeedControl,
NotOnFileIndication,
ProgrammableBeeper,
Triggerless,
Wand,
WaterResistant,
Multi_RangeScanner,
ProximitySensor,
Reserved47_4C,
FragmentDecoding = 77,
ScannerReadConfidence,
DataPrefix,
PrefixAIMI,
PrefixNone,
PrefixProprietary,
Reserved53_54,
ActiveTime = 84,
AimingLaserPattern,
BarCodePresent,
BeeperState,
LaserOnTime,
LaserState,
LockoutTime,
MotorState,
MotorTimeout,
PowerOnResetScanner,
PreventReadofBarcodes,
InitiateBarcodeRead,
TriggerState,
TriggerMode,
TriggerModeBlinkingLaserOn,
TriggerModeContinuousLaserOn,
TriggerModeLaseronwhilePulled,
TriggerModeLaserstaysonafterrelease,
Reserved67_6C,
CommitParameterstoNVM = 109,
ParameterScanning,
ParametersChanged,
Setparameterdefaultvalues,
Reserved71_74,
ScannerInCradle = 116,
ScannerInRange,
Reserved77_79,
AimDuration = 122,
GoodReadLampDuration,
GoodReadLampIntensity,
GoodReadLED,
GoodReadToneFrequency,
GoodReadToneLength,
GoodReadToneVolume,
Reserved81,
NoReadMessage,
NotonFileVolume,
PowerupBeep,
SoundErrorBeep,
SoundGoodReadBeep,
SoundNotOnFileBeep,
GoodReadWhentoWrite,
GRWTIAfterDecode,
GRWTIBeep_Lampaftertransmit,
GRWTINoBeep_Lampuseatall,
Reserved8C_90,
BooklandEAN = 145,
ConvertEAN8to13Type,
ConvertUPCAtoEAN_13,
ConvertUPC_EtoA,
EAN_13,
EAN_8,
EAN_99128Mandatory,
EAN_99P5_128Optional,
EnableEANTwoLabel,
UPC_EAN,
UPC_EANCouponCode,
UPC_EANPeriodicals,
UPC_A,
UPC_Awith128Mandatory,
UPC_Awith128Optional,
UPC_AwithP5Optional,
UPC_E,
UPC_E1,
ReservedA3_A8,
Periodical = 169,
PeriodicalAuto_Discriminate_plus2,
PeriodicalOnlyDecodewith_plus2,
PeriodicalIgnore_plus2,
PeriodicalAuto_Discriminate_plus5,
PeriodicalOnlyDecodewith_plus5,
PeriodicalIgnore_plus5,
Check,
CheckDisablePrice,
CheckEnable4digitPrice,
CheckEnable5digitPrice,
CheckEnableEuropean4digitPrice,
CheckEnableEuropean5digitPrice,
ReservedB6,
EANTwoLabel,
EANThreeLabel,
EAN8FlagDigit1,
EAN8FlagDigit2,
EAN8FlagDigit3,
EAN13FlagDigit1,
EAN13FlagDigit2,
EAN13FlagDigit3,
AddEAN2_3LabelDefinition,
ClearallEAN2_3LabelDefinitions,
ReservedC1_C2,
Codabar = 195,
Code128,
ReservedC5_C6,
Code39 = 199,
Code93,
FullASCIIConversion,
Interleaved2of5,
ItalianPharmacyCode,
MSI_Plessey,
Standard2of5IATA,
Standard2of5,
ReservedCF_D2,
TransmitStart_Stop = 211,
Tri_Optic,
UCC_EAN_128,
CheckDigit,
CheckDigitDisable,
CheckDigitEnableInterleaved2of5OPCC,
CheckDigitEnableInterleaved2of5USS,
CheckDigitEnableStandard2of5OPCC,
CheckDigitEnableStandard2of5USS,
CheckDigitEnableOneMSIPlessey,
CheckDigitEnableTwoMSIPlessey,
CheckDigitCodabarEnable,
CheckDigitCode39Enable,
ReservedE0_EF,
TransmitCheckDigit = 240,
DisableCheckDigitTransmit,
EnableCheckDigitTransmit,
ReservedF3_FA,
SymbologyIdentifier1 = 251,
SymbologyIdentifier2,
SymbologyIdentifier3,
DecodedData,
DecodeDataContinued,
BarSpaceData,
ScannerDataAccuracy,
RawDataPolarity,
PolarityInvertedBarCode,
PolarityNormalBarCode,
Reserved105,
MinimumLengthtoDecode,
MaximumLengthtoDecode,
DiscreteLengthtoDecode1,
DiscreteLengthtoDecode2,
DataLengthMethod,
DLMethodReadany,
DLMethodCheckinRange,
DLMethodCheckforDiscrete,
Reserved10E_10F,
AztecCode = 272,
BC412,
ChannelCode,
Code16,
Code32,
Code49,
CodeOne,
Colorcode,
DataMatrix,
MaxiCode,
MicroPDF,
PDF_417,
PosiCode,
QRCode,
SuperCode,
UltraCode,
USD_5_SlugCode,
VeriCode,
Reserved122_FFFF,
}
impl<T> From<T> for BarcodeScannerUsage
where
T: TryInto<u16>,
{
fn from(value: T) -> Self {
let value: u16 = value.try_into().unwrap_or(0);
match value {
0 => Self::Undefined,
1 => Self::BarcodeBadgeReader,
2 => Self::BarcodeScanner,
3 => Self::DumbBarCodeScanner,
4 => Self::CordlessScannerBase,
5 => Self::BarCodeScannerCradle,
6..16 => Self::Reserved06_0F,
16 => Self::AttributeReport,
17 => Self::SettingsReport,
18 => Self::ScannedDataReport,
19 => Self::RawScannedDataReport,
20 => Self::TriggerReport,
21 => Self::StatusReport,
22 => Self::UPC_EANControlReport,
23 => Self::EAN2_3LabelControlReport,
24 => Self::Code39ControlReport,
25 => Self::Interleaved2of5ControlReport,
26 => Self::Standard2of5ControlReport,
27 => Self::MSIPlesseyControlReport,
28 => Self::CodabarControlReport,
29 => Self::Code128ControlReport,
30 => Self::Misc1DControlReport,
31 => Self::_2DControlReport,
32..48 => Self::Reserved20_2F,
48 => Self::Aiming_PointerMode,
49 => Self::BarCodePresentSensor,
50 => Self::Class1ALaser,
51 => Self::Class2Laser,
52 => Self::HeaterPresent,
53 => Self::ContactScanner,
54 => Self::ElectronicArticleSurveillanceNotification,
55 => Self::ConstantElectronicArticleSurveillance,
56 => Self::ErrorIndication,
57 => Self::FixedBeeper,
58 => Self::GoodDecodeIndication,
59 => Self::HandsFreeScanning,
60 => Self::IntrinsicallySafe,
61 => Self::KlasseEinsLaser,
62 => Self::LongRangeScanner,
63 => Self::MirrorSpeedControl,
64 => Self::NotOnFileIndication,
65 => Self::ProgrammableBeeper,
66 => Self::Triggerless,
67 => Self::Wand,
68 => Self::WaterResistant,
69 => Self::Multi_RangeScanner,
70 => Self::ProximitySensor,
71..77 => Self::Reserved47_4C,
77 => Self::FragmentDecoding,
78 => Self::ScannerReadConfidence,
79 => Self::DataPrefix,
80 => Self::PrefixAIMI,
81 => Self::PrefixNone,
82 => Self::PrefixProprietary,
83..84 => Self::Reserved53_54,
84 => Self::ActiveTime,
85 => Self::AimingLaserPattern,
86 => Self::BarCodePresent,
87 => Self::BeeperState,
88 => Self::LaserOnTime,
89 => Self::LaserState,
90 => Self::LockoutTime,
91 => Self::MotorState,
92 => Self::MotorTimeout,
93 => Self::PowerOnResetScanner,
94 => Self::PreventReadofBarcodes,
95 => Self::InitiateBarcodeRead,
96 => Self::TriggerState,
97 => Self::TriggerMode,
98 => Self::TriggerModeBlinkingLaserOn,
99 => Self::TriggerModeContinuousLaserOn,
100 => Self::TriggerModeLaseronwhilePulled,
101 => Self::TriggerModeLaserstaysonafterrelease,
102..109 => Self::Reserved67_6C,
109 => Self::CommitParameterstoNVM,
110 => Self::ParameterScanning,
111 => Self::ParametersChanged,
112 => Self::Setparameterdefaultvalues,
113..116 => Self::Reserved71_74,
116 => Self::ScannerInCradle,
117 => Self::ScannerInRange,
118..122 => Self::Reserved77_79,
122 => Self::AimDuration,
123 => Self::GoodReadLampDuration,
124 => Self::GoodReadLampIntensity,
125 => Self::GoodReadLED,
126 => Self::GoodReadToneFrequency,
127 => Self::GoodReadToneLength,
128 => Self::GoodReadToneVolume,
129 => Self::Reserved81,
130 => Self::NoReadMessage,
131 => Self::NotonFileVolume,
132 => Self::PowerupBeep,
133 => Self::SoundErrorBeep,
134 => Self::SoundGoodReadBeep,
135 => Self::SoundNotOnFileBeep,
136 => Self::GoodReadWhentoWrite,
137 => Self::GRWTIAfterDecode,
138 => Self::GRWTIBeep_Lampaftertransmit,
139 => Self::GRWTINoBeep_Lampuseatall,
140..145 => Self::Reserved8C_90,
145 => Self::BooklandEAN,
146 => Self::ConvertEAN8to13Type,
147 => Self::ConvertUPCAtoEAN_13,
148 => Self::ConvertUPC_EtoA,
149 => Self::EAN_13,
150 => Self::EAN_8,
151 => Self::EAN_99128Mandatory,
152 => Self::EAN_99P5_128Optional,
153 => Self::EnableEANTwoLabel,
154 => Self::UPC_EAN,
155 => Self::UPC_EANCouponCode,
156 => Self::UPC_EANPeriodicals,
157 => Self::UPC_A,
158 => Self::UPC_Awith128Mandatory,
159 => Self::UPC_Awith128Optional,
160 => Self::UPC_AwithP5Optional,
161 => Self::UPC_E,
162 => Self::UPC_E1,
163..169 => Self::ReservedA3_A8,
169 => Self::Periodical,
170 => Self::PeriodicalAuto_Discriminate_plus2,
171 => Self::PeriodicalOnlyDecodewith_plus2,
172 => Self::PeriodicalIgnore_plus2,
173 => Self::PeriodicalAuto_Discriminate_plus5,
174 => Self::PeriodicalOnlyDecodewith_plus5,
175 => Self::PeriodicalIgnore_plus5,
176 => Self::Check,
177 => Self::CheckDisablePrice,
178 => Self::CheckEnable4digitPrice,
179 => Self::CheckEnable5digitPrice,
180 => Self::CheckEnableEuropean4digitPrice,
181 => Self::CheckEnableEuropean5digitPrice,
182 => Self::ReservedB6,
183 => Self::EANTwoLabel,
184 => Self::EANThreeLabel,
185 => Self::EAN8FlagDigit1,
186 => Self::EAN8FlagDigit2,
187 => Self::EAN8FlagDigit3,
188 => Self::EAN13FlagDigit1,
189 => Self::EAN13FlagDigit2,
190 => Self::EAN13FlagDigit3,
191 => Self::AddEAN2_3LabelDefinition,
192 => Self::ClearallEAN2_3LabelDefinitions,
193..195 => Self::ReservedC1_C2,
195 => Self::Codabar,
196 => Self::Code128,
197..199 => Self::ReservedC5_C6,
199 => Self::Code39,
200 => Self::Code93,
201 => Self::FullASCIIConversion,
202 => Self::Interleaved2of5,
203 => Self::ItalianPharmacyCode,
204 => Self::MSI_Plessey,
205 => Self::Standard2of5IATA,
206 => Self::Standard2of5,
207..211 => Self::ReservedCF_D2,
211 => Self::TransmitStart_Stop,
212 => Self::Tri_Optic,
213 => Self::UCC_EAN_128,
214 => Self::CheckDigit,
215 => Self::CheckDigitDisable,
216 => Self::CheckDigitEnableInterleaved2of5OPCC,
217 => Self::CheckDigitEnableInterleaved2of5USS,
218 => Self::CheckDigitEnableStandard2of5OPCC,
219 => Self::CheckDigitEnableStandard2of5USS,
220 => Self::CheckDigitEnableOneMSIPlessey,
221 => Self::CheckDigitEnableTwoMSIPlessey,
222 => Self::CheckDigitCodabarEnable,
223 => Self::CheckDigitCode39Enable,
224..240 => Self::ReservedE0_EF,
240 => Self::TransmitCheckDigit,
241 => Self::DisableCheckDigitTransmit,
242 => Self::EnableCheckDigitTransmit,
243..251 => Self::ReservedF3_FA,
251 => Self::SymbologyIdentifier1,
252 => Self::SymbologyIdentifier2,
253 => Self::SymbologyIdentifier3,
254 => Self::DecodedData,
255 => Self::DecodeDataContinued,
256 => Self::BarSpaceData,
257 => Self::ScannerDataAccuracy,
258 => Self::RawDataPolarity,
259 => Self::PolarityInvertedBarCode,
260 => Self::PolarityNormalBarCode,
261 => Self::Reserved105,
262 => Self::MinimumLengthtoDecode,
263 => Self::MaximumLengthtoDecode,
264 => Self::DiscreteLengthtoDecode1,
265 => Self::DiscreteLengthtoDecode2,
266 => Self::DataLengthMethod,
267 => Self::DLMethodReadany,
268 => Self::DLMethodCheckinRange,
269 => Self::DLMethodCheckforDiscrete,
270..272 => Self::Reserved10E_10F,
272 => Self::AztecCode,
273 => Self::BC412,
274 => Self::ChannelCode,
275 => Self::Code16,
276 => Self::Code32,
277 => Self::Code49,
278 => Self::CodeOne,
279 => Self::Colorcode,
280 => Self::DataMatrix,
281 => Self::MaxiCode,
282 => Self::MicroPDF,
283 => Self::PDF_417,
284 => Self::PosiCode,
285 => Self::QRCode,
286 => Self::SuperCode,
287 => Self::UltraCode,
288 => Self::USD_5_SlugCode,
289 => Self::VeriCode,
290..=65535 => Self::Reserved122_FFFF,
}
}
}