Welcome to mirror list, hosted at ThFree Co, Russian Federation.

subghz_protocol_princeton.h « protocols « subghz « lib - github.com/ClusterM/flipperzero-firmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 44224be531132f24c2eb190c071300055f9567fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#pragma once

#include "subghz_protocol_common.h"

struct SubGhzDecoderPrinceton {
    SubGhzProtocolCommon common;
    uint32_t te;
};

/** SubGhzEncoderPrinceton anonymous type */
typedef struct SubGhzEncoderPrinceton SubGhzEncoderPrinceton;

/** Allocate SubGhzEncoderPrinceton
 * @return pointer to SubGhzEncoderPrinceton instance
 */
SubGhzEncoderPrinceton* subghz_encoder_princeton_alloc();

/** Free SubGhzEncoderPrinceton instance
 * @param instance - SubGhzEncoderPrinceton instance
 */
void subghz_encoder_princeton_free(SubGhzEncoderPrinceton* instance);

void subghz_encoder_princeton_stop(SubGhzEncoderPrinceton* instance, uint32_t time_stop);

/** Set new encoder params
 * @param instance - SubGhzEncoderPrinceton instance
 * @param key - 24bit key
 * @param repeat - how many times to repeat 
 * @param frequency - frequency
 */
void subghz_encoder_princeton_set(
    SubGhzEncoderPrinceton* instance,
    uint32_t key,
    size_t repeat,
    uint32_t frequency);

/** Get repeat count left
 * @param instance - SubGhzEncoderPrinceton instance
 * @return repeat count left
 */
size_t subghz_encoder_princeton_get_repeat_left(SubGhzEncoderPrinceton* instance);

/** Print encoder log
 * @param instance - SubGhzEncoderPrinceton instance
 */
void subghz_encoder_princeton_print_log(void* context);

/** Get level duration
 * @param instance - SubGhzEncoderPrinceton instance
 * @return level duration
 */
LevelDuration subghz_encoder_princeton_yield(void* context);

/** SubGhzDecoderPrinceton anonymous type */
typedef struct SubGhzDecoderPrinceton SubGhzDecoderPrinceton;

void subghz_encoder_princeton_set_te(SubGhzEncoderPrinceton* instance, void* decoder);

/** Allocate SubGhzDecoderPrinceton
 * 
 * @return SubGhzDecoderPrinceton* 
 */
SubGhzDecoderPrinceton* subghz_decoder_princeton_alloc();

/** Free SubGhzDecoderPrinceton
 * 
 * @param instance 
 */
void subghz_decoder_princeton_free(SubGhzDecoderPrinceton* instance);

/** Get Te interval protocol
 * 
 * @param context - SubGhzDecoderPrinceton context
 * @return Te interval (us)
 */
uint16_t subghz_protocol_princeton_get_te(void* context);

/** Get upload protocol
 * 
 * @param instance - SubGhzDecoderPrinceton instance
 * @param encoder - SubGhzProtocolCommonEncoder encoder
 * @return bool
 */
bool subghz_protocol_princeton_send_key(
    SubGhzDecoderPrinceton* instance,
    SubGhzProtocolCommonEncoder* encoder);

/** Reset internal state
 * @param instance - SubGhzDecoderPrinceton instance
 */
void subghz_decoder_princeton_reset(SubGhzDecoderPrinceton* instance);

/** Parse accepted duration
 * 
 * @param instance - SubGhzDecoderPrinceton instance
 * @param data - LevelDuration level_duration
 */
void subghz_decoder_princeton_parse(
    SubGhzDecoderPrinceton* instance,
    bool level,
    uint32_t duration);

/** Outputting information from the parser
 * 
 * @param instance - SubGhzDecoderPrinceton* instance
 * @param output   - output string
 */
void subghz_decoder_princeton_to_str(SubGhzDecoderPrinceton* instance, string_t output);

/** Adding data to a file
 * 
 * @param instance  - SubGhzDecoderPrinceton instance
 * @param flipper_file - FlipperFile 
 * @return bool
 */
bool subghz_decoder_princeton_to_save_file(
    SubGhzDecoderPrinceton* instance,
    FlipperFile* flipper_file);

/** Loading protocol from file
 * 
 * @param flipper_file - FlipperFile
 * @param instance - SubGhzDecoderPrinceton instance
 * @param file_path - file path
 * @return bool
 */
bool subghz_decoder_princeton_to_load_protocol_from_file(
    FlipperFile* flipper_file,
    SubGhzDecoderPrinceton* instance,
    const char* file_path);

/** Loading protocol from bin data
 * 
 * @param instance - SubGhzDecoderPrinceton instance
 * @param context - SubGhzProtocolCommonLoad context
 */
void subghz_decoder_princeton_to_load_protocol(SubGhzDecoderPrinceton* instance, void* context);