Portál AbcLinuxu, 11. května 2025 10:07

Dotaz: Ovladani konkretnich pinu na /dev/lp0

15.3.2006 11:01 dan
Ovladani konkretnich pinu na /dev/lp0
Přečteno: 273×
Odpovědět | Admin
Jak ovladat jednotlive piny na lp0?
Mam elektronicke rele na pinu 9 paralelniho portu, pro spinani externiho zarizeni, ale nedari se mi nalezt zpusob, jak konkretni vystup na lp0 ovladat. Domnival jsem se, ze bude stacit neco tak jednoducheho jako
echo 'ff' > /dev/lp0
ale to jsem se prepoital.
Diky za namety.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.3.2006 11:54 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
Odpovědět | | Sbalit | Link | Blokovat | Admin
IMHO na to potřebuješ podporu pro user space ovladač parelelního portu (PPDEV) v kernelu (přes /dev/parport0). Přes lp0 se posílají už přežvýkaná data pro tiskárnu.
Weblate - překládání přes web | Gammu SMSD - posílání SMS | Blog
15.3.2006 12:01 dan
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
ten mam
lsmod | grep ppdev
ppdev                   8324  0
parport                31880  3 lp,ppdev,parport_pc
ale co dal?
echo 'ff' > /dev/parport0
bash: echo: write error: Nepřípustný argument
evidentne delam neco spatne
15.3.2006 12:34 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
Ovládá se to přes ioctl, asi se na to bez C neobejdeš...
15.3.2006 12:03 Semo | skóre: 45 | blog: Semo
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
Odpovědět | | Sbalit | Link | Blokovat | Admin
parport je trivialna vec, na rozdiel od seriaku

ja blikam datovymi pinmy kniznickou:
#include >unistd.h<
#include >sys/io.h<

#define PARPORT_DATA    0x378

static int parport;
static int parportEnable;

void parportOn(int pin)
{
    if (parportEnable) {
        parport |= pin;
        outb(parport, PARPORT_DATA);
    }
}

void parportOff(void)
{
    if (parportEnable) {
        outb(0, PARPORT_DATA);
    }
}

int parportOpen()
{
    parportEnable = 1;
    if (ioperm(PARPORT_DATA, 1, 1) == -1) {
        parportEnable = 0;
        return -1;
    }
    return 0;
}
adresy status a kontrolnych pinov su PARPART_DATA+1 a +2

nieco dalsie je na http://www.gmonline.demon.co.uk/cscene/CS4/CS4-02.html
If you hold a Unix shell up to your ear, you can you hear the C.
15.3.2006 12:10 dan
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
Omlouvam se za ten hloupy dotaz, ale toto je si nejaky zdrojak v C?
Zatim jsem se setkal jen s bash scripty - nevim co s tim...
15.3.2006 12:56 trekker.dk
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
Jak to udělat "čistěji" najdeš tady. Nepřestane to fungovat, pokud se LPT port nastěhuje na jinou adresu.
15.3.2006 12:13 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
Odpovědět | | Sbalit | Link | Blokovat | Admin
1. pojde to len ak ide o parport na zakladnej doske (v pci, isa), ked to je usb<->parport tak rovno zabudni
2. ked budes cez /dev/nieco posielat data na parport, tak driver len 'zamava' s riadacimi pinmy, zapise data na datove piny a potom da vsetko do kludoveho stavu. Priame riadenie ide len cez zapis do registrov parportu (registrov na doske).

Nemam tu po ruke kod co som na to pisal a docs o registroch, ked budem pri svojom pc tak doplnim. (alebo pouzi google)
15.3.2006 12:28 dan
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
...diky za vysvetleni, nejde o usb parport - neztracim nadeji
15.3.2006 12:36 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
Proč by měl zapomenout? Právě od toho je zmiňovaný ppdev.
15.3.2006 15:43 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
usb prevodniky na lpt su s 99.9% jednoucelove zariadenia na pripojenie tlaciarne. HW protokol je implemetovani rovno v tom prevoniku a preto nejde priamo riadit piny. Pokial mate taky prevodnik, ktory vam pri priamom riadeni portov nekladie odpor tak ste stastny clovek ;o)
15.3.2006 18:01 wlofy | blog: wlofy
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
Odpovědět | | Sbalit | Link | Blokovat | Admin
Moyna ti pomuye nejakz programek y http://www.linuxzone.cz/index.phtml?ids=7&idc=420
15.3.2006 18:02 wlofy | blog: wlofy
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
a nebo http://www.linuxzone.cz/index.phtml?ids=7&idc=187
16.3.2006 10:06 dan
Rozbalit Rozbalit vše Re: Ovladani konkretnich pinu na /dev/lp0
To je presne ono - hotove reseni.
Z nejakeho duvodu mi sice nefunguje na paralelnim portu (zkouseno na dvou pc s debian stable a testing), ale pro me ucely staci, kdyz rozhybam ledku (ScrollLock) na klavesnici, coz se dari a odtud vezmu signal pro rele.
Diky!

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.