diff --git a/applications/plugins/weather_station/protocols/acurite_592txr.c b/applications/plugins/weather_station/protocols/acurite_592txr.c index 087ce1b52..5384a3c91 100644 --- a/applications/plugins/weather_station/protocols/acurite_592txr.c +++ b/applications/plugins/weather_station/protocols/acurite_592txr.c @@ -144,13 +144,6 @@ static void ws_protocol_acurite_592txr_remote_controller(WSBlockGeneric* instanc instance->temp = ((float)(temp_raw)-1000) / 10.0f; instance->btn = WS_NO_BTN; - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_acurite_592txr_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/acurite_606tx.c b/applications/plugins/weather_station/protocols/acurite_606tx.c index 8dfbe1363..4cb5d18b8 100644 --- a/applications/plugins/weather_station/protocols/acurite_606tx.c +++ b/applications/plugins/weather_station/protocols/acurite_606tx.c @@ -123,13 +123,6 @@ static void ws_protocol_acurite_606tx_remote_controller(WSBlockGeneric* instance } instance->btn = WS_NO_BTN; instance->humidity = WS_NO_HUMIDITY; - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_acurite_606tx_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/acurite_609txc.c b/applications/plugins/weather_station/protocols/acurite_609txc.c index 89a168100..aeb0785eb 100644 --- a/applications/plugins/weather_station/protocols/acurite_609txc.c +++ b/applications/plugins/weather_station/protocols/acurite_609txc.c @@ -123,13 +123,6 @@ static void ws_protocol_acurite_609txc_remote_controller(WSBlockGeneric* instanc instance->temp = (temp_raw >> 4) * 0.1f; instance->humidity = (instance->data >> 8) & 0xff; instance->btn = WS_NO_BTN; - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_acurite_609txc_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/ambient_weather.c b/applications/plugins/weather_station/protocols/ambient_weather.c index 3f19033ec..5ae22b790 100644 --- a/applications/plugins/weather_station/protocols/ambient_weather.c +++ b/applications/plugins/weather_station/protocols/ambient_weather.c @@ -160,13 +160,6 @@ static void ws_protocol_ambient_weather_remote_controller(WSBlockGeneric* instan ERROR; } */ - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_ambient_weather_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/auriol_hg0601a.c b/applications/plugins/weather_station/protocols/auriol_hg0601a.c index 252565292..d5f89fc8b 100644 --- a/applications/plugins/weather_station/protocols/auriol_hg0601a.c +++ b/applications/plugins/weather_station/protocols/auriol_hg0601a.c @@ -1,6 +1,3 @@ -#include -#include - #include "auriol_hg0601a.h" #define TAG "WSProtocolAuriol_TH" @@ -136,13 +133,6 @@ static void ws_protocol_auriol_th_remote_controller(WSBlockGeneric* instance) { } instance->humidity = (instance->data >> 1) & 0x7F; - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_auriol_th_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/gt_wt_02.c b/applications/plugins/weather_station/protocols/gt_wt_02.c index 5edb1947c..cbe119192 100644 --- a/applications/plugins/weather_station/protocols/gt_wt_02.c +++ b/applications/plugins/weather_station/protocols/gt_wt_02.c @@ -135,12 +135,6 @@ static void ws_protocol_gt_wt_02_remote_controller(WSBlockGeneric* instance) { instance->temp = (float)((~(instance->data >> 13) & 0x07FF) + 1) / -10.0f; } - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - instance->agedata = curr_ts; - instance->humidity = (instance->data >> 6) & 0x7F; if(instance->humidity <= 10) // actually the sensors sends 10 below working range of 20% instance->humidity = 0; diff --git a/applications/plugins/weather_station/protocols/gt_wt_03.c b/applications/plugins/weather_station/protocols/gt_wt_03.c index 1e601e523..7831cf069 100644 --- a/applications/plugins/weather_station/protocols/gt_wt_03.c +++ b/applications/plugins/weather_station/protocols/gt_wt_03.c @@ -179,13 +179,6 @@ static void ws_protocol_gt_wt_03_remote_controller(WSBlockGeneric* instance) { } else { instance->temp = (float)((~(instance->data >> 9) & 0x07FF) + 1) / -10.0f; } - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_gt_wt_03_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/infactory.c b/applications/plugins/weather_station/protocols/infactory.c index 978b837f2..2d444d981 100644 --- a/applications/plugins/weather_station/protocols/infactory.c +++ b/applications/plugins/weather_station/protocols/infactory.c @@ -148,13 +148,6 @@ static void ws_protocol_infactory_remote_controller(WSBlockGeneric* instance) { instance->humidity = (((instance->data >> 8) & 0x0F) * 10) + ((instance->data >> 4) & 0x0F); // BCD, 'A0'=100%rH instance->channel = instance->data & 0x03; - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_infactory_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/lacrosse_tx141thbv2.c b/applications/plugins/weather_station/protocols/lacrosse_tx141thbv2.c index 8837f730b..e4b612250 100644 --- a/applications/plugins/weather_station/protocols/lacrosse_tx141thbv2.c +++ b/applications/plugins/weather_station/protocols/lacrosse_tx141thbv2.c @@ -123,13 +123,6 @@ static void ws_protocol_lacrosse_tx141thbv2_remote_controller(WSBlockGeneric* in instance->channel = ((instance->data >> 29) & 0x03) + 1; instance->temp = ((float)((instance->data >> 17) & 0x0FFF) - 500.0f) / 10.0f; instance->humidity = (instance->data >> 9) & 0xFF; - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_lacrosse_tx141thbv2_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/nexus_th.c b/applications/plugins/weather_station/protocols/nexus_th.c index 132e38050..7d4a77aea 100644 --- a/applications/plugins/weather_station/protocols/nexus_th.c +++ b/applications/plugins/weather_station/protocols/nexus_th.c @@ -135,13 +135,6 @@ static void ws_protocol_nexus_th_remote_controller(WSBlockGeneric* instance) { } instance->humidity = instance->data & 0xFF; - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_nexus_th_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/thermopro_tx4.c b/applications/plugins/weather_station/protocols/thermopro_tx4.c index 29aaf0b35..0882bc33d 100644 --- a/applications/plugins/weather_station/protocols/thermopro_tx4.c +++ b/applications/plugins/weather_station/protocols/thermopro_tx4.c @@ -132,13 +132,6 @@ static void ws_protocol_thermopro_tx4_remote_controller(WSBlockGeneric* instance } instance->humidity = (instance->data >> 1) & 0xFF; - - //DATE AGE set - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - - instance->agedata = curr_ts; } void ws_protocol_decoder_thermopro_tx4_feed(void* context, bool level, uint32_t duration) { diff --git a/applications/plugins/weather_station/protocols/ws_generic.c b/applications/plugins/weather_station/protocols/ws_generic.c index f653a86a1..3a1c40726 100644 --- a/applications/plugins/weather_station/protocols/ws_generic.c +++ b/applications/plugins/weather_station/protocols/ws_generic.c @@ -99,11 +99,16 @@ bool ws_block_generic_serialize( break; } - temp_data = instance->agedata; - if(!flipper_format_write_uint32(flipper_format, "Old", &temp_data, 1)) { - FURI_LOG_E(TAG, "Unable to add agedata"); - break; - } + //DATE AGE set + FuriHalRtcDateTime curr_dt; + furi_hal_rtc_get_datetime(&curr_dt); + uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); + + temp_data = curr_ts; + if(!flipper_format_write_uint32(flipper_format, "Old", &temp_data, 1)) { + FURI_LOG_E(TAG, "Unable to add agedata"); + break; + } temp_data = instance->channel; if(!flipper_format_write_uint32(flipper_format, "Ch", &temp_data, 1)) { @@ -174,17 +179,17 @@ bool ws_block_generic_deserialize(WSBlockGeneric* instance, FlipperFormat* flipp } instance->humidity = (uint8_t)temp_data; - if(!flipper_format_read_uint32(flipper_format, "Old", (uint32_t*)&temp_data, 1)) { + if(!flipper_format_read_uint32(flipper_format, "Old", (uint32_t*)&temp_data, 1)) { FURI_LOG_E(TAG, "Missing agedata"); break; } instance->agedata = (uint32_t)temp_data; - if(!flipper_format_read_uint32(flipper_format, "Ch", (uint32_t*)&temp_data, 1)) { - FURI_LOG_E(TAG, "Missing Channel"); - break; - } - instance->channel = (uint8_t)temp_data; + if(!flipper_format_read_uint32(flipper_format, "Ch", (uint32_t*)&temp_data, 1)) { + FURI_LOG_E(TAG, "Missing Channel"); + break; + } + instance->channel = (uint8_t)temp_data; if(!flipper_format_read_uint32(flipper_format, "Btn", (uint32_t*)&temp_data, 1)) { FURI_LOG_E(TAG, "Missing Btn"); diff --git a/applications/plugins/weather_station/views/weather_station_receiver_info.c b/applications/plugins/weather_station/views/weather_station_receiver_info.c index fb04317c5..e5c1be42a 100644 --- a/applications/plugins/weather_station/views/weather_station_receiver_info.c +++ b/applications/plugins/weather_station/views/weather_station_receiver_info.c @@ -1,5 +1,3 @@ -#include -#include #include "weather_station_receiver.h" #include "../weather_station_app_i.h" #include "weather_station_icons.h" @@ -72,46 +70,54 @@ void ws_view_receiver_info_draw(Canvas* canvas, WSReceiverInfoModel* model) { snprintf(buffer, sizeof(buffer), "Data: 0x%llX", model->generic->data); canvas_draw_str(canvas, 5, 32, buffer); - //DATA AGE - if((int) model->generic->agedata > 0){ - FuriHalRtcDateTime curr_dt; - furi_hal_rtc_get_datetime(&curr_dt); - uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); + //DATA AGE + if((int)model->generic->agedata > 0) { + FuriHalRtcDateTime curr_dt; + furi_hal_rtc_get_datetime(&curr_dt); + uint32_t curr_ts = furi_hal_rtc_datetime_to_timestamp(&curr_dt); - int diffold = (int) curr_ts - (int) model->generic->agedata; + int diffold = (int)curr_ts - (int)model->generic->agedata; - if(diffold>60){ + if(diffold > 60) { + int tmp_sec = diffold; + int cnt_min = 1; + for(int i = 1; tmp_sec > 60; i++) { + tmp_sec = tmp_sec - 60; + cnt_min = i; + } + if(cnt_min >= 59) { + } - int tmp_sec = diffold; - int cnt_min = 1; - for(int i=1; tmp_sec>60; i++){ - tmp_sec = tmp_sec - 60; - cnt_min = i; - } + if(curr_ts % 2 == 0) { + canvas_set_color(canvas, ColorBlack); + canvas_draw_rframe(canvas, 97, 23, 26, 11, 1); + canvas_set_color(canvas, ColorBlack); + canvas_draw_str_aligned(canvas, 109, 29, AlignCenter, AlignCenter, "OLD"); + } else { + if(cnt_min >= 59) { + canvas_set_color(canvas, ColorBlack); + canvas_draw_rframe(canvas, 97, 23, 26, 11, 1); + canvas_set_color(canvas, ColorBlack); + canvas_draw_str_aligned(canvas, 109, 29, AlignCenter, AlignCenter, "OLD"); + } else { + canvas_set_color(canvas, ColorBlack); + canvas_draw_rframe(canvas, 97, 23, 26, 11, 1); + canvas_draw_box(canvas, 97, 23, 26, 11); + canvas_set_color(canvas, ColorWhite); + snprintf(buffer, sizeof(buffer), "%dm", cnt_min); + canvas_draw_str_aligned(canvas, 109, 29, AlignCenter, AlignCenter, buffer); + } + } - if ( curr_ts % 2 == 0){ - canvas_set_color(canvas, ColorBlack); - canvas_draw_rframe(canvas, 97, 23, 26, 11, 1); - canvas_set_color(canvas, ColorBlack); - canvas_draw_str_aligned(canvas, 109, 29, AlignCenter, AlignCenter, "OLD"); - }else{ - canvas_set_color(canvas, ColorBlack); - canvas_draw_rframe(canvas, 97, 23, 26, 11, 1); - canvas_draw_box(canvas, 97, 23, 26, 11); - canvas_set_color(canvas, ColorWhite); - snprintf(buffer, sizeof(buffer), "%dm", cnt_min); - canvas_draw_str_aligned(canvas, 109, 29, AlignCenter, AlignCenter, buffer); - } - - }else{ - canvas_set_color(canvas, ColorBlack); - canvas_draw_rframe(canvas, 97, 23, 26, 11, 1); - canvas_set_color(canvas, ColorBlack); - snprintf(buffer, sizeof(buffer), "%d", diffold); - canvas_draw_str_aligned(canvas, 109, 29, AlignCenter, AlignCenter, buffer); - } - } - //DATA AGE end + } else { + canvas_set_color(canvas, ColorBlack); + canvas_draw_rframe(canvas, 97, 23, 26, 11, 1); + canvas_set_color(canvas, ColorBlack); + snprintf(buffer, sizeof(buffer), "%d", diffold); + canvas_draw_str_aligned(canvas, 109, 29, AlignCenter, AlignCenter, buffer); + } + } + //DATA AGE end elements_bold_rounded_frame(canvas, 2, 37, 123, 25); canvas_set_font(canvas, FontPrimary);