What MCU/Processor/Board and compiler are you using?
stm32h7
What LVGL version are you using?
LVGL7.11
What do you want to achieve?
accelerate the update speed of the TA
What have you tried so far?
Code to reproduce
Add a code snippet which can run in the simulator. It should contain only the relevant code that compiles without errors when separated from your main code base.
The code block(s) should be formatted like:
/*You code here*/
Screenshot and/or video
If possible, add screenshots and/or videos about the current state.
Hi, embeddedt,
I have a TA created on the CHART widget. The CHART is displaying the realtime waveform of the analog input signal and updated around 15Hz. The TA is to display the measured information of the waveform updated around 0.1Hz and the length of the information string will be 500 to 1000 . I found a large time cost, reach 1-3s, when the TA is updating .
May I have your advice on how to accelerate the update speed of the TA updating?
Hi,
Some one could help?
More information, I am running the true double framebuffer of 1024*600 and the refresh rate of TFT should aroud 40Hz ,which take a large part of the memory bandwidth. I was wondring if there have some trick to set some style of the TA to save the time to refresh the TA on the background CHART.
The amount of time penalty you are seeing seems high and is strange, are you able to share any of the associated code?
Is there any event handler associated with the TA?
Also is the TA read only? Can it be changed to a Label if it is read only? This would probably reduce some overhead.
Also I recently observed whilst migrating one of my projects from V7.0 to V8.0 I had some issues when placing objects on a chart with the chart as a parent of the object. Due to high work load right now I haven’t had time to explore this but, I found a quick and dirty work around was to put the items over the chart with the active screen as the parent aligning them to the chart with the lv_obj_align_to() function and bringing them to the foreground using the lv_obj_move_foreground() function.
The code is simple and I just create the TA on the CHART and set the DRAG mode as below.
lv_textarea_set_scrollbar_mode(my_ta, LV_SCROLLBAR_MODE_DRAG);
The time to refresh the TA increased with the text length clearly.
There haven’t any more event handler except the default one associated with the TA.
I prefer the TA insdead of the LABLE as it it easy to add more text to it.
You also mention the issue when create object on CHART and could your detail more on the work around?
Can I ask are you definitely using version 7.11 and not anything earlier? I know there were issues with the TA when it contained large quantities of text in the earlier versions of LVGL as it was me that prompted a change to the way it was handled to improve the performance.
Also can you confirm a number of lines or KBytes of text are added to the TA before it begins to slow down? Do you keep adding to it indefinitely or do you reset the text when it gets to a certain size?
Please ignore my comment about work around as I was moving from V7 to V8 and I don’t believe it is probably relevant.
Can you share any code snippets or information about the way the application is structured so any potential bottlenecks could be identified?
Is there some code you can produce that will run in the simulator which can be used to demonstrate the issue also?
Yes,I am running the version 7.11 . I am also planning to upgrade to the V8 later.
The max char of TA were set to 500 and will clear the TA when exceed by
lv_textarea_set_text(my_ta, “”);
There will have 250 to 300 char be updated each time with the 500-1000ms cost.
There have multi-task running base on my hardware and so hard to demonstrate it in the simulator .
I will try not to create the TA on the CHART and measure the change.
Hi, Pete, @pete-pjb
I have try not to place the TA on the CHART, but it is difficult to change the size of my CHART. So I am wondering if I could place a mask on the CHART to cover the place that the TA will take , in order to not to refresh the TA area when the CHART is refreshing. Is there any API support that purpose?