In my first posting, I wrote about continue Headunit on a new project called studio4car.
This project has been created and I've started with experiment, change some parts of the original source code and implement of new things.
But all this static stuff it does not makes me really happy. All functions and buttons and others are implemented static in the program. For each extension you have to compile and build new.
So I've decided not to continue on this way and started to develop a new program that is applicable universally. Based on a system known from the industry, called visualisation, hmi or scada.
http://en.wikipedia.org/wiki/SCADA
Example:
With a such system you can create a lot of screens with lots of objects like buttons, labels, sliders and other special objects(e.g. browser, file editor), stored on a configuration file. Each button can send an event to a function or some other objects.
A label can display static text or a text stored in a variable. The data system provides variables and functions. The variables can communicate with objects and other devices trought communication drivers (e.g. RS232).
Normally a hmi provides two modes: a edit mode to modify the configuration in a graphical object editor, and a runtime mode.
So, now, my plans and ideas in clear words as roadmap:
Project name:
studio4visual
1. base hmi system in runtime mode
- collection of screen objects (e.g. button, number, text, datetime, branch, window,...)
- data system with a function editor, variables and a collection of variable data types (e.g. number, event, text, ...)
- configuration as xml and/or on a database
- plugin interface for screen objects
- plugin interface for system functions (e.g. master volume, disk eject, ...)
2. screen object plugins
- a mediaplayer plugin
- a navigation plugin (as far as possible)
- some communication plugins (phone, internet,...)
- some service plugins (settings, OBD, ...)
3. hmi edit mode
- graphical object editor
4. communication driver plugins
- plugin interface for communication drivers
- communication drivers (e.g. RS232, database, ...)
Develop environment:
- C++, QT3, QT4 (as far as possible)
- KDevelop, Eclipse
- config file as XML file and/or on a SQL database (MySql)
- project on sourceforge.net (soon...)
Of course, this work is not done in two weeks ;-)
About help:
It's great to see, others are interessed in help with develop.
But first, let me create the base system (most important parts) and some specification papers (e.g. plugins api).
Then, everybody, who likes, can help on this project.
I hope, I can publish the first developer release soon...