came.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "base.h"
  3. #define SUBGHZ_PROTOCOL_CAME_NAME "CAME"
  4. typedef struct SubGhzProtocolDecoderCame SubGhzProtocolDecoderCame;
  5. typedef struct SubGhzProtocolEncoderCame SubGhzProtocolEncoderCame;
  6. extern const SubGhzProtocolDecoder subghz_protocol_came_decoder;
  7. extern const SubGhzProtocolEncoder subghz_protocol_came_encoder;
  8. extern const SubGhzProtocol subghz_protocol_came;
  9. void* subghz_protocol_encoder_came_alloc(SubGhzEnvironment* environment);
  10. void subghz_protocol_encoder_came_free(void* context);
  11. bool subghz_protocol_encoder_came_deserialize(void* context, FlipperFormat* flipper_format);
  12. void subghz_protocol_encoder_came_stop(void* context);
  13. LevelDuration subghz_protocol_encoder_came_yield(void* context);
  14. /** Allocate SubGhzProtocolCame
  15. *
  16. * @return SubGhzProtocolCame*
  17. */
  18. void* subghz_protocol_decoder_came_alloc(SubGhzEnvironment* environment);
  19. /** Free SubGhzProtocolCame
  20. *
  21. * @param instance
  22. */
  23. void subghz_protocol_decoder_came_free(void* context);
  24. /** Reset internal state
  25. * @param instance - SubGhzProtocolCame instance
  26. */
  27. void subghz_protocol_decoder_came_reset(void* context);
  28. /** Parse accepted duration
  29. *
  30. * @param instance - SubGhzProtocolCame instance
  31. * @param data - LevelDuration level_duration
  32. */
  33. void subghz_protocol_decoder_came_feed(void* context, bool level, uint32_t duration);
  34. uint8_t subghz_protocol_decoder_came_get_hash_data(void* context);
  35. /** Outputting information from the parser
  36. *
  37. * @param instance - SubGhzProtocolCame* instance
  38. * @param output - output string
  39. */
  40. bool subghz_protocol_decoder_came_serialize(
  41. void* context,
  42. FlipperFormat* flipper_format,
  43. uint32_t frequency,
  44. FuriHalSubGhzPreset preset);
  45. bool subghz_protocol_decoder_came_deserialize(void* context, FlipperFormat* flipper_format);
  46. void subghz_protocol_decoder_came_get_string(void* context, string_t output);