subbrute_worker_private.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include "subbrute_worker.h"
  3. #include <lib/subghz/protocols/base.h>
  4. #include <lib/subghz/transmitter.h>
  5. #include <lib/subghz/receiver.h>
  6. #include <lib/subghz/environment.h>
  7. struct SubBruteWorker {
  8. SubBruteWorkerState state;
  9. volatile bool worker_running;
  10. volatile bool initiated;
  11. // Current step
  12. uint64_t key_index;
  13. // SubGhz
  14. FuriThread* thread;
  15. SubGhzProtocolDecoderBase* decoder_result;
  16. SubGhzEnvironment* environment;
  17. SubGhzTransmitter* transmitter;
  18. // Initiated values
  19. SubBruteAttacks attack; // Attack state
  20. uint32_t frequency;
  21. FuriHalSubGhzPreset preset;
  22. SubBruteFileProtocol file;
  23. uint8_t bits;
  24. uint8_t te;
  25. uint8_t repeat;
  26. uint8_t load_index; // Index of group to bruteforce in loaded file
  27. const char* file_key;
  28. uint64_t max_value; // Max step
  29. // Manual transmit
  30. uint32_t last_time_tx_data;
  31. // Callback for changed states
  32. SubBruteWorkerCallback callback;
  33. void* context;
  34. };
  35. int32_t subbrute_worker_thread(void* context);
  36. void subbrute_worker_subghz_transmit(SubBruteWorker* instance, FlipperFormat* flipper_format);
  37. void subbrute_worker_send_callback(SubBruteWorker* instance);