I’m trying to set my bar object symmetrical but it doesn’t seem to work. The bar still runs from left to right only. Am I doing something wrong?
#include “gui.h”
Gui::Gui()
{
updateCount = 0;
directionUp = true;
/LittlevGL init/
lv_init();
/Linux frame buffer device init/
fbdev_init();
lv_disp_buf_init(&disp_buf, buf, NULL, dispBufSize);
/Initialize and register a display driver/
lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
disp_drv.buffer = &disp_buf;
disp_drv.flush_cb = fbdev_flush;
lv_disp_drv_register(&disp_drv);
bar = lv_bar_create(lv_scr_act(), NULL);
lv_obj_set_size(bar, 200, 30);
lv_obj_align(bar, NULL, LV_ALIGN_CENTER, 0, 0);
// lv_bar_set_anim_time(bar, 10000);
lv_bar_set_sym(bar, true);
lv_bar_set_value(bar, 1, LV_ANIM_OFF);
}
Gui::~Gui()
{
}
bool Gui::update()
{
lv_tick_inc(5);
lv_task_handler();
updateCount += 5;
if ((updateCount % guiUpdateIntervalInMilliseconds) == 0)
{
int16_t valueCur = lv_bar_get_value(bar);
int16_t valueNew;
if (valueCur == 100)
{
directionUp = false;
}
if (valueCur == 0)
{
directionUp = true;
}
if (directionUp)
{
valueNew = valueCur + 1;
}
else
{
valueNew = valueCur - 1;
}
lv_bar_set_value(bar, valueNew, false);
// updateCount = 0;
}
if (updateCount > 10000)
{
return false;
}
return true;
}