Changeset 7 in projects


Ignore:
Timestamp:
Jul 19, 2008, 10:34:23 PM (15 years ago)
Author:
sven
Message:

Completed/more accurate documentation.

Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • README.txt

    r6 r7  
    1515   All programs in this project shall be published according to the
    1616   GNU General Public License (GPL), if there are no license information
    17    in the particular files.
     17   in the particular files. Every directory contains a file called
     18   "README.txt" which contains further information about the contents
     19   and the license conditions from that subproject.
    1820
    1921   Many programs or comments, respectively, are written in German, because
    2022   technikum29.de is a german organisation. If you want to collaborate or
    21    understand the programs, feel free to mail me (technikum29.de@sven;
     23   understand these programs, feel free to mail me (technikum29.de@sven;
    2224   read it the other way around).
     25
     26   +--------------------------------------------------------------------+
     27   |       An overview over the Paper Tape Project subprojects          |
     28   +--------------------------------------------------------------------+
     29   | perl-tools        | Some tools written in perl to manage binary    |
     30   |                   | data, write paper tape ASCII art, print        |
     31   |                   | labeled paper tapes, parse ASCII number files, |
     32   |                   | etc.                                           |
     33   +-------------------+------------------------------------------------+
     34   | userspace-driver  | The Linux ppdev userspace driver for the FACIT |
     35   |                   | paper tape puncher, written in C, with some    |
     36   |                   | C utulity programs and a perl frontend.        |
     37   +-------------------+------------------------------------------------+
     38   | reader            | A Linux ppdev userspace reader for the         |
     39   |                   | GILMETTI paper tape reader, written in C and   |
     40   |                   | based on the userspace-driver.                 |
     41   +-------------------+------------------------------------------------+
     42   | puncher           | A new try for the userspace-driver from the    |
     43   |                   | scratch which strictly seperates between       |
     44   |                   | platform-dependent backends and platform-      |
     45   |                   | independent frontends. In this way we want to  |
     46   |                   | program a Windows driver and a universal,      |
     47   |                   | simple-to-use GTK frontend                     |
     48   +-------------------+------------------------------------------------+
     49   | schriften         | Several fonts which can be used to label paper |
     50   |                   | tapes. These fonts are usually implemented as  |
     51   |                   | Perl scripts.                                  |
     52   +-------------------+------------------------------------------------+
     53   | visualisator      | Draw virtual paper tapes on computer screens   |
     54   |                   | or in PNG or SVG files. A project written in C |
     55   |                   | which uses Cairo and GTK.                      |
     56   +-------------------+------------------------------------------------+
     57   | web-frontend      | A web frontend for the papertape visualisator, |
     58   |                   | written in PHP and JavaScript (AJAX).          |
     59   +-------------------+------------------------------------------------+
     60   | daten             | Some data and paper tape files which contain   |
     61   |                   | NCR machine codes. About 40 files are written  |
     62   |                   | by Udo, whereas more than one dozen of files   |
     63   |                   | were read in with the paper tape reader.       |
     64   +-------------------+------------------------------------------------+
     65
    2366
    2467   Sven; 05.05.2008, 19.07.2008
    2568
    26    You can read much more about the projects at:
     69   You can read more about the projects at:
    2770     * http://privat.technikum29.de/svens-projekte/Lochstreifen
    2871     * http://dev.technikum29.de/wiki/Projekte/Lochstreifen
    29 
    30    I'll present you now our subprojects / subdirectories, but you can read
    31    more about them in the particular README.txt files in the directories.
    32 
    33    main subprojects:
    34 
    35    1. The Perl Tools
    36    2. Userspace punch driver (`userspace-driver')
    37    3. The User space paper tape reader (`reader')
    38    4. The Paper Tape Visualisation project
    39 
    40 
    41 
    42 
  • puncher/README.txt

    r5 r7  
    11 
    2  The Paper Tape Project -- Punching
    3  ==================================
     2 The Paper Tape Project -- Punching subsystem
     3 ============================================
    44 
    5  The punching system consists of platform independent frontend programs and
     5 The punching subsystem consists of platform independent frontend programs and
    66 platform dependent backend library calls.
    77
  • visualisator/README.txt

    r6 r7  
    1111   widget, respectively.
    1212
    13    An overview about the files:
     13   LOCHSTREIFEN cairo drawing routines
     14   -----------------------------------
     15   The files lochstreifen.c and lochstreifen.h implement the
     16   drawing of paper tapes by using the cairo graphics library.
     17   These routines only need cairo, so they can be compiled
     18   by using `pkg-config --cflags --libs cairo`. They do not
     19   need neither GTK nor Glib.
     20   The routines only implement the drawing routines - the
     21   cairo object (cairo_t) must be given from the implementing
     22   programs. In this way you have full freedom to choose a
     23   cairo surface -- among others PNG, SVG, PDF, ...).
     24   See lochstreifen.h for the structure of the object
     25   `LOCHSTREIFEN'. See lochstreifen.c for help with the usage
     26   of the functions.
    1427
    15    * lochstreifen.c, lochstreifen.h: The low level cairo
    16      drawing routines. Export a LOCHSTREIFEN object which can
    17      be used by other programs, e.g:
     28   Features:
     29   * Lightweight object system, e.g:
     30       LOCHSTREIFEN *papertape = lochstreifen_new();
     31       printf( "%d", lochstreifen_get_width(papertape) );
     32       lochstreifen_set_d(papertape, 42);
     33       int dir = lochstreifen_get_orientation(papertape);
     34       lochstreifen_draw(papertape, cairo_context);
     35       // ...
     36   * Everything is configurable -- e.g. geometrical settings
     37     like the distance of byte rows, bit columns, feed hole,
     38     diameter of the holes, margins and paddings from the
     39     paper, etc.
     40   * Papertape can easily be rotated and flipped horizontically
     41     or vertically. Even affine matrices can be defined --
     42     you can use the full power of cairo.
     43   * All colors can be set directly, all objects can be
     44     said to be skipped in the painting process.
     45   * The paper tape data can be served in a byte array or
     46     read from a file
     47   * Bytes or arrays of bytes can be highlighted with special
     48     user-defined colors.
     49   * There are functions to transform coordinates to bytes
     50     and vice versa for GUI support.
     51   * The painting process can actually skip bytes and therefore
     52     only paint areas, which is also good for GUI support.
     53   * Thanks to cairo and C all painting operations are handled
     54     very fast and the output is always high quality.
    1855
    19    * gtkpapertape.c, gtkpapertape.h: A GTK widget which
    20      implements the LOCHSTREIFEN object to display paper
    21      tapes on computer displays. It can be used in GTK programs
    22      directly.
     56   GtkPaperTape
     57   ------------
     58   The files gtkpapertape.c and gtkpapertape.h implement a
     59   GTK widget which uses the LOCHSTREIFEN object to display
     60   paper tapes on computer displays. It can be used in GTK
     61   programs directly and serves dozens of features to control
     62   the behaviour and look of the paper tape directly. It is
     63   even capable of displaying animations, reacting on mouse
     64   movements, intelligent scrolling, byte highlighting, etc.
    2365
    24    * gtk.c: An exemplar GTK program which displays the
    25      GtkPaperTape widget in a window.
     66   Features:
     67   * Nice GTK/Glib like object oriented interface:
     68       GtkPaperTape *papertape = gtk_paper_tape_new(mainwindow);
     69       gtk_paper_tape_menu_view(papertape, menu);
     70       gtk_paper_tape_menu_colors(papertape, menu);
     71       gtk_paper_tape_get_whole_box(papertape);
     72       // ...
     73   * Scrollable widget: Thus, it is possible to zoom the
     74     papertape to fill out the complete monitor or to zoom
     75     out so you can e.g. read a labeled paper tape.
     76   * Very big files can be displayed very performant because
     77     only the neccessary regions of the paper tape are
     78     redrawn (very big = many MB or even GB)
     79   * The widget even serves an optional statusbar on which
     80     status informations are printed (like zoom level)
     81   * Mouse movements are catched, thus the statusbar can
     82     print up-to-date information about the region on wich
     83     the mouse cursor resides.
     84   * Several menus are provided by this widget:
     85     * Export: Display dialogs to export papertape with the
     86       current settings to a SVG or PNG file
     87     * View: A menu to zoom the papertape, fit it to the window
     88       size or display it in real life size (DPI calculation),
     89       rotate or flip it or fix the number of virtual null bytes
     90       which are added at the beginning/end of the paper tape
     91     * Colors: The colors of all components are displayed and
     92       can be changed interactively.
     93   * Regions can be highlighted, as an frontend for the
     94     LOCHSTREIFEN widget.
    2695
    27    * cli.c: A command line program which gives a direct
    28      command line interface to the LOCHSTREIFEN object.
     96   Exemplar GtkPaperTape implementation: gtk.c
     97   -------------------------------------------
     98   The file gtk.c shows the GtkPaperTape in a window. It even
     99   handles some arguments and can read up data from stdin.
     100
     101   Command Line Interface to the LOCHSTREIFEN
     102   ------------------------------------------
     103   The file cli.c provides a direct command line interface to
     104   the LOCHSTREIFEN object. Thus you can use the LOCHSTREIFEN
     105   drawing routines from any other program.
     106
     107   Features:
     108   * powerful parameter set to control the result in every
     109     detail (test it: ./cli --help)
     110   * Unix philosophy: Simple usage, can read in data from
     111     stdin, can put out result (SVG/PNG) on stdout
     112
     113   Web frontend
     114   ------------
     115   We actually have developed a web frontend in PHP which uses
     116   the command line interface to generate the results. It
     117   recieves the user input by an huge HTML form. Using a lot
     118   of AJAX magic, it even caches already created images and
     119   creates reports which contain the input data and all
     120   settings and which are finally available for the client.
     121   To avoid denial of service attacks (DoS), the PHP frontend
     122   will deny creating paper tapes if the input file exceeds
     123   some MB because the resulting file will be very big
     124   (most web browsers reject rendering such big files which are,
     125   for example, 400.000px in width).
     126   See ../web-frontend/ for the sources and another README.txt.
     127
     128
    29129
    30130   See more descriptions and copyright information in the
    31131   accordant .c and .h files.
    32132
    33    Sven Köppel, 19.07.2008 19:30
     133   Sven Köppel, 19.07.2008
  • web-frontend/README.txt

    r6 r7  
    88   huge). Like all the visualisation programs, it is highly
    99   configurable (every detail you can change at the LOCHSTREIFEN
    10    object can be changed in the HTML formula). Thus the
     10   object can be changed in the HTML form). Thus the
    1111   HTML <form> is quite complex, but very friendly to DAUs
    1212   (a german expression for "PEBKAC") due to the ability to fold
    13    the huge formular. It should be running stable but hasn't
     13   the huge form. It should be running stable but hasn't
    1414   really been tested so far. Thanks to caching every generated image
    1515   it should even stand very much rendering requests.
Note: See TracChangeset for help on using the changeset viewer.
© 2008 - 2013 technikum29 • Sven Köppel • Some rights reserved
Powered by Trac
Expect where otherwise noted, content on this site is licensed under a Creative Commons 3.0 License