[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

summering: Re: Att läsa mätdata på serieport....



Efter litet fiffel med de tips jag fått, har jag äntligen fått det att funka!

Jag fick slutligen grepp om hur jag skulle hantera det hela, och fann att
det räckte med stty -F /dev/ttyS1 9600. Nedan följer litet mer info och
resultat från "termostest", dvs 4 ihopbuntade givare packade i bomulls
vadd i en 1 liters ståltermos som fått stå 1 timme efter preparering.
---
blackie:/home/kaddik# setserial -a /dev/ttyS1
/dev/ttyS1, Line 1, UART: 16550A, Port: 0x02f8, IRQ: 3
        Baud_base: 115200, close_delay: 50, divisor: 0
        closing_wait: 3000
        Flags: spd_normal skip_test

blackie:/home/kaddik# stty -F /dev/ttyS1 -a
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

blackie:/home/kaddik# read trash</dev/ttyS1&&for ((n=10;n--;n>=0)); \
 do read data</dev/ttyS1&&echo $data; done
22.3 22.2 22.4 22.5
22.3 22.3 22.4 22.4
22.3 22.3 22.4 22.5
22.3 22.3 22.4 22.5
22.4 22.3 22.4 22.5
22.4 22.3 22.4 22.5
22.3 22.3 22.4 22.4
22.3 22.3 22.5 22.5
22.3 22.3 22.4 22.4
22.4 22.3 22.5 22.5
blackie:/home/kaddik#
---
Det första som sänds är ett eol, därav "read trash...". Frågan är bara vad som
orsakade att jag bara fick skräptecken från början då jag använde
"cat /dev/ttyS1". Hastigheten hade jag satt till 9600 med stty.
Kan det vara att den av någon anledning försökte tolka ascii enligt något annat
system? Nåja man lär bäst av att göra misstag, även om det vore trevligt om
man fick fram vad man gjorde för misstag..

Hur som helst,  tack för alla underbara tips!

At 09.00 +0200 02-08-12, Karl Hammar wrote:
...
 >Det är nog bättre att plocka spänningen från DTR istf. RTS, eller
 >om du (Kaddik) tar den från båda två över dioder. Man kan även
 >ta ström från TD via dioder, men om du aldrig sänder till enheten
 >blir det bara en negativ spänning där och det kanske du inte har nytta
 >av.
 >För att DTR ska vara hög sätts -clocal i stty, glöm då inte att
 >kortsluta DTR med DSR på ditt kort annars uppfattar seriedrivrutinen att
 >det inte finns någonting anslutet och du får inga indata då.
 >
...

 Enligt beskrivningen: RTS skall sättas till logisk 0 (+12 V.)
 Under windows får jag upp resultaten snyggt och prydligt i ett vanligt
 terminalprogram.

RTS/CTS används för flödeskontroll
(sätts med stty -F /dev/ttyS1 crtscts), när (om) inbufferten blir full
sänks RTS för att tala om för DCE'n (tänk modem) att den ska vänta med
att sända data. I ditt fall, blir det då inte så att din apparat får
strömavbrott då?
DTR används för att tala om för DCE'n att DTE'n (tänk dator) finns
och är aktiv. Motsvarande för DSR fast att DCE'n finns.

...
 12.3 02.8 -04.7 45.3
 12.3 02.8 -04.7 45.3

 Så om jag bara kommer åt mina data på serieporten och inte får knastecken
 (vilket jag hittills endast lyckats få..) så funkar read line < /dev/ttySn.

Har du satt rätt baudrate (sätts med t.ex. stty -F /dev/ttyS1 115200)
på porten ?
Har du provat med t.ex. cu -l /dev/ttyS1 -s 115200 (cu finns i uucp-
paketet). (115200, ja eller den hastighet kortet nu använder.)
Dessutom bör du göra typ:

 cat /dev/ttyS1 |
 while read line
 do
   ...
 done

annars öppnar och stänger du porten hela tiden, om du inte bara vill
göra cat /dev/ttyS1 > fil

...

Hälsningar,
/Karl

-----------------------------------------------------------------------
Karl Hammar                    Aspö Data           karl@kalle.csb.ki.se
Lilla Aspö 2340               0173 140 57                       Nätverk
S-742 94 Östhammar            018 260 900            Datorer/Utrustning
Sweden                       010 270 26 67        Linux/Unix konsulting
-----------------------------------------------------------------------




--
To UNSUBSCRIBE, email to debian-user-swedish-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org


--
---
Regards
Oerjan Kaddik
epost:	kaddik@kaddik.mine.nu

Use PGP!
Find my key at: http://keys.pgp.com:11371
key-id: 0x0C91DA4B



Reply to: