subghz_parser.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #pragma once
  2. #include "protocols/subghz_protocol_common.h"
  3. typedef void (*SubGhzProtocolTextCallback)(string_t text, void* context);
  4. typedef void (*SubGhzProtocolCommonCallbackDump)(SubGhzProtocolCommon* parser, void* context);
  5. typedef struct SubGhzParser SubGhzParser;
  6. /** Allocate SubGhzParser
  7. *
  8. * @return SubGhzParser*
  9. */
  10. SubGhzParser* subghz_parser_alloc();
  11. /** Free SubGhzParser
  12. *
  13. * @param instance
  14. */
  15. void subghz_parser_free(SubGhzParser* instance);
  16. /** Get protocol by name
  17. *
  18. * @param instance - SubGhzParser instance
  19. * @param name - name protocol
  20. * @param SubGhzProtocolCommon
  21. */
  22. SubGhzProtocolCommon* subghz_parser_get_by_name(SubGhzParser* instance, const char* name);
  23. /** Outputting data text from all parsers
  24. *
  25. * @param instance - SubGhzParser instance
  26. * @param callback - SubGhzProtocolTextCallback callback
  27. * @param context
  28. */
  29. void subghz_parser_enable_dump_text(
  30. SubGhzParser* instance,
  31. SubGhzProtocolTextCallback callback,
  32. void* context);
  33. /** Outputting data SubGhzParser from all parsers
  34. *
  35. * @param instance - SubGhzParser instance
  36. * @param callback - SubGhzProtocolTextCallback callback
  37. * @param context
  38. */
  39. void subghz_parser_enable_dump(
  40. SubGhzParser* instance,
  41. SubGhzProtocolCommonCallbackDump callback,
  42. void* context);
  43. /** File name rainbow table Nice Flor-S
  44. *
  45. * @param instance - SubGhzParser instance
  46. * @param file_name - "path/file_name"
  47. */
  48. void subghz_parser_load_nice_flor_s_file(SubGhzParser* instance, const char* file_name);
  49. /** File name rainbow table Came Atomo
  50. *
  51. * @param instance - SubGhzParser instance
  52. * @param file_name - "path/file_name"
  53. */
  54. void subghz_parser_load_came_atomo_file(SubGhzParser* instance, const char* file_name);
  55. /** File upload manufacture keys
  56. *
  57. * @param instance - SubGhzParser instance
  58. * @param file_name - "path/file_name"
  59. * @return bool
  60. */
  61. bool subghz_parser_load_keeloq_file(SubGhzParser* instance, const char* file_name);
  62. /** Restarting all parsers
  63. *
  64. * @param instance - SubGhzParser instance
  65. */
  66. void subghz_parser_reset(SubGhzParser* instance);
  67. void subghz_parser_raw_parse(SubGhzParser* instance, bool level, uint32_t duration);
  68. /** Loading data into all parsers
  69. *
  70. * @param instance - SubGhzParser instance
  71. * @param level - true is high, false if low
  72. * @param duration - level duration in microseconds
  73. */
  74. void subghz_parser_parse(SubGhzParser* instance, bool level, uint32_t duration);