ocpp_rs 0.4.0

no_std + alloc OCPP 1.6 and 2.1 protocol library (OCPP-J parse/serialize, CallResult correlation).
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
//! AUTO-GENERATED by `tools/gen_device_model.py` — do not edit by hand.

/// Standard variable metadata (name, data type, unit).
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct VariableMeta {
    pub name: &'static str,
    pub data_type: &'static str,
    pub unit: &'static str,
}

/// Standard variable names.
pub const STANDARD_VARIABLES: &[&str] = &[
    "ACCurrent",
    "ACPhaseSwitchingSupported",
    "ACVoltage",
    "Active",
    "ActiveMonitoringBase",
    "ActiveMonitoringLevel",
    "ActiveNetworkProfile",
    "ActiveTransactionId",
    "AdditionalInfoItemsPerMessage",
    "AdditionalRootCertificateCheck",
    "AllowEnergyTransferResumption",
    "AllowNewSessionsPendingFirmwareUpdate",
    "AllowReset",
    "AllowSecurityProfileDowngrade",
    "Angle",
    "Attempts",
    "AuthorizeRemoteStart",
    "AvailabilityState",
    "Available",
    "BasicAuthPassword",
    "BytesPerMessage",
    "CentralContractValidationAllowed",
    "CertSigningRepeatTimes",
    "CertSigningWaitMinimum",
    "Certificate",
    "CertificateEntries",
    "CertificateStatusSource",
    "ChargeProtocol",
    "ChargingCompleteBulk",
    "ChargingCompleteFull",
    "ChargingProfilePersistence",
    "ChargingState",
    "ChargingTime",
    "Color",
    "CommunicationParent",
    "Complete",
    "ConditionsSupported",
    "ConfigurationValueSize",
    "ConnectedTime",
    "ConnectorType",
    "ContractCertificateInstallationEnabled",
    "ContractValidationOffline",
    "Count",
    "CountryName",
    "Currency",
    "CurrentImbalance",
    "CustomImplementationEnabled",
    "CustomTriggers",
    "DCCurrent",
    "DCInputPhaseControl",
    "DCVoltage",
    "DataText",
    "DateTime",
    "DepartureTime",
    "DisablePostAuthorize",
    "DisableRemoteAuthorization",
    "DischargePower",
    "DisplayMessages",
    "ECVariant",
    "EVConnectionTimeOut",
    "ElectricalParent",
    "Enabled",
    "Energy",
    "EnergyCapacity",
    "EnergyExport",
    "EnergyExportRegister",
    "EnergyImport",
    "EnergyImportRegister",
    "Entries",
    "ExternalConfigChangeDate",
    "ExternalConstraintsProfileDisallowed",
    "ExternalControlSignalsEnabled",
    "Fallback",
    "FanSpeed",
    "FieldLength",
    "FileTransferProtocols",
    "FirmwareVersion",
    "Force",
    "Formats",
    "Frequency",
    "FrequencySchedule",
    "FuseRating",
    "HandleFailedTariff",
    "HeartbeatInterval",
    "Height",
    "Humidity",
    "Hysteresis",
    "ICCID",
    "IMSI",
    "ISO15118EvseId",
    "IdToken",
    "Identity",
    "Impedance",
    "Interval",
    "ItemsPerMessage",
    "Label",
    "Language",
    "Length",
    "LifeTime",
    "Light",
    "LimitChangeSignificance",
    "LocalAuthorizeOffline",
    "LocalFrequencyUpdateThreshold",
    "LocalLoadBalancing",
    "LocalPreAuthorize",
    "LogicalParent",
    "Manufacturer",
    "MasterPassGroupId",
    "MaxCertificateChainSize",
    "MaxElements",
    "MaxEnergyOnInvalidId",
    "MaxExternalConstraintsId",
    "MaxPeriodicEventStreams",
    "MaxPriceElements",
    "MaxSoc",
    "Measurands",
    "Message",
    "MessageAttemptInterval",
    "MessageAttempts",
    "MessageTimeout",
    "MinimumStatusDuration",
    "Mode",
    "Model",
    "NetworkAddress",
    "NetworkConfigurationPriority",
    "NetworkProfileConnectionAttempts",
    "NextTimeOffsetTransitionDateTime",
    "NonEvseSpecific",
    "NotificationMaxDelay",
    "NotifyChargingLimitWithSchedules",
    "NtpServerUri",
    "NtpSource",
    "OfflineQueuingSeverity",
    "OfflineTariffFallbackMessage",
    "OfflineThreshold",
    "OfflineTxForUnknownIdEnabled",
    "Operated",
    "OperatingTimes",
    "OrganizationName",
    "Overload",
    "Percent",
    "PeriodsPerSchedule",
    "PhaseRotation",
    "Phases3to1",
    "PhysicalParent",
    "PnCEnabled",
    "Policy",
    "PostChargingTime",
    "Power",
    "Present",
    "Problem",
    "ProfileStackLevel",
    "Protecting",
    "ProtocolAgreed",
    "ProtocolSupported",
    "ProtocolSupportedByEV",
    "PublicKey",
    "PublicKeyWithSignedMeterValue",
    "QueueAllMessages",
    "RateUnit",
    "RegisterValuesWithoutPhases",
    "RemainingTimeBulk",
    "RemainingTimeFull",
    "ReportingValueSize",
    "RequestMeteringReceipt",
    "ResetRetries",
    "ResumptionTimeout",
    "SampledMeasurands",
    "SamplingInterval",
    "SeccId",
    "SecurityProfile",
    "SendDuringIdle",
    "SerialNumber",
    "ServiceRenegotiationSupport",
    "SetpointPriority",
    "SignReadings",
    "SignStartedReadings",
    "SignUpdatedReadings",
    "SignalStrength",
    "SlotStatus",
    "SoC",
    "SoH",
    "State",
    "StateOfCharge",
    "StateOfChargeBulk",
    "StopTxOnEVSideDisconnect",
    "StopTxOnInvalidId",
    "Storage",
    "SupplyPhases",
    "SupportedAdditionalPurposes",
    "SupportedEnergyTransferModes",
    "SupportedFormats",
    "SupportedIdTokenTypes",
    "SupportedLimits",
    "SupportedOperationModes",
    "SupportedPriorities",
    "SupportedProviders",
    "SupportedStates",
    "SupportsDynamicProfiles",
    "SupportsEvseSleep",
    "SupportsExpiryDateTime",
    "SupportsLimitAtSoC",
    "SupportsMaxOfflineDuration",
    "SupportsRandomizedDelay",
    "SupportsUseLocalTime",
    "Suspending",
    "Suspension",
    "TargetSoc",
    "TariffFallbackMessage",
    "Temperature",
    "Time",
    "TimeAdjustmentReportingThreshold",
    "TimeOffset",
    "TimeSource",
    "TimeZone",
    "Timeout",
    "Timeout",
    "Token",
    "TokenType",
    "TotalCostFallbackMessage",
    "Tries",
    "Tripped",
    "TxBeforeAcceptedEnabled",
    "TxEndedInterval",
    "TxEndedMeasurands",
    "TxStartPoint",
    "TxStartedMeasurands",
    "TxStopPoint",
    "TxUpdatedInterval",
    "TxUpdatedMeasurands",
    "UnlockOnEVSideDisconnect",
    "UpstreamInterval",
    "UpstreamMeasurands",
    "V2GCertificateInstallationEnabled",
    "VehicleCertificate",
    "VehicleId",
    "VersionDate",
    "VersionNumber",
    "VoltageImbalance",
    "WorkingMode",
];

