Path: csiph.com!optima2.xanadu-bbs.net!xanadu-bbs.net!feeder.erje.net!us.feeder.erje.net!news2.arglkargh.de!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Stefan Reuther Newsgroups: comp.arch.embedded Subject: Re: Design pattern: refresh-based or event-based? Date: Wed, 22 Jul 2015 18:30:39 +0200 Lines: 36 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-Trace: individual.net khh8ag74IzTaY2u2erxfbQTNJSZLbzgigBJyzO50ujW42BroxN Cancel-Lock: sha1:Uwo5uQ6aLkAXa8a+SKxXR6gUW0M= User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3.1) Gecko/20030425 Hamster/2.1.0.1538 X-Accept-Language: en-us, en In-Reply-To: Xref: csiph.com comp.arch.embedded:21439 pozz wrote: > Il 21/07/2015 14:40, Hans-Bernhard Bröker ha scritto: >> Well, you did post this to c.a.embedded, where we usually assume that >> some degree of real-time constraint will be in place. In the case of >> your display update that means the system almost certainly _must_ be >> able to handle the case where everything _does_ change, anyway, and >> without breaking the timing constraints. So if you must be able to do >> it sometimes, it may well be better to just do it all the time, if only >> to reduce the variation of CPU load caused by it, and to increase >> overall predictability of the system's behaviour. > > I got your point, but HMIs are't usually hard real-time systems. I could > accept a short delay in opening a new screen (completely redraw of the > display, think of opening an application on Windows), but I'd prefer to > have a responsive interface after this time. > > If I don't have a powerful graphical CPU, one solution to improve > responsiveness could be to update on the display only the values that > really change. Mostly if most of them change very slowly. You were referring to a high-resolution TFT display, so you'll probably have quite a lot of RAM (or are you building your screen like this computer: ? Then you're in deep trouble :-). Lots of RAM means a processor with quite a few bits and MHz, so redrawing a full screen of new values should be well possible. It's only a few bitblts and fills; people were doing full-screen 3-D with 66 MHz 486's 20 years ago. Long story short: I would not optimize for minimum redraw, but for simplicity. Probably not redraw the whole wallpaper each time, but every gauge. Stefan