subbrute_worker.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #pragma once
  2. #include "../subbrute_protocols.h"
  3. #include "subbrute_radio_device_loader.h"
  4. typedef enum {
  5. SubBruteWorkerStateIDLE,
  6. SubBruteWorkerStateReady,
  7. SubBruteWorkerStateTx,
  8. SubBruteWorkerStateFinished
  9. } SubBruteWorkerState;
  10. typedef void (*SubBruteWorkerCallback)(void* context, SubBruteWorkerState state);
  11. typedef struct SubBruteWorker SubBruteWorker;
  12. SubBruteWorker* subbrute_worker_alloc(const SubGhzDevice* radio_device);
  13. void subbrute_worker_free(SubBruteWorker* instance);
  14. uint64_t subbrute_worker_get_step(SubBruteWorker* instance);
  15. bool subbrute_worker_set_step(SubBruteWorker* instance, uint64_t step);
  16. bool subbrute_worker_is_running(SubBruteWorker* instance);
  17. bool subbrute_worker_init_default_attack(
  18. SubBruteWorker* instance,
  19. SubBruteAttacks attack_type,
  20. uint64_t step,
  21. const SubBruteProtocol* protocol,
  22. uint8_t repeats);
  23. bool subbrute_worker_init_file_attack(
  24. SubBruteWorker* instance,
  25. uint64_t step,
  26. uint8_t load_index,
  27. uint64_t file_key,
  28. SubBruteProtocol* protocol,
  29. uint8_t repeats,
  30. bool two_bytes);
  31. bool subbrute_worker_start(SubBruteWorker* instance);
  32. void subbrute_worker_stop(SubBruteWorker* instance);
  33. bool subbrute_worker_transmit_current_key(SubBruteWorker* instance, uint64_t step);
  34. bool subbrute_worker_can_manual_transmit(SubBruteWorker* instance);
  35. void subbrute_worker_set_callback(
  36. SubBruteWorker* instance,
  37. SubBruteWorkerCallback callback,
  38. void* context);
  39. uint8_t subbrute_worker_get_timeout(SubBruteWorker* instance);
  40. void subbrute_worker_set_timeout(SubBruteWorker* instance, uint8_t timeout);
  41. uint8_t subbrute_worker_get_repeats(SubBruteWorker* instance);
  42. void subbrute_worker_set_repeats(SubBruteWorker* instance, uint8_t repeats);
  43. uint32_t subbrute_worker_get_te(SubBruteWorker* instance);
  44. void subbrute_worker_set_te(SubBruteWorker* instance, uint32_t te);
  45. // void subbrute_worker_timeout_inc(SubBruteWorker* instance);
  46. // void subbrute_worker_timeout_dec(SubBruteWorker* instance);
  47. bool subbrute_worker_is_tx_allowed(SubBruteWorker* instance, uint32_t value);