picopass_device.h 874 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #include <storage/storage.h>
  5. #include <dialogs/dialogs.h>
  6. #include <rfal_picopass.h>
  7. typedef struct {
  8. bool valid;
  9. uint8_t bitLength;
  10. uint8_t FacilityCode;
  11. uint16_t CardNumber;
  12. } PicopassWiegandRecord;
  13. typedef struct {
  14. bool biometrics;
  15. uint8_t encryption;
  16. uint8_t credential[8];
  17. uint8_t pin0[8];
  18. uint8_t pin1[8];
  19. PicopassWiegandRecord record;
  20. } PicopassPacs;
  21. typedef struct {
  22. ApplicationArea AA1;
  23. PicopassPacs pacs;
  24. } PicopassDeviceData;
  25. typedef struct {
  26. Storage* storage;
  27. DialogsApp* dialogs;
  28. PicopassDeviceData dev_data;
  29. } PicopassDevice;
  30. PicopassDevice* picopass_device_alloc();
  31. void picopass_device_free(PicopassDevice* picopass_dev);
  32. void picopass_device_data_clear(PicopassDeviceData* dev_data);
  33. void picopass_device_clear(PicopassDevice* dev);