2021-06-30 00:19:20 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "subghz_protocol_common.h"
|
|
|
|
|
|
|
|
typedef struct SubGhzProtocolKeeloq SubGhzProtocolKeeloq;
|
|
|
|
|
2021-07-02 16:25:49 +03:00
|
|
|
/** Allocate SubGhzProtocolKeeloq
|
|
|
|
*
|
|
|
|
* @return SubGhzProtocolKeeloq*
|
|
|
|
*/
|
2021-06-30 00:19:20 +03:00
|
|
|
SubGhzProtocolKeeloq* subghz_protocol_keeloq_alloc();
|
|
|
|
|
2021-07-02 16:25:49 +03:00
|
|
|
/** Free SubGhzProtocolKeeloq
|
|
|
|
*
|
|
|
|
* @param instance
|
|
|
|
*/
|
2021-06-30 00:19:20 +03:00
|
|
|
void subghz_protocol_keeloq_free(SubGhzProtocolKeeloq* instance);
|
|
|
|
|
2021-07-02 16:25:49 +03:00
|
|
|
/** Loading of manufacture keys
|
|
|
|
*
|
|
|
|
* @param instance - SubGhzProtocolKeeloq instance
|
|
|
|
* @param name - key name
|
|
|
|
* @param key - manufacture (64bit)
|
|
|
|
* @param type - type manufacture key
|
|
|
|
*/
|
2021-06-30 00:19:20 +03:00
|
|
|
void subghz_protocol_keeloq_add_manafacture_key(SubGhzProtocolKeeloq* instance, const char* name, uint64_t key, uint16_t type);
|
|
|
|
|
2021-07-02 16:25:49 +03:00
|
|
|
/** Sends the key on the air
|
|
|
|
*
|
|
|
|
* @param instance - SubGhzProtocolKeeloq instance
|
|
|
|
* @param key - key send
|
|
|
|
* @param bit - count bit key
|
|
|
|
* @param repeat - repeat send key
|
|
|
|
*/
|
2021-06-30 00:19:20 +03:00
|
|
|
void subghz_protocol_keeloq_send_key(SubGhzProtocolKeeloq* instance, uint64_t key, uint8_t bit, uint8_t repeat);
|
|
|
|
|
2021-07-07 22:49:45 +03:00
|
|
|
/** Reset internal state
|
|
|
|
* @param instance - SubGhzProtocolKeeloq instance
|
|
|
|
*/
|
|
|
|
void subghz_protocol_keeloq_reset(SubGhzProtocolKeeloq* instance);
|
|
|
|
|
2021-07-02 16:25:49 +03:00
|
|
|
/** Parse accepted duration
|
|
|
|
*
|
|
|
|
* @param instance - SubGhzProtocolKeeloq instance
|
2021-07-07 22:49:45 +03:00
|
|
|
* @param data - LevelDuration level_duration
|
2021-07-02 16:25:49 +03:00
|
|
|
*/
|
2021-07-07 22:49:45 +03:00
|
|
|
void subghz_protocol_keeloq_parse(SubGhzProtocolKeeloq* instance, bool level, uint32_t duration);;
|
2021-06-30 00:19:20 +03:00
|
|
|
|
2021-07-02 16:25:49 +03:00
|
|
|
/** Outputting information from the parser
|
|
|
|
*
|
|
|
|
* @param instance - SubGhzProtocolKeeloq* instance
|
|
|
|
* @param output - output string
|
|
|
|
*/
|
2021-06-30 00:19:20 +03:00
|
|
|
void subghz_protocol_keeloq_to_str(SubGhzProtocolKeeloq* instance, string_t output);
|