princeton_for_testing.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #pragma once
  2. #include "base.h"
  3. /** SubGhzDecoderPrinceton anonymous type */
  4. typedef struct SubGhzDecoderPrinceton SubGhzDecoderPrinceton;
  5. /** SubGhzEncoderPrinceton anonymous type */
  6. typedef struct SubGhzEncoderPrinceton SubGhzEncoderPrinceton;
  7. typedef void (*SubGhzDecoderPrincetonCallback)(SubGhzDecoderPrinceton* parser, void* context);
  8. /**
  9. * Allocate SubGhzEncoderPrinceton
  10. * @return pointer to SubGhzEncoderPrinceton instance
  11. */
  12. SubGhzEncoderPrinceton* subghz_encoder_princeton_for_testing_alloc();
  13. /**
  14. * Free SubGhzEncoderPrinceton instance
  15. * @param instance - SubGhzEncoderPrinceton instance
  16. */
  17. void subghz_encoder_princeton_for_testing_free(SubGhzEncoderPrinceton* instance);
  18. /**
  19. * Forced transmission stop.
  20. * @param instance Pointer to a SubGhzEncoderPrinceton instance
  21. * @param time_stop Transmission stop time, ms
  22. */
  23. void subghz_encoder_princeton_for_testing_stop(
  24. SubGhzEncoderPrinceton* instance,
  25. uint32_t time_stop);
  26. /**
  27. * Set new encoder params
  28. * @param instance - SubGhzEncoderPrinceton instance
  29. * @param key - 24bit key
  30. * @param repeat - how many times to repeat
  31. * @param frequency - frequency
  32. */
  33. void subghz_encoder_princeton_for_testing_set(
  34. SubGhzEncoderPrinceton* instance,
  35. uint32_t key,
  36. size_t repeat,
  37. uint32_t frequency);
  38. /**
  39. * Get repeat count left
  40. * @param instance - SubGhzEncoderPrinceton instance
  41. * @return repeat count left
  42. */
  43. size_t subghz_encoder_princeton_for_testing_get_repeat_left(SubGhzEncoderPrinceton* instance);
  44. /**
  45. * Print encoder log
  46. * @param instance - SubGhzEncoderPrinceton instance
  47. */
  48. void subghz_encoder_princeton_for_testing_print_log(void* context);
  49. /**
  50. * Get level duration
  51. * @param instance - SubGhzEncoderPrinceton instance
  52. * @return level duration
  53. */
  54. LevelDuration subghz_encoder_princeton_for_testing_yield(void* context);
  55. /**
  56. * Allocate SubGhzDecoderPrinceton
  57. * @return SubGhzDecoderPrinceton*
  58. */
  59. SubGhzDecoderPrinceton* subghz_decoder_princeton_for_testing_alloc();
  60. /**
  61. * Free SubGhzDecoderPrinceton
  62. * @param instance
  63. */
  64. void subghz_decoder_princeton_for_testing_free(SubGhzDecoderPrinceton* instance);
  65. void subghz_decoder_princeton_for_testing_set_callback(
  66. SubGhzDecoderPrinceton* instance,
  67. SubGhzDecoderPrincetonCallback callback,
  68. void* context);
  69. /**
  70. * Reset internal state
  71. * @param instance - SubGhzDecoderPrinceton instance
  72. */
  73. void subghz_decoder_princeton_for_testing_reset(SubGhzDecoderPrinceton* instance);
  74. /**
  75. * Parse accepted duration
  76. * @param instance - SubGhzDecoderPrinceton instance
  77. * @param data - LevelDuration level_duration
  78. */
  79. void subghz_decoder_princeton_for_testing_parse(
  80. SubGhzDecoderPrinceton* instance,
  81. bool level,
  82. uint32_t duration);