Forum » Programiranje » Pisanje iz com porta v datoteko(c linux)
Pisanje iz com porta v datoteko(c linux)
i.r.babun ::
Lep pozdrav,
imam sledeci problem:
v Linuxu sem se priklopil na serijski port, ter z njega uspesno berem dolocene nize.
problem je, da mi tega noce vpisati v doloceno datoteko!
ce recimo namesto imena porta (/dev/ttyS0) podam ime neke datoteke, mi zadeva deluje, drugace pa mi naredi le prazno datoteko in vanjo nic ne vpise.
Ali je mozno, da to ne deluje, ker sem za serijski port potreboval nastaviti dolocene parametre (parity, stop bit, data bits), ter da potem tudi izhodno datoteko poskusa zapisovati s temi parametri?
kako bi resil ta problem?
imam sledeci problem:
v Linuxu sem se priklopil na serijski port, ter z njega uspesno berem dolocene nize.
problem je, da mi tega noce vpisati v doloceno datoteko!
ce recimo namesto imena porta (/dev/ttyS0) podam ime neke datoteke, mi zadeva deluje, drugace pa mi naredi le prazno datoteko in vanjo nic ne vpise.
Ali je mozno, da to ne deluje, ker sem za serijski port potreboval nastaviti dolocene parametre (parity, stop bit, data bits), ter da potem tudi izhodno datoteko poskusa zapisovati s temi parametri?
kako bi resil ta problem?
slawc ::
mogoce nisi pravilno odprl datoteko, vsekakor bi bilo bolj koristno, ce bi pastal source.
LP,
Slawc
i.r.babun ::
jaz si moram za port nastaviti parametre
(no parity 8 data bits, 1 stop bit ,itd.)
potem mi verjetno poskusa tudi navadno datoteko odpreti kot port (unix tretira oboje kot FILE). Kako naj si nastavim nazaj default za navadno datoteko?
(no parity 8 data bits, 1 stop bit ,itd.)
potem mi verjetno poskusa tudi navadno datoteko odpreti kot port (unix tretira oboje kot FILE). Kako naj si nastavim nazaj default za navadno datoteko?
slawc ::
ne, navadno datoteko ti bo odprl kot navadno datoteko, ko pa spreminjas nastavitve com porta se tako in tako sklicujes na handle com porta in ne fileta (handle ti vrne funkcija open)
Nekaj si zamocil pri odpiranju datoteke. Pastej source.
Nekaj si zamocil pri odpiranju datoteke. Pastej source.
LP,
Slawc
BigWhale ::
code snippet, bi bil zlo v pomoc... :)
Ampak naceloma bi moralo delat, brez da karkoli spreminjas.
Ampak naceloma bi moralo delat, brez da karkoli spreminjas.
ooux ::
Ali je kdo ze poizkusil stty -a -F/dev/tty0S. Tole vam bo izpisalo nastavitve za port.
Seveda bi pred tem bilo zazeljeno da precitas vsaj man stty
Seveda bi pred tem bilo zazeljeno da precitas vsaj man stty
Zgodovina sprememb…
- spremenil: ooux ()
ooux ::
i.r.babun, iz tegale spodaj ni cisto jasno kaj delas. Res bi bilo dobro, da das kode fragment.
mam sledeci problem:Probajmo s skriptom. Najprej povej, ali lahko citas port z :
v Linuxu sem se priklopil na serijski port, ter z njega uspesno berem dolocene nize.
problem je, da mi tega noce vpisati v doloceno datoteko!
ce recimo namesto imena porta (/dev/ttyS0) podam ime neke datoteke, mi zadeva deluje, drugace pa mi naredi le prazno datoteko in vanjo nic ne vpise.
cat /dev/tty0SKo bos uspel s tem potem pa poizkusi
echo "vrstica" > myFileKoncno naredi poizkusi
cat /dev/tty0S > myFileCe ti bo ratalo vse zgornje, potem se sele loti C-ja.
BigWhale ::
Ma, saj je rekel, da iz porta ze uspesno bere...
To naceloma ni problem... ampak res.. code fragment... :)
To naceloma ni problem... ampak res.. code fragment... :)
ooux ::
Da bere iz porta se ne pomeni, da je res uspesno. Ce je port konfiguriran za tty controle bo cital le delno. Port mora imeti tz. raw setting (optiimalno je) :
Lahko pa je tudi, da ima problem z "-rwx-..." na output-u. Skratka brez njegove izvorne kode mu bo tezko pomagat.
c_iflag &= ~(INLCR | ICRNL | IUCLC | ISTRIP | IXON | BRKINIT);Ne vem kako tocno je s tem na Linux-u, a tako kot vidite zgoraj, sem obicajno konfiguriral port na Unixu v raw mode, da sem eliminiral stranske efekte URAT control.
c_oflag &= ~OPOST;
c_lflag &= ~(icanon | ISIG | ECHO);
c_cc[4] = 5;
c_cc[5] = 2;
Lahko pa je tudi, da ima problem z "-rwx-..." na output-u. Skratka brez njegove izvorne kode mu bo tezko pomagat.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Shell scriptaOddelek: Programiranje | 1447 (1051) | BigWhale |
» | ATI linux gonilnliki in resolucijaOddelek: Operacijski sistemi | 2055 (1942) | roli |
» | c++ serijski portOddelek: Programiranje | 2564 (1955) | fx |
» | LPT porti in linux...Oddelek: Operacijski sistemi | 2540 (2347) | Trojaner |
» | Linux & Dial-upOddelek: Operacijski sistemi | 1232 (1051) | Gh0st |