subbrute_device_i.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #pragma once
  2. #include "subbrute_protocols.h"
  3. #define SUBBRUTE_TEXT_STORE_SIZE 256
  4. #define SUBBRUTE_MAX_LEN_NAME 64
  5. #define SUBBRUTE_PATH EXT_PATH("subghz")
  6. #define SUBBRUTE_FILE_EXT ".sub"
  7. #define SUBBRUTE_PAYLOAD_SIZE 16
  8. typedef enum {
  9. SubBruteFileResultUnknown,
  10. SubBruteFileResultOk,
  11. SubBruteFileResultErrorOpenFile,
  12. SubBruteFileResultMissingOrIncorrectHeader,
  13. SubBruteFileResultFrequencyNotAllowed,
  14. SubBruteFileResultMissingOrIncorrectFrequency,
  15. SubBruteFileResultPresetInvalid,
  16. SubBruteFileResultMissingProtocol,
  17. SubBruteFileResultProtocolNotSupported,
  18. SubBruteFileResultDynamicProtocolNotValid,
  19. SubBruteFileResultProtocolNotFound,
  20. SubBruteFileResultMissingOrIncorrectBit,
  21. SubBruteFileResultMissingOrIncorrectKey,
  22. SubBruteFileResultMissingOrIncorrectTe,
  23. } SubBruteFileResult;
  24. typedef enum {
  25. SubBruteDeviceStateIDLE,
  26. SubBruteDeviceStateReady,
  27. SubBruteDeviceStateTx,
  28. SubBruteDeviceStateFinished
  29. } SubBruteDeviceState;
  30. typedef void (*SubBruteDeviceWorkerCallback)(void* context, SubBruteDeviceState state);
  31. typedef struct SubBruteDevice SubBruteDevice;
  32. SubBruteDevice* subbrute_device_alloc();
  33. void subbrute_device_free(SubBruteDevice* instance);
  34. bool subbrute_device_save_file(SubBruteDevice* instance, const char* key_name);
  35. const char* subbrute_device_error_get_desc(SubBruteFileResult error_id);
  36. SubBruteFileResult subbrute_device_attack_set(SubBruteDevice* context, SubBruteAttacks type);
  37. uint8_t subbrute_device_load_from_file(SubBruteDevice* context, string_t file_path);
  38. bool subbrute_device_is_worker_running(SubBruteDevice* instance);
  39. SubBruteAttacks subbrute_device_get_attack(SubBruteDevice* instance);
  40. uint64_t subbrute_device_get_max_value(SubBruteDevice* instance);
  41. uint64_t subbrute_device_get_step(SubBruteDevice* instance);
  42. uint64_t subbrute_device_add_step(SubBruteDevice* instance, int8_t step);
  43. void subbrute_device_set_load_index(SubBruteDevice* instance, uint64_t load_index);
  44. void subbrute_device_reset_step(SubBruteDevice* instance);
  45. const char* subbrute_device_get_file_key(SubBruteDevice* instance);
  46. bool subbrute_worker_start(SubBruteDevice* instance);
  47. void subbrute_worker_stop(SubBruteDevice* instance);
  48. bool subbrute_device_transmit_current_key(SubBruteDevice* instance);
  49. bool subbrute_device_can_manual_transmit(SubBruteDevice* instance);
  50. void subbrute_device_set_callback(
  51. SubBruteDevice* instance,
  52. SubBruteDeviceWorkerCallback callback,
  53. void* context);