keeloq.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #pragma once
  2. #include "base.h"
  3. #define SUBGHZ_PROTOCOL_KEELOQ_NAME "KeeLoq"
  4. typedef struct SubGhzProtocolDecoderKeeloq SubGhzProtocolDecoderKeeloq;
  5. typedef struct SubGhzProtocolEncoderKeeloq SubGhzProtocolEncoderKeeloq;
  6. extern const SubGhzProtocolDecoder subghz_protocol_keeloq_decoder;
  7. extern const SubGhzProtocolEncoder subghz_protocol_keeloq_encoder;
  8. extern const SubGhzProtocol subghz_protocol_keeloq;
  9. void* subghz_protocol_encoder_keeloq_alloc(SubGhzEnvironment* environment);
  10. void subghz_protocol_encoder_keeloq_free(void* context);
  11. bool subghz_protocol_keeloq_create_data(
  12. void* context,
  13. FlipperFormat* flipper_format,
  14. uint32_t serial,
  15. uint8_t btn,
  16. uint16_t cnt,
  17. const char* manufacture_name,
  18. uint32_t frequency,
  19. FuriHalSubGhzPreset preset);
  20. bool subghz_protocol_encoder_keeloq_deserialize(void* context, FlipperFormat* flipper_format);
  21. void subghz_protocol_encoder_keeloq_stop(void* context);
  22. LevelDuration subghz_protocol_encoder_keeloq_yield(void* context);
  23. void* subghz_protocol_decoder_keeloq_alloc(SubGhzEnvironment* environment);
  24. void subghz_protocol_decoder_keeloq_free(void* context);
  25. void subghz_protocol_decoder_keeloq_reset(void* context);
  26. void subghz_protocol_decoder_keeloq_feed(void* context, bool level, uint32_t duration);
  27. uint8_t subghz_protocol_decoder_keeloq_get_hash_data(void* context);
  28. bool subghz_protocol_decoder_keeloq_serialize(
  29. void* context,
  30. FlipperFormat* flipper_format,
  31. uint32_t frequency,
  32. FuriHalSubGhzPreset preset);
  33. bool subghz_protocol_decoder_keeloq_deserialize(void* context, FlipperFormat* flipper_format);
  34. void subghz_protocol_decoder_keeloq_get_string(void* context, string_t output);