subghz_protocol_princeton.h 3.0 KB

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