comp.lang.ada
 help / color / mirror / Atom feed
* Programming graphic systems
@ 2009-04-23  9:27 Olivier Scalbert
  2009-04-23 11:54 ` Martin
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Olivier Scalbert @ 2009-04-23  9:27 UTC (permalink / raw)


Hello,

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!) ?

Thanks for your info,

Olivier



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Programming graphic systems
  2009-04-23  9:27 Programming graphic systems Olivier Scalbert
@ 2009-04-23 11:54 ` Martin
  2009-04-23 19:17 ` Paul Zacharzewski
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Martin @ 2009-04-23 11:54 UTC (permalink / raw)


On Apr 23, 10:27 am, Olivier Scalbert <olivier.scalb...@algosyn.com>
wrote:
> Hello,
>
> 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!) ?
>
> Thanks for your info,
>
> Olivier


For aircraft, you usually have an OpenGL API to the graphics card,
though I'm not aware of any 'safety critical' display systems, Do-178B/
Level C is fairly typical. I'm sure there must be Level A/B display
systems...

In older systems, you might have a cursive display and primitives
provided by your (often) bespoke hardware (e.g. move, draw_to, fill,
etc). You then create 'scripts' to draw what you need.

Cheers
-- Martin



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Programming graphic systems
  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-23 21:01 ` nobody
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Paul Zacharzewski @ 2009-04-23 19:17 UTC (permalink / raw)


Olivier Scalbert wrote:
> Hello,
> 
> 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!) ?
> 
> Thanks for your info,
> 
> Olivier
I remember reading about an X11 system rewritten in Ada, a while ago.
Does anyone else knows something about this?

Paul.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Programming graphic systems
  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 21:01 ` nobody
  2009-04-24 18:37   ` Olivier Scalbert
  2009-04-23 21:31 ` Ludovic Brenta
  2009-04-24 19:22 ` Dimonax
  4 siblings, 1 reply; 9+ messages in thread
From: nobody @ 2009-04-23 21:01 UTC (permalink / raw)


Olivier Scalbert wrote:
> Hello,
> 
> 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!) ?

I'd say glass cockpits are pretty new. At least for civil aircrafts. And 
my guess is that most would use something like scade.

http://www.esterel-technologies.com/products/scade-display/

I'm not associated with them in any way and the price-tag for systems 
like these would likely be in the same range as the paychecks for the 
managers at GM or Leeman Brothers. Perhaps combined. It would anyway 
probably be cheaper than developing your own solution.

/N




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Programming graphic systems
  2009-04-23  9:27 Programming graphic systems Olivier Scalbert
                   ` (2 preceding siblings ...)
  2009-04-23 21:01 ` nobody
@ 2009-04-23 21:31 ` Ludovic Brenta
  2009-04-24 19:22 ` Dimonax
  4 siblings, 0 replies; 9+ messages in thread
From: Ludovic Brenta @ 2009-04-23 21:31 UTC (permalink / raw)


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.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Programming graphic systems
  2009-04-23 19:17 ` Paul Zacharzewski
@ 2009-04-23 23:55   ` Samuel Tardieu
  2009-04-27  1:54     ` Paul Zacharzewski
  0 siblings, 1 reply; 9+ messages in thread
From: Samuel Tardieu @ 2009-04-23 23:55 UTC (permalink / raw)


>>>>> "Paul" == Paul Zacharzewski <paul@ipquickly.com> writes:

Paul> I remember reading about an X11 system rewritten in Ada, a while
Paul> ago.  Does anyone else knows something about this?

Are you referring to XInada?

http://www.topgraphx.com/version_am/fichier_prod_xinada.htm

  Sam
-- 
Samuel Tardieu -- sam@rfc1149.net -- http://www.rfc1149.net/



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Programming graphic systems
  2009-04-23 21:01 ` nobody
@ 2009-04-24 18:37   ` Olivier Scalbert
  0 siblings, 0 replies; 9+ messages in thread
From: Olivier Scalbert @ 2009-04-24 18:37 UTC (permalink / raw)


nobody wrote:
 > managers at GM or Leeman Brothers. Perhaps combined. It would anyway
 > probably be cheaper than developing your own solution.

Hi Nobody !

Thanks for the info. Do not worry, I am not going to develop my own 
solution. I am just curious (too curious ?)!
;-)

Olivier





^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Programming graphic systems
  2009-04-23  9:27 Programming graphic systems Olivier Scalbert
                   ` (3 preceding siblings ...)
  2009-04-23 21:31 ` Ludovic Brenta
@ 2009-04-24 19:22 ` Dimonax
  4 siblings, 0 replies; 9+ messages in thread
From: Dimonax @ 2009-04-24 19:22 UTC (permalink / raw)


On Thu, 23 Apr 2009 11:27:59 +0200, Olivier Scalbert wrote:

> Hello,
> 
> 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!) ?
> 
> Thanks for your info,
> 
> Olivier

Actually if you know how to write callbacks to a C API with Ada, then 
getting started isn't all that complicated. There are a few people even 
in this newsgroup that have written small graphics engines on the OpenGL 
API.

However if you plan to utilize tasking and such for your programs, you'll 
need access to the technical documentation of your video hardware, since 
OpenGL isn't multithreaded and DirectX is pretty much a black box when it 
comes to serious graphics programming. You might find a graphics card 
vendor who's drivers also include non-standard support for tasks and 
threads, but it's unlikely.

Of course I'm referring to the common hardware your likely to find at 
your local computer shop. The requirements for the big multimillion 
dollar flight sims are going to be completely different.

I played with this a few years ago using a Matrox G400 video card and the 
documentation which, at the time, was freely available. It can be done, 
and done well, but it takes a lot of patience to get it running.

Also if your running on Linux, you'll find the half-in kernelspace half-
in userspace architecture infuriating(one reason I decided to write my 
own driver.)

The best card to learn the ins and outs of this type of programming, with 
any language(not just Ada) is one where the tech docs are open. Lately 
ATI has been pretty fortcoming with thier tech docs, so I'd start with 
them.

Freejack




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Programming graphic systems
  2009-04-23 23:55   ` Samuel Tardieu
@ 2009-04-27  1:54     ` Paul Zacharzewski
  0 siblings, 0 replies; 9+ messages in thread
From: Paul Zacharzewski @ 2009-04-27  1:54 UTC (permalink / raw)


Samuel Tardieu wrote:
> 
> Are you referring to XInada?
> 
> http://www.topgraphx.com/version_am/fichier_prod_xinada.htm
> 
>   Sam

I think that's it.

Thanks.

Paul.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-04-27  1:54 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2009-04-24 19:22 ` Dimonax

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