LibLogicalAccess  2.5.0
An Open Source RFID Library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fascn200bitformat.hpp
Go to the documentation of this file.
1
7#ifndef LOGICALACCESS_FASCN200BITFORMAT_HPP
8#define LOGICALACCESS_FASCN200BITFORMAT_HPP
9
10#include <string>
11#include <vector>
12#include <iostream>
13
15
16namespace logicalaccess
17{
21typedef enum {
27
31typedef enum {
33 POA_CIVIL = 0x02,
37
41class LLA_CORE_API FASCN200BitFormat : public StaticFormat
42{
43 public:
50
56 virtual ~FASCN200BitFormat();
57
58 static const unsigned char FASCN_SS;
59 static const unsigned char FASCN_FS;
60 static const unsigned char FASCN_ES;
62 static const unsigned char
64 static const unsigned char
66 static const unsigned char
72 unsigned short getAgencyCode() const;
73
77 void setAgencyCode(unsigned short agencyCode);
78
82 unsigned short getSystemCode() const;
83
87 void setSystemCode(unsigned short systemCode);
88
92 unsigned char getSerieCode() const;
93
97 void setSerieCode(unsigned char serieCode);
98
102 unsigned char getCredentialCode() const;
103
107 void setCredentialCode(unsigned char credentialCode);
108
112 unsigned long long getPersonIdentifier() const;
113
117 void setPersonIdentifier(unsigned long long personIdentifier);
118
122 FASCNOrganizationalCategory getOrganizationalCategory() const;
123
127 void setOrganizationalCategory(FASCNOrganizationalCategory organizationalCategory);
128
132 unsigned short getOrganizationalIdentifier() const;
133
137 void setOrganizationalIdentifier(unsigned short organizationalIdentifier);
138
142 FASCNPOAssociationCategory getPOACategory() const;
143
147 void setPOACategory(FASCNPOAssociationCategory organizationalCategory);
148
152 unsigned int getDataLength() const override;
153
158 std::string getName() const override;
159
164 FormatType getType() const override;
165
170 void serialize(boost::property_tree::ptree &parentNode) override;
171
176 void unSerialize(boost::property_tree::ptree &node) override;
177
182 std::string getDefaultXmlNodeName() const override;
183
189 ByteVector getLinearData() const override;
190
196 void setLinearData(const ByteVector &data) override;
197
204 size_t getFormatLinearData(ByteVector &data) const override;
205
211 void setFormatLinearData(const ByteVector &data, size_t *indexByte) override;
212
218 bool checkSkeleton(std::shared_ptr<Format> format) const override;
219
226 unsigned char calculateLRC(const BitsetStream &data) const;
227
228 protected:
229 struct
230 {
235 unsigned short d_agencyCode;
236
241 unsigned short d_systemCode;
242
247 unsigned char d_serieCode;
248
253 unsigned char d_credentialCode;
254
259 unsigned long long d_personIdentifier;
260
265
270 unsigned short d_orgIdentifier;
271
276 } d_formatLinear;
277};
278}
279
280#endif /* LOGICALACCESS_FASCN200BITFORMAT_HPP */
Definition: BitsetStream.hpp:15
A FASC-N 200 bit format class.
Definition: fascn200bitformat.hpp:42
FASCNOrganizationalCategory d_orgCategory
The organizational category.
Definition: fascn200bitformat.hpp:264
static const unsigned char FASCN_FS
The Field Separator value.
Definition: fascn200bitformat.hpp:59
unsigned char d_credentialCode
The individual credential issue. Initially encoded as '1', will be incremented if a card is replaced ...
Definition: fascn200bitformat.hpp:253
FASCNPOAssociationCategory d_poaCategory
The person/organization association category.
Definition: fascn200bitformat.hpp:275
static const unsigned char FASCN_SS
The Start Sentinel value.
Definition: fascn200bitformat.hpp:58
unsigned char d_serieCode
The credential series. Field is available to reflect major system changes.
Definition: fascn200bitformat.hpp:247
static const unsigned char FASCN_ES_WITH_PARITY
The End Sentinel value with parity.
Definition: fascn200bitformat.hpp:67
static const unsigned char FASCN_FS_WITH_PARITY
The Field Separator value with parity.
Definition: fascn200bitformat.hpp:65
unsigned short d_systemCode
The system code. Identifies the system the card is enrolled in and is unique for each site.
Definition: fascn200bitformat.hpp:241
static const unsigned char FASCN_SS_WITH_PARITY
The Start Sentinel value with parity.
Definition: fascn200bitformat.hpp:63
static const unsigned char FASCN_ES
The End Sentinel value.
Definition: fascn200bitformat.hpp:60
unsigned short d_orgIdentifier
The organizational identifier. OC=1 � FIPS 95-2 Agency Code. OC=2 � State Code. OC=3 � Company Code....
Definition: fascn200bitformat.hpp:270
unsigned short d_agencyCode
The agency code. Identifies the government agency issuing the credential.
Definition: fascn200bitformat.hpp:235
unsigned long long d_personIdentifier
The person identifier. Numeric code used by the identity source to uniquely identify the token carrie...
Definition: fascn200bitformat.hpp:259
A static format.
Definition: staticformat.hpp:18
std::vector< uint8_t > ByteVector
Definition: lla_fwd.hpp:80
Definition: asn1.hpp:9
FormatType
Format type.
Definition: format.hpp:27
FASCNOrganizationalCategory
FASC-N Organizational category.
Definition: fascn200bitformat.hpp:21
@ OC_FEDERAL_GOVERNMENT_AGENCY
Definition: fascn200bitformat.hpp:22
@ OC_FOREIGN_GOVERNMENT
Definition: fascn200bitformat.hpp:25
@ OC_COMMERCIAL_ENTERPRISE
Definition: fascn200bitformat.hpp:24
@ OC_STATE_GOVERNMENT_AGENCY
Definition: fascn200bitformat.hpp:23
FASCNPOAssociationCategory
FASC-N Person/Organization association category.
Definition: fascn200bitformat.hpp:31
@ POA_UNIFORMED_SERVICE
Definition: fascn200bitformat.hpp:35
@ POA_EXECUTIVE_STAFF
Definition: fascn200bitformat.hpp:34
@ POA_CIVIL
Definition: fascn200bitformat.hpp:33
@ POA_EMPLOYEE
Definition: fascn200bitformat.hpp:32
Static Format.