subghz_protocol_princeton.h 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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(
  36. SubGhzEncoderPrinceton* instance,
  37. void* decoder);
  38. /** Allocate SubGhzDecoderPrinceton
  39. *
  40. * @return SubGhzDecoderPrinceton*
  41. */
  42. SubGhzDecoderPrinceton* subghz_decoder_princeton_alloc();
  43. /** Free SubGhzDecoderPrinceton
  44. *
  45. * @param instance
  46. */
  47. void subghz_decoder_princeton_free(SubGhzDecoderPrinceton* instance);
  48. /** Get upload protocol
  49. *
  50. * @param instance - SubGhzDecoderPrinceton instance
  51. * @param encoder - SubGhzProtocolEncoderCommon encoder
  52. * @return bool
  53. */
  54. bool subghz_protocol_princeton_send_key(SubGhzDecoderPrinceton* instance, SubGhzProtocolEncoderCommon* encoder);
  55. /** Reset internal state
  56. * @param instance - SubGhzDecoderPrinceton instance
  57. */
  58. void subghz_decoder_princeton_reset(SubGhzDecoderPrinceton* instance);
  59. /** Parse accepted duration
  60. *
  61. * @param instance - SubGhzDecoderPrinceton instance
  62. * @param data - LevelDuration level_duration
  63. */
  64. void subghz_decoder_princeton_parse(SubGhzDecoderPrinceton* instance, bool level, uint32_t duration);
  65. /** Outputting information from the parser
  66. *
  67. * @param instance - SubGhzDecoderPrinceton* instance
  68. * @param output - output string
  69. */
  70. void subghz_decoder_princeton_to_str(SubGhzDecoderPrinceton* instance, string_t output);
  71. void subghz_decoder_princeton_to_save_str(SubGhzDecoderPrinceton* instance, string_t output);
  72. bool subghz_decoder_princeton_to_load_protocol(FileWorker* file_worker, SubGhzDecoderPrinceton* instance);