uhf_tag.c 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "uhf_tag.h"
  2. #include <stdlib.h>
  3. #include <string.h>
  4. UHFTagWrapper* uhf_tag_wrapper_alloc() {
  5. UHFTagWrapper* uhf_tag_wrapper = (UHFTagWrapper*)malloc(sizeof(UHFTagWrapper));
  6. uhf_tag_wrapper->uhf_tag = NULL;
  7. return uhf_tag_wrapper;
  8. }
  9. void uhf_tag_wrapper_set_tag(UHFTagWrapper* uhf_tag_wrapper, UHFTag* uhf_tag) {
  10. uhf_tag_wrapper->uhf_tag = uhf_tag;
  11. }
  12. void uhf_tag_wrapper_free(UHFTagWrapper* uhf_tag_wrapper) {
  13. uhf_tag_free(uhf_tag_wrapper->uhf_tag);
  14. free(uhf_tag_wrapper);
  15. }
  16. UHFTag* uhf_tag_alloc() {
  17. UHFTag* uhf_tag = (UHFTag*)malloc(sizeof(UHFTag));
  18. uhf_tag->reserved = (ReservedMemoryBank*)malloc(sizeof(ReservedMemoryBank));
  19. uhf_tag->epc = (EPCMemoryBank*)malloc(sizeof(EPCMemoryBank));
  20. uhf_tag->tid = (TIDMemoryBank*)malloc(sizeof(TIDMemoryBank));
  21. uhf_tag->user = (UserMemoryBank*)malloc(sizeof(UserMemoryBank));
  22. return uhf_tag;
  23. }
  24. void uhf_tag_reset(UHFTag* uhf_tag) {
  25. uhf_tag->epc->crc = 0;
  26. uhf_tag->epc->pc = 0;
  27. uhf_tag->epc->size = 0;
  28. uhf_tag->tid->size = 0;
  29. uhf_tag->user->size = 0;
  30. }
  31. void uhf_tag_free(UHFTag* uhf_tag) {
  32. if(uhf_tag == NULL) return;
  33. free(uhf_tag->reserved);
  34. free(uhf_tag->epc);
  35. free(uhf_tag->tid);
  36. free(uhf_tag->user);
  37. free(uhf_tag);
  38. }
  39. void uhf_tag_set_epc_pc(UHFTag* uhf_tag, uint16_t pc) {
  40. uhf_tag->epc->pc = pc;
  41. }
  42. void uhf_tag_set_epc_crc(UHFTag* uhf_tag, uint16_t crc) {
  43. uhf_tag->epc->crc = crc;
  44. }
  45. void uhf_tag_set_epc(UHFTag* uhf_tag, uint8_t* data_in, size_t size) {
  46. memcpy(uhf_tag->epc->data, data_in, size);
  47. uhf_tag->epc->size = size;
  48. }