subghz_frequency_analyzer_worker.h 1.8 KB

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