subghz_parser.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. */
  60. void subghz_parser_load_keeloq_file(SubGhzParser* instance, const char* file_name);
  61. /** Restarting all parsers
  62. *
  63. * @param instance - SubGhzParser instance
  64. */
  65. void subghz_parser_reset(SubGhzParser* instance);
  66. void subghz_parser_raw_parse(SubGhzParser* instance, bool level, uint32_t duration);
  67. /** Loading data into all parsers
  68. *
  69. * @param instance - SubGhzParser instance
  70. * @param level - true is high, false if low
  71. * @param duration - level duration in microseconds
  72. */
  73. void subghz_parser_parse(SubGhzParser* instance, bool level, uint32_t duration);