subghz_frequency_analyzer_worker.h 1.7 KB

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