/// Full variable catalog with data type / unit.
pub const VARIABLE_META: &[VariableMeta] = &[
    VariableMeta { name: "ACCurrent", data_type: "decimal", unit: "A" },
    VariableMeta { name: "ACPhaseSwitchingSupported", data_type: "boolean", unit: "" },
    VariableMeta { name: "ACVoltage", data_type: "decimal", unit: "V" },
    VariableMeta { name: "Active", data_type: "boolean", unit: "" },
    VariableMeta { name: "ActiveMonitoringBase", data_type: "OptionList", unit: "" },
    VariableMeta { name: "ActiveMonitoringLevel", data_type: "integer", unit: "" },
    VariableMeta { name: "ActiveNetworkProfile", data_type: "boolean", unit: "" },
    VariableMeta { name: "ActiveTransactionId", data_type: "string", unit: "" },
    VariableMeta { name: "AdditionalInfoItemsPerMessage", data_type: "integer", unit: "" },
    VariableMeta { name: "AdditionalRootCertificateCheck", data_type: "boolean", unit: "" },
    VariableMeta { name: "AllowEnergyTransferResumption", data_type: "boolean", unit: "" },
    VariableMeta { name: "AllowNewSessionsPendingFirmwareUpdate", data_type: "boolean", unit: "" },
    VariableMeta { name: "AllowReset", data_type: "boolean", unit: "" },
    VariableMeta { name: "AllowSecurityProfileDowngrade", data_type: "boolean", unit: "" },
    VariableMeta { name: "Angle", data_type: "decimal", unit: "Deg" },
    VariableMeta { name: "Attempts", data_type: "integer", unit: "" },
    VariableMeta { name: "AuthorizeRemoteStart", data_type: "boolean", unit: "" },
    VariableMeta { name: "AvailabilityState", data_type: "OptionList", unit: "" },
    VariableMeta { name: "Available", data_type: "boolean", unit: "" },
    VariableMeta { name: "BasicAuthPassword", data_type: "string", unit: "" },
    VariableMeta { name: "BytesPerMessage", data_type: "integer", unit: "" },
    VariableMeta { name: "CentralContractValidationAllowed", data_type: "boolean", unit: "" },
    VariableMeta { name: "CertSigningRepeatTimes", data_type: "integer", unit: "" },
    VariableMeta { name: "CertSigningWaitMinimum", data_type: "integer", unit: "" },
    VariableMeta { name: "Certificate", data_type: "string", unit: "" },
    VariableMeta { name: "CertificateEntries", data_type: "integer", unit: "" },
    VariableMeta { name: "CertificateStatusSource", data_type: "string", unit: "" },
    VariableMeta { name: "ChargeProtocol", data_type: "string", unit: "" },
    VariableMeta { name: "ChargingCompleteBulk", data_type: "boolean", unit: "" },
    VariableMeta { name: "ChargingCompleteFull", data_type: "boolean", unit: "" },
    VariableMeta { name: "ChargingProfilePersistence", data_type: "boolean", unit: "" },
    VariableMeta { name: "ChargingState", data_type: "OptionList", unit: "" },
    VariableMeta { name: "ChargingTime", data_type: "decimal", unit: "s" },
    VariableMeta { name: "Color", data_type: "string", unit: "" },
    VariableMeta { name: "CommunicationParent", data_type: "string", unit: "" },
    VariableMeta { name: "Complete", data_type: "boolean", unit: "" },
    VariableMeta { name: "ConditionsSupported", data_type: "boolean", unit: "" },
    VariableMeta { name: "ConfigurationValueSize", data_type: "integer", unit: "" },
    VariableMeta { name: "ConnectedTime", data_type: "decimal", unit: "s" },
    VariableMeta { name: "ConnectorType", data_type: "OptionList", unit: "" },
    VariableMeta { name: "ContractCertificateInstallationEnabled", data_type: "boolean", unit: "" },
    VariableMeta { name: "ContractValidationOffline", data_type: "boolean", unit: "" },
    VariableMeta { name: "Count", data_type: "integer", unit: "" },
    VariableMeta { name: "CountryName", data_type: "string", unit: "" },
    VariableMeta { name: "Currency", data_type: "string", unit: "" },
    VariableMeta { name: "CurrentImbalance", data_type: "decimal", unit: "Percent" },
    VariableMeta { name: "CustomImplementationEnabled", data_type: "boolean", unit: "" },
    VariableMeta { name: "CustomTriggers", data_type: "MemberList", unit: "" },
    VariableMeta { name: "DCCurrent", data_type: "decimal", unit: "A" },
    VariableMeta { name: "DCInputPhaseControl", data_type: "boolean", unit: "" },
    VariableMeta { name: "DCVoltage", data_type: "decimal", unit: "V" },
    VariableMeta { name: "DataText", data_type: "string", unit: "" },
    VariableMeta { name: "DateTime", data_type: "dateTime", unit: "" },
    VariableMeta { name: "DepartureTime", data_type: "dateTime", unit: "" },
    VariableMeta { name: "DisablePostAuthorize", data_type: "boolean", unit: "" },
    VariableMeta { name: "DisableRemoteAuthorization", data_type: "boolean", unit: "" },
    VariableMeta { name: "DischargePower", data_type: "decimal", unit: "" },
    VariableMeta { name: "DisplayMessages", data_type: "integer", unit: "" },
    VariableMeta { name: "ECVariant", data_type: "string", unit: "" },
    VariableMeta { name: "EVConnectionTimeOut", data_type: "integer", unit: "s" },
    VariableMeta { name: "ElectricalParent", data_type: "string", unit: "" },
    VariableMeta { name: "Enabled", data_type: "boolean", unit: "" },
    VariableMeta { name: "Energy", data_type: "decimal", unit: "Wh" },
    VariableMeta { name: "EnergyCapacity", data_type: "decimal", unit: "Wh" },
    VariableMeta { name: "EnergyExport", data_type: "decimal", unit: "Wh" },
    VariableMeta { name: "EnergyExportRegister", data_type: "decimal", unit: "Wh" },
    VariableMeta { name: "EnergyImport", data_type: "decimal", unit: "Wh" },
    VariableMeta { name: "EnergyImportRegister", data_type: "decimal", unit: "Wh" },
    VariableMeta { name: "Entries", data_type: "integer", unit: "" },
    VariableMeta { name: "ExternalConfigChangeDate", data_type: "DateTime", unit: "" },
    VariableMeta { name: "ExternalConstraintsProfileDisallowed", data_type: "boolean", unit: "" },
    VariableMeta { name: "ExternalControlSignalsEnabled", data_type: "boolean", unit: "" },
    VariableMeta { name: "Fallback", data_type: "boolean", unit: "" },
    VariableMeta { name: "FanSpeed", data_type: "decimal", unit: "RPM" },
    VariableMeta { name: "FieldLength", data_type: "integer", unit: "" },
    VariableMeta { name: "FileTransferProtocols", data_type: "MemberList", unit: "" },
    VariableMeta { name: "FirmwareVersion", data_type: "string", unit: "" },
    VariableMeta { name: "Force", data_type: "decimal", unit: "N" },
    VariableMeta { name: "Formats", data_type: "MemberList", unit: "" },
    VariableMeta { name: "Frequency", data_type: "decimal", unit: "Hz" },
    VariableMeta { name: "FrequencySchedule", data_type: "string", unit: "" },
    VariableMeta { name: "FuseRating", data_type: "decimal", unit: "A" },
    VariableMeta { name: "HandleFailedTariff", data_type: "OptionList", unit: "" },
    VariableMeta { name: "HeartbeatInterval", data_type: "integer", unit: "s" },
    VariableMeta { name: "Height", data_type: "decimal", unit: "m" },
    VariableMeta { name: "Humidity", data_type: "decimal", unit: "RH" },
    VariableMeta { name: "Hysteresis", data_type: "decimal", unit: "Percent" },
    VariableMeta { name: "ICCID", data_type: "string", unit: "" },
    VariableMeta { name: "IMSI", data_type: "string", unit: "" },
    VariableMeta { name: "ISO15118EvseId", data_type: "string", unit: "" },
    VariableMeta { name: "IdToken", data_type: "string", unit: "" },
    VariableMeta { name: "Identity", data_type: "string", unit: "" },
    VariableMeta { name: "Impedance", data_type: "decimal", unit: "Ohm" },
    VariableMeta { name: "Interval", data_type: "integer", unit: "s" },
    VariableMeta { name: "ItemsPerMessage", data_type: "integer", unit: "" },
    VariableMeta { name: "Label", data_type: "string", unit: "" },
    VariableMeta { name: "Language", data_type: "OptionList", unit: "" },
    VariableMeta { name: "Length", data_type: "decimal", unit: "m" },
    VariableMeta { name: "LifeTime", data_type: "integer", unit: "s" },
    VariableMeta { name: "Light", data_type: "decimal", unit: "lx" },
    VariableMeta { name: "LimitChangeSignificance", data_type: "decimal", unit: "" },
    VariableMeta { name: "LocalAuthorizeOffline", data_type: "boolean", unit: "" },
    VariableMeta { name: "LocalFrequencyUpdateThreshold", data_type: "integer", unit: "mHz" },
    VariableMeta { name: "LocalLoadBalancing", data_type: "decimal", unit: "" },
    VariableMeta { name: "LocalPreAuthorize", data_type: "boolean", unit: "" },
    VariableMeta { name: "LogicalParent", data_type: "string", unit: "" },
    VariableMeta { name: "Manufacturer", data_type: "string", unit: "" },
    VariableMeta { name: "MasterPassGroupId", data_type: "string", unit: "" },
    VariableMeta { name: "MaxCertificateChainSize", data_type: "integer", unit: "" },
    VariableMeta { name: "MaxElements", data_type: "integer", unit: "" },
    VariableMeta { name: "MaxEnergyOnInvalidId", data_type: "integer", unit: "Wh" },
    VariableMeta { name: "MaxExternalConstraintsId", data_type: "integer", unit: "" },
    VariableMeta { name: "MaxPeriodicEventStreams", data_type: "integer", unit: "" },
    VariableMeta { name: "MaxPriceElements", data_type: "integer", unit: "" },
    VariableMeta { name: "MaxSoc", data_type: "integer", unit: "" },
    VariableMeta { name: "Measurands", data_type: "MemberList", unit: "" },
    VariableMeta { name: "Message", data_type: "string", unit: "" },
    VariableMeta { name: "MessageAttemptInterval", data_type: "integer", unit: "s" },
    VariableMeta { name: "MessageAttempts", data_type: "integer", unit: "" },
    VariableMeta { name: "MessageTimeout", data_type: "integer", unit: "s" },
    VariableMeta { name: "MinimumStatusDuration", data_type: "integer", unit: "s" },
    VariableMeta { name: "Mode", data_type: "string", unit: "" },
    VariableMeta { name: "Model", data_type: "string", unit: "" },
    VariableMeta { name: "NetworkAddress", data_type: "string", unit: "" },
    VariableMeta { name: "NetworkConfigurationPriority", data_type: "SequenceList", unit: "" },
    VariableMeta { name: "NetworkProfileConnectionAttempts", data_type: "integer", unit: "" },
    VariableMeta { name: "NextTimeOffsetTransitionDateTime", data_type: "DateTime", unit: "" },
    VariableMeta { name: "NonEvseSpecific", data_type: "boolean", unit: "" },
    VariableMeta { name: "NotificationMaxDelay", data_type: "integer", unit: "s" },
    VariableMeta { name: "NotifyChargingLimitWithSchedules", data_type: "boolean", unit: "" },
    VariableMeta { name: "NtpServerUri", data_type: "string", unit: "" },
    VariableMeta { name: "NtpSource", data_type: "OptionList", unit: "" },
    VariableMeta { name: "OfflineQueuingSeverity", data_type: "integer", unit: "" },
    VariableMeta { name: "OfflineTariffFallbackMessage", data_type: "string", unit: "" },
    VariableMeta { name: "OfflineThreshold", data_type: "integer", unit: "s" },
    VariableMeta { name: "OfflineTxForUnknownIdEnabled", data_type: "boolean", unit: "" },
    VariableMeta { name: "Operated", data_type: "boolean", unit: "" },
    VariableMeta { name: "OperatingTimes", data_type: "string", unit: "" },
    VariableMeta { name: "OrganizationName", data_type: "string", unit: "" },
    VariableMeta { name: "Overload", data_type: "boolean", unit: "" },
    VariableMeta { name: "Percent", data_type: "decimal", unit: "Percent" },
    VariableMeta { name: "PeriodsPerSchedule", data_type: "integer", unit: "" },
    VariableMeta { name: "PhaseRotation", data_type: "string", unit: "" },
    VariableMeta { name: "Phases3to1", data_type: "boolean", unit: "" },
    VariableMeta { name: "PhysicalParent", data_type: "string", unit: "" },
    VariableMeta { name: "PnCEnabled", data_type: "boolean", unit: "" },
    VariableMeta { name: "Policy", data_type: "OptionList", unit: "" },
    VariableMeta { name: "PostChargingTime", data_type: "decimal", unit: "s" },
    VariableMeta { name: "Power", data_type: "decimal", unit: "W,kW" },
    VariableMeta { name: "Present", data_type: "boolean", unit: "" },
    VariableMeta { name: "Problem", data_type: "boolean", unit: "" },
    VariableMeta { name: "ProfileStackLevel", data_type: "integer", unit: "" },
    VariableMeta { name: "Protecting", data_type: "boolean", unit: "" },
    VariableMeta { name: "ProtocolAgreed", data_type: "string", unit: "" },
    VariableMeta { name: "ProtocolSupported", data_type: "string", unit: "" },
    VariableMeta { name: "ProtocolSupportedByEV", data_type: "string", unit: "" },
    VariableMeta { name: "PublicKey", data_type: "string", unit: "" },
    VariableMeta { name: "PublicKeyWithSignedMeterValue", data_type: "boolean", unit: "" },
    VariableMeta { name: "QueueAllMessages", data_type: "boolean", unit: "" },
    VariableMeta { name: "RateUnit", data_type: "string", unit: "" },
    VariableMeta { name: "RegisterValuesWithoutPhases", data_type: "boolean", unit: "" },
    VariableMeta { name: "RemainingTimeBulk", data_type: "integer", unit: "s" },
    VariableMeta { name: "RemainingTimeFull", data_type: "integer", unit: "s" },
    VariableMeta { name: "ReportingValueSize", data_type: "integer", unit: "" },
    VariableMeta { name: "RequestMeteringReceipt", data_type: "boolean", unit: "" },
    VariableMeta { name: "ResetRetries", data_type: "integer", unit: "" },
    VariableMeta { name: "ResumptionTimeout", data_type: "integer", unit: "s" },
    VariableMeta { name: "SampledMeasurands", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SamplingInterval", data_type: "decimal", unit: "s" },
    VariableMeta { name: "SeccId", data_type: "string", unit: "" },
    VariableMeta { name: "SecurityProfile", data_type: "integer", unit: "" },
    VariableMeta { name: "SendDuringIdle", data_type: "boolean", unit: "" },
    VariableMeta { name: "SerialNumber", data_type: "string", unit: "" },
    VariableMeta { name: "ServiceRenegotiationSupport", data_type: "boolean", unit: "" },
    VariableMeta { name: "SetpointPriority", data_type: "OptionList", unit: "" },
    VariableMeta { name: "SignReadings", data_type: "boolean", unit: "" },
    VariableMeta { name: "SignStartedReadings", data_type: "boolean", unit: "" },
    VariableMeta { name: "SignUpdatedReadings", data_type: "boolean", unit: "" },
    VariableMeta { name: "SignalStrength", data_type: "decimal", unit: "dBm" },
    VariableMeta { name: "SlotStatus", data_type: "OptionList", unit: "" },
    VariableMeta { name: "SoC", data_type: "integer", unit: "Percent" },
    VariableMeta { name: "SoH", data_type: "integer", unit: "Percent" },
    VariableMeta { name: "State", data_type: "string", unit: "" },
    VariableMeta { name: "StateOfCharge", data_type: "decimal", unit: "Percent" },
    VariableMeta { name: "StateOfChargeBulk", data_type: "decimal", unit: "Percent" },
    VariableMeta { name: "StopTxOnEVSideDisconnect", data_type: "boolean", unit: "" },
    VariableMeta { name: "StopTxOnInvalidId", data_type: "boolean", unit: "" },
    VariableMeta { name: "Storage", data_type: "integer", unit: "B" },
    VariableMeta { name: "SupplyPhases", data_type: "integer", unit: "" },
    VariableMeta { name: "SupportedAdditionalPurposes", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SupportedEnergyTransferModes", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SupportedFormats", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SupportedIdTokenTypes", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SupportedLimits", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SupportedOperationModes", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SupportedPriorities", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SupportedProviders", data_type: "string", unit: "" },
    VariableMeta { name: "SupportedStates", data_type: "MemberList", unit: "" },
    VariableMeta { name: "SupportsDynamicProfiles", data_type: "boolean", unit: "" },
    VariableMeta { name: "SupportsEvseSleep", data_type: "boolean", unit: "" },
    VariableMeta { name: "SupportsExpiryDateTime", data_type: "boolean", unit: "" },
    VariableMeta { name: "SupportsLimitAtSoC", data_type: "boolean", unit: "" },
    VariableMeta { name: "SupportsMaxOfflineDuration", data_type: "boolean", unit: "" },
    VariableMeta { name: "SupportsRandomizedDelay", data_type: "boolean", unit: "" },
    VariableMeta { name: "SupportsUseLocalTime", data_type: "boolean", unit: "" },
    VariableMeta { name: "Suspending", data_type: "boolean", unit: "" },
    VariableMeta { name: "Suspension", data_type: "boolean", unit: "" },
    VariableMeta { name: "TargetSoc", data_type: "integer", unit: "Percent" },
    VariableMeta { name: "TariffFallbackMessage", data_type: "string", unit: "" },
    VariableMeta { name: "Temperature", data_type: "decimal", unit: "Celsius, Fahrenheit" },
    VariableMeta { name: "Time", data_type: "dateTime", unit: "" },
    VariableMeta { name: "TimeAdjustmentReportingThreshold", data_type: "integer", unit: "s" },
    VariableMeta { name: "TimeOffset", data_type: "string", unit: "" },
    VariableMeta { name: "TimeSource", data_type: "SequenceList", unit: "" },
    VariableMeta { name: "TimeZone", data_type: "string", unit: "" },
    VariableMeta { name: "Timeout", data_type: "decimal", unit: "s" },
    VariableMeta { name: "Timeout", data_type: "integer", unit: "s" },
    VariableMeta { name: "Token", data_type: "string", unit: "" },
    VariableMeta { name: "TokenType", data_type: "OptionList", unit: "" },
    VariableMeta { name: "TotalCostFallbackMessage", data_type: "string", unit: "" },
    VariableMeta { name: "Tries", data_type: "integer", unit: "" },
    VariableMeta { name: "Tripped", data_type: "boolean", unit: "" },
    VariableMeta { name: "TxBeforeAcceptedEnabled", data_type: "boolean", unit: "" },
    VariableMeta { name: "TxEndedInterval", data_type: "integer", unit: "s" },
    VariableMeta { name: "TxEndedMeasurands", data_type: "MemberList", unit: "" },
    VariableMeta { name: "TxStartPoint", data_type: "MemberList", unit: "" },
    VariableMeta { name: "TxStartedMeasurands", data_type: "MemberList", unit: "" },
    VariableMeta { name: "TxStopPoint", data_type: "MemberList", unit: "" },
    VariableMeta { name: "TxUpdatedInterval", data_type: "integer", unit: "s" },
    VariableMeta { name: "TxUpdatedMeasurands", data_type: "MemberList", unit: "" },
    VariableMeta { name: "UnlockOnEVSideDisconnect", data_type: "boolean", unit: "" },
    VariableMeta { name: "UpstreamInterval", data_type: "integer", unit: "s" },
    VariableMeta { name: "UpstreamMeasurands", data_type: "MemberList", unit: "" },
    VariableMeta { name: "V2GCertificateInstallationEnabled", data_type: "boolean", unit: "" },
    VariableMeta { name: "VehicleCertificate", data_type: "string", unit: "" },
    VariableMeta { name: "VehicleId", data_type: "string", unit: "" },
    VariableMeta { name: "VersionDate", data_type: "dateTime", unit: "" },
    VariableMeta { name: "VersionNumber", data_type: "string", unit: "" },
    VariableMeta { name: "VoltageImbalance", data_type: "decimal", unit: "Percent" },
    VariableMeta { name: "WorkingMode", data_type: "OptionList", unit: "" },
];

/// Case-insensitive check against [`STANDARD_VARIABLES`].
#[must_use]
pub fn is_standard_variable(name: &str) -> bool {
    STANDARD_VARIABLES
        .iter()
        .any(|v| v.eq_ignore_ascii_case(name))
}