aboutsummaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
authorreinelt <>2000-03-19 08:41:28 +0000
committerreinelt <>2000-03-19 08:41:28 +0000
commiteba1b69ca09ac69949ae0d76fd7d1738c680c70a (patch)
tree2232190c5c22f00a5491d272119daae75ad8c83d /README
parentc716d0fbdfbe92583592a46c99e5f8d87d34bb68 (diff)
downloadlcd4linux-eba1b69ca09ac69949ae0d76fd7d1738c680c70a.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
Diffstat (limited to '')
-rw-r--r--README130
-rw-r--r--README.Drivers47
-rw-r--r--README.MatrixOrbital40
3 files changed, 217 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..cde123f
--- /dev/null
+++ b/README
@@ -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.