mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
32bit subghz hashes (less false duplicates)
This commit is contained in:
@@ -65,7 +65,7 @@ static void subghz_scene_add_to_history_callback(
|
|||||||
|
|
||||||
if(subghz->remove_duplicates) {
|
if(subghz->remove_duplicates) {
|
||||||
// Look in history for signal hash
|
// Look in history for signal hash
|
||||||
uint8_t hash_data = subghz_protocol_decoder_base_get_hash_data(decoder_base);
|
uint32_t hash_data = subghz_protocol_decoder_base_get_hash_data_long(decoder_base);
|
||||||
subghz_view_receiver_disable_draw_callback(subghz->subghz_receiver);
|
subghz_view_receiver_disable_draw_callback(subghz->subghz_receiver);
|
||||||
for(uint16_t i = idx; i > 0; i--) {
|
for(uint16_t i = idx; i > 0; i--) {
|
||||||
i--; // Iterating in reverse with off by one
|
i--; // Iterating in reverse with off by one
|
||||||
|
|||||||
@@ -147,7 +147,8 @@ static void subghz_scene_add_to_history_callback(
|
|||||||
|
|
||||||
if(subghz->remove_duplicates) {
|
if(subghz->remove_duplicates) {
|
||||||
// Look in history for signal hash
|
// Look in history for signal hash
|
||||||
uint8_t hash_data = subghz_protocol_decoder_base_get_hash_data(decoder_base);
|
uint32_t hash_data =
|
||||||
|
subghz_protocol_decoder_base_get_hash_data_long(decoder_base);
|
||||||
subghz_view_receiver_disable_draw_callback(subghz->subghz_receiver);
|
subghz_view_receiver_disable_draw_callback(subghz->subghz_receiver);
|
||||||
for(uint16_t i = idx; i > 0; i--) {
|
for(uint16_t i = idx; i > 0; i--) {
|
||||||
i--; // Iterating in reverse with off by one
|
i--; // Iterating in reverse with off by one
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ typedef struct {
|
|||||||
uint8_t type;
|
uint8_t type;
|
||||||
SubGhzRadioPreset* preset;
|
SubGhzRadioPreset* preset;
|
||||||
FuriHalRtcDateTime datetime;
|
FuriHalRtcDateTime datetime;
|
||||||
uint8_t hash_data;
|
uint32_t hash_data;
|
||||||
uint16_t repeats;
|
uint16_t repeats;
|
||||||
float latitude;
|
float latitude;
|
||||||
float longitude;
|
float longitude;
|
||||||
@@ -30,7 +30,7 @@ typedef struct {
|
|||||||
struct SubGhzHistory {
|
struct SubGhzHistory {
|
||||||
uint32_t last_update_timestamp;
|
uint32_t last_update_timestamp;
|
||||||
uint16_t last_index_write;
|
uint16_t last_index_write;
|
||||||
uint8_t code_last_hash_data;
|
uint32_t code_last_hash_data;
|
||||||
FuriString* tmp_string;
|
FuriString* tmp_string;
|
||||||
SubGhzHistoryStruct* history;
|
SubGhzHistoryStruct* history;
|
||||||
};
|
};
|
||||||
@@ -59,7 +59,7 @@ void subghz_history_free(SubGhzHistory* instance) {
|
|||||||
free(instance);
|
free(instance);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_history_get_hash_data(SubGhzHistory* instance, uint16_t idx) {
|
uint32_t subghz_history_get_hash_data(SubGhzHistory* instance, uint16_t idx) {
|
||||||
furi_assert(instance);
|
furi_assert(instance);
|
||||||
SubGhzHistoryItem* item = SubGhzHistoryItemArray_get(instance->history->data, idx);
|
SubGhzHistoryItem* item = SubGhzHistoryItemArray_get(instance->history->data, idx);
|
||||||
return item->hash_data;
|
return item->hash_data;
|
||||||
@@ -221,7 +221,7 @@ bool subghz_history_add_to_history(
|
|||||||
if(instance->last_index_write >= SUBGHZ_HISTORY_MAX) return false;
|
if(instance->last_index_write >= SUBGHZ_HISTORY_MAX) return false;
|
||||||
|
|
||||||
SubGhzProtocolDecoderBase* decoder_base = context;
|
SubGhzProtocolDecoderBase* decoder_base = context;
|
||||||
uint8_t hash_data = subghz_protocol_decoder_base_get_hash_data(decoder_base);
|
uint32_t hash_data = subghz_protocol_decoder_base_get_hash_data_long(decoder_base);
|
||||||
if((instance->code_last_hash_data == hash_data) &&
|
if((instance->code_last_hash_data == hash_data) &&
|
||||||
((furi_get_tick() - instance->last_update_timestamp) < 500)) {
|
((furi_get_tick() - instance->last_update_timestamp) < 500)) {
|
||||||
instance->last_update_timestamp = furi_get_tick();
|
instance->last_update_timestamp = furi_get_tick();
|
||||||
|
|||||||
@@ -33,9 +33,9 @@ void subghz_history_delete_item(SubGhzHistory* instance, uint16_t idx);
|
|||||||
*
|
*
|
||||||
* @param instance - SubGhzHistory instance
|
* @param instance - SubGhzHistory instance
|
||||||
* @param idx - record index
|
* @param idx - record index
|
||||||
* @return hash - hash data byte
|
* @return hash - hash data
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_history_get_hash_data(SubGhzHistory* instance, uint16_t idx);
|
uint32_t subghz_history_get_hash_data(SubGhzHistory* instance, uint16_t idx);
|
||||||
|
|
||||||
/** Get repeat count to history[idx]
|
/** Get repeat count to history[idx]
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -25,3 +25,15 @@ uint8_t subghz_protocol_blocks_get_hash_data(SubGhzBlockDecoder* decoder, size_t
|
|||||||
}
|
}
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t subghz_protocol_blocks_get_hash_data_long(SubGhzBlockDecoder* decoder, size_t len) {
|
||||||
|
union {
|
||||||
|
uint32_t full;
|
||||||
|
uint8_t split[4];
|
||||||
|
} hash = {0};
|
||||||
|
uint8_t* p = (uint8_t*)&decoder->decode_data;
|
||||||
|
for(size_t i = 0; i < len; i++) {
|
||||||
|
hash.split[i % sizeof(hash)] ^= p[i];
|
||||||
|
}
|
||||||
|
return hash.full;
|
||||||
|
}
|
||||||
|
|||||||
@@ -42,6 +42,13 @@ void subghz_protocol_blocks_add_to_128_bit(
|
|||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_blocks_get_hash_data(SubGhzBlockDecoder* decoder, size_t len);
|
uint8_t subghz_protocol_blocks_get_hash_data(SubGhzBlockDecoder* decoder, size_t len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getting the long hash sum of the last randomly received parcel.
|
||||||
|
* @param decoder Pointer to a SubGhzBlockDecoder instance
|
||||||
|
* @return hash Hash sum
|
||||||
|
*/
|
||||||
|
uint32_t subghz_protocol_blocks_get_hash_data_long(SubGhzBlockDecoder* decoder, size_t len);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -256,10 +256,10 @@ void ws_protocol_decoder_acurite_592txr_feed(void* context, bool level, uint32_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_acurite_592txr_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_acurite_592txr_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderAcurite_592TXR* instance = context;
|
WSProtocolDecoderAcurite_592TXR* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_acurite_592txr_feed(void* context, bool level, uint32_t
|
|||||||
* @param context Pointer to a WSProtocolDecoderAcurite_592TXR instance
|
* @param context Pointer to a WSProtocolDecoderAcurite_592TXR instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_acurite_592txr_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_acurite_592txr_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderAcurite_592TXR.
|
* Serialize data WSProtocolDecoderAcurite_592TXR.
|
||||||
|
|||||||
@@ -195,10 +195,10 @@ void ws_protocol_decoder_acurite_606tx_feed(void* context, bool level, uint32_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_acurite_606tx_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_acurite_606tx_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderAcurite_606TX* instance = context;
|
WSProtocolDecoderAcurite_606TX* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_acurite_606tx_feed(void* context, bool level, uint32_t
|
|||||||
* @param context Pointer to a WSProtocolDecoderAcurite_606TX instance
|
* @param context Pointer to a WSProtocolDecoderAcurite_606TX instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_acurite_606tx_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_acurite_606tx_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderAcurite_606TX.
|
* Serialize data WSProtocolDecoderAcurite_606TX.
|
||||||
|
|||||||
@@ -195,10 +195,10 @@ void ws_protocol_decoder_acurite_609txc_feed(void* context, bool level, uint32_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_acurite_609txc_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_acurite_609txc_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderAcurite_609TXC* instance = context;
|
WSProtocolDecoderAcurite_609TXC* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_acurite_609txc_feed(void* context, bool level, uint32_t
|
|||||||
* @param context Pointer to a WSProtocolDecoderAcurite_609TXC instance
|
* @param context Pointer to a WSProtocolDecoderAcurite_609TXC instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_acurite_609txc_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_acurite_609txc_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderAcurite_609TXC.
|
* Serialize data WSProtocolDecoderAcurite_609TXC.
|
||||||
|
|||||||
@@ -651,10 +651,10 @@ static void subghz_protocol_alutech_at_4n_remote_controller(
|
|||||||
subghz_custom_btn_set_max(4);
|
subghz_custom_btn_set_max(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_alutech_at_4n_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_alutech_at_4n_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderAlutech_at_4n* instance = context;
|
SubGhzProtocolDecoderAlutech_at_4n* instance = context;
|
||||||
return (uint8_t)instance->crc;
|
return instance->crc;
|
||||||
}
|
}
|
||||||
|
|
||||||
SubGhzProtocolStatus subghz_protocol_decoder_alutech_at_4n_serialize(
|
SubGhzProtocolStatus subghz_protocol_decoder_alutech_at_4n_serialize(
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ void subghz_protocol_decoder_alutech_at_4n_feed(void* context, bool level, uint3
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderAlutech_at_4n instance
|
* @param context Pointer to a SubGhzProtocolDecoderAlutech_at_4n instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_alutech_at_4n_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_alutech_at_4n_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderAlutech_at_4n.
|
* Serialize data SubGhzProtocolDecoderAlutech_at_4n.
|
||||||
|
|||||||
@@ -224,10 +224,10 @@ void ws_protocol_decoder_ambient_weather_feed(void* context, bool level, uint32_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_ambient_weather_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_ambient_weather_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderAmbient_Weather* instance = context;
|
WSProtocolDecoderAmbient_Weather* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_ambient_weather_feed(void* context, bool level, uint32_
|
|||||||
* @param context Pointer to a WSProtocolDecoderAmbient_Weather instance
|
* @param context Pointer to a WSProtocolDecoderAmbient_Weather instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_ambient_weather_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_ambient_weather_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderAmbient_Weather.
|
* Serialize data WSProtocolDecoderAmbient_Weather.
|
||||||
|
|||||||
@@ -295,10 +295,10 @@ static void subghz_protocol_ansonic_check_remote_controller(SubGhzBlockGeneric*
|
|||||||
instance->btn = ((instance->data >> 1) & 0x3);
|
instance->btn = ((instance->data >> 1) & 0x3);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_ansonic_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_ansonic_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderAnsonic* instance = context;
|
SubGhzProtocolDecoderAnsonic* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_ansonic_feed(void* context, bool level, uint32_t du
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderAnsonic instance
|
* @param context Pointer to a SubGhzProtocolDecoderAnsonic instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_ansonic_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_ansonic_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderAnsonic.
|
* Serialize data SubGhzProtocolDecoderAnsonic.
|
||||||
|
|||||||
@@ -212,10 +212,10 @@ void ws_protocol_decoder_auriol_ahfl_feed(void* context, bool level, uint32_t du
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_auriol_ahfl_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_auriol_ahfl_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderAuriol_AHFL* instance = context;
|
WSProtocolDecoderAuriol_AHFL* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_auriol_ahfl_feed(void* context, bool level, uint32_t du
|
|||||||
* @param context Pointer to a WSProtocolDecoderAuriol_AHFL instance
|
* @param context Pointer to a WSProtocolDecoderAuriol_AHFL instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_auriol_ahfl_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_auriol_ahfl_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderAuriol_AHFL.
|
* Serialize data WSProtocolDecoderAuriol_AHFL.
|
||||||
|
|||||||
@@ -206,10 +206,10 @@ void ws_protocol_decoder_auriol_th_feed(void* context, bool level, uint32_t dura
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_auriol_th_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_auriol_th_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderAuriol_TH* instance = context;
|
WSProtocolDecoderAuriol_TH* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_auriol_th_feed(void* context, bool level, uint32_t dura
|
|||||||
* @param context Pointer to a WSProtocolDecoderAuriol_TH instance
|
* @param context Pointer to a WSProtocolDecoderAuriol_TH instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_auriol_th_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_auriol_th_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderAuriol_TH.
|
* Serialize data WSProtocolDecoderAuriol_TH.
|
||||||
|
|||||||
@@ -53,6 +53,21 @@ SubGhzProtocolStatus subghz_protocol_decoder_base_deserialize(
|
|||||||
uint8_t subghz_protocol_decoder_base_get_hash_data(SubGhzProtocolDecoderBase* decoder_base) {
|
uint8_t subghz_protocol_decoder_base_get_hash_data(SubGhzProtocolDecoderBase* decoder_base) {
|
||||||
uint8_t hash = 0;
|
uint8_t hash = 0;
|
||||||
|
|
||||||
|
if(decoder_base->protocol && decoder_base->protocol->decoder &&
|
||||||
|
decoder_base->protocol->decoder->get_hash_data) {
|
||||||
|
uint32_t full = decoder_base->protocol->decoder->get_hash_data(decoder_base);
|
||||||
|
uint8_t* p = (uint8_t*)&full;
|
||||||
|
for(size_t i = 0; i < sizeof(full); i++) {
|
||||||
|
hash ^= p[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return hash;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t subghz_protocol_decoder_base_get_hash_data_long(SubGhzProtocolDecoderBase* decoder_base) {
|
||||||
|
uint32_t hash = 0;
|
||||||
|
|
||||||
if(decoder_base->protocol && decoder_base->protocol->decoder &&
|
if(decoder_base->protocol && decoder_base->protocol->decoder &&
|
||||||
decoder_base->protocol->decoder->get_hash_data) {
|
decoder_base->protocol->decoder->get_hash_data) {
|
||||||
hash = decoder_base->protocol->decoder->get_hash_data(decoder_base);
|
hash = decoder_base->protocol->decoder->get_hash_data(decoder_base);
|
||||||
|
|||||||
@@ -73,6 +73,13 @@ SubGhzProtocolStatus subghz_protocol_decoder_base_deserialize(
|
|||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_base_get_hash_data(SubGhzProtocolDecoderBase* decoder_base);
|
uint8_t subghz_protocol_decoder_base_get_hash_data(SubGhzProtocolDecoderBase* decoder_base);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getting the long hash sum of the last randomly received parcel.
|
||||||
|
* @param decoder_base Pointer to a SubGhzProtocolDecoderBase instance
|
||||||
|
* @return hash Hash sum
|
||||||
|
*/
|
||||||
|
uint32_t subghz_protocol_decoder_base_get_hash_data_long(SubGhzProtocolDecoderBase* decoder_base);
|
||||||
|
|
||||||
// Encoder Base
|
// Encoder Base
|
||||||
typedef struct SubGhzProtocolEncoderBase SubGhzProtocolEncoderBase;
|
typedef struct SubGhzProtocolEncoderBase SubGhzProtocolEncoderBase;
|
||||||
|
|
||||||
|
|||||||
@@ -289,10 +289,10 @@ void subghz_protocol_decoder_bett_feed(void* context, bool level, uint32_t durat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_bett_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_bett_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderBETT* instance = context;
|
SubGhzProtocolDecoderBETT* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_bett_feed(void* context, bool level, uint32_t durat
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderBETT instance
|
* @param context Pointer to a SubGhzProtocolDecoderBETT instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_bett_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_bett_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderBETT.
|
* Serialize data SubGhzProtocolDecoderBETT.
|
||||||
|
|||||||
@@ -960,12 +960,19 @@ void subghz_protocol_decoder_bin_raw_data_input_rssi(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_bin_raw_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_bin_raw_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderBinRAW* instance = context;
|
SubGhzProtocolDecoderBinRAW* instance = context;
|
||||||
return subghz_protocol_blocks_add_bytes(
|
union {
|
||||||
instance->data + instance->data_markup[0].byte_bias,
|
uint32_t full;
|
||||||
subghz_protocol_bin_raw_get_full_byte(instance->data_markup[0].bit_count));
|
uint8_t split[4];
|
||||||
|
} hash = {0};
|
||||||
|
uint8_t* p = instance->data + instance->data_markup[0].byte_bias;
|
||||||
|
size_t len = subghz_protocol_bin_raw_get_full_byte(instance->data_markup[0].bit_count);
|
||||||
|
for(size_t i = 0; i < len; i++) {
|
||||||
|
hash.split[i % sizeof(hash)] ^= p[i];
|
||||||
|
}
|
||||||
|
return hash.full;
|
||||||
}
|
}
|
||||||
|
|
||||||
SubGhzProtocolStatus subghz_protocol_decoder_bin_raw_serialize(
|
SubGhzProtocolStatus subghz_protocol_decoder_bin_raw_serialize(
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ void subghz_protocol_decoder_bin_raw_feed(void* context, bool level, uint32_t du
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderBinRAW instance
|
* @param context Pointer to a SubGhzProtocolDecoderBinRAW instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_bin_raw_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_bin_raw_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderBinRAW.
|
* Serialize data SubGhzProtocolDecoderBinRAW.
|
||||||
|
|||||||
@@ -310,10 +310,10 @@ void subghz_protocol_decoder_came_feed(void* context, bool level, uint32_t durat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_came_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_came_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderCame* instance = context;
|
SubGhzProtocolDecoderCame* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_came_feed(void* context, bool level, uint32_t durat
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderCame instance
|
* @param context Pointer to a SubGhzProtocolDecoderCame instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_came_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_came_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderCame.
|
* Serialize data SubGhzProtocolDecoderCame.
|
||||||
|
|||||||
@@ -682,10 +682,10 @@ static uint8_t subghz_protocol_came_atomo_get_btn_code() {
|
|||||||
return btn;
|
return btn;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_came_atomo_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_came_atomo_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderCameAtomo* instance = context;
|
SubGhzProtocolDecoderCameAtomo* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ void subghz_protocol_decoder_came_atomo_feed(void* context, bool level, uint32_t
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderCameAtomo instance
|
* @param context Pointer to a SubGhzProtocolDecoderCameAtomo instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_came_atomo_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_came_atomo_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderCameAtomo.
|
* Serialize data SubGhzProtocolDecoderCameAtomo.
|
||||||
|
|||||||
@@ -409,10 +409,10 @@ void subghz_protocol_decoder_came_twee_feed(void* context, bool level, uint32_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_came_twee_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_came_twee_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderCameTwee* instance = context;
|
SubGhzProtocolDecoderCameTwee* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_came_twee_feed(void* context, bool level, uint32_t
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderCameTwee instance
|
* @param context Pointer to a SubGhzProtocolDecoderCameTwee instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_came_twee_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_came_twee_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderCameTwee.
|
* Serialize data SubGhzProtocolDecoderCameTwee.
|
||||||
|
|||||||
@@ -422,10 +422,10 @@ void subghz_protocol_decoder_chamb_code_feed(void* context, bool level, uint32_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_chamb_code_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_chamb_code_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderChamb_Code* instance = context;
|
SubGhzProtocolDecoderChamb_Code* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_chamb_code_feed(void* context, bool level, uint32_t
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderChamb_Code instance
|
* @param context Pointer to a SubGhzProtocolDecoderChamb_Code instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_chamb_code_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_chamb_code_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderChamb_Code.
|
* Serialize data SubGhzProtocolDecoderChamb_Code.
|
||||||
|
|||||||
@@ -310,10 +310,10 @@ static void subghz_protocol_clemsa_check_remote_controller(SubGhzBlockGeneric* i
|
|||||||
instance->btn = (instance->data & 0x03);
|
instance->btn = (instance->data & 0x03);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_clemsa_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_clemsa_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderClemsa* instance = context;
|
SubGhzProtocolDecoderClemsa* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_clemsa_feed(void* context, bool level, uint32_t dur
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderClemsa instance
|
* @param context Pointer to a SubGhzProtocolDecoderClemsa instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_clemsa_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_clemsa_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderClemsa.
|
* Serialize data SubGhzProtocolDecoderClemsa.
|
||||||
|
|||||||
@@ -303,10 +303,10 @@ static void subghz_protocol_doitrand_check_remote_controller(SubGhzBlockGeneric*
|
|||||||
instance->btn = ((instance->data >> 18) & 0x3);
|
instance->btn = ((instance->data >> 18) & 0x3);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_doitrand_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_doitrand_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderDoitrand* instance = context;
|
SubGhzProtocolDecoderDoitrand* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_doitrand_feed(void* context, bool level, uint32_t d
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderDoitrand instance
|
* @param context Pointer to a SubGhzProtocolDecoderDoitrand instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_doitrand_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_doitrand_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderDoitrand.
|
* Serialize data SubGhzProtocolDecoderDoitrand.
|
||||||
|
|||||||
@@ -347,10 +347,10 @@ static void subghz_protocol_dooya_check_remote_controller(SubGhzBlockGeneric* in
|
|||||||
instance->btn = instance->data & 0xFF;
|
instance->btn = instance->data & 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_dooya_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_dooya_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderDooya* instance = context;
|
SubGhzProtocolDecoderDooya* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_dooya_feed(void* context, bool level, uint32_t dura
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderDooya instance
|
* @param context Pointer to a SubGhzProtocolDecoderDooya instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_dooya_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_dooya_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderDooya.
|
* Serialize data SubGhzProtocolDecoderDooya.
|
||||||
|
|||||||
@@ -570,10 +570,10 @@ static void subghz_protocol_faac_slh_check_remote_controller(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_faac_slh_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_faac_slh_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderFaacSLH* instance = context;
|
SubGhzProtocolDecoderFaacSLH* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_faac_slh_feed(void* context, bool level, uint32_t d
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderFaacSLH instance
|
* @param context Pointer to a SubGhzProtocolDecoderFaacSLH instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_faac_slh_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_faac_slh_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderFaacSLH.
|
* Serialize data SubGhzProtocolDecoderFaacSLH.
|
||||||
|
|||||||
@@ -283,10 +283,10 @@ static void subghz_protocol_gate_tx_check_remote_controller(SubGhzBlockGeneric*
|
|||||||
instance->btn = ((code_found_reverse >> 16) & 0x0F);
|
instance->btn = ((code_found_reverse >> 16) & 0x0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_gate_tx_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_gate_tx_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderGateTx* instance = context;
|
SubGhzProtocolDecoderGateTx* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_gate_tx_feed(void* context, bool level, uint32_t du
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderGateTx instance
|
* @param context Pointer to a SubGhzProtocolDecoderGateTx instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_gate_tx_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_gate_tx_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderGateTx.
|
* Serialize data SubGhzProtocolDecoderGateTx.
|
||||||
|
|||||||
@@ -213,10 +213,10 @@ void ws_protocol_decoder_gt_wt_02_feed(void* context, bool level, uint32_t durat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_gt_wt_02_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_gt_wt_02_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderGT_WT02* instance = context;
|
WSProtocolDecoderGT_WT02* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_gt_wt_02_feed(void* context, bool level, uint32_t durat
|
|||||||
* @param context Pointer to a WSProtocolDecoderGT_WT02 instance
|
* @param context Pointer to a WSProtocolDecoderGT_WT02 instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_gt_wt_02_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_gt_wt_02_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderGT_WT02.
|
* Serialize data WSProtocolDecoderGT_WT02.
|
||||||
|
|||||||
@@ -288,10 +288,10 @@ void ws_protocol_decoder_gt_wt_03_feed(void* context, bool level, uint32_t durat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_gt_wt_03_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_gt_wt_03_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderGT_WT03* instance = context;
|
WSProtocolDecoderGT_WT03* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_gt_wt_03_feed(void* context, bool level, uint32_t durat
|
|||||||
* @param context Pointer to a WSProtocolDecoderGT_WT03 instance
|
* @param context Pointer to a WSProtocolDecoderGT_WT03 instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_gt_wt_03_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_gt_wt_03_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderGT_WT03.
|
* Serialize data WSProtocolDecoderGT_WT03.
|
||||||
|
|||||||
@@ -315,10 +315,10 @@ static void subghz_protocol_holtek_check_remote_controller(SubGhzBlockGeneric* i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_holtek_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_holtek_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderHoltek* instance = context;
|
SubGhzProtocolDecoderHoltek* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_holtek_feed(void* context, bool level, uint32_t dur
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderHoltek instance
|
* @param context Pointer to a SubGhzProtocolDecoderHoltek instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_holtek_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_holtek_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderHoltek.
|
* Serialize data SubGhzProtocolDecoderHoltek.
|
||||||
|
|||||||
@@ -322,10 +322,10 @@ static void subghz_protocol_holtek_th12x_check_remote_controller(SubGhzBlockGene
|
|||||||
instance->cnt = (instance->data >> 4) & 0xFF;
|
instance->cnt = (instance->data >> 4) & 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_holtek_th12x_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_holtek_th12x_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderHoltek_HT12X* instance = context;
|
SubGhzProtocolDecoderHoltek_HT12X* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_holtek_th12x_feed(void* context, bool level, uint32
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderHoltek_HT12X instance
|
* @param context Pointer to a SubGhzProtocolDecoderHoltek_HT12X instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_holtek_th12x_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_holtek_th12x_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderHoltek_HT12X.
|
* Serialize data SubGhzProtocolDecoderHoltek_HT12X.
|
||||||
|
|||||||
@@ -136,10 +136,10 @@ void subghz_protocol_decoder_honeywell_feed(void* context, bool level, uint32_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_honeywell_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_honeywell_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderHoneywell* instance = context;
|
SubGhzProtocolDecoderHoneywell* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ void subghz_protocol_decoder_honeywell_reset(void* context);
|
|||||||
|
|
||||||
void subghz_protocol_decoder_honeywell_feed(void* context, bool level, uint32_t duration);
|
void subghz_protocol_decoder_honeywell_feed(void* context, bool level, uint32_t duration);
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_honeywell_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_honeywell_get_hash_data(void* context);
|
||||||
|
|
||||||
SubGhzProtocolStatus subghz_protocol_decoder_honeywell_serialize(
|
SubGhzProtocolStatus subghz_protocol_decoder_honeywell_serialize(
|
||||||
void* context,
|
void* context,
|
||||||
|
|||||||
@@ -337,10 +337,10 @@ static void subghz_protocol_honeywell_wdb_check_remote_controller(
|
|||||||
instance->lowbat = (uint8_t)((instance->generic.data >> 1) & 0x1);
|
instance->lowbat = (uint8_t)((instance->generic.data >> 1) & 0x1);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_honeywell_wdb_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_honeywell_wdb_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderHoneywell_WDB* instance = context;
|
SubGhzProtocolDecoderHoneywell_WDB* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_honeywell_wdb_feed(void* context, bool level, uint3
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderHoneywell_WDB instance
|
* @param context Pointer to a SubGhzProtocolDecoderHoneywell_WDB instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_honeywell_wdb_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_honeywell_wdb_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderHoneywell_WDB.
|
* Serialize data SubGhzProtocolDecoderHoneywell_WDB.
|
||||||
|
|||||||
@@ -288,10 +288,10 @@ static void subghz_protocol_hormann_check_remote_controller(SubGhzBlockGeneric*
|
|||||||
instance->btn = (instance->data >> 4) & 0xF;
|
instance->btn = (instance->data >> 4) & 0xF;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_hormann_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_hormann_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderHormann* instance = context;
|
SubGhzProtocolDecoderHormann* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_hormann_feed(void* context, bool level, uint32_t du
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderHormann instance
|
* @param context Pointer to a SubGhzProtocolDecoderHormann instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_hormann_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_hormann_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderHormann.
|
* Serialize data SubGhzProtocolDecoderHormann.
|
||||||
|
|||||||
@@ -173,10 +173,10 @@ static void subghz_protocol_ido_check_remote_controller(SubGhzBlockGeneric* inst
|
|||||||
instance->btn = (code_fix >> 20) & 0x0F;
|
instance->btn = (code_fix >> 20) & 0x0F;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_ido_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_ido_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderIDo* instance = context;
|
SubGhzProtocolDecoderIDo* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ void subghz_protocol_decoder_ido_feed(void* context, bool level, uint32_t durati
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderIDo instance
|
* @param context Pointer to a SubGhzProtocolDecoderIDo instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_ido_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_ido_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderIDo.
|
* Serialize data SubGhzProtocolDecoderIDo.
|
||||||
|
|||||||
@@ -244,10 +244,10 @@ void ws_protocol_decoder_infactory_feed(void* context, bool level, uint32_t dura
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_infactory_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_infactory_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderInfactory* instance = context;
|
WSProtocolDecoderInfactory* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_infactory_feed(void* context, bool level, uint32_t dura
|
|||||||
* @param context Pointer to a WSProtocolDecoderInfactory instance
|
* @param context Pointer to a WSProtocolDecoderInfactory instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_infactory_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_infactory_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderInfactory.
|
* Serialize data WSProtocolDecoderInfactory.
|
||||||
|
|||||||
@@ -399,10 +399,10 @@ static void subghz_protocol_intertechno_v3_check_remote_controller(SubGhzBlockGe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_intertechno_v3_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_intertechno_v3_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderIntertechno_V3* instance = context;
|
SubGhzProtocolDecoderIntertechno_V3* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ void subghz_protocol_decoder_intertechno_v3_feed(void* context, bool level, uint
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderIntertechno_V3 instance
|
* @param context Pointer to a SubGhzProtocolDecoderIntertechno_V3 instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_intertechno_v3_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_intertechno_v3_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderIntertechno_V3.
|
* Serialize data SubGhzProtocolDecoderIntertechno_V3.
|
||||||
|
|||||||
@@ -1050,10 +1050,10 @@ static void subghz_protocol_keeloq_check_remote_controller(
|
|||||||
subghz_custom_btn_set_max(4);
|
subghz_custom_btn_set_max(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_keeloq_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_keeloq_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderKeeloq* instance = context;
|
SubGhzProtocolDecoderKeeloq* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ void subghz_protocol_decoder_keeloq_feed(void* context, bool level, uint32_t dur
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderKeeloq instance
|
* @param context Pointer to a SubGhzProtocolDecoderKeeloq instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_keeloq_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_keeloq_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderKeeloq.
|
* Serialize data SubGhzProtocolDecoderKeeloq.
|
||||||
|
|||||||
@@ -225,10 +225,10 @@ static void subghz_protocol_kia_check_remote_controller(SubGhzBlockGeneric* inst
|
|||||||
instance->cnt = (instance->data >> 40) & 0xFFFF;
|
instance->cnt = (instance->data >> 40) & 0xFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_kia_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_kia_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderKIA* instance = context;
|
SubGhzProtocolDecoderKIA* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ void subghz_protocol_decoder_kia_feed(void* context, bool level, uint32_t durati
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderKIA instance
|
* @param context Pointer to a SubGhzProtocolDecoderKIA instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_kia_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_kia_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderKIA.
|
* Serialize data SubGhzProtocolDecoderKIA.
|
||||||
|
|||||||
@@ -501,10 +501,10 @@ static void subghz_protocol_kinggates_stylo_4k_remote_controller(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_kinggates_stylo_4k_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_kinggates_stylo_4k_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderKingGates_stylo_4k* instance = context;
|
SubGhzProtocolDecoderKingGates_stylo_4k* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_kinggates_stylo_4k_feed(void* context, bool level,
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderKingGates_stylo_4k instance
|
* @param context Pointer to a SubGhzProtocolDecoderKingGates_stylo_4k instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_kinggates_stylo_4k_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_kinggates_stylo_4k_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderKingGates_stylo_4k.
|
* Serialize data SubGhzProtocolDecoderKingGates_stylo_4k.
|
||||||
|
|||||||
@@ -276,10 +276,10 @@ void ws_protocol_decoder_lacrosse_tx_feed(void* context, bool level, uint32_t du
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_lacrosse_tx_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_lacrosse_tx_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderLaCrosse_TX* instance = context;
|
WSProtocolDecoderLaCrosse_TX* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_lacrosse_tx_feed(void* context, bool level, uint32_t du
|
|||||||
* @param context Pointer to a WSProtocolDecoderLaCrosse_TX instance
|
* @param context Pointer to a WSProtocolDecoderLaCrosse_TX instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_lacrosse_tx_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_lacrosse_tx_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderLaCrosse_TX.
|
* Serialize data WSProtocolDecoderLaCrosse_TX.
|
||||||
|
|||||||
@@ -249,10 +249,10 @@ void ws_protocol_decoder_lacrosse_tx141thbv2_feed(void* context, bool level, uin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_lacrosse_tx141thbv2_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_lacrosse_tx141thbv2_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderLaCrosse_TX141THBv2* instance = context;
|
WSProtocolDecoderLaCrosse_TX141THBv2* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_lacrosse_tx141thbv2_feed(void* context, bool level, uin
|
|||||||
* @param context Pointer to a WSProtocolDecoderLaCrosse_TX141THBv2 instance
|
* @param context Pointer to a WSProtocolDecoderLaCrosse_TX141THBv2 instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_lacrosse_tx141thbv2_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_lacrosse_tx141thbv2_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderLaCrosse_TX141THBv2.
|
* Serialize data WSProtocolDecoderLaCrosse_TX141THBv2.
|
||||||
|
|||||||
@@ -293,10 +293,10 @@ void subghz_protocol_decoder_linear_feed(void* context, bool level, uint32_t dur
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_linear_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_linear_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderLinear* instance = context;
|
SubGhzProtocolDecoderLinear* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_linear_feed(void* context, bool level, uint32_t dur
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderLinear instance
|
* @param context Pointer to a SubGhzProtocolDecoderLinear instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_linear_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_linear_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderLinear.
|
* Serialize data SubGhzProtocolDecoderLinear.
|
||||||
|
|||||||
@@ -304,10 +304,10 @@ void subghz_protocol_decoder_linear_delta3_feed(void* context, bool level, uint3
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_linear_delta3_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_linear_delta3_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderLinearDelta3* instance = context;
|
SubGhzProtocolDecoderLinearDelta3* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8));
|
&instance->decoder, (instance->decoder.decode_count_bit / 8));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_linear_delta3_feed(void* context, bool level, uint3
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderLinearDelta3 instance
|
* @param context Pointer to a SubGhzProtocolDecoderLinearDelta3 instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_linear_delta3_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_linear_delta3_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderLinearDelta3.
|
* Serialize data SubGhzProtocolDecoderLinearDelta3.
|
||||||
|
|||||||
@@ -392,10 +392,10 @@ static void subghz_protocol_magellan_get_event_serialize(uint8_t event, FuriStri
|
|||||||
((event >> 7) & 0x1 ? ", ?" : ""));
|
((event >> 7) & 0x1 ? ", ?" : ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_magellan_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_magellan_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderMagellan* instance = context;
|
SubGhzProtocolDecoderMagellan* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_magellan_feed(void* context, bool level, uint32_t d
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderMagellan instance
|
* @param context Pointer to a SubGhzProtocolDecoderMagellan instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_magellan_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_magellan_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderMagellan.
|
* Serialize data SubGhzProtocolDecoderMagellan.
|
||||||
|
|||||||
@@ -336,10 +336,10 @@ void subghz_protocol_decoder_marantec_feed(void* context, bool level, volatile u
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_marantec_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_marantec_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderMarantec* instance = context;
|
SubGhzProtocolDecoderMarantec* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_marantec_feed(void* context, bool level, uint32_t d
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderMarantec instance
|
* @param context Pointer to a SubGhzProtocolDecoderMarantec instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_marantec_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_marantec_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderMarantec.
|
* Serialize data SubGhzProtocolDecoderMarantec.
|
||||||
|
|||||||
@@ -313,10 +313,10 @@ static void subghz_protocol_mastercode_check_remote_controller(SubGhzBlockGeneri
|
|||||||
instance->btn = (instance->data >> 2 & 0x03);
|
instance->btn = (instance->data >> 2 & 0x03);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_mastercode_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_mastercode_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderMastercode* instance = context;
|
SubGhzProtocolDecoderMastercode* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_mastercode_feed(void* context, bool level, uint32_t
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderMastercode instance
|
* @param context Pointer to a SubGhzProtocolDecoderMastercode instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_mastercode_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_mastercode_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderMastercode.
|
* Serialize data SubGhzProtocolDecoderMastercode.
|
||||||
|
|||||||
@@ -374,10 +374,10 @@ static void subghz_protocol_megacode_check_remote_controller(SubGhzBlockGeneric*
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_megacode_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_megacode_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderMegaCode* instance = context;
|
SubGhzProtocolDecoderMegaCode* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_megacode_feed(void* context, bool level, uint32_t d
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderMegaCode instance
|
* @param context Pointer to a SubGhzProtocolDecoderMegaCode instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_megacode_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_megacode_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderMegaCode.
|
* Serialize data SubGhzProtocolDecoderMegaCode.
|
||||||
|
|||||||
@@ -350,10 +350,10 @@ void subghz_protocol_decoder_nero_radio_feed(void* context, bool level, uint32_t
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_nero_radio_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_nero_radio_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderNeroRadio* instance = context;
|
SubGhzProtocolDecoderNeroRadio* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_nero_radio_feed(void* context, bool level, uint32_t
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderNeroRadio instance
|
* @param context Pointer to a SubGhzProtocolDecoderNeroRadio instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_nero_radio_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_nero_radio_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderNeroRadio.
|
* Serialize data SubGhzProtocolDecoderNeroRadio.
|
||||||
|
|||||||
@@ -321,10 +321,10 @@ void subghz_protocol_decoder_nero_sketch_feed(void* context, bool level, uint32_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_nero_sketch_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_nero_sketch_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderNeroSketch* instance = context;
|
SubGhzProtocolDecoderNeroSketch* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_nero_sketch_feed(void* context, bool level, uint32_
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderNeroSketch instance
|
* @param context Pointer to a SubGhzProtocolDecoderNeroSketch instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_nero_sketch_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_nero_sketch_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderNeroSketch.
|
* Serialize data SubGhzProtocolDecoderNeroSketch.
|
||||||
|
|||||||
@@ -286,10 +286,10 @@ void ws_protocol_decoder_nexus_th_feed(void* context, bool level, uint32_t durat
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_nexus_th_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_nexus_th_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderNexus_TH* instance = context;
|
WSProtocolDecoderNexus_TH* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ void ws_protocol_decoder_nexus_th_feed(void* context, bool level, uint32_t durat
|
|||||||
* @param context Pointer to a WSProtocolDecoderNexus_TH instance
|
* @param context Pointer to a WSProtocolDecoderNexus_TH instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t ws_protocol_decoder_nexus_th_get_hash_data(void* context);
|
uint32_t ws_protocol_decoder_nexus_th_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data WSProtocolDecoderNexus_TH.
|
* Serialize data WSProtocolDecoderNexus_TH.
|
||||||
|
|||||||
@@ -276,10 +276,10 @@ void subghz_protocol_decoder_nice_flo_feed(void* context, bool level, uint32_t d
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_nice_flo_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_nice_flo_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderNiceFlo* instance = context;
|
SubGhzProtocolDecoderNiceFlo* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ void subghz_protocol_decoder_nice_flo_feed(void* context, bool level, uint32_t d
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderNiceFlo instance
|
* @param context Pointer to a SubGhzProtocolDecoderNiceFlo instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_nice_flo_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_nice_flo_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderNiceFlo.
|
* Serialize data SubGhzProtocolDecoderNiceFlo.
|
||||||
|
|||||||
@@ -693,10 +693,10 @@ static void subghz_protocol_nice_flor_s_remote_controller(
|
|||||||
subghz_custom_btn_set_max(4);
|
subghz_custom_btn_set_max(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t subghz_protocol_decoder_nice_flor_s_get_hash_data(void* context) {
|
uint32_t subghz_protocol_decoder_nice_flor_s_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
SubGhzProtocolDecoderNiceFlorS* instance = context;
|
SubGhzProtocolDecoderNiceFlorS* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ void subghz_protocol_decoder_nice_flor_s_feed(void* context, bool level, uint32_
|
|||||||
* @param context Pointer to a SubGhzProtocolDecoderNiceFlorS instance
|
* @param context Pointer to a SubGhzProtocolDecoderNiceFlorS instance
|
||||||
* @return hash Hash sum
|
* @return hash Hash sum
|
||||||
*/
|
*/
|
||||||
uint8_t subghz_protocol_decoder_nice_flor_s_get_hash_data(void* context);
|
uint32_t subghz_protocol_decoder_nice_flor_s_get_hash_data(void* context);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Serialize data SubGhzProtocolDecoderNiceFlorS.
|
* Serialize data SubGhzProtocolDecoderNiceFlorS.
|
||||||
|
|||||||
@@ -295,10 +295,10 @@ void ws_protocol_decoder_oregon2_feed(void* context, bool level, uint32_t durati
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_oregon2_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_oregon2_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderOregon2* instance = context;
|
WSProtocolDecoderOregon2* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -231,10 +231,10 @@ void ws_protocol_decoder_oregon3_feed(void* context, bool level, uint32_t durati
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t ws_protocol_decoder_oregon3_get_hash_data(void* context) {
|
uint32_t ws_protocol_decoder_oregon3_get_hash_data(void* context) {
|
||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
WSProtocolDecoderOregon3* instance = context;
|
WSProtocolDecoderOregon3* instance = context;
|
||||||
return subghz_protocol_blocks_get_hash_data(
|
return subghz_protocol_blocks_get_hash_data_long(
|
||||||
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
&instance->decoder, (instance->decoder.decode_count_bit / 8) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user