subghz_parser.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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(SubGhzParser* instance, SubGhzProtocolTextCallback callback, void* context);
  30. /** Outputting data SubGhzParser from all parsers
  31. *
  32. * @param instance - SubGhzParser instance
  33. * @param callback - SubGhzProtocolTextCallback callback
  34. * @param context
  35. */
  36. void subghz_parser_enable_dump(SubGhzParser* instance, SubGhzProtocolCommonCallbackDump callback, void* context);
  37. /** File name rainbow table Nice Flor-S
  38. *
  39. * @param instance - SubGhzParser instance
  40. * @param file_name - "path/file_name"
  41. */
  42. void subghz_parser_load_nice_flor_s_file(SubGhzParser* instance, const char* file_name);
  43. /** File upload manufacture keys
  44. *
  45. * @param instance - SubGhzParser instance
  46. * @param file_name - "path/file_name"
  47. */
  48. void subghz_parser_load_keeloq_file(SubGhzParser* instance, const char* file_name);
  49. /** Restarting all parsers
  50. *
  51. * @param instance - SubGhzParser instance
  52. */
  53. void subghz_parser_reset(SubGhzParser* instance);
  54. /** Loading data into all parsers
  55. *
  56. * @param instance - SubGhzParser instance
  57. * @param level - true is high, false if low
  58. * @param duration - level duration in microseconds
  59. */
  60. void subghz_parser_parse(SubGhzParser* instance, bool level, uint32_t duration);