comp.lang.ada
 help / color / mirror / Atom feed
From: Ludovic Brenta <ludovic@ludovic-brenta.org>
Subject: Re: Programming graphic systems
Date: Thu, 23 Apr 2009 14:31:37 -0700 (PDT)
Date: 2009-04-23T14:31:37-07:00	[thread overview]
Message-ID: <4287862f-b02a-4f43-85c4-f1d0cdd1b9ab@s20g2000yqh.googlegroups.com> (raw)
In-Reply-To: 49f03485$0$2849$ba620e4c@news.skynet.be

Olivier Scalbert wrote on comp.lang.ada:
> When playing with my GPS, I was thinking of the beautiful graphic
> systems used in safety critical environment (medical, aircraft, ATC, ...).
> I assume lots of them must be written in Ada. I was asking myself how
> are they programmed mainly at the graphic level. Does the application
> part use a graphic toolkit provided by the graphic board manufacturer or
> do you have to program all the graphic primitives yourself in Ada (as
> Bresenham line algorithm, ...) and written to the raster memory (which
> must be very cool!) ?

Until a couple of years ago, I used to work for Barco avionics [1,2]
and indeed most of our devices were programmed in Ada. We wrote our
own display drivers in Ada; they worked by writing into the graphics
processor's registers over PCI and I2C.  For bitmaps and video, we
would write into a RAM buffer then point the graphics board to the
buffer (i.e. write the address of the buffer in a register of the
board).  However, to draw the geometrical symbols for the flight
instruments, we would of course use the hardware primitives rather
than reimplement them in software.  After writing a command and
parameters in a set of registers, we would wait for a completion flag
to become true in another register.

[1] http://www.barco.com/aerospace
[2] http://www.cs.kuleuven.ac.be/~dirk/ada-belgium/events/07/070612-abga.html

For air (or rail, or seaport) traffic control, Barco also offers
2048x2048-pixel liquid crystal displays with an X server embedded in
them.  I didn't work in that division so I can't provide any more
details.

Nowadays I work in air traffic flow management [3] and we use an in-
house binding to Motif for older screens and GtkAda for newer ones.
ETFMS is a mission-critical, soft-real-time, distributed application.
It is neither life-critical (i.e. nobody dies if it crashes) nor
embedded (i.e. no DO-178B certification is needed) and the real-time
requirements are in seconds, not micro- or nanoseconds, so we can use
mainstream graphical subsystems (i.e. X11 on "normal" workstations and
servers).

[3] http://www.cfmu.eurocontrol.int/cfmu/public/standard_page/developments_etfms_index.html

--
Ludovic Brenta.



  parent reply	other threads:[~2009-04-23 21:31 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-23  9:27 Programming graphic systems Olivier Scalbert
2009-04-23 11:54 ` Martin
2009-04-23 19:17 ` Paul Zacharzewski
2009-04-23 23:55   ` Samuel Tardieu
2009-04-27  1:54     ` Paul Zacharzewski
2009-04-23 21:01 ` nobody
2009-04-24 18:37   ` Olivier Scalbert
2009-04-23 21:31 ` Ludovic Brenta [this message]
2009-04-24 19:22 ` Dimonax
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox