X-Git-Url: https://git.realraum.at/?p=svn42.git;a=blobdiff_plain;f=old-door-deamon%2Flibparportled-0.5.1%2Fled-stat.txt;fp=old-door-deamon%2Flibparportled-0.5.1%2Fled-stat.txt;h=0000000000000000000000000000000000000000;hp=023bed186ee0dae06a6c883a698b2f1b0aff4d12;hb=ef0255ffe0a390c49c6e2c3e41fb5312032a4f00;hpb=5f90a9da59975c3bf81efc461fcd13637e4e0e5d diff --git a/old-door-deamon/libparportled-0.5.1/led-stat.txt b/old-door-deamon/libparportled-0.5.1/led-stat.txt deleted file mode 100644 index 023bed1..0000000 --- a/old-door-deamon/libparportled-0.5.1/led-stat.txt +++ /dev/null @@ -1,166 +0,0 @@ ->From joev@mikasa.WPI.EDU Sun Jan 1 18:34:40 EST 1995 -Article: 144 of comp.os.linux.development.system -Path: bigblue.oit.unc.edu!concert!gatech!bloom-beacon.mit.edu!news2.near.net!news.mathworks.com!bigboote.WPI.EDU!mikasa.WPI.EDU!joev -From: joev@mikasa.WPI.EDU (Joseph W. Vigneau) -Newsgroups: comp.os.linux.development.system -Subject: My LED performance meter thing... -Date: 1 Jan 1995 23:18:28 GMT -Organization: Worcester Polytechnic Institute -Lines: 147 -Message-ID: <3e7d84$or5@bigboote.WPI.EDU> -NNTP-Posting-Host: mikasa.wpi.edu - -Last week, someone wrote here asking about robotic contol via Linux... I -responded explaining how I used the parallel port to control a sort-of -"performance meter". I've recieved a lot of requests on how I did this. -Here's the story: - -Last year, at school (WPI), Silicon Graphics brought this huge 18-wheel -truck that is basically a demonstrationmobile. Inside it had Indys, -Crimsons, and some of their big machines like a couple of Onyxes and an -*monsterous* Power Challenge.. I'm relatively young (17 at the time), and -I'd never seen a computer this big before: It looked like an oversized -refrigerator, with cooling ducts running in and out of it! On the front of -this beast, was a little LCD backlit readout about the size of my HP-48G's -display. It was labeled "CPU Activity", and had a little bar chart showing -how hard each processor was working. I thought it would be cool to have one -of these mounted on my Linux box :) - -I finally got a computer of my own this past November, and finally got to run -Linux on my own, instead of administering it for a number of people on my -floor. I had a Shack attack, and went to Radio Shack, and picked up the -following items: a breadboard, a 10-bar LED, breadboard wires, and a -package of assorted resistors. [Side note: While at the Shack with a few of -my suitemates, we were way in back in the component section (the only good -part of the store any more), and were approached by a lady who thought we -were employees there :). Back to the project.] - -It was wired up like this, via the parallel port: - - pin 20 (ground) - | - 150ohm LED | -pin 2 (D0) ----/\/\/------|>|-----+ - | -pin 3 (D1) ----/\/\/------|>|-----+ - | -pin 4 (D2) ----/\/\/------|>|-----+ - - [...] - | -pin 9 (D7) ----/\/\/------|>|-----+ - -Note: 2 of the LEDs weren't connected. - -Now, the software part: - -Two files were used: the first is a routine written by a roomate -(damianf@wpi.edu) used to blast raw bytes at a port, and read them. Please -contact him for more info, or if you want to use it in a progrm of your own. - -static inline int port_in( int port ) -{ - unsigned char value; - __asm__ volatile ("inb %1,%0" - : "=a" (value) - : "d" ((unsigned short)port)); - return value; -} - -static inline void port_out( unsigned short int port, unsigned char val ) -{ - __asm__ volatile ( - "outb %0,%1\n" - : - : "a" (val), "d" (port) - ); -} - -I originally wanted to use the load average to determine how many of the -LEDs lit up, but realized that it was only updated every minute.. I wanted a -display similar to xload or xosview, but I really coun't figure out how they -were determined.. What I ended up doing was reading the output of 'ps aux', -and summing up the %CPU column. I then converted that into a number -representing how many LEDs should light, and blast it at the printer port. - -NOTE: I wrote and built this thing in a bout 90 minutes, so it's quick and -dirty, and not at all as elegant as I hoped it to be. - -Here's the program: - -/* meter.c by Joseph W. Vigneau (joev@wpi.edu) (c)1994. - This program is covered under the GNU copyleft agreement. -*/ - -#include -#include -#include -#include -#include "port.h" - -float loadavg(void) -{ - FILE *f; - char line[80]; - float cpu = 0.0, totalcpu = 0.0; - - if((f = popen("/bin/ps -aux","r"))==NULL) { - fprintf(stderr,"Couldn't fork /bin/ps.\n"); - exit(1); - } - - fgets(line, 80, f); - while(!feof(f)) { - sscanf(line,"%*s %*d %f",&cpu); - totalcpu += cpu; - fgets(line, 80, f); - } -/* printf("TOTAL: %f\n",totalcpu); */ - pclose(f); - return totalcpu/100.0; -} - - -main() -{ - unsigned char lights; - float ave; - char dir = 0; - char foo[10]; - register unsigned char numlights, i; - - if(ioperm(0x378,1,1)) { - fprintf(stderr,"ioperm error.\n"); - exit(1); - } - - while(1) { - ave = loadavg(); - numlights = (int)(ave*8.0); -/* printf("ave = %f, numlights = %d\n",ave, numlights); */ - - lights = 0; - for(i=0;i Click Here! - - - - - - -