uhf_data.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #include "uhf_data.h"
  2. UHFData* uhf_data_alloc() {
  3. UHFData* uhf_data = (UHFData*)malloc(sizeof(UHFData));
  4. uhf_data->length = 0;
  5. uhf_data->next = NULL;
  6. return uhf_data;
  7. }
  8. int uhf_data_append(UHFData* uhf_data, uint8_t data) {
  9. if(uhf_data->length >= 32) return 0;
  10. uhf_data->data[uhf_data->length++] = data;
  11. return 1;
  12. }
  13. void uhf_data_free(UHFData* uhf_data) {
  14. free(uhf_data->data);
  15. if(uhf_data->next != NULL) {
  16. uhf_data_free((UHFData*)uhf_data->next);
  17. }
  18. free(uhf_data->next);
  19. free(uhf_data);
  20. }
  21. UHFResponseData* uhf_response_data_alloc() {
  22. UHFResponseData* uhf_response_data = (UHFResponseData*)malloc(sizeof(UHFResponseData));
  23. uhf_response_data->data = uhf_data_alloc();
  24. uhf_response_data->size = 0;
  25. return uhf_response_data;
  26. }
  27. UHFData* add_uhf_data_to_uhf_response_data(UHFResponseData* uhf_response_data) {
  28. UHFData* next = uhf_response_data->data;
  29. while(next->next != NULL) {
  30. next = next->next;
  31. }
  32. next->next = uhf_data_alloc();
  33. uhf_response_data->size++;
  34. return next->next;
  35. }
  36. void uhf_response_data_free(UHFResponseData* uhf_response_data) {
  37. uhf_data_free(uhf_response_data->data);
  38. free(uhf_response_data);
  39. }