rolling_flaws_subghz_receive.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <lib/subghz/receiver.h>
  5. #include <lib/subghz/protocols/protocol_items.h>
  6. #include <lib/subghz/devices/cc1101_int/cc1101_int_interconnect.h>
  7. #include <lib/subghz/devices/devices.h>
  8. #include "./rolling_flaws_utils.h"
  9. #ifdef TAG
  10. #undef TAG
  11. #endif
  12. #define TAG "RollingFlawsSubGHzReceive"
  13. typedef bool (*SubghzPacketCallback)(FuriString* buffer, void* context);
  14. typedef enum {
  15. SUBGHZ_RECEIVER_INITIALIZING,
  16. SUBGHZ_RECEIVER_LISTENING,
  17. SUBGHZ_RECEIVER_SYNCHRONIZED,
  18. SUBGHZ_RECEIVER_NOTLISTENING,
  19. SUBGHZ_RECEIVER_UNINITIALING,
  20. SUBGHZ_RECEIVER_UNINITIALIZED,
  21. } SubghzReceiverState;
  22. typedef struct {
  23. SubGhzEnvironment* environment;
  24. FuriStreamBuffer* stream;
  25. FuriThread* thread;
  26. SubGhzReceiver* receiver;
  27. bool overrun;
  28. SubghzReceiverState status;
  29. SubghzPacketCallback callback;
  30. void* callback_context;
  31. } RollingFlawsSubGhz;
  32. RollingFlawsSubGhz* rolling_flaws_subghz_alloc();
  33. void rolling_flaws_subghz_free(RollingFlawsSubGhz* subghz);
  34. void start_listening(
  35. RollingFlawsSubGhz* context,
  36. uint32_t frequency,
  37. SubghzPacketCallback callback,
  38. void* callback_context);
  39. void stop_listening(RollingFlawsSubGhz* context);