uhf_tag.c 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. if(uhf_tag_wrapper->uhf_tag != NULL) 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. free(uhf_tag->reserved);
  33. free(uhf_tag->epc);
  34. free(uhf_tag->tid);
  35. free(uhf_tag->user);
  36. free(uhf_tag);
  37. }
  38. void uhf_tag_set_epc_pc(UHFTag* uhf_tag, uint16_t pc) {
  39. uhf_tag->epc->pc = pc;
  40. }
  41. void uhf_tag_set_epc_crc(UHFTag* uhf_tag, uint16_t crc) {
  42. uhf_tag->epc->crc = crc;
  43. }
  44. void uhf_tag_set_epc(UHFTag* uhf_tag, uint8_t* data_in, size_t size) {
  45. memcpy(uhf_tag->epc->data, data_in, size);
  46. uhf_tag->epc->size = size;
  47. }