Please help me. What can I do to prevent this from happening on my screen?
This needle overlap?
Is there a clear screen command?
My code is:
void v_Display(void *parameters){
float tempReceived;
char tempC_char[20];
while(1){
xQueueReceive(TempC_Queue, &tempReceived, pdMS_TO_TICKS(0));
sprintf(tempC_char, "%.2fºC", tempReceived);
if (xSemaphoreTake(xMutex, 100)) {
lv_meter_set_indicator_end_value(MyGauge[0], indic1[0], tempReceived);
lv_label_set_text(ui_lblTemp, tempC_char);
lv_label_set_text(ui_lblDataHora, datahora_formatadaX);
lv_timer_handler();
xSemaphoreGive(xMutex);
}
vTaskDelay(10 / portTICK_PERIOD_MS);
}
}
This code is started screen:
void My_Demo(int pos, void * panel){
//lv_obj_clean(lv_scr_act());
MyGauge[pos] = lv_meter_create(panel);
lv_obj_set_size(MyGauge[pos], 220, 220);
lv_obj_align(MyGauge[pos], LV_ALIGN_CENTER, 0, 0);
scale[0] = lv_meter_add_scale(MyGauge[pos]);
lv_meter_set_scale_ticks(MyGauge[pos], scale[0], gauge.Marcador_C, gauge.Marcador_Larg, gauge.Marcador_Alt, c_HexColor(gauge.Marcador_Color));
lv_meter_set_scale_major_ticks(MyGauge[pos], scale[0], gauge.MarcadorP_K, gauge.MarcadorP_Larg, gauge.MarcadorP_Alt, c_HexColor(gauge.MarcadorP_Color), gauge.Dist);
lv_meter_set_scale_range(MyGauge[pos], scale[0], gauge.R_Inicio, gauge.R_Fim, 180, 180);
if (gauge.F1_Ativar){
indic1[pos] = lv_meter_add_arc(MyGauge[pos], scale[0], gauge.F1_Larg, c_HexColor(gauge.F1_Color), gauge.F1_R);
lv_meter_set_indicator_start_value(MyGauge[pos], indic1[pos], gauge.F1_Inicio);
lv_meter_set_indicator_end_value(MyGauge[pos], indic1[pos], gauge.F1_Fim);
}
if (gauge.F2_Ativar){
indic2[pos] = lv_meter_add_arc(MyGauge[pos], scale[0], gauge.F2_Larg, c_HexColor(gauge.F2_Color), gauge.F2_R);
lv_meter_set_indicator_start_value(MyGauge[pos], indic2[pos], gauge.F2_Inicio);
lv_meter_set_indicator_end_value(MyGauge[pos], indic2[pos], gauge.F2_Fim);
}
if (gauge.F3_Ativar){
indic3[pos] = lv_meter_add_arc(MyGauge[pos], scale[0], gauge.F3_Larg, c_HexColor(gauge.F3_Color), gauge.F3_R);
lv_meter_set_indicator_start_value(MyGauge[pos], indic3[pos], gauge.F3_Inicio);
lv_meter_set_indicator_end_value(MyGauge[pos], indic3[pos], gauge.F3_Fim);
}
//Agulha
indic1[pos] = lv_meter_add_needle_line(MyGauge[pos], scale[0], gauge.Agulha_Larg, c_HexColor(gauge.Agulha_Color), gauge.Agulha_Alt);
lv_obj_set_style_bg_opa(MyGauge[pos], 0, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_radius(MyGauge[pos], 0, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_border_width(MyGauge[pos], 3, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_border_opa(MyGauge[pos], 181, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_border_color(MyGauge[pos], lv_color_hex(0xffffff), LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_border_side(MyGauge[pos], LV_BORDER_SIDE_NONE, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_shadow_width(MyGauge[pos], 0, LV_PART_MAIN|LV_STATE_DEFAULT);
lv_obj_set_style_text_color(MyGauge[pos], c_HexColor(gauge.Color), LV_PART_TICKS|LV_STATE_DEFAULT); //Branco
lv_obj_set_style_text_font(MyGauge[pos], &ui_font_Verdana16, LV_PART_TICKS|LV_STATE_DEFAULT);
//Write style for speed_MyGauge, Part: LV_PART_INDICATOR, State: LV_STATE_DEFAULT.
lv_obj_set_style_bg_opa(MyGauge[pos], 255, LV_PART_INDICATOR|LV_STATE_DEFAULT);
lv_obj_set_style_bg_color(MyGauge[pos], lv_color_hex(0x000000), LV_PART_INDICATOR|LV_STATE_DEFAULT);//Preto
}
@kdschlosser (Help me please)