# programm fuer wenn lan aktivitaet dann signal auf com1

## pieter_parker

mein gehaeuse hat 2 schicke led leuchten fuer lan aktivitaet

mein mainboard hat 2 lan buchsen

an beiden lan buchsen sind die ueblichen leds fuer verbindung (gruen wenn 100 und orange wenn 1000 mbit) und eine zweite led die blinkt wenn verkehr ist

leider hat das mainboard keine pins wo ich die kabel von den gehaeuse leds anschliessen kann

klar, es ist bestimmt moeglich am board irgendwo irgendwie irgendwas anzuloeten um das signal abzugreifen - aber habe keine ruige hand fuer solche feinen loetarbeiten und die ausruestung dafuer auch nicht

ist es vielleicht moeglich mit einem programm ueber com1 (oder usb? oder ein anderer anschluss) immer ein signal zusenden wenn netzwerk verkehr ist, so das die led am gehaeuse blinkt als waere sie auf dem normalen weg angeschlossen ?

----------

## cfreak200

Das ansteuern der LED sollte das kleinere Problem sein. (Geht über ein kleines Shell-Script oder ein kleines C/C++ Programm welches das entsprechende Device in /dev ansteuert)

Das größere Probleme wäre (für mich) als User die aktivität an der Schnitstelle abzufragen. Aber es sollte dafür entsprechende Schnittstellen geben. (Gnome-System-Monitor etc. machen ja auch keine Zauberei)

Je nachdem was du an kenntnissen besitzt sollte das also recht einfach mit etwas googlen/man lesen und evtl. in anderen Code gucken machbar sein.

----------

## cfreak200

Hier mal ein kleiner Ansatz der dir evtl. schon weiter hilft:

(Das ist eines meiner ersten Bash-Scripte also noch nicht wirklich ausgereift das ganze  :Smile:  )

```
#!/bin/bash

lastdata=unset

data= unset

interface="eth0"

#device="/dev/ttyS0"

lastdata="`cat /proc/net/dev | grep $interface | gawk '{print $9}'`"

data=$lastdata

while [ "1" -eq "1" ]

do

   while [ $data -eq $lastdata  ]

   do

      sleep 0.5

      data="`cat /proc/net/dev | grep $interface | gawk '{print $9}'`"

   done

   echo 1 # > $device

   lastdata=$data

done
```

Du musst die Beiden Zeilen mit device auskommentieren wenn du eine Ausgabe an ein Device willst

----------

## pieter_parker

danke!

..

ich sehe dort nur eine zeile mit "#device=" ?

es funktioniert!!! .. er schreibt die zahl 1 untereinander wenn trafic ist, genial  :D 

hab es am router auch getestet, mir ist aufgefallen das wenn ich ihm ppp0 angegbe keine 1 geschrieben wird bei trafic

wenn ich ihm jedoch eth1 an dem ppp0 haengt angebe, schreibt er die 1, funktioniert nur bei anfassbaren devices?

hab schon etwas rum probiert, wenn ich den sleep wert noch kleiner macher, z.b. "sleep 0.01"

wird die zahl 1 schneller und oefters unter einander geschrieben, somit koennte die led schneller blinken ?

```

    1 bis    49 

   50 bis    99

  100 bis   499

  500 bis   999

 1000 bis  2499

 2500 bis  7499

 7500 bis  9999

10000 bis 14999

15000 bis 24999

25000 bis 39999

40000 bis 64999

65000 bis 99999

```

(alle in kb/s)

was meinst du .. waere eine solche abstufung moeglich?

.. damit die led unterschiedlich schnell blinkt

----------

## cfreak200

Wenn du den sleep zuklein machst, frisst das deine CPU auf....

Ich hatte die erste Version ohne Sleep gemacht und das Script hat einen CPU komplett ausgelastst (ist ja auch verständlich).

Du könntest die Differenz zwischen dem alten und dem neuen Wert nehmen und damit bestimmen wieviel gerade durch die Leitung fließt und die Pause dann je nach Leitungsbelastung anpassen. (Wie in deiner Tabelle) Dadurch würde bei mehr Traffic die LED öfter aufleuchten und bei weniger eben seltener.

Allerdings sehe ich immernoch keinen Sinn in dem ganzen geblinke  :Smile: 

