LCDproc development and user support list

Text archives Help


[lcdproc] Generic User Interface


Chronological Thread 
  • From: csmith AT orctel.co.uk (Chris Smith)
  • Subject: [lcdproc] Generic User Interface
  • Date: Thu, 30 Apr 1998 10:33:00 +0100

Hi everyone!

Preamble:
--------
Last week I wrote some code to drive 34 LED's hanging off
a parallel port (won't bore you with the technical stuff...)

The whole system was driven from a FIFO file in /dev

ie /dev/LEDdisp

LED's were switched on, off or flashed by writing a simple
sequence of numbers to the FIFO. This could be done from
C, Perl, Shell... whatever!!

After setting some LED's you could lock them so further
state change requests would have no effect, thus preventing
other programs from messing with them (unless they unlocked
them of course!).

You could also group any LED's together as a set. This set
would be given an ID, a max value and a flashrate for the
top LED in excess conditions.

You could then send 'set' commands to an ID with a level
value. If the level value = 0 then no LED's in the set
would light, if it = max for the set then all would light
and if it was > max, then the top LED would flash at the
specified flashrate for the set.

Standard group ID'w were defined, CPU, DISK, LOAD, SWAP,
MEM. Grouping LED's with these ID's put them under the
control of the system.

Thus anyone could configure the display to show CPU usage
or Disk usage or even their own stats, very simply.

I found it a very useful interface.

Wish List: (I've got lots of code I can adapt to do this!)
---------
It would be dead nice if we could have some
user mode pages. These pages could be controlled by a
similar method to that employed in my LED system. The
command set for the /dev/whatever FIFO would define a PAGE ID
for the page being controlled. If the page doesn't exist,
then LDCProc would create it, and future commands sent to the
same PAGEID would affect this display.

This gives us a central control system with satellite
programs creating and maintaining their own LCD pages.

LCDProc doesn't need to know anything about the new pages
at all. And as it is controlled for a FIFO, each program
can lock it as necessary when writing to it to prevent
clashes.

Standard ID's would also be defined, such that a CPU
usage or Disk or Memory usage etc indicator may be
added in bar graph or numeric form using a co-ordinate
sequence in the command set (like the LED group scheme).
Of course the already present and excellent standard pages
would be maintained, but you can switch them off if you want
to setup custom ones........

[ Ah! Bugger.. this probably means a bit of a rewrite to
the page display code of LDCProc. However, the internal
data storage for standard pages and user created ones (via
the FIFO) would be the same... Thus making it extremely easy
to add new standard page layouts by providing erm, profiles
which could be posted to this group. And if it is all made
modular (via dlopen etc) then new standard drivers (CPU, DISK,
mem etc) can be created and again posted to the group. ]

And of course external user programs (via the FIFO) can also be
posted here!

Oooh Can't wait for my display to arrive!

Hope you weren't all too bored!

Chris


-----------------------------------------------------------
To unsubscribe from this list send a blank message to
lcdproc-unsubscribe AT lists.omnipotent.net



  • [lcdproc] Generic User Interface, Chris Smith, 04/30/1998

Archive powered by MHonArc 2.6.18.

Top of page