diff options
author | reinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f> | 2000-03-19 08:41:28 +0000 |
---|---|---|
committer | reinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f> | 2000-03-19 08:41:28 +0000 |
commit | 0774e24faa2ff2d78109f7614536746226dcaa91 (patch) | |
tree | 2232190c5c22f00a5491d272119daae75ad8c83d /README | |
parent | 74dc0b10c7ab905c8fb7b4098774155a9b2828fd (diff) | |
download | lcd4linux-0774e24faa2ff2d78109f7614536746226dcaa91.tar.gz |
[lcd4linux @ 2000-03-19 08:41:28 by reinelt]
documentation available! README, README.MatrixOrbital, README.Drivers
added Skeleton.c as a starting point for new drivers
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@14 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
Diffstat (limited to '')
-rw-r--r-- | README | 130 | ||||
-rw-r--r-- | README.Drivers | 47 | ||||
-rw-r--r-- | README.MatrixOrbital | 40 |
3 files changed, 217 insertions, 0 deletions
@@ -0,0 +1,130 @@ +# +# $Id: README,v 1.1 2000/03/19 08:41:28 reinelt Exp $ +# + +This is the README file for lcd4linux + + +INTRODUCTION + +lcd4linux is a small program that reads various information from the kernel +(and probably from other subsystems, especially ISDN) and displays them on a LCD. + +It supports displaying text values and different types of bars: Horizontal and +vertical bars, logarithmic bars, split bars (two independent bars in one row). + + +SUPPORTED DISPLAYS + +* Matrox Orbital <http://www.matrixorbital.com> + + "LCD0821": 2 lines by 8 characters + "LCD1621": 2 lines by 16 characters + "LCD2021": 2 lines by 20 characters + "LCD2041": 4 lines by 20 characters (tested) + "LCD4021": 2 lines by 40 characters + +* X11: not available now, but on top of my ToDo-List! + +* other displays: lcd4linux and especially the display driver code is very modular, + so it should be quite easy to write a driver for any display. See README.driver + for details. Contributors are welcome!!! + + +CONFIGURATION + +The configuration file (default: /etc/lcd4linux.conf) has a very simple format: +Every line consists of a key and a value, seperated by whitespace (blanks or tabs). +Values can contain whitespace, and can be enclosed in single or double quotes. +A key must not contain whitespace. Keys are NOT case-sensitive. Order doesn't matter. + +The configuration file contains information for different modules of lcd4linux: + +Global options: + + tick: time in milliseconds between bar updates + tack: time in milliseconds between text updates (text can be updated less often than + bars, so you get a smooth bar display and readable text) + tau: time constant (in milliseconds) for damping function (not used by now) + +Data-specific options: + + overload: load average threshold and bar scaling. The '%L' token (see below) displays + a '!' instead of a blank if the current load average exceeds this value. + load bars are scaled by this value (load=overload gives 100%) + fifo: path to fifo for communication with isdnlog (not implemented) + sensor1: path to the 1st temperature file (e.g. /proc/sys/dev/sensors/w83781d-isa-0290/temp1) + it is important that you use the isa sensors, because the i2c sensors are very slow! + sensor1_min: temperature where the corresponding bar starts + sensor1_max: temperature where bar ends + sensor[2..9], -_min, -_max: entries for the 2nd to 9th temperature sensor + +Driver-specific options: + + Display: the name of a display model (see "supported displays" above) + every driver has its own configuration options (e.g. 'Port', 'Speed', ...) + see README.<Drivername> for details! + +Display options: + + row1: Text to display in row 1 + row[2-max]: Text to display in other rows + + The text to be displayed can contain specific directives, which will be replaced + by the appropriate values, or will create bars: + + '\nnn` will write the ASCII-character nnn (octal) + '%<token>' will be replaced by the value of <token> + '%%' will write a '%' + '%$' will write a '$' + '$<direction><length><token>[+<token>] will create a bar with the specified direction + and length (in characters) with the value of <token>. If the driver supports dual bars, + you can specify the second value with '+<token>'. + <direction> can be 'l' (left), 'r' (right), 'u' (up) or 'd' (down). + If you specify the direction in upper case, a logarithmic bar will be created. + note that the space occupied by a bar always grows from left to right or from top to + bottom, regardless of the direction! + +Tokens: + + 'o', operating system name ('Linux') + 'v', operating system release ('2.0.38') + 'p', processor ('i686') + 'r', total amount of memory installed (MB) + 'mt', total memory from /proc/meminfo (kB) + 'mu', used memory (kB) + 'mf', free memory (kB) + 'ms', shared memory (kB) + 'mb', buffers (kB) + 'mc', page cache (kB) + 'ma', application memory (kB) = used - buffer - cache + 'l1', load average for the past 1 minute + 'l2', load average for the past 5 minutes + 'l3', load average for the past 15 minutes + 'L', '!' if load > overload (from config) + 'cu', percentage of CPU in user mode + 'cn', percentage of CPU in niced tasks + 'cs', percentage of CPU in system mode + 'cb', percentage of CPU busy (=100-idle) + 'ci', percentage of CPU idle + 'dr', disk blocks read + 'dw', disk blocks written + 'dt', disk blocks total (read+write) + 'dm', disk blocks max (read, write) + 'nr', network packets received + 'nw', network packets transmitted + 'nt', network packets total (receive+transmit) + 'nm', network packets max (receive, transmit) + 'ii', ISDN bytes received + 'io', ISDN bytes sent + 'it', ISDN bytes total (received+send) + 'im', ISDN bytes max (received, send) + 's1', T_SENSOR_1, + 's2', T_SENSOR_2, + 's3', T_SENSOR_3, + 's4', T_SENSOR_4, + 's5', T_SENSOR_5, + 's6', T_SENSOR_6, + 's7', T_SENSOR_7, + 's8', T_SENSOR_8, + 's9', T_SENSOR_9, diff --git a/README.Drivers b/README.Drivers new file mode 100644 index 0000000..f5cccc5 --- /dev/null +++ b/README.Drivers @@ -0,0 +1,47 @@ +# +# $Id: README.Drivers,v 1.1 2000/03/19 08:41:28 reinelt Exp $ +# + +How to write new display drivers for lcd4linux + +If you plan to write a new display driver for lcd4linux, you should follow +this guidelines: + +* use Skeleton.c as a start point + +* create a new sourcefile <drivername>.c and add it to the bottom of Makefile.am + +* there's no need for a <drivername>.h + +* create one (or more) unique display names (your driver will be selected by + this name in the 'Display'-line of lcd4linux.conf). + +* include "display.h" in your driver, to get the DISPLAY structure and various + BAR_ definitions + +* include "cfg.h" if you need to access settings in the config file. + +* create a DISPLAY table at the bottom of your driver, and fill it with the + appropriate values. Take care that you specify the correct bar capabilities + of your display or driver! + +* edit display.c and create a reference to your DISPLAY table: + + external DISPLAY YourDriver[]; + +* extend the FAMILY table in display.c with your driver: + + FAMILY Driver[] = { + { "Skeleton", Skeleton }, + { "MatrixOrbital", MatrixOrbital }, + { "YourFamily", YourDriver }, + { "" } + }; + +* write the correspondig init(), clear(), put(), bar() and flush()-functions. + There's no need to use a framebuffer and display its contents with the flush()- + call (as in MatrixOrbital.c), you can directly write to the display in the put()- + and bar()-functions, and use an empty flush()-function. But if you have a limited + number of user-defined characters, and therefore you have to do some sort of + 'character reduction' or similar stuff, you will have to use a framebuffer and + the flush()-call. diff --git a/README.MatrixOrbital b/README.MatrixOrbital new file mode 100644 index 0000000..1138b49 --- /dev/null +++ b/README.MatrixOrbital @@ -0,0 +1,40 @@ +# +# $Id: README.MatrixOrbital,v 1.1 2000/03/19 08:41:28 reinelt Exp $ +# + +This is the README file for the MatrixOrbital display driver for lcd4linux + +This driver supports the serial interface alphanumeric display modules by +Matrix Orbital Corporation (http://www.matrixorbital.com). + +I could only test it with the LCD2041 model, but I think every other (LCD) model +should work. These displays are supported: + + LCD0821: 2 lines by 8 characters + LCD1621: 2 lines by 16 characters + LCD2021: 2 lines by 20 characters + LCD2041: 4 lines by 20 characters (tested) + LCD4021: 2 lines by 40 characters + +I could not test the vacuum fluorescent display models, but I think they should work, too. +There are no entries for this models in the driver table (at the bottom of MatrixOrbital.c), +but they could be easily added. + +The displays come with an RS-232 and an I2C interface. The driver supports the RS-232 interface +only (because I have no idea how to find the I2C bus on my motherboard). + +Power can be applied either via an external DC power supply, a modified floppy power connector +(be aware that you can destroy your display if you get the pins wrong!) or via the RI (ring) +signal of the RS-232 port. I choosed the latter, and modified a serial card so that it supplies ++5V from the ISA bus to this pin (again, be aware that this is dangerous if you connect any other +serial device to this modified port). + +The driver supports vertical, horizontal and split bars (two independent bars in one line), +all bar types can be used simultanously. As the displays only have 8 user-defined characters, +the needed characters to display all the bars must be reduced to 8. This is done by replacing +characters with similar ones. To reduce flicker, a character which is displayed at the moment, +will not be redefined, even if it's not used in this run. Only if the character compaction +fails, this characters will be redefined, too. + +The displays have a GPO (general purpose output), where you can connect a LED or something. +The driver supports controlling this GPO, but this function is unused by now. |