2022-06-29 09:19 AM
Hi,
I have integrated with lwIP and freeRTOS a VNC server on a STM32H757-EVAL.
A VNC client works fine and I can see on it the first frame buffer drawn by the application; according to the VNC standard, the server should send a "new tile" (a square of pixel) to re-draw the frame buffer changed (if something happens and change it - i.e. slider, button clicked, etc..).
Is there any function or method to understand which pixel (or pixelS) has changed (in term of X and Y coordinates) from the previous frame buffer?
In this way, I can recreate a new tile and send it to the VNC client without re-send every time the whole frame buffer using less bandwidth.
Thanks for your help.
Regards.
Solved! Go to Solution.
2022-09-19 01:51 AM
Sorry for the late reply...
Code is still too dirty and full of hacks and I am not ready to publish it. Basically it is the same ECOS VNC server code where OS functions ported to the corresponding CMSISv2 functions.
2022-09-19 08:40 AM
Thank you for reply. Is this the source code you started from :
https://github.com/kaos/ecos/tree/master/packages/net/vnc_server/current
?
Regards, Jure
2022-09-19 09:09 AM
Yes, this is it.
2022-09-19 09:14 AM
vnc-server and vnc-mouse are only files needed since I do not need a hardware keyboard support and no drawing/printing functionality is needed because TouchGFX does all graphics.
Please note that killing framebuffer task the way it is written here will kill whole FreeRTOS, so I just suspend framebuffer task functionality when VNC is not running.
And if you have double framebuffer strategy for TouchGFX then make sure you are reading correct framebuffer.
I use RGB565 color space and only VNC client I was able to use is RealVNC.
2022-09-19 09:32 AM
Thank you. I will give it a try. I already implemented fully working vnc from stemwin lib with touchgfx. It works with real vnc and any other client. However, I have problems with the vnc server freezing up occasionally and not being able to connect again until I reset the board. It freezes in a process that is part of the stemwin lib, which is very difficult to debug.
Regards,
J
2022-09-19 01:19 PM
Ecos code is working now for 12 hours and at the moment have 30GB of data received. No hang ups during session.