generic.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <stdint.h>
  4. #include <stddef.h>
  5. #include <lib/flipper_format/flipper_format.h>
  6. #include "furi.h"
  7. #include "furi_hal.h"
  8. typedef struct SubGhzBlockGeneric SubGhzBlockGeneric;
  9. struct SubGhzBlockGeneric {
  10. const char* protocol_name;
  11. uint64_t data;
  12. uint32_t serial;
  13. uint8_t data_count_bit;
  14. uint8_t btn;
  15. uint16_t cnt;
  16. };
  17. /**
  18. * Get modulation name.
  19. * @param preset modulation,FuriHalSubGhzPreset
  20. * @param preset_str Output modulation name
  21. * @return true On success
  22. */
  23. bool subghz_block_generic_get_preset_name(FuriHalSubGhzPreset preset, string_t preset_str);
  24. /**
  25. * Serialize data SubGhzBlockGeneric.
  26. * @param instance Pointer to a SubGhzBlockGeneric instance
  27. * @param flipper_format Pointer to a FlipperFormat instance
  28. * @param frequency The frequency at which the signal was received, Hz
  29. * @param preset The modulation on which the signal was received, FuriHalSubGhzPreset
  30. * @return true On success
  31. */
  32. bool subghz_block_generic_serialize(
  33. SubGhzBlockGeneric* instance,
  34. FlipperFormat* flipper_format,
  35. uint32_t frequency,
  36. FuriHalSubGhzPreset preset);
  37. /**
  38. * Deserialize data SubGhzBlockGeneric.
  39. * @param instance Pointer to a SubGhzBlockGeneric instance
  40. * @param flipper_format Pointer to a FlipperFormat instance
  41. * @return true On success
  42. */
  43. bool subghz_block_generic_deserialize(SubGhzBlockGeneric* instance, FlipperFormat* flipper_format);