picopass_protocol.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #define PICOPASS_BLOCK_LEN 8
  3. #define PICOPASS_MAX_APP_LIMIT 32
  4. #define PICOPASS_UID_LEN 8
  5. #define PICOPASS_READ_CHECK_RESP_LEN 8
  6. #define PICOPASS_CHECK_RESP_LEN 4
  7. #define PICOPASS_MAC_LEN 4
  8. #define PICOPASS_KEY_LEN 8
  9. #define CSN_INDEX 0
  10. #define CFG_INDEX 1
  11. #define EPURSE_INDEX 2
  12. #define KD_INDEX 3
  13. #define KC_INDEX 4
  14. #define AIA_INDEX 5
  15. #define PACS_CFG_INDEX 6
  16. #define PACS_INDEX 7
  17. #define SR_SIO_INDEX 10
  18. #define PICOPASS_FDT_LISTEN_FC (1000)
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. typedef enum {
  23. PicopassErrorNone,
  24. PicopassErrorTimeout,
  25. PicopassErrorIncorrectCrc,
  26. PicopassErrorProtocol,
  27. } PicopassError;
  28. typedef struct {
  29. uint8_t data[PICOPASS_UID_LEN];
  30. } PicopassColResSerialNum;
  31. typedef struct {
  32. uint8_t data[PICOPASS_UID_LEN];
  33. } PicopassSerialNum;
  34. typedef struct {
  35. uint8_t data[PICOPASS_READ_CHECK_RESP_LEN];
  36. } PicopassReadCheckResp;
  37. typedef struct {
  38. uint8_t data[PICOPASS_CHECK_RESP_LEN];
  39. } PicopassCheckResp;
  40. typedef struct {
  41. uint8_t data[PICOPASS_MAC_LEN];
  42. } PicopassMac;
  43. #ifdef __cplusplus
  44. }
  45. #endif