diff --git a/applications/main/subghz/scenes/subghz_scene_decode_raw.c b/applications/main/subghz/scenes/subghz_scene_decode_raw.c index 09cc806c8..df976c0b7 100644 --- a/applications/main/subghz/scenes/subghz_scene_decode_raw.c +++ b/applications/main/subghz/scenes/subghz_scene_decode_raw.c @@ -65,7 +65,7 @@ static void subghz_scene_add_to_history_callback( if(subghz->remove_duplicates) { // 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); for(uint16_t i = idx; i > 0; i--) { i--; // Iterating in reverse with off by one diff --git a/applications/main/subghz/scenes/subghz_scene_receiver.c b/applications/main/subghz/scenes/subghz_scene_receiver.c index 9309d197c..0a7632cbf 100644 --- a/applications/main/subghz/scenes/subghz_scene_receiver.c +++ b/applications/main/subghz/scenes/subghz_scene_receiver.c @@ -147,7 +147,8 @@ static void subghz_scene_add_to_history_callback( if(subghz->remove_duplicates) { // 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); for(uint16_t i = idx; i > 0; i--) { i--; // Iterating in reverse with off by one diff --git a/applications/main/subghz/subghz_history.c b/applications/main/subghz/subghz_history.c index 6de3eca66..5d2189d8b 100644 --- a/applications/main/subghz/subghz_history.c +++ b/applications/main/subghz/subghz_history.c @@ -13,7 +13,7 @@ typedef struct { uint8_t type; SubGhzRadioPreset* preset; FuriHalRtcDateTime datetime; - uint8_t hash_data; + uint32_t hash_data; uint16_t repeats; float latitude; float longitude; @@ -30,7 +30,7 @@ typedef struct { struct SubGhzHistory { uint32_t last_update_timestamp; uint16_t last_index_write; - uint8_t code_last_hash_data; + uint32_t code_last_hash_data; FuriString* tmp_string; SubGhzHistoryStruct* history; }; @@ -59,7 +59,7 @@ void subghz_history_free(SubGhzHistory* 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); SubGhzHistoryItem* item = SubGhzHistoryItemArray_get(instance->history->data, idx); return item->hash_data; @@ -221,7 +221,7 @@ bool subghz_history_add_to_history( if(instance->last_index_write >= SUBGHZ_HISTORY_MAX) return false; 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) && ((furi_get_tick() - instance->last_update_timestamp) < 500)) { instance->last_update_timestamp = furi_get_tick(); diff --git a/applications/main/subghz/subghz_history.h b/applications/main/subghz/subghz_history.h index 84da80a8a..403c91993 100644 --- a/applications/main/subghz/subghz_history.h +++ b/applications/main/subghz/subghz_history.h @@ -33,9 +33,9 @@ void subghz_history_delete_item(SubGhzHistory* instance, uint16_t idx); * * @param instance - SubGhzHistory instance * @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] * diff --git a/lib/subghz/blocks/decoder.c b/lib/subghz/blocks/decoder.c index f491c87bf..83dcf5435 100644 --- a/lib/subghz/blocks/decoder.c +++ b/lib/subghz/blocks/decoder.c @@ -25,3 +25,15 @@ uint8_t subghz_protocol_blocks_get_hash_data(SubGhzBlockDecoder* decoder, size_t } 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; +} diff --git a/lib/subghz/blocks/decoder.h b/lib/subghz/blocks/decoder.h index a5e561e35..7fe150b5c 100644 --- a/lib/subghz/blocks/decoder.h +++ b/lib/subghz/blocks/decoder.h @@ -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); +/** + * 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 } #endif \ No newline at end of file diff --git a/lib/subghz/protocols/acurite_592txr.c b/lib/subghz/protocols/acurite_592txr.c index 8bca10442..f5b4ecee3 100644 --- a/lib/subghz/protocols/acurite_592txr.c +++ b/lib/subghz/protocols/acurite_592txr.c @@ -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); 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); } diff --git a/lib/subghz/protocols/acurite_592txr.h b/lib/subghz/protocols/acurite_592txr.h index 6489ec9fe..08dcbc617 100644 --- a/lib/subghz/protocols/acurite_592txr.h +++ b/lib/subghz/protocols/acurite_592txr.h @@ -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 * @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. diff --git a/lib/subghz/protocols/acurite_606tx.c b/lib/subghz/protocols/acurite_606tx.c index 7e56cebd2..93eacca33 100644 --- a/lib/subghz/protocols/acurite_606tx.c +++ b/lib/subghz/protocols/acurite_606tx.c @@ -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); 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); } diff --git a/lib/subghz/protocols/acurite_606tx.h b/lib/subghz/protocols/acurite_606tx.h index 15b6d1eb5..f41e9b7e2 100644 --- a/lib/subghz/protocols/acurite_606tx.h +++ b/lib/subghz/protocols/acurite_606tx.h @@ -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 * @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. diff --git a/lib/subghz/protocols/acurite_609txc.c b/lib/subghz/protocols/acurite_609txc.c index 097c6043c..126f8e201 100644 --- a/lib/subghz/protocols/acurite_609txc.c +++ b/lib/subghz/protocols/acurite_609txc.c @@ -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); 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); } diff --git a/lib/subghz/protocols/acurite_609txc.h b/lib/subghz/protocols/acurite_609txc.h index 3e3b9cee8..7928b5f7c 100644 --- a/lib/subghz/protocols/acurite_609txc.h +++ b/lib/subghz/protocols/acurite_609txc.h @@ -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 * @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. diff --git a/lib/subghz/protocols/alutech_at_4n.c b/lib/subghz/protocols/alutech_at_4n.c index 2a16cae85..0f29293f9 100644 --- a/lib/subghz/protocols/alutech_at_4n.c +++ b/lib/subghz/protocols/alutech_at_4n.c @@ -651,10 +651,10 @@ static void subghz_protocol_alutech_at_4n_remote_controller( 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); SubGhzProtocolDecoderAlutech_at_4n* instance = context; - return (uint8_t)instance->crc; + return instance->crc; } SubGhzProtocolStatus subghz_protocol_decoder_alutech_at_4n_serialize( diff --git a/lib/subghz/protocols/alutech_at_4n.h b/lib/subghz/protocols/alutech_at_4n.h index a57152556..63abc5239 100644 --- a/lib/subghz/protocols/alutech_at_4n.h +++ b/lib/subghz/protocols/alutech_at_4n.h @@ -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 * @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. diff --git a/lib/subghz/protocols/ambient_weather.c b/lib/subghz/protocols/ambient_weather.c index 9d3f63df9..59a359d3b 100644 --- a/lib/subghz/protocols/ambient_weather.c +++ b/lib/subghz/protocols/ambient_weather.c @@ -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); 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); } diff --git a/lib/subghz/protocols/ambient_weather.h b/lib/subghz/protocols/ambient_weather.h index 1694403cd..c9b7436f5 100644 --- a/lib/subghz/protocols/ambient_weather.h +++ b/lib/subghz/protocols/ambient_weather.h @@ -49,7 +49,7 @@ void ws_protocol_decoder_ambient_weather_feed(void* context, bool level, uint32_ * @param context Pointer to a WSProtocolDecoderAmbient_Weather instance * @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. diff --git a/lib/subghz/protocols/ansonic.c b/lib/subghz/protocols/ansonic.c index 9a122629b..571b0ad99 100644 --- a/lib/subghz/protocols/ansonic.c +++ b/lib/subghz/protocols/ansonic.c @@ -295,10 +295,10 @@ static void subghz_protocol_ansonic_check_remote_controller(SubGhzBlockGeneric* 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); 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); } diff --git a/lib/subghz/protocols/ansonic.h b/lib/subghz/protocols/ansonic.h index 955853187..6e9d9b990 100644 --- a/lib/subghz/protocols/ansonic.h +++ b/lib/subghz/protocols/ansonic.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_ansonic_feed(void* context, bool level, uint32_t du * @param context Pointer to a SubGhzProtocolDecoderAnsonic instance * @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. diff --git a/lib/subghz/protocols/auriol_ahfl.c b/lib/subghz/protocols/auriol_ahfl.c index c43a44af1..b318c3d34 100644 --- a/lib/subghz/protocols/auriol_ahfl.c +++ b/lib/subghz/protocols/auriol_ahfl.c @@ -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); 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); } diff --git a/lib/subghz/protocols/auriol_ahfl.h b/lib/subghz/protocols/auriol_ahfl.h index 1e29bc8cc..e1b6e2b47 100644 --- a/lib/subghz/protocols/auriol_ahfl.h +++ b/lib/subghz/protocols/auriol_ahfl.h @@ -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 * @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. diff --git a/lib/subghz/protocols/auriol_hg0601a.c b/lib/subghz/protocols/auriol_hg0601a.c index 1c9d9c032..5d3a48559 100644 --- a/lib/subghz/protocols/auriol_hg0601a.c +++ b/lib/subghz/protocols/auriol_hg0601a.c @@ -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); 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); } diff --git a/lib/subghz/protocols/auriol_hg0601a.h b/lib/subghz/protocols/auriol_hg0601a.h index 155bb07fc..2f224416d 100644 --- a/lib/subghz/protocols/auriol_hg0601a.h +++ b/lib/subghz/protocols/auriol_hg0601a.h @@ -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 * @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. diff --git a/lib/subghz/protocols/base.c b/lib/subghz/protocols/base.c index 37d1a308f..716ee9299 100644 --- a/lib/subghz/protocols/base.c +++ b/lib/subghz/protocols/base.c @@ -53,6 +53,21 @@ SubGhzProtocolStatus subghz_protocol_decoder_base_deserialize( uint8_t subghz_protocol_decoder_base_get_hash_data(SubGhzProtocolDecoderBase* decoder_base) { 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 && decoder_base->protocol->decoder->get_hash_data) { hash = decoder_base->protocol->decoder->get_hash_data(decoder_base); diff --git a/lib/subghz/protocols/base.h b/lib/subghz/protocols/base.h index 1d819ab5e..3070f8737 100644 --- a/lib/subghz/protocols/base.h +++ b/lib/subghz/protocols/base.h @@ -73,6 +73,13 @@ SubGhzProtocolStatus subghz_protocol_decoder_base_deserialize( */ 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 typedef struct SubGhzProtocolEncoderBase SubGhzProtocolEncoderBase; diff --git a/lib/subghz/protocols/bett.c b/lib/subghz/protocols/bett.c index 7fce94448..054f41ceb 100644 --- a/lib/subghz/protocols/bett.c +++ b/lib/subghz/protocols/bett.c @@ -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); 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); } diff --git a/lib/subghz/protocols/bett.h b/lib/subghz/protocols/bett.h index 0a11cbe69..e3ba985fe 100644 --- a/lib/subghz/protocols/bett.h +++ b/lib/subghz/protocols/bett.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_bett_feed(void* context, bool level, uint32_t durat * @param context Pointer to a SubGhzProtocolDecoderBETT instance * @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. diff --git a/lib/subghz/protocols/bin_raw.c b/lib/subghz/protocols/bin_raw.c index 511846797..58ec69cb7 100644 --- a/lib/subghz/protocols/bin_raw.c +++ b/lib/subghz/protocols/bin_raw.c @@ -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); SubGhzProtocolDecoderBinRAW* instance = context; - return subghz_protocol_blocks_add_bytes( - instance->data + instance->data_markup[0].byte_bias, - subghz_protocol_bin_raw_get_full_byte(instance->data_markup[0].bit_count)); + union { + uint32_t full; + 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( diff --git a/lib/subghz/protocols/bin_raw.h b/lib/subghz/protocols/bin_raw.h index 26cc6ec3a..fac9ebfa4 100644 --- a/lib/subghz/protocols/bin_raw.h +++ b/lib/subghz/protocols/bin_raw.h @@ -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 * @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. diff --git a/lib/subghz/protocols/came.c b/lib/subghz/protocols/came.c index 40ae05bad..74ff42f4d 100644 --- a/lib/subghz/protocols/came.c +++ b/lib/subghz/protocols/came.c @@ -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); 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); } diff --git a/lib/subghz/protocols/came.h b/lib/subghz/protocols/came.h index fffa017ff..67b701522 100644 --- a/lib/subghz/protocols/came.h +++ b/lib/subghz/protocols/came.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_came_feed(void* context, bool level, uint32_t durat * @param context Pointer to a SubGhzProtocolDecoderCame instance * @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. diff --git a/lib/subghz/protocols/came_atomo.c b/lib/subghz/protocols/came_atomo.c index 0d9545020..427daeada 100644 --- a/lib/subghz/protocols/came_atomo.c +++ b/lib/subghz/protocols/came_atomo.c @@ -682,10 +682,10 @@ static uint8_t subghz_protocol_came_atomo_get_btn_code() { 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); 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); } diff --git a/lib/subghz/protocols/came_atomo.h b/lib/subghz/protocols/came_atomo.h index c5e45a68d..79957eac7 100644 --- a/lib/subghz/protocols/came_atomo.h +++ b/lib/subghz/protocols/came_atomo.h @@ -81,7 +81,7 @@ void subghz_protocol_decoder_came_atomo_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderCameAtomo instance * @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. diff --git a/lib/subghz/protocols/came_twee.c b/lib/subghz/protocols/came_twee.c index 1d79d2201..113343fec 100644 --- a/lib/subghz/protocols/came_twee.c +++ b/lib/subghz/protocols/came_twee.c @@ -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); 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); } diff --git a/lib/subghz/protocols/came_twee.h b/lib/subghz/protocols/came_twee.h index f26f1e806..0da0e6207 100644 --- a/lib/subghz/protocols/came_twee.h +++ b/lib/subghz/protocols/came_twee.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_came_twee_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderCameTwee instance * @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. diff --git a/lib/subghz/protocols/chamberlain_code.c b/lib/subghz/protocols/chamberlain_code.c index 0dd0d2b0b..53ec20088 100644 --- a/lib/subghz/protocols/chamberlain_code.c +++ b/lib/subghz/protocols/chamberlain_code.c @@ -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); 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); } diff --git a/lib/subghz/protocols/chamberlain_code.h b/lib/subghz/protocols/chamberlain_code.h index c8ffed5c5..01bfe5c0b 100644 --- a/lib/subghz/protocols/chamberlain_code.h +++ b/lib/subghz/protocols/chamberlain_code.h @@ -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 * @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. diff --git a/lib/subghz/protocols/clemsa.c b/lib/subghz/protocols/clemsa.c index a0547a113..b558f6a9e 100644 --- a/lib/subghz/protocols/clemsa.c +++ b/lib/subghz/protocols/clemsa.c @@ -310,10 +310,10 @@ static void subghz_protocol_clemsa_check_remote_controller(SubGhzBlockGeneric* i 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); 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); } diff --git a/lib/subghz/protocols/clemsa.h b/lib/subghz/protocols/clemsa.h index f14cd3dac..ae5e5757e 100644 --- a/lib/subghz/protocols/clemsa.h +++ b/lib/subghz/protocols/clemsa.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_clemsa_feed(void* context, bool level, uint32_t dur * @param context Pointer to a SubGhzProtocolDecoderClemsa instance * @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. diff --git a/lib/subghz/protocols/doitrand.c b/lib/subghz/protocols/doitrand.c index 69b8bba4a..d9572c0f1 100644 --- a/lib/subghz/protocols/doitrand.c +++ b/lib/subghz/protocols/doitrand.c @@ -303,10 +303,10 @@ static void subghz_protocol_doitrand_check_remote_controller(SubGhzBlockGeneric* 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); 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); } diff --git a/lib/subghz/protocols/doitrand.h b/lib/subghz/protocols/doitrand.h index 5dbc6678f..43bfef2e2 100644 --- a/lib/subghz/protocols/doitrand.h +++ b/lib/subghz/protocols/doitrand.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_doitrand_feed(void* context, bool level, uint32_t d * @param context Pointer to a SubGhzProtocolDecoderDoitrand instance * @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. diff --git a/lib/subghz/protocols/dooya.c b/lib/subghz/protocols/dooya.c index 816847840..f847be9b8 100644 --- a/lib/subghz/protocols/dooya.c +++ b/lib/subghz/protocols/dooya.c @@ -347,10 +347,10 @@ static void subghz_protocol_dooya_check_remote_controller(SubGhzBlockGeneric* in 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); 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); } diff --git a/lib/subghz/protocols/dooya.h b/lib/subghz/protocols/dooya.h index ffe9d41ef..8ada20fba 100644 --- a/lib/subghz/protocols/dooya.h +++ b/lib/subghz/protocols/dooya.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_dooya_feed(void* context, bool level, uint32_t dura * @param context Pointer to a SubGhzProtocolDecoderDooya instance * @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. diff --git a/lib/subghz/protocols/faac_slh.c b/lib/subghz/protocols/faac_slh.c index 2044d9d20..d90f304fe 100644 --- a/lib/subghz/protocols/faac_slh.c +++ b/lib/subghz/protocols/faac_slh.c @@ -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); 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); } diff --git a/lib/subghz/protocols/faac_slh.h b/lib/subghz/protocols/faac_slh.h index 16b6f031e..1f0dadf69 100644 --- a/lib/subghz/protocols/faac_slh.h +++ b/lib/subghz/protocols/faac_slh.h @@ -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 * @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. diff --git a/lib/subghz/protocols/gate_tx.c b/lib/subghz/protocols/gate_tx.c index 2ebd6bb03..bfff90e11 100644 --- a/lib/subghz/protocols/gate_tx.c +++ b/lib/subghz/protocols/gate_tx.c @@ -283,10 +283,10 @@ static void subghz_protocol_gate_tx_check_remote_controller(SubGhzBlockGeneric* 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); 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); } diff --git a/lib/subghz/protocols/gate_tx.h b/lib/subghz/protocols/gate_tx.h index a6abede0d..1d539d155 100644 --- a/lib/subghz/protocols/gate_tx.h +++ b/lib/subghz/protocols/gate_tx.h @@ -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 * @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. diff --git a/lib/subghz/protocols/gt_wt_02.c b/lib/subghz/protocols/gt_wt_02.c index 213516679..c93c9e7f5 100644 --- a/lib/subghz/protocols/gt_wt_02.c +++ b/lib/subghz/protocols/gt_wt_02.c @@ -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); 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); } diff --git a/lib/subghz/protocols/gt_wt_02.h b/lib/subghz/protocols/gt_wt_02.h index e13576d21..690d2d401 100644 --- a/lib/subghz/protocols/gt_wt_02.h +++ b/lib/subghz/protocols/gt_wt_02.h @@ -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 * @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. diff --git a/lib/subghz/protocols/gt_wt_03.c b/lib/subghz/protocols/gt_wt_03.c index cb0c94af3..a575735c1 100644 --- a/lib/subghz/protocols/gt_wt_03.c +++ b/lib/subghz/protocols/gt_wt_03.c @@ -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); 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); } diff --git a/lib/subghz/protocols/gt_wt_03.h b/lib/subghz/protocols/gt_wt_03.h index d566bb399..22015291a 100644 --- a/lib/subghz/protocols/gt_wt_03.h +++ b/lib/subghz/protocols/gt_wt_03.h @@ -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 * @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. diff --git a/lib/subghz/protocols/holtek.c b/lib/subghz/protocols/holtek.c index 294bd124d..56ee15559 100644 --- a/lib/subghz/protocols/holtek.c +++ b/lib/subghz/protocols/holtek.c @@ -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); 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); } diff --git a/lib/subghz/protocols/holtek.h b/lib/subghz/protocols/holtek.h index 19081308d..3542ba3c7 100644 --- a/lib/subghz/protocols/holtek.h +++ b/lib/subghz/protocols/holtek.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_holtek_feed(void* context, bool level, uint32_t dur * @param context Pointer to a SubGhzProtocolDecoderHoltek instance * @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. diff --git a/lib/subghz/protocols/holtek_ht12x.c b/lib/subghz/protocols/holtek_ht12x.c index 302b78598..9d3796fc9 100644 --- a/lib/subghz/protocols/holtek_ht12x.c +++ b/lib/subghz/protocols/holtek_ht12x.c @@ -322,10 +322,10 @@ static void subghz_protocol_holtek_th12x_check_remote_controller(SubGhzBlockGene 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); 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); } diff --git a/lib/subghz/protocols/holtek_ht12x.h b/lib/subghz/protocols/holtek_ht12x.h index 500c061aa..f9d194798 100644 --- a/lib/subghz/protocols/holtek_ht12x.h +++ b/lib/subghz/protocols/holtek_ht12x.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_holtek_th12x_feed(void* context, bool level, uint32 * @param context Pointer to a SubGhzProtocolDecoderHoltek_HT12X instance * @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. diff --git a/lib/subghz/protocols/honeywell.c b/lib/subghz/protocols/honeywell.c index 5fdc7f45c..891a038c7 100644 --- a/lib/subghz/protocols/honeywell.c +++ b/lib/subghz/protocols/honeywell.c @@ -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); 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); } diff --git a/lib/subghz/protocols/honeywell.h b/lib/subghz/protocols/honeywell.h index 8aa35ce6c..af648622b 100644 --- a/lib/subghz/protocols/honeywell.h +++ b/lib/subghz/protocols/honeywell.h @@ -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); -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( void* context, diff --git a/lib/subghz/protocols/honeywell_wdb.c b/lib/subghz/protocols/honeywell_wdb.c index fcf282201..f22eec53d 100644 --- a/lib/subghz/protocols/honeywell_wdb.c +++ b/lib/subghz/protocols/honeywell_wdb.c @@ -337,10 +337,10 @@ static void subghz_protocol_honeywell_wdb_check_remote_controller( 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); 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); } diff --git a/lib/subghz/protocols/honeywell_wdb.h b/lib/subghz/protocols/honeywell_wdb.h index 91728691b..7361c739e 100644 --- a/lib/subghz/protocols/honeywell_wdb.h +++ b/lib/subghz/protocols/honeywell_wdb.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_honeywell_wdb_feed(void* context, bool level, uint3 * @param context Pointer to a SubGhzProtocolDecoderHoneywell_WDB instance * @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. diff --git a/lib/subghz/protocols/hormann.c b/lib/subghz/protocols/hormann.c index fc490e9d1..280e04d1d 100644 --- a/lib/subghz/protocols/hormann.c +++ b/lib/subghz/protocols/hormann.c @@ -288,10 +288,10 @@ static void subghz_protocol_hormann_check_remote_controller(SubGhzBlockGeneric* 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); 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); } diff --git a/lib/subghz/protocols/hormann.h b/lib/subghz/protocols/hormann.h index 8cb45aec3..0ad901dec 100644 --- a/lib/subghz/protocols/hormann.h +++ b/lib/subghz/protocols/hormann.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_hormann_feed(void* context, bool level, uint32_t du * @param context Pointer to a SubGhzProtocolDecoderHormann instance * @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. diff --git a/lib/subghz/protocols/ido.c b/lib/subghz/protocols/ido.c index 34e5c55a7..ff9744825 100644 --- a/lib/subghz/protocols/ido.c +++ b/lib/subghz/protocols/ido.c @@ -173,10 +173,10 @@ static void subghz_protocol_ido_check_remote_controller(SubGhzBlockGeneric* inst 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); 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); } diff --git a/lib/subghz/protocols/ido.h b/lib/subghz/protocols/ido.h index 949320246..186b58a92 100644 --- a/lib/subghz/protocols/ido.h +++ b/lib/subghz/protocols/ido.h @@ -43,7 +43,7 @@ void subghz_protocol_decoder_ido_feed(void* context, bool level, uint32_t durati * @param context Pointer to a SubGhzProtocolDecoderIDo instance * @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. diff --git a/lib/subghz/protocols/infactory.c b/lib/subghz/protocols/infactory.c index f1ee3432b..1b8991afc 100644 --- a/lib/subghz/protocols/infactory.c +++ b/lib/subghz/protocols/infactory.c @@ -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); 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); } diff --git a/lib/subghz/protocols/infactory.h b/lib/subghz/protocols/infactory.h index 9431a067e..13e1c883f 100644 --- a/lib/subghz/protocols/infactory.h +++ b/lib/subghz/protocols/infactory.h @@ -49,7 +49,7 @@ void ws_protocol_decoder_infactory_feed(void* context, bool level, uint32_t dura * @param context Pointer to a WSProtocolDecoderInfactory instance * @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. diff --git a/lib/subghz/protocols/intertechno_v3.c b/lib/subghz/protocols/intertechno_v3.c index 7fe952995..dae04cd94 100644 --- a/lib/subghz/protocols/intertechno_v3.c +++ b/lib/subghz/protocols/intertechno_v3.c @@ -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); 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); } diff --git a/lib/subghz/protocols/intertechno_v3.h b/lib/subghz/protocols/intertechno_v3.h index 4d1c24cb6..adc11c181 100644 --- a/lib/subghz/protocols/intertechno_v3.h +++ b/lib/subghz/protocols/intertechno_v3.h @@ -79,7 +79,7 @@ void subghz_protocol_decoder_intertechno_v3_feed(void* context, bool level, uint * @param context Pointer to a SubGhzProtocolDecoderIntertechno_V3 instance * @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. diff --git a/lib/subghz/protocols/keeloq.c b/lib/subghz/protocols/keeloq.c index 2a92e9db5..db3278b5d 100644 --- a/lib/subghz/protocols/keeloq.c +++ b/lib/subghz/protocols/keeloq.c @@ -1050,10 +1050,10 @@ static void subghz_protocol_keeloq_check_remote_controller( 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); 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); } diff --git a/lib/subghz/protocols/keeloq.h b/lib/subghz/protocols/keeloq.h index 4abd14413..99349aa52 100644 --- a/lib/subghz/protocols/keeloq.h +++ b/lib/subghz/protocols/keeloq.h @@ -79,7 +79,7 @@ void subghz_protocol_decoder_keeloq_feed(void* context, bool level, uint32_t dur * @param context Pointer to a SubGhzProtocolDecoderKeeloq instance * @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. diff --git a/lib/subghz/protocols/kia.c b/lib/subghz/protocols/kia.c index 1a92c8fe4..66e79d338 100644 --- a/lib/subghz/protocols/kia.c +++ b/lib/subghz/protocols/kia.c @@ -225,10 +225,10 @@ static void subghz_protocol_kia_check_remote_controller(SubGhzBlockGeneric* inst 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); 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); } diff --git a/lib/subghz/protocols/kia.h b/lib/subghz/protocols/kia.h index 749ff8afd..79184f396 100644 --- a/lib/subghz/protocols/kia.h +++ b/lib/subghz/protocols/kia.h @@ -43,7 +43,7 @@ void subghz_protocol_decoder_kia_feed(void* context, bool level, uint32_t durati * @param context Pointer to a SubGhzProtocolDecoderKIA instance * @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. diff --git a/lib/subghz/protocols/kinggates_stylo_4k.c b/lib/subghz/protocols/kinggates_stylo_4k.c index 9eebe6259..7665f0ea3 100644 --- a/lib/subghz/protocols/kinggates_stylo_4k.c +++ b/lib/subghz/protocols/kinggates_stylo_4k.c @@ -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); 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); } diff --git a/lib/subghz/protocols/kinggates_stylo_4k.h b/lib/subghz/protocols/kinggates_stylo_4k.h index cdefebc84..26c0aca27 100644 --- a/lib/subghz/protocols/kinggates_stylo_4k.h +++ b/lib/subghz/protocols/kinggates_stylo_4k.h @@ -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 * @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. diff --git a/lib/subghz/protocols/lacrosse_tx.c b/lib/subghz/protocols/lacrosse_tx.c index 380ce0877..3d5145144 100644 --- a/lib/subghz/protocols/lacrosse_tx.c +++ b/lib/subghz/protocols/lacrosse_tx.c @@ -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); 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); } diff --git a/lib/subghz/protocols/lacrosse_tx.h b/lib/subghz/protocols/lacrosse_tx.h index 151282b3a..5a6693b54 100644 --- a/lib/subghz/protocols/lacrosse_tx.h +++ b/lib/subghz/protocols/lacrosse_tx.h @@ -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 * @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. diff --git a/lib/subghz/protocols/lacrosse_tx141thbv2.c b/lib/subghz/protocols/lacrosse_tx141thbv2.c index 8825d922a..b6bdde914 100644 --- a/lib/subghz/protocols/lacrosse_tx141thbv2.c +++ b/lib/subghz/protocols/lacrosse_tx141thbv2.c @@ -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); 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); } diff --git a/lib/subghz/protocols/lacrosse_tx141thbv2.h b/lib/subghz/protocols/lacrosse_tx141thbv2.h index 036db0548..642ed5f11 100644 --- a/lib/subghz/protocols/lacrosse_tx141thbv2.h +++ b/lib/subghz/protocols/lacrosse_tx141thbv2.h @@ -49,7 +49,7 @@ void ws_protocol_decoder_lacrosse_tx141thbv2_feed(void* context, bool level, uin * @param context Pointer to a WSProtocolDecoderLaCrosse_TX141THBv2 instance * @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. diff --git a/lib/subghz/protocols/linear.c b/lib/subghz/protocols/linear.c index 8d3735796..b4c162c35 100644 --- a/lib/subghz/protocols/linear.c +++ b/lib/subghz/protocols/linear.c @@ -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); 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); } diff --git a/lib/subghz/protocols/linear.h b/lib/subghz/protocols/linear.h index b692b911c..a94ab4578 100644 --- a/lib/subghz/protocols/linear.h +++ b/lib/subghz/protocols/linear.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_linear_feed(void* context, bool level, uint32_t dur * @param context Pointer to a SubGhzProtocolDecoderLinear instance * @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. diff --git a/lib/subghz/protocols/linear_delta3.c b/lib/subghz/protocols/linear_delta3.c index 97ac5cc5a..f8171cf16 100644 --- a/lib/subghz/protocols/linear_delta3.c +++ b/lib/subghz/protocols/linear_delta3.c @@ -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); 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)); } diff --git a/lib/subghz/protocols/linear_delta3.h b/lib/subghz/protocols/linear_delta3.h index 22f6730f4..c16abaeed 100644 --- a/lib/subghz/protocols/linear_delta3.h +++ b/lib/subghz/protocols/linear_delta3.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_linear_delta3_feed(void* context, bool level, uint3 * @param context Pointer to a SubGhzProtocolDecoderLinearDelta3 instance * @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. diff --git a/lib/subghz/protocols/magellan.c b/lib/subghz/protocols/magellan.c index 80f5f871a..d57d2fdfc 100644 --- a/lib/subghz/protocols/magellan.c +++ b/lib/subghz/protocols/magellan.c @@ -392,10 +392,10 @@ static void subghz_protocol_magellan_get_event_serialize(uint8_t event, FuriStri ((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); 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); } diff --git a/lib/subghz/protocols/magellan.h b/lib/subghz/protocols/magellan.h index e0fb7ca52..3e4a87c65 100644 --- a/lib/subghz/protocols/magellan.h +++ b/lib/subghz/protocols/magellan.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_magellan_feed(void* context, bool level, uint32_t d * @param context Pointer to a SubGhzProtocolDecoderMagellan instance * @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. diff --git a/lib/subghz/protocols/marantec.c b/lib/subghz/protocols/marantec.c index fc4aa0dca..82981ceb5 100644 --- a/lib/subghz/protocols/marantec.c +++ b/lib/subghz/protocols/marantec.c @@ -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); 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); } diff --git a/lib/subghz/protocols/marantec.h b/lib/subghz/protocols/marantec.h index 485c563b2..6b77d0511 100644 --- a/lib/subghz/protocols/marantec.h +++ b/lib/subghz/protocols/marantec.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_marantec_feed(void* context, bool level, uint32_t d * @param context Pointer to a SubGhzProtocolDecoderMarantec instance * @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. diff --git a/lib/subghz/protocols/mastercode.c b/lib/subghz/protocols/mastercode.c index 54ad5bfaa..c8f7eb333 100644 --- a/lib/subghz/protocols/mastercode.c +++ b/lib/subghz/protocols/mastercode.c @@ -313,10 +313,10 @@ static void subghz_protocol_mastercode_check_remote_controller(SubGhzBlockGeneri 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); 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); } diff --git a/lib/subghz/protocols/mastercode.h b/lib/subghz/protocols/mastercode.h index c5c73db98..6ad914a57 100644 --- a/lib/subghz/protocols/mastercode.h +++ b/lib/subghz/protocols/mastercode.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_mastercode_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderMastercode instance * @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. diff --git a/lib/subghz/protocols/megacode.c b/lib/subghz/protocols/megacode.c index ba58bc445..aae6c7db0 100644 --- a/lib/subghz/protocols/megacode.c +++ b/lib/subghz/protocols/megacode.c @@ -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); 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); } diff --git a/lib/subghz/protocols/megacode.h b/lib/subghz/protocols/megacode.h index 616ecdf64..1a7b50621 100644 --- a/lib/subghz/protocols/megacode.h +++ b/lib/subghz/protocols/megacode.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_megacode_feed(void* context, bool level, uint32_t d * @param context Pointer to a SubGhzProtocolDecoderMegaCode instance * @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. diff --git a/lib/subghz/protocols/nero_radio.c b/lib/subghz/protocols/nero_radio.c index 7e787ffd0..9f356a239 100644 --- a/lib/subghz/protocols/nero_radio.c +++ b/lib/subghz/protocols/nero_radio.c @@ -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); 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); } diff --git a/lib/subghz/protocols/nero_radio.h b/lib/subghz/protocols/nero_radio.h index 0598aee6c..793044cd6 100644 --- a/lib/subghz/protocols/nero_radio.h +++ b/lib/subghz/protocols/nero_radio.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_nero_radio_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderNeroRadio instance * @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. diff --git a/lib/subghz/protocols/nero_sketch.c b/lib/subghz/protocols/nero_sketch.c index 09cd0255a..484d142b3 100644 --- a/lib/subghz/protocols/nero_sketch.c +++ b/lib/subghz/protocols/nero_sketch.c @@ -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); 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); } diff --git a/lib/subghz/protocols/nero_sketch.h b/lib/subghz/protocols/nero_sketch.h index b557772d2..47a779570 100644 --- a/lib/subghz/protocols/nero_sketch.h +++ b/lib/subghz/protocols/nero_sketch.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_nero_sketch_feed(void* context, bool level, uint32_ * @param context Pointer to a SubGhzProtocolDecoderNeroSketch instance * @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. diff --git a/lib/subghz/protocols/nexus_th.c b/lib/subghz/protocols/nexus_th.c index 9307194bb..fea7e6132 100644 --- a/lib/subghz/protocols/nexus_th.c +++ b/lib/subghz/protocols/nexus_th.c @@ -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); 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); } diff --git a/lib/subghz/protocols/nexus_th.h b/lib/subghz/protocols/nexus_th.h index 6c2715b85..cd8db2199 100644 --- a/lib/subghz/protocols/nexus_th.h +++ b/lib/subghz/protocols/nexus_th.h @@ -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 * @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. diff --git a/lib/subghz/protocols/nice_flo.c b/lib/subghz/protocols/nice_flo.c index f60e07fb8..31f234dd1 100644 --- a/lib/subghz/protocols/nice_flo.c +++ b/lib/subghz/protocols/nice_flo.c @@ -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); 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); } diff --git a/lib/subghz/protocols/nice_flo.h b/lib/subghz/protocols/nice_flo.h index 9a4b53d12..d4ec5cfda 100644 --- a/lib/subghz/protocols/nice_flo.h +++ b/lib/subghz/protocols/nice_flo.h @@ -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 * @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. diff --git a/lib/subghz/protocols/nice_flor_s.c b/lib/subghz/protocols/nice_flor_s.c index 39ae23f27..cc447d685 100644 --- a/lib/subghz/protocols/nice_flor_s.c +++ b/lib/subghz/protocols/nice_flor_s.c @@ -693,10 +693,10 @@ static void subghz_protocol_nice_flor_s_remote_controller( 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); 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); } diff --git a/lib/subghz/protocols/nice_flor_s.h b/lib/subghz/protocols/nice_flor_s.h index 4d635d3fb..df1f5eef4 100644 --- a/lib/subghz/protocols/nice_flor_s.h +++ b/lib/subghz/protocols/nice_flor_s.h @@ -80,7 +80,7 @@ void subghz_protocol_decoder_nice_flor_s_feed(void* context, bool level, uint32_ * @param context Pointer to a SubGhzProtocolDecoderNiceFlorS instance * @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. diff --git a/lib/subghz/protocols/oregon2.c b/lib/subghz/protocols/oregon2.c index 57adae576..01b462af1 100644 --- a/lib/subghz/protocols/oregon2.c +++ b/lib/subghz/protocols/oregon2.c @@ -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); 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); } diff --git a/lib/subghz/protocols/oregon3.c b/lib/subghz/protocols/oregon3.c index 24498f16a..75c2d60d6 100644 --- a/lib/subghz/protocols/oregon3.c +++ b/lib/subghz/protocols/oregon3.c @@ -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); 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); } diff --git a/lib/subghz/protocols/oregon_v1.c b/lib/subghz/protocols/oregon_v1.c index 5967e9625..bced94a7d 100644 --- a/lib/subghz/protocols/oregon_v1.c +++ b/lib/subghz/protocols/oregon_v1.c @@ -279,10 +279,10 @@ void ws_protocol_decoder_oregon_v1_feed(void* context, bool level, uint32_t dura } } -uint8_t ws_protocol_decoder_oregon_v1_get_hash_data(void* context) { +uint32_t ws_protocol_decoder_oregon_v1_get_hash_data(void* context) { furi_assert(context); WSProtocolDecoderOregon_V1* 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); } diff --git a/lib/subghz/protocols/oregon_v1.h b/lib/subghz/protocols/oregon_v1.h index 48937601d..95887cc9d 100644 --- a/lib/subghz/protocols/oregon_v1.h +++ b/lib/subghz/protocols/oregon_v1.h @@ -49,7 +49,7 @@ void ws_protocol_decoder_oregon_v1_feed(void* context, bool level, uint32_t dura * @param context Pointer to a WSProtocolDecoderOregon_V1 instance * @return hash Hash sum */ -uint8_t ws_protocol_decoder_oregon_v1_get_hash_data(void* context); +uint32_t ws_protocol_decoder_oregon_v1_get_hash_data(void* context); /** * Serialize data WSProtocolDecoderOregon_V1. diff --git a/lib/subghz/protocols/phoenix_v2.c b/lib/subghz/protocols/phoenix_v2.c index 2416a9d01..e1e2b9acc 100644 --- a/lib/subghz/protocols/phoenix_v2.c +++ b/lib/subghz/protocols/phoenix_v2.c @@ -286,10 +286,10 @@ static void subghz_protocol_phoenix_v2_check_remote_controller(SubGhzBlockGeneri instance->btn = (data_rev >> 32) & 0xF; } -uint8_t subghz_protocol_decoder_phoenix_v2_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_phoenix_v2_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderPhoenix_V2* 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); } diff --git a/lib/subghz/protocols/phoenix_v2.h b/lib/subghz/protocols/phoenix_v2.h index 0724de1f0..9a1f64752 100644 --- a/lib/subghz/protocols/phoenix_v2.h +++ b/lib/subghz/protocols/phoenix_v2.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_phoenix_v2_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderPhoenix_V2 instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_phoenix_v2_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_phoenix_v2_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderPhoenix_V2. diff --git a/lib/subghz/protocols/pocsag.c b/lib/subghz/protocols/pocsag.c index aa282e4a8..6cd7e67a2 100644 --- a/lib/subghz/protocols/pocsag.c +++ b/lib/subghz/protocols/pocsag.c @@ -326,13 +326,17 @@ void subghz_protocol_decoder_pocsag_feed(void* context, bool level, uint32_t dur } } -uint8_t subghz_protocol_decoder_pocsag_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_pocsag_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderPocsag* instance = context; - uint8_t hash = 0; - for(size_t i = 0; i < furi_string_size(instance->done_msg); i++) - hash ^= furi_string_get_char(instance->done_msg, i); - return hash; + union { + uint32_t full; + uint8_t split[4]; + } hash = {0}; + size_t len = furi_string_size(instance->done_msg); + for(size_t i = 0; i < len; i++) + hash.split[i % sizeof(hash)] ^= furi_string_get_char(instance->done_msg, i); + return hash.full; } SubGhzProtocolStatus subghz_protocol_decoder_pocsag_serialize( diff --git a/lib/subghz/protocols/power_smart.c b/lib/subghz/protocols/power_smart.c index d03282f73..b75d3d8e7 100644 --- a/lib/subghz/protocols/power_smart.c +++ b/lib/subghz/protocols/power_smart.c @@ -335,10 +335,10 @@ static const char* subghz_protocol_power_smart_get_name_button(uint8_t btn) { return name_btn[btn]; } -uint8_t subghz_protocol_decoder_power_smart_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_power_smart_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderPowerSmart* 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); } diff --git a/lib/subghz/protocols/power_smart.h b/lib/subghz/protocols/power_smart.h index 5687cf8b1..9b9deee01 100644 --- a/lib/subghz/protocols/power_smart.h +++ b/lib/subghz/protocols/power_smart.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_power_smart_feed(void* context, bool level, uint32_ * @param context Pointer to a SubGhzProtocolDecoderPowerSmart instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_power_smart_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_power_smart_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderPowerSmart. diff --git a/lib/subghz/protocols/princeton.c b/lib/subghz/protocols/princeton.c index ae71e81f6..f8eee62e3 100644 --- a/lib/subghz/protocols/princeton.c +++ b/lib/subghz/protocols/princeton.c @@ -305,10 +305,10 @@ static void subghz_protocol_princeton_check_remote_controller(SubGhzBlockGeneric instance->btn = instance->data & 0xF; } -uint8_t subghz_protocol_decoder_princeton_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_princeton_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderPrinceton* 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); } diff --git a/lib/subghz/protocols/princeton.h b/lib/subghz/protocols/princeton.h index 7c775292d..3c15bb005 100644 --- a/lib/subghz/protocols/princeton.h +++ b/lib/subghz/protocols/princeton.h @@ -82,7 +82,7 @@ void subghz_protocol_decoder_princeton_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderPrinceton instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_princeton_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_princeton_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderPrinceton. diff --git a/lib/subghz/protocols/scher_khan.c b/lib/subghz/protocols/scher_khan.c index e5de4e081..dfe6c4a8f 100644 --- a/lib/subghz/protocols/scher_khan.c +++ b/lib/subghz/protocols/scher_khan.c @@ -274,10 +274,10 @@ static void subghz_protocol_scher_khan_check_remote_controller( } } -uint8_t subghz_protocol_decoder_scher_khan_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_scher_khan_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderScherKhan* 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); } diff --git a/lib/subghz/protocols/scher_khan.h b/lib/subghz/protocols/scher_khan.h index 58545069c..759afa875 100644 --- a/lib/subghz/protocols/scher_khan.h +++ b/lib/subghz/protocols/scher_khan.h @@ -43,7 +43,7 @@ void subghz_protocol_decoder_scher_khan_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderScherKhan instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_scher_khan_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_scher_khan_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderScherKhan. diff --git a/lib/subghz/protocols/schrader_gg4.c b/lib/subghz/protocols/schrader_gg4.c index 2290d32e0..562404975 100644 --- a/lib/subghz/protocols/schrader_gg4.c +++ b/lib/subghz/protocols/schrader_gg4.c @@ -254,10 +254,10 @@ void tpms_protocol_decoder_schrader_gg4_feed(void* context, bool level, uint32_t } } -uint8_t tpms_protocol_decoder_schrader_gg4_get_hash_data(void* context) { +uint32_t tpms_protocol_decoder_schrader_gg4_get_hash_data(void* context) { furi_assert(context); TPMSProtocolDecoderSchraderGG4* 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); } diff --git a/lib/subghz/protocols/schrader_gg4.h b/lib/subghz/protocols/schrader_gg4.h index 29c2c7d00..86a71a977 100644 --- a/lib/subghz/protocols/schrader_gg4.h +++ b/lib/subghz/protocols/schrader_gg4.h @@ -49,7 +49,7 @@ void tpms_protocol_decoder_schrader_gg4_feed(void* context, bool level, uint32_t * @param context Pointer to a TPMSProtocolDecoderSchraderGG4 instance * @return hash Hash sum */ -uint8_t tpms_protocol_decoder_schrader_gg4_get_hash_data(void* context); +uint32_t tpms_protocol_decoder_schrader_gg4_get_hash_data(void* context); /** * Serialize data TPMSProtocolDecoderSchraderGG4. diff --git a/lib/subghz/protocols/secplus_v1.c b/lib/subghz/protocols/secplus_v1.c index 8d41582bf..d754d4328 100644 --- a/lib/subghz/protocols/secplus_v1.c +++ b/lib/subghz/protocols/secplus_v1.c @@ -510,10 +510,10 @@ void subghz_protocol_decoder_secplus_v1_feed(void* context, bool level, uint32_t } } -uint8_t subghz_protocol_decoder_secplus_v1_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_secplus_v1_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderSecPlus_v1* 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); } diff --git a/lib/subghz/protocols/secplus_v1.h b/lib/subghz/protocols/secplus_v1.h index e01f8bcda..aef17f390 100644 --- a/lib/subghz/protocols/secplus_v1.h +++ b/lib/subghz/protocols/secplus_v1.h @@ -79,7 +79,7 @@ void subghz_protocol_decoder_secplus_v1_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderSecPlus_v1 instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_secplus_v1_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_secplus_v1_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderSecPlus_v1. diff --git a/lib/subghz/protocols/secplus_v2.c b/lib/subghz/protocols/secplus_v2.c index 3df74ba1d..0aa5e2508 100644 --- a/lib/subghz/protocols/secplus_v2.c +++ b/lib/subghz/protocols/secplus_v2.c @@ -771,10 +771,10 @@ void subghz_protocol_decoder_secplus_v2_feed(void* context, bool level, uint32_t } } -uint8_t subghz_protocol_decoder_secplus_v2_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_secplus_v2_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderSecPlus_v2* 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); } diff --git a/lib/subghz/protocols/secplus_v2.h b/lib/subghz/protocols/secplus_v2.h index 9eb912a27..37a6bb5ff 100644 --- a/lib/subghz/protocols/secplus_v2.h +++ b/lib/subghz/protocols/secplus_v2.h @@ -79,7 +79,7 @@ void subghz_protocol_decoder_secplus_v2_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderSecPlus_v2 instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_secplus_v2_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_secplus_v2_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderSecPlus_v2. diff --git a/lib/subghz/protocols/smc5326.c b/lib/subghz/protocols/smc5326.c index 0b9755b8c..dd990b74b 100644 --- a/lib/subghz/protocols/smc5326.c +++ b/lib/subghz/protocols/smc5326.c @@ -308,10 +308,10 @@ void subghz_protocol_decoder_smc5326_feed(void* context, bool level, uint32_t du } } -uint8_t subghz_protocol_decoder_smc5326_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_smc5326_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderSMC5326* 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); } diff --git a/lib/subghz/protocols/smc5326.h b/lib/subghz/protocols/smc5326.h index 911226cf9..ab3be0bf8 100644 --- a/lib/subghz/protocols/smc5326.h +++ b/lib/subghz/protocols/smc5326.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_smc5326_feed(void* context, bool level, uint32_t du * @param context Pointer to a SubGhzProtocolDecoderSMC5326 instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_smc5326_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_smc5326_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderSMC5326. diff --git a/lib/subghz/protocols/somfy_keytis.c b/lib/subghz/protocols/somfy_keytis.c index 22d2b5e9f..110b3d2d7 100644 --- a/lib/subghz/protocols/somfy_keytis.c +++ b/lib/subghz/protocols/somfy_keytis.c @@ -723,10 +723,10 @@ static const char* subghz_protocol_somfy_keytis_get_name_button(uint8_t btn) { return btn <= 0xf ? name_btn[btn] : name_btn[0]; } -uint8_t subghz_protocol_decoder_somfy_keytis_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_somfy_keytis_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderSomfyKeytis* 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); } diff --git a/lib/subghz/protocols/somfy_keytis.h b/lib/subghz/protocols/somfy_keytis.h index d7e8df109..0a774e2ff 100644 --- a/lib/subghz/protocols/somfy_keytis.h +++ b/lib/subghz/protocols/somfy_keytis.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_somfy_keytis_feed(void* context, bool level, uint32 * @param context Pointer to a SubGhzProtocolDecoderSomfyKeytis instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_somfy_keytis_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_somfy_keytis_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderSomfyKeytis. diff --git a/lib/subghz/protocols/somfy_telis.c b/lib/subghz/protocols/somfy_telis.c index b198ce491..4f6c43a7a 100644 --- a/lib/subghz/protocols/somfy_telis.c +++ b/lib/subghz/protocols/somfy_telis.c @@ -642,10 +642,10 @@ static const char* subghz_protocol_somfy_telis_get_name_button(uint8_t btn) { return btn <= 0xf ? name_btn[btn] : name_btn[0]; } -uint8_t subghz_protocol_decoder_somfy_telis_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_somfy_telis_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderSomfyTelis* 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); } diff --git a/lib/subghz/protocols/somfy_telis.h b/lib/subghz/protocols/somfy_telis.h index a072079da..81a8ee0cb 100644 --- a/lib/subghz/protocols/somfy_telis.h +++ b/lib/subghz/protocols/somfy_telis.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_somfy_telis_feed(void* context, bool level, uint32_ * @param context Pointer to a SubGhzProtocolDecoderSomfyTelis instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_somfy_telis_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_somfy_telis_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderSomfyTelis. diff --git a/lib/subghz/protocols/star_line.c b/lib/subghz/protocols/star_line.c index 39c715399..87483e748 100644 --- a/lib/subghz/protocols/star_line.c +++ b/lib/subghz/protocols/star_line.c @@ -638,10 +638,10 @@ static void subghz_protocol_star_line_check_remote_controller( instance->btn = key_fix >> 24; } -uint8_t subghz_protocol_decoder_star_line_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_star_line_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderStarLine* 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); } diff --git a/lib/subghz/protocols/star_line.h b/lib/subghz/protocols/star_line.h index e7b15ca0b..08d6ba96e 100644 --- a/lib/subghz/protocols/star_line.h +++ b/lib/subghz/protocols/star_line.h @@ -78,7 +78,7 @@ void subghz_protocol_decoder_star_line_feed(void* context, bool level, uint32_t * @param context Pointer to a SubGhzProtocolDecoderStarLine instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_star_line_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_star_line_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderStarLine. diff --git a/lib/subghz/protocols/thermopro_tx4.c b/lib/subghz/protocols/thermopro_tx4.c index 9adaacac1..5f051bd0e 100644 --- a/lib/subghz/protocols/thermopro_tx4.c +++ b/lib/subghz/protocols/thermopro_tx4.c @@ -207,10 +207,10 @@ void ws_protocol_decoder_thermopro_tx4_feed(void* context, bool level, uint32_t } } -uint8_t ws_protocol_decoder_thermopro_tx4_get_hash_data(void* context) { +uint32_t ws_protocol_decoder_thermopro_tx4_get_hash_data(void* context) { furi_assert(context); WSProtocolDecoderThermoPRO_TX4* 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); } diff --git a/lib/subghz/protocols/thermopro_tx4.h b/lib/subghz/protocols/thermopro_tx4.h index 526648d1e..f4262db1c 100644 --- a/lib/subghz/protocols/thermopro_tx4.h +++ b/lib/subghz/protocols/thermopro_tx4.h @@ -49,7 +49,7 @@ void ws_protocol_decoder_thermopro_tx4_feed(void* context, bool level, uint32_t * @param context Pointer to a WSProtocolDecoderThermoPRO_TX4 instance * @return hash Hash sum */ -uint8_t ws_protocol_decoder_thermopro_tx4_get_hash_data(void* context); +uint32_t ws_protocol_decoder_thermopro_tx4_get_hash_data(void* context); /** * Serialize data WSProtocolDecoderThermoPRO_TX4. diff --git a/lib/subghz/protocols/tx_8300.c b/lib/subghz/protocols/tx_8300.c index b0686a774..18fef24b0 100644 --- a/lib/subghz/protocols/tx_8300.c +++ b/lib/subghz/protocols/tx_8300.c @@ -242,10 +242,10 @@ void ws_protocol_decoder_tx_8300_feed(void* context, bool level, uint32_t durati } } -uint8_t ws_protocol_decoder_tx_8300_get_hash_data(void* context) { +uint32_t ws_protocol_decoder_tx_8300_get_hash_data(void* context) { furi_assert(context); WSProtocolDecoderTX_8300* 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); } diff --git a/lib/subghz/protocols/tx_8300.h b/lib/subghz/protocols/tx_8300.h index 088ccd7c0..536ca28b5 100644 --- a/lib/subghz/protocols/tx_8300.h +++ b/lib/subghz/protocols/tx_8300.h @@ -49,7 +49,7 @@ void ws_protocol_decoder_tx_8300_feed(void* context, bool level, uint32_t durati * @param context Pointer to a WSProtocolDecoderTX_8300 instance * @return hash Hash sum */ -uint8_t ws_protocol_decoder_tx_8300_get_hash_data(void* context); +uint32_t ws_protocol_decoder_tx_8300_get_hash_data(void* context); /** * Serialize data WSProtocolDecoderTX_8300. diff --git a/lib/subghz/protocols/wendox_w6726.c b/lib/subghz/protocols/wendox_w6726.c index a5ef0a026..a9a05f016 100644 --- a/lib/subghz/protocols/wendox_w6726.c +++ b/lib/subghz/protocols/wendox_w6726.c @@ -255,10 +255,10 @@ void ws_protocol_decoder_wendox_w6726_feed(void* context, bool level, uint32_t d } } -uint8_t ws_protocol_decoder_wendox_w6726_get_hash_data(void* context) { +uint32_t ws_protocol_decoder_wendox_w6726_get_hash_data(void* context) { furi_assert(context); WSProtocolDecoderWendoxW6726* 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); } diff --git a/lib/subghz/protocols/wendox_w6726.h b/lib/subghz/protocols/wendox_w6726.h index 236777a1c..3043c6b71 100644 --- a/lib/subghz/protocols/wendox_w6726.h +++ b/lib/subghz/protocols/wendox_w6726.h @@ -49,7 +49,7 @@ void ws_protocol_decoder_wendox_w6726_feed(void* context, bool level, uint32_t d * @param context Pointer to a WSProtocolDecoderWendoxW6726 instance * @return hash Hash sum */ -uint8_t ws_protocol_decoder_wendox_w6726_get_hash_data(void* context); +uint32_t ws_protocol_decoder_wendox_w6726_get_hash_data(void* context); /** * Serialize data WSProtocolDecoderWendoxW6726. diff --git a/lib/subghz/protocols/x10.c b/lib/subghz/protocols/x10.c index fbc95b13e..546fce550 100644 --- a/lib/subghz/protocols/x10.c +++ b/lib/subghz/protocols/x10.c @@ -210,10 +210,10 @@ static void subghz_protocol_x10_check_remote_controller(SubGhzBlockGeneric* inst instance->btn = (((instance->data & 0x07000000) >> 24) | ((instance->data & 0xF800) >> 8)); } -uint8_t subghz_protocol_decoder_x10_get_hash_data(void* context) { +uint32_t subghz_protocol_decoder_x10_get_hash_data(void* context) { furi_assert(context); SubGhzProtocolDecoderX10* 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); } diff --git a/lib/subghz/protocols/x10.h b/lib/subghz/protocols/x10.h index 5fc67bf69..3fc3ce110 100644 --- a/lib/subghz/protocols/x10.h +++ b/lib/subghz/protocols/x10.h @@ -52,7 +52,7 @@ bool subghz_protocol_x10_validate(void* context); * @param context Pointer to a SubGhzProtocolDecoderFaacSLH instance * @return hash Hash sum */ -uint8_t subghz_protocol_decoder_x10_get_hash_data(void* context); +uint32_t subghz_protocol_decoder_x10_get_hash_data(void* context); /** * Serialize data SubGhzProtocolDecoderX10. diff --git a/lib/subghz/types.h b/lib/subghz/types.h index 369351066..ca059e551 100644 --- a/lib/subghz/types.h +++ b/lib/subghz/types.h @@ -78,7 +78,7 @@ typedef SubGhzProtocolStatus (*SubGhzDeserialize)(void* context, FlipperFormat* // Decoder specific typedef void (*SubGhzDecoderFeed)(void* decoder, bool level, uint32_t duration); typedef void (*SubGhzDecoderReset)(void* decoder); -typedef uint8_t (*SubGhzGetHashData)(void* decoder); +typedef uint32_t (*SubGhzGetHashData)(void* decoder); typedef void (*SubGhzGetString)(void* decoder, FuriString* output); // Encoder specific diff --git a/targets/f7/api_symbols.csv b/targets/f7/api_symbols.csv index 531cf8cc5..d53f71845 100644 --- a/targets/f7/api_symbols.csv +++ b/targets/f7/api_symbols.csv @@ -3165,6 +3165,7 @@ Function,+,subghz_protocol_blocks_crc8,uint8_t,"const uint8_t[], size_t, uint8_t Function,+,subghz_protocol_blocks_crc8le,uint8_t,"const uint8_t[], size_t, uint8_t, uint8_t" Function,+,subghz_protocol_blocks_get_bit_array,_Bool,"uint8_t[], size_t" Function,+,subghz_protocol_blocks_get_hash_data,uint8_t,"SubGhzBlockDecoder*, size_t" +Function,+,subghz_protocol_blocks_get_hash_data_long,uint32_t,"SubGhzBlockDecoder*, size_t" Function,+,subghz_protocol_blocks_get_parity,uint8_t,"uint64_t, uint8_t" Function,+,subghz_protocol_blocks_get_upload_from_bit_array,size_t,"uint8_t[], size_t, LevelDuration*, size_t, uint32_t, SubGhzProtocolBlockAlignBit" Function,+,subghz_protocol_blocks_lfsr_digest16,uint16_t,"const uint8_t[], size_t, uint16_t, uint16_t" @@ -3178,6 +3179,7 @@ Function,+,subghz_protocol_blocks_xor_bytes,uint8_t,"const uint8_t[], size_t" Function,+,subghz_protocol_came_atomo_create_data,_Bool,"void*, FlipperFormat*, uint32_t, uint16_t, SubGhzRadioPreset*" Function,+,subghz_protocol_decoder_base_deserialize,SubGhzProtocolStatus,"SubGhzProtocolDecoderBase*, FlipperFormat*" Function,+,subghz_protocol_decoder_base_get_hash_data,uint8_t,SubGhzProtocolDecoderBase* +Function,+,subghz_protocol_decoder_base_get_hash_data_long,uint32_t,SubGhzProtocolDecoderBase* Function,+,subghz_protocol_decoder_base_get_string,_Bool,"SubGhzProtocolDecoderBase*, FuriString*" Function,+,subghz_protocol_decoder_base_serialize,SubGhzProtocolStatus,"SubGhzProtocolDecoderBase*, FlipperFormat*, SubGhzRadioPreset*" Function,-,subghz_protocol_decoder_base_set_decoder_callback,void,"SubGhzProtocolDecoderBase*, SubGhzProtocolDecoderBaseRxCallback, void*"