subbrute_worker_private.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. volatile bool transmit_mode;
  12. // Current step
  13. uint64_t step;
  14. // SubGhz
  15. FuriThread* thread;
  16. SubGhzProtocolDecoderBase* decoder_result;
  17. SubGhzEnvironment* environment;
  18. SubGhzTransmitter* transmitter;
  19. const char* protocol_name;
  20. uint8_t tx_timeout_ms;
  21. const SubGhzDevice* radio_device;
  22. // Initiated values
  23. SubBruteAttacks attack; // Attack state
  24. uint32_t frequency;
  25. FuriHalSubGhzPreset preset;
  26. SubBruteFileProtocol file;
  27. uint8_t bits;
  28. uint32_t te;
  29. uint8_t repeat;
  30. uint8_t load_index; // Index of group to bruteforce in loaded file
  31. uint64_t file_key;
  32. uint64_t max_value; // Max step
  33. bool two_bytes;
  34. // Manual transmit
  35. uint32_t last_time_tx_data;
  36. // Callback for changed states
  37. SubBruteWorkerCallback callback;
  38. void* context;
  39. };
  40. int32_t subbrute_worker_thread(void* context);
  41. void subbrute_worker_subghz_transmit(SubBruteWorker* instance, FlipperFormat* flipper_format);
  42. void subbrute_worker_send_callback(SubBruteWorker* instance);