Accesibility Menu:
Skip To Navigation:
Skip To Content:
News:
Download EngLab 0.3.0
EngLab forum
Login Below:
Username:
Password:
Login with username, password and session length
Main Menu:
Home
Forum
Help
Search
Calendar
Login
Register
Main Content:
EngLab forum
|
General Category
|
EngLab Developer Forum
|
EngLab Developer Documentation
|
EngLab project structure
Pages: [
1
]
Print
EngLab project structure
bobomastoras
Bug
Englab's Hero Member
Gender:
Posts: 821
EngLab project structure
«
on:
July 11, 2008, 01:32:29 AM »
In this topic an effort will be made to outline the structural "ingredients" of EngLab suite and their interconnection. Information will be limited and should be considered an introduction for new developers. More specific documents will be written providing information about sub-project features, code interfaces, data flow information, and file documentation. EngLab developer documentation is still "a work in progress". If you are interested in developing code for contribution to EngLab suite please fell free to ask any questions in the Developer Board. You should have an answer in a day or two.
EngLab project is divided into smaller sub-projects. Development can take place independently on the different sub-projects but the interface standard must be preserved in for the project to compile.
The sub-projects are the following:
- libenglab
- englab
- englabgui
- englab-image
- englab-cimg
- englab-special_functions
- englab-plot
- englab-matrix
- englab-serial
A brief description of each project
libenglab - The language interpreter
libenglab is a static library. All EngLab user interfaces and toolboxes link against it.
libenglab accepts user commands throw function
int hKernel::parse(std::string command)
The command is processed and its results are streamed to the output stream. The output stream by default is std::cout but it can be overridden by providing an ostream to hKernel's constructor. libenglab is responsible for all command interpretation and toolbox loading. Therefore all user interfaces will experience the same behavior.
englab - A console based user interface.
englab doesn't have must of development effort put into it. It simply reads characters from cin and groups them sequentially in a string. As soon as the line termination character is found ('\n') the string is passed to libenglab's method:
int hKernel::parse(std::string command)
Another job englab is responsible for is making system calls to certain programs that update the users configuration files. User configurations files should be altered in the following circumstances:
1
(
Read notice 1 for windows version
)
1) No user configurations files exist
2) A new toolbox has been added
3) A new toolbox has been removed
4) A new user configuration file is required by a new libenglab version
If no action is taken by englab in any of the above, libenglab will report some errors (currently 3) during initialization and usability might be minimum.
All of the above circumstances are handled by a shell script, called `englab-conf' installed in the system during the installation of libenglab. So all englab has to do is make a system call to that script file. The location where `englab-conf' was installed can be determined by `englab-paths' with input argument `--bindir'.
englabgui - A graphical user interface
englabgui is a graphical user interface developed using wxWidgets, it's code is compatible with wx 2.6 (currently old stable). englabgui doesn't differ much, compared to englab, in the way it interfaces with libenglab. Is still passes all user input to method int hKernel::parse(std::string command) for preprocessing. The user interface though is much more user-friendly and it's use is recommended by users working in desktop environment's. englabgui still has to make a system call to englab-conf before initializing hKernel.
to be continued...
«
Last Edit: July 11, 2008, 01:48:37 AM by bobomastoras
»
Logged
"He who controls the present, controls the past. He who controls the past, controls the future."
-- George Orwell
Pages: [
1
]
Print
EngLab forum
|
General Category
|
EngLab Developer Forum
|
EngLab Developer Documentation
|
EngLab project structure
Jump to:
Please select a destination:
-----------------------------
General Category
-----------------------------
=> EngLab News
=> EngLab Developer Forum
===> EngLab Developer Documentation
Powered by PHP
Powered by MySQL
Powered by SMF 1.1.11
|
SMF © 2006-2009, Simple Machines LLC
Valid XHTML 1.0!
Valid CSS!
Loading...