subghz_frequency_analyzer_worker.h 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #pragma once
  2. #include <furi_hal.h>
  3. #include "../subghz_i.h"
  4. typedef struct SubGhzFrequencyAnalyzerWorker SubGhzFrequencyAnalyzerWorker;
  5. typedef void (*SubGhzFrequencyAnalyzerWorkerPairCallback)(
  6. void* context,
  7. uint32_t frequency,
  8. float rssi,
  9. bool signal);
  10. typedef struct {
  11. uint32_t frequency_coarse;
  12. float rssi_coarse;
  13. uint32_t frequency_fine;
  14. float rssi_fine;
  15. } FrequencyRSSI;
  16. /** Allocate SubGhzFrequencyAnalyzerWorker
  17. *
  18. * @param context SubGhz* context
  19. * @return SubGhzFrequencyAnalyzerWorker*
  20. */
  21. SubGhzFrequencyAnalyzerWorker* subghz_frequency_analyzer_worker_alloc(void* context);
  22. /** Free SubGhzFrequencyAnalyzerWorker
  23. *
  24. * @param instance SubGhzFrequencyAnalyzerWorker instance
  25. */
  26. void subghz_frequency_analyzer_worker_free(SubGhzFrequencyAnalyzerWorker* instance);
  27. /** Pair callback SubGhzFrequencyAnalyzerWorker
  28. *
  29. * @param instance SubGhzFrequencyAnalyzerWorker instance
  30. * @param callback SubGhzFrequencyAnalyzerWorkerOverrunCallback callback
  31. * @param context
  32. */
  33. void subghz_frequency_analyzer_worker_set_pair_callback(
  34. SubGhzFrequencyAnalyzerWorker* instance,
  35. SubGhzFrequencyAnalyzerWorkerPairCallback callback,
  36. void* context);
  37. /** Start SubGhzFrequencyAnalyzerWorker
  38. *
  39. * @param instance SubGhzFrequencyAnalyzerWorker instance
  40. */
  41. void subghz_frequency_analyzer_worker_start(SubGhzFrequencyAnalyzerWorker* instance);
  42. /** Stop SubGhzFrequencyAnalyzerWorker
  43. *
  44. * @param instance SubGhzFrequencyAnalyzerWorker instance
  45. */
  46. void subghz_frequency_analyzer_worker_stop(SubGhzFrequencyAnalyzerWorker* instance);
  47. /** Check if worker is running
  48. * @param instance SubGhzFrequencyAnalyzerWorker instance
  49. * @return bool - true if running
  50. */
  51. bool subghz_frequency_analyzer_worker_is_running(SubGhzFrequencyAnalyzerWorker* instance);