Changeset 7 in projects
- Timestamp:
- Jul 19, 2008, 10:34:23 PM (15 years ago)
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
README.txt
r6 r7 15 15 All programs in this project shall be published according to the 16 16 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. 18 20 19 21 Many programs or comments, respectively, are written in German, because 20 22 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; 22 24 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 23 66 24 67 Sven; 05.05.2008, 19.07.2008 25 68 26 You can read m uch more about the projects at:69 You can read more about the projects at: 27 70 * http://privat.technikum29.de/svens-projekte/Lochstreifen 28 71 * http://dev.technikum29.de/wiki/Projekte/Lochstreifen 29 30 I'll present you now our subprojects / subdirectories, but you can read31 more about them in the particular README.txt files in the directories.32 33 main subprojects:34 35 1. The Perl Tools36 2. Userspace punch driver (`userspace-driver')37 3. The User space paper tape reader (`reader')38 4. The Paper Tape Visualisation project39 40 41 42 -
puncher/README.txt
r5 r7 1 1 2 The Paper Tape Project -- Punching 3 ================================== 2 The Paper Tape Project -- Punching subsystem 3 ============================================ 4 4 5 The punching s ystem consists of platform independent frontend programs and5 The punching subsystem consists of platform independent frontend programs and 6 6 platform dependent backend library calls. 7 7 -
visualisator/README.txt
r6 r7 11 11 widget, respectively. 12 12 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. 14 27 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. 18 55 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. 23 65 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. 26 95 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 29 129 30 130 See more descriptions and copyright information in the 31 131 accordant .c and .h files. 32 132 33 Sven Köppel, 19.07.2008 19:30133 Sven Köppel, 19.07.2008 -
web-frontend/README.txt
r6 r7 8 8 huge). Like all the visualisation programs, it is highly 9 9 configurable (every detail you can change at the LOCHSTREIFEN 10 object can be changed in the HTML form ula). Thus the10 object can be changed in the HTML form). Thus the 11 11 HTML <form> is quite complex, but very friendly to DAUs 12 12 (a german expression for "PEBKAC") due to the ability to fold 13 the huge form ular. It should be running stable but hasn't13 the huge form. It should be running stable but hasn't 14 14 really been tested so far. Thanks to caching every generated image 15 15 it should even stand very much rendering requests.
Note: See TracChangeset
for help on using the changeset viewer.