MakerLabs ACM
hid_global_tag_id.h
Go to the documentation of this file.
1 #pragma once
6 
7 #include <bitset>
8 
9 #include <cinttypes>
10 
11 #include "esp_attr.h"
12 
14 {
16  {
17  uint64_t leading_parity_bit : 1;
18  uint64_t facility_code : 8;
19  uint64_t card_number : 16;
20  uint64_t trailing_parity_bit : 1;
21  };
22 
23  struct ParityView
24  {
25  uint64_t leading_bits : 13;
26  uint64_t trailing_bits : 13;
27  };
28 
29  IRAM_ATTR HIDGlobalTagID() noexcept;
30 
37  explicit IRAM_ATTR HIDGlobalTagID(const std::bitset<26>& bits) noexcept;
38 
39  bool valid = false;
40 
41  uint8_t facility_code = 0;
42  uint16_t card_number = 0;
43 };
44 
45 inline bool operator==(
46  const HIDGlobalTagID& lhs,
48 )
49 {
50  return (
51  lhs.valid == rhs.valid
52  and lhs.facility_code == rhs.facility_code
53  and lhs.card_number == rhs.card_number
54  );
55 }
HIDGlobalTagID() noexcept
Definition: hid_global_tag_id.cpp:8
uint64_t facility_code
Definition: hid_global_tag_id.h:18
Definition: hid_global_tag_id.h:23
const
Definition: oauth-server.js:18
uint16_t card_number
Definition: hid_global_tag_id.h:42
bool valid
Definition: hid_global_tag_id.h:39
uint8_t facility_code
Definition: hid_global_tag_id.h:41
uint64_t leading_bits
Definition: hid_global_tag_id.h:25
Definition: hid_global_tag_id.h:13
uint64_t trailing_parity_bit
Definition: hid_global_tag_id.h:20
Definition: hid_global_tag_id.h:15
uint64_t leading_parity_bit
Definition: hid_global_tag_id.h:17
uint64_t trailing_bits
Definition: hid_global_tag_id.h:26
uint64_t card_number
Definition: hid_global_tag_id.h:19