Hallo,
wie kann ich denn eigentlich einzeln DTR und RTS steuern, d.h. ich habe 2 Leuschtdioden an COM Port gelötet,
(1. Diode -> DTR; 2. Diode -> RTS), und möchte z.b. das nur die erste Diode leuschtet.
Ich habe einen Script geschrieben aber bei meinen Script leuschten beide dioden, was ich ja nicht will.
Mein Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl
# Serielle Schnittstelle zum lesen/schreiben oeffnen
$COM1 = "/dev/ttyS0";
if($COM1) {
open(FD, ">$COM1") || die "Konnte $COM1 nicht oeffnen!\n";
}
ioctl(FD, 0x5415, $ioctlinput);
print"I: $ioctlinput\n";
# ergebniss nach INT wandeln
$test = unpack("I", $ioctlinput);
print"t: $test\n";
# 0x100 = DSR (PIN 6, TIOCM_DSR) -- DATA SEND READY
# 0x080 = RING (PIN 9, TIOCM_RNG) -- RING (wird auf low(?) gesetzt wenn modem
# 0x040 = CAR (PIN 1, TIOCM_CAR) -- CARRIER (wenn leitung steht)
# 0x020 = CTS (PIN 8, TIOCM_CTS) -- CLEAR TO SEND
# 0x004 = RTS (PIN 7, TIOCM_RTS) -- REQUEST TO SEND *
# 0x002 = DTR (PIN 4, TIOCM_DTR) -- DATA TERMINAL READY *
my $i=0;
while ($i < 5000)
{
$i++;
print " DTR !!\n" if $test & 0x002;
# die schleife ist dazu da damit die diode länger leuschtet
};
exit(0);
Außerdem sieht mein Schaltkreis so
http://img204.imageshack.us/img204/3788/dtrxz9.png