Die 2. Zeile mit "device" ist 

```
echo 1 # > $device 
```

 dort die Raute entfernen, dann wir das an das entsprechende Device geschrieben.

----------

## pieter_parker

naja .. ich mags wenn es blinkt und leuchtet

soweit ich mich zurueck errinere hab ich nie etwas mit nem com anschluss gemacht bis auf 1mal, doom2 zu dos zeiten darueber mit jemmanden gespielt

wie verbinde ich die led mit dem serielen anschluss damit sie blinkt ?

----------

## cfreak200

Ich hatte mal TESTWEISE eine LED an TxD und GND (oder Gehäuse) angeschlossen. Allerdings ist das nicht wirklich eine elegante Möglichkeit.... Die Datenübertragung läuft ja seriell d.h. , dass bei einer gesendeten 1 (0x1) auch nur 1 Bit kurz aufflimmert. Der Druckerport (bei dem du jeden PIN einzelnd ansteuern) kannst ist wohl das geschicktere dafür.

Cfreak200

p.s.: Die Belegung der Schnitstelle sollte dir Google ausspucken....

----------

## pieter_parker

1 = Strobe

2 = Data 0

3 = Data 1

4 = Data 2

5 = Data 3

6 = Data 4

7 = Data 5

8 = Data 6

9 = Data 7

10 = /Ackneloge

11 = Bussy

12 = Paper out

13 = SELECT

14 = AUTOFEED

15 = /ERROR

16 = /INIT

17 = /SLCT IN

18 = Masse

19 = Masse

20 = Masse

21 = Masse

22 = Masse

23 = Masse

24 = Masse

25 = Masse

http://www.stickybit.de/wissen/computer/grundlagen/schnittstellen/schnittstellen.htm#0002

ich brauch also 1x data und 1x masse ?

----------

## cfreak200

ja. Du brauchst evtl. einen Widerstand vor der LED. Kommt drauf an was bei dir aus der parallelen Schnittstelle rauskommt. Also am besten mal ein Messgerät nehmen und schauen.

----------

## pieter_parker

sollte das nicht genormt sein wieviel aus dem parallelen anschluss rauskommt? .. hab naemlich kein messgeraet zum messen da

----------

## Cabal2002

Hi,

LED am COM Port ist auch möglich macht lirc zum Beispiel so: http://lirc.org/transmitters.html

Den DTR Pin kann man auch sauber an/aus schalten.

Gruß Cabal

----------

## cfreak200

 *Cabal2002 wrote:*   

> Hi,
> 
> LED am COM Port ist auch möglich macht lirc zum Beispiel so: http://lirc.org/transmitters.html
> 
> Den DTR Pin kann man auch sauber an/aus schalten.
> ...

 

Dort ist ja auch die Datenübertragung gewünscht... Ich kann am COM-Port auch eine LED einen Text flimmern lassen, jedoch wirst du davon (als Mensch) nicht viel entziffern können.

 *pieter_parker wrote:*   

> sollte das nicht genormt sein wieviel aus dem parallelen anschluss rauskommt? .. hab naemlich kein messgeraet zum messen da

 

3 bis 12 Volt habe ich da in meiner Erinnerung irgendwann mal aufgeschnappt....

----------

## Cabal2002

That's not entirely accurate. DTR wird nicht zur Datenübetragung benutzt sondern signalisiert nur einen Zustand. Deswegen der Name DTR = Data Terminal Ready. Klemmt man dort eine LED an kann man diese an/ausschalten.

```

while(1) {

  fd = open(ttyDevice, O_RDWR | O_NOCTTY | O_NONBLOCK);

  wait

  close(fd);

  wait

}

```

Wartet man lang genug zwischen open und close flimmert da nix.

----------

## DarKRaveR

Allgemein möchte ich noch anmerken:

Es dürfte deutlich besser sein, wenn man nicht pollt, ob es traffic gab, sondern das ganze reaktiv auslegt. Nur wird sich das weniger mit shell scripting machen lassen, sondern eher in c, python, perl.

----------

## pieter_parker

.. wie kann ich denn beim booten eine script datei aufrufen lassen ?

----------

## DarKRaveR

Suchst Du nach /etc/conf.d/local.start ? Oder was genau suchst Du ?

----------

