Changes between Version 33 and Version 34 of Projects/GSoC/ApplicationConfigurationGUI


Ignore:
Timestamp:
Sep 16, 2013, 11:55:45 PM (6 years ago)
Author:
Shubhamsomani
Comment:

/* Goal: */

Legend:

Unmodified
Added
Removed
Modified
  • Projects/GSoC/ApplicationConfigurationGUI

    v33 v34  
    4646
    4747The Graphical User Interface is created on the MVC(Model View Controller) framework. In the GUI ,the Model is the conf.t file where definitions of the macros are present. The View is GUI.py file which handles with creating the GUI. The Controller is the Controller.py file.
    48 = Goal: =
    49 
    50 The goal is to have a graphical tool to configure RTEMS for a certain
    51 Application e.g. max number of tasks, semaphores etc. It could
    52 generate a userconf.h which includes confdefs.h. The complete list
    53 of RTEMS configuration parameters for version 4.9.1 of RTEMS are documented in the
    54 [http://rtems.org/onlinedocs/doc-current/share/rtems/html/c_user/c_user.html Configuring a System] chapter in the User's Guide.==  Code  ==
    55 
    56 # A script to generate the GUI
    57 # A Makefile/Makefiles to run the script
    58 # A generated GUI
    59 # Header files showing: the default, slightly modified default, and major configuration changes
    60 # A modified http://git.rtems.org/rtems/tree/doc/user/conf.t that's trivial to parse, but still generates informative HTML, each configuration item should clearly describe:
    61   *  The Constant Name
    62   *  Type: integer, defined, address, etc.
    63   *  Default Values:
    64   *  Range:
    65   *  Description:
    66   *  Notes
    67 ==  Docs  ==
    68 
    69 # A tutorial for adding additional functionality is provided, and the code is commented enough to enable additional functionality
    70 # A tutorial for using the GUI is provided
    71 # http://git.rtems.org/rtems/tree/doc/user/conf.t is commented so that developers will keep conf.t easy to parse==  Testing  ==
    72 
    73 # Generate the files in the Code section
    74 ==  Required / Suggested Methodology  ==
    75 
    76 # (Suggested) Start with an '''existing''' open source project that generates configurations, for example: http://stackoverflow.com/questions/1693939/need-a-gui-builder-for-tkinter-python
    77 # (Suggested) Identify patterns in the open source project for how it writes configurations
    78 # (Required) Rewrite http://git.rtems.org/rtems/tree/doc/user/conf.t so it's trivial to use textual substitution to generate parts of the configuration GUI from them, and thus the trivial textual substitution will be easier to maintain
    79 # (Suggested) Use a template approach, automatically generate from http://git.rtems.org/rtems/tree/doc/user/conf.t, and have a file (or files) for the top, and a file (or files) for the bottom.
    80 # (Required) Generate configuration support from http://git.rtems.org/rtems/tree/doc/user/conf.t
    81 ==  Standards of Quality  ==
    82 
    83 # The GUI generating script runs on Fedora (this is the Linux distribution RTEMS provides support on)
    84 # The GUI generating script can be run from a Makefile.
    85 # The GUI generating script is open source and resulting GUI is written in a Python version that runs on 32-bit Debian 6.0.6 (stability oriented distribution), 64-bit Fedora (cutting edge distribution), MacOS, Windows cmd.exe (probably should be geared towards Windows 7, but might be tested on Vista, Server 2008, or 8)...
    86 # The GUI only generates headers with documented configuration constants from the C user's guide.
    87 # http://git.rtems.org/rtems/tree/doc/user/conf.t is modified to be easy to parse (i.e. the parser is trivial to write).
    88 # The GUI generates headers for all documented configuration constants in the C user's guide.
    89 # The GUI runs on 32-bit Debian 6.0.6 (stability oriented distribution), 64-bit Fedora (cutting edge distribution), MacOS, Windows cmd.exe.
    9048==  Possible Goal Extensions beyond the Main Objective  ==
    9149
     
    9553# Hook the Application Configuration GUI into the RTEMS source tree, by putting into http://git.rtems.org/rtems/tree/contrib/config_gui/Makefile.am
    9654# Package the GUI so that it includes the libraries it depends on, for example, if the GUI uses GTK+, the GUI would ship with GTK+
    97 ==  Skills Required  ==
    98 
    99 The level of expertise required by the developer tackling this project will have to have:
    100 # Prior experience with bash/Makefile scripting, C preprocessor, texinfo, and textual substitution is not required, but moderate skill level will be acquired while completing this task
    101 # The ability to read an open source programming language is highly desired
    102 # No mathematical/algorithmic background is required
    103 # An interest in finding and modifying code from existing open-source projects to meet this need is a big plus
    104 
    105 There are a variety of ways to approach this project.
    106 
    107  *  One solution is to write a GUI in Python.  This should be cross-platform.
    108  *  Another solution could be a Wizard/Editor for Eclipse. 
    109  *  Another solution is to use the config infrastructure used by the GNU/Linux kernel.
    110  *  Another approach would be to use the configuration GUI from eCos and NutOS: http://www.ethernut.de/en/software/nutconf.html=  Resources  =
     55=  Resources  =
    11156
    11257[wiki:TBR/User/JoelSherrill JoelSherrill] has used the GNU/Linux kernel config infrastructure for