Hi All,
Here i am using a TFT display for RZ/A1H, Here we are using Guiliani developed a GUI . The data whatever received from CAN has to display on the screen and it is working fine, But while on each update the screen is flickering especially if any animation or text update happen, please suggest a solution to avoid the flickering. Also please suggest the reason and rootcause for the above
Hello,
to analyse your problem in the best way, we need additional information.
- what version of Guiliani are you using
- can you describe the design of the dialog (how many layers, special widgets)
- are you using a datapool-element to update the value in our GUI
- are there any other access to the framebuffer
In general Guiliani will own the framebuffer and update it when there are changes on the screen.
If the framebuffer of such an invalidated region is changed, Guiliani is likely to overwrite the contents.
Flickering of elements on the screen can only happen if the currently displayed framebuffer (when using double-buffering) is changed instead of the off-screen-framebuffer (render-buffer).
Best Regards,
Guiliani Support
1) Guiliani version that we used : 2.3
2) We used a single layer and no special widgets used i.e the flickering area has text and images in different locations
3) No Datapool elements used
4) No other access to the framebuffer
when not using a Datapool-element, how is the value coming from CAN updated inside the GUI? is there any special logic which accesses the GUI-element and changes the value?
In general when values from outside of the Guiliani-application (e.g. other tasks or peripherals) should update GUI-elements it is strongly advised to use Datapool-elements and define the GUI-element as an observer. This Datapool-element can be modified from outside of Guiliani in a thread-safe way. The update of the GUI-element is automatically done by Guiliani in the next iteration of the main-loop.
To investigate the flickering more you can set breakpoints inside the function "GrpDrv_SetFrameBuffer" in the file <Application>/Common/Source/FreeRTOS/StreamRuntime_GraphicRZA.cpp. In this function a call to "R_RVAPI_GraphChangeSurfaceVDC" is done which will effectively change the framebuffer which is currently displayed.
Hi
In case of CGUITextField and CGUIGauge components we use SetValue(value) to update the value in the UI.
We will try with DATAPOOL beyond datapool what changes i have to make please guide for the necessary
Thanks