diff --git a/CHANGELOG.md b/CHANGELOG.md index 25f009470..248f74068 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,9 @@ - Authenticator: Confirm token export on Flipper (by @akopachov) - NFC Playlist: Allow delay up to 12s (by @xtruan) - BLE Spam: Fix delay help section (by @Willy-JL) -- Sub-GHz: Show Weather Station icon for WS signals (by @Willy-JL) +- Sub-GHz: + - Show Weather Station icon for WS signals (by @Willy-JL) + - Update Oregon 2 and 3 weather info display to new design (by @Willy-JL) - API: Publishing T5577 page 1 block count macro (by @zinongli) ### Fixed: diff --git a/lib/subghz/protocols/oregon2.c b/lib/subghz/protocols/oregon2.c index 2bd7de16e..b16a336a3 100644 --- a/lib/subghz/protocols/oregon2.c +++ b/lib/subghz/protocols/oregon2.c @@ -376,33 +376,22 @@ static void oregon2_append_check_sum(uint32_t fix_data, uint32_t var_data, FuriS // swap calculated sum nibbles sum = (((sum >> 4) & 0xF) | (sum << 4)) & 0xFF; if(sum == ref_sum) - furi_string_cat_printf(output, "Sum ok: 0x%hhX", ref_sum); + furi_string_cat_printf(output, "\r\nChkSm: 0x%02hhX ok", ref_sum); else - furi_string_cat_printf(output, "Sum err: 0x%hhX vs 0x%hhX", ref_sum, sum); + furi_string_cat_printf(output, "\r\nChkSm: 0x%02hhX != 0x%02hhX error", ref_sum, sum); } void ws_protocol_decoder_oregon2_get_string(void* context, FuriString* output) { furi_assert(context); WSProtocolDecoderOregon2* instance = context; - furi_string_cat_printf( - output, - "%s\r\n" - "ID: 0x%04lX, ch: %d,\r\nbat: %d, rc: 0x%02lX\r\n", - instance->generic.protocol_name, - instance->generic.id, - instance->generic.channel, - instance->generic.battery_low, - (uint32_t)(instance->generic.data >> 4) & 0xFF); + if(instance->var_bits == 0) { + // Funny fix based on old funny code, not sure if this is needed + instance->generic.temp = WS_NO_TEMPERATURE; + instance->generic.humidity = WS_NO_HUMIDITY; + } + ws_block_generic_get_string(&instance->generic, output); if(instance->var_bits > 0) { - furi_string_cat_printf( - output, - "Temp:%d.%d C Hum:%d%%", - (int16_t)instance->generic.temp, - abs( - ((int16_t)(instance->generic.temp * 10) - - (((int16_t)instance->generic.temp) * 10))), - instance->generic.humidity); oregon2_append_check_sum((uint32_t)instance->generic.data, instance->var_data, output); } } diff --git a/lib/subghz/protocols/oregon3.c b/lib/subghz/protocols/oregon3.c index f70f5ce4a..4e7b1458b 100644 --- a/lib/subghz/protocols/oregon3.c +++ b/lib/subghz/protocols/oregon3.c @@ -312,33 +312,22 @@ static void oregon3_append_check_sum(uint32_t fix_data, uint64_t var_data, FuriS // swap calculated sum nibbles sum = (((sum >> 4) & 0xF) | (sum << 4)) & 0xFF; if(sum == ref_sum) - furi_string_cat_printf(output, "Sum ok: 0x%hhX", ref_sum); + furi_string_cat_printf(output, "\r\nChkSm: 0x%02hhX ok", ref_sum); else - furi_string_cat_printf(output, "Sum err: 0x%hhX vs 0x%hhX", ref_sum, sum); + furi_string_cat_printf(output, "\r\nChkSm: 0x%02hhX != 0x%02hhX error", ref_sum, sum); } void ws_protocol_decoder_oregon3_get_string(void* context, FuriString* output) { furi_assert(context); WSProtocolDecoderOregon3* instance = context; - furi_string_cat_printf( - output, - "%s\r\n" - "ID: 0x%04lX, ch: %d,\r\nbat: %d, rc: 0x%02lX\r\n", - instance->generic.protocol_name, - instance->generic.id, - instance->generic.channel, - instance->generic.battery_low, - (uint32_t)(instance->generic.data >> 4) & 0xFF); + if(instance->var_bits == 0) { + // Funny fix based on old funny code, not sure if this is needed + instance->generic.temp = WS_NO_TEMPERATURE; + instance->generic.humidity = WS_NO_HUMIDITY; + } + ws_block_generic_get_string(&instance->generic, output); if(instance->var_bits > 0) { - furi_string_cat_printf( - output, - "Temp:%d.%d C Hum:%d%%", - (int16_t)instance->generic.temp, - abs( - ((int16_t)(instance->generic.temp * 10) - - (((int16_t)instance->generic.temp) * 10))), - instance->generic.humidity); oregon3_append_check_sum((uint32_t)instance->generic.data, instance->var_data, output); } } diff --git a/lib/subghz/protocols/ws_generic.c b/lib/subghz/protocols/ws_generic.c index a29c00b31..d3d7a9af7 100644 --- a/lib/subghz/protocols/ws_generic.c +++ b/lib/subghz/protocols/ws_generic.c @@ -219,7 +219,7 @@ void ws_block_generic_get_string(WSBlockGeneric* instance, FuriString* output) { furi_string_cat_printf( output, - "Data:0x%lX%08lX\r\n", + "Data: 0x%lX%08lX\r\n", (uint32_t)(instance->data >> 32), (uint32_t)(instance->data));