The Embedded Graphical Operation SystemThe Embedded Graphical Operation System

Software :: DominoOS
 

Introduction

The DominoOS is a small footprint open source embedded operation system with graphical interface. Originally it is developed for home automation system as a central control panel. However the operation system itself works without the graphical system or with the graphical system it's not limited to use only in home automation system.

Details

It's written in standard C language with separated driver modules so it's easy to port to virtually any eight bit or bigger processor. The operation system is build around a flexible and robust message queue and resource operation. 

The operation system uses resource file to store fonts, bitmaps, wave file, string lists, etc. The resource can be located eighter in the internal flash memory of the processor (e.q. in the case of ATmega128 64k of the total 128k flash memory is used to store progam code and another 64k used to store resources. The resource file generated by a resource compiler eighter in binary or intel hex format. Both can be directly programmed into the flash memory (even using a bootloader).

The resource compiler uses XML format to declare and define resource objects. The XML contans DTD (document type descriptor) to declare resurce objects. Using DTD any kind of resource (new type os buttons, sliders, boxes, etc.) can be declared without modifying the resource compiler. The resource compiler generates a standard C header file wich contains all of the declaration of the DTD in C language syntax. With this header file all of the generated binary resource data structure can be interpreted by using C language. The resource compiler is not limited to store graphical data only. It can be used to store any kind of structured binary or string data. Forget about the binary to C source converter programs.

Unique feature of this graphical system is the flexible messaging structure. One message or group of messages can be passed to a specific function using simple message filtering. The controls are not limited to send only one type of message. Any control can send any kind of message. Which means without any additional programming (writing event handler) a simple button can have different functions depending on which message is assigned to the button. The controls also can catch and respond to any message. A label can display data from any received message without any further programming. Forget to write event handlers, only assign messages to the controls.


PC emulation main screen


PC emulation another sceen



320x240 5" real LCD

Features:

  • Embedded graphical OS written in C 
  • Modular design for easy portability
  • Cooperative multitasking via message queue and advanced message filtering
  • Resource file support (internal or external flash memory)
  • Flexible resource file format
  • Support for any raster font, 8bit-8kHz wav file and monochrome bitmap
  • Resistive touch screen driver

Download

  • PC emulation version: DominoOS_PCdemo.zip
  • Source code: coming soon
  • Documentation: coming soon

Attention

  • Because of our limited human resources the development of this system is very slow. If you have free time and want to join to this project (as a programmer, documentation writer or graphical artist) you are welcome. Please contact us for further details.