subghz_protocol_princeton.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #pragma once
  2. #include "subghz_protocol_common.h"
  3. /** SubGhzEncoderPrinceton anonymous type */
  4. typedef struct SubGhzEncoderPrinceton SubGhzEncoderPrinceton;
  5. /** Allocate SubGhzEncoderPrinceton
  6. * @return pointer to SubGhzEncoderPrinceton instance
  7. */
  8. SubGhzEncoderPrinceton* subghz_encoder_princeton_alloc();
  9. /** Free SubGhzEncoderPrinceton instance
  10. * @param instance - SubGhzEncoderPrinceton instance
  11. */
  12. void subghz_encoder_princeton_free(SubGhzEncoderPrinceton* instance);
  13. /** Reset encoder with new params
  14. * @param instance - SubGhzEncoderPrinceton instance
  15. * @param key - 24bit key
  16. * @param repeat - how many times to repeat
  17. */
  18. void subghz_encoder_princeton_reset(SubGhzEncoderPrinceton* instance, uint32_t key, size_t repeat);
  19. /** Get repeat count left
  20. * @param instance - SubGhzEncoderPrinceton instance
  21. * @return repeat count left
  22. */
  23. size_t subghz_encoder_princeton_get_repeat_left(SubGhzEncoderPrinceton* instance);
  24. /** Get level duration
  25. * @param instance - SubGhzEncoderPrinceton instance
  26. * @return level duration
  27. */
  28. LevelDuration subghz_encoder_princeton_yield(void* context);
  29. /** SubGhzDecoderPrinceton anonymous type */
  30. typedef struct SubGhzDecoderPrinceton SubGhzDecoderPrinceton;
  31. void subghz_encoder_princeton_set_te(
  32. SubGhzEncoderPrinceton* instance,
  33. void* decoder);
  34. /** Allocate SubGhzDecoderPrinceton
  35. *
  36. * @return SubGhzDecoderPrinceton*
  37. */
  38. SubGhzDecoderPrinceton* subghz_decoder_princeton_alloc();
  39. /** Free SubGhzDecoderPrinceton
  40. *
  41. * @param instance
  42. */
  43. void subghz_decoder_princeton_free(SubGhzDecoderPrinceton* instance);
  44. /** Sends the key on the air
  45. *
  46. * @param instance - SubGhzDecoderPrinceton instance
  47. * @param key - key send
  48. * @param bit - count bit key
  49. * @param repeat - repeat send key
  50. */
  51. void subghz_decoder_princeton_send_key(SubGhzDecoderPrinceton* instance, uint64_t key, uint8_t bit, uint8_t repeat);
  52. /** Reset internal state
  53. * @param instance - SubGhzDecoderPrinceton instance
  54. */
  55. void subghz_decoder_princeton_reset(SubGhzDecoderPrinceton* instance);
  56. /** Parse accepted duration
  57. *
  58. * @param instance - SubGhzDecoderPrinceton instance
  59. * @param data - LevelDuration level_duration
  60. */
  61. void subghz_decoder_princeton_parse(SubGhzDecoderPrinceton* instance, bool level, uint32_t duration);
  62. /** Outputting information from the parser
  63. *
  64. * @param instance - SubGhzDecoderPrinceton* instance
  65. * @param output - output string
  66. */
  67. void subghz_decoder_princeton_to_str(SubGhzDecoderPrinceton* instance, string_t output);
  68. void subghz_decoder_princeton_to_save_str(SubGhzDecoderPrinceton* instance, string_t output);
  69. bool subghz_decoder_princeton_to_load_protocol(FileWorker* file_worker, SubGhzDecoderPrinceton* instance);