} { strona główna } { forum } { kontakt } {


Strefa czasowa: UTC + 1




Utwórz nowy wÄ…tek Odpowiedz w wÄ…tku  [ Posty: 5 ] 
Autor Wiadomość
Post Napisane: niedziela, 20 września 2009, 16:32
 
Offline

Dołączył(a): poniedziałek, 7 września 2009, 19:53
Posty: 44
Witam
napisałem prosty programik do otwierania portu, wysylania wiadomosci do niego oraz zamykania go
problem w tym ze kiedy chce to zrobic z portem lpt ten zwraca mi wiadomosc - Device busy - dlaczego jest 'busy' skoro jeszcze nic z nim nie robilem?
Poza tym w /dev mam mnostwo portow typu ttyvX (gdzie x 0-9 oraz a-f) i jeden ttyd0 <- ktory z nich jest wlasciwym portem COM (9 pinow) i jak to sprawdzic?

Oto kod programu:
Kod:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>

int open_port(void) {
int fd;
fd = open("/dev/lpt0", O_RDWR | O_NOCTTY | O_NDELAY);
if(fd==-1){ perror("open_port: Unable to open port - ");
} else { fcntl(fd, F_SETFL, 0); printf("open_port: port opened\n");}
return (fd);
}

int main(){
int k,fd,n;

fd=open_port();
n=write(fd,"ATZ/r",4);
if(n<0){printf("write() of 4 bytes failed\n"); } else { printf("write() of 4 bytes succseded\n"); }
k=close(fd);
if(k==0) { printf("port_close: port closed successful\n"); }
else { printf("port_close: unable to close the port\n");}
return 0;

}


Góra
 Zobacz profil
Post Napisane: poniedziałek, 21 września 2009, 13:42
 
Offline
Avatar użytkownika

Dołączył(a): środa, 2 sierpnia 2006, 12:59
Posty: 52
jarhead napisał(a):
Poza tym w /dev mam mnostwo portow typu ttyvX (gdzie x 0-9 oraz a-f) i jeden ttyd0 <- ktory z nich jest wlasciwym portem COM (9 pinow) i jak to sprawdzic?

Nie wiem jak w innych *bsd ale w openBSD com to com
root@obsd:~> dmesg | grep com
root@obsd.eu.org:/usr/src/sys/arch/i386/compile/GENERIC

com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo

Można też przy starcie dać:

boot> set tty com0

Spowoduje to, że OpenBSD będzie traktować pierwszy port szeregowy COM1 jako konsolę szeregową.

_________________
OBSD.eu.org - Free Shell


Góra
 WWW  Zobacz profil
Post Napisane: poniedziałek, 21 września 2009, 16:09
 
Offline

Dołączył(a): poniedziałek, 7 września 2009, 19:53
Posty: 44
no i wyswietla mi cos takiego
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
ale nie mam ani sio (sio0) ani acpi0 w /dev - jest tylko acpi
i jak probuje tym programem sie dostac do acpi to owszem port otwiera ale nie moze wyslac nic na ten port


Góra
 Zobacz profil
Post Napisane: wtorek, 22 września 2009, 11:52
 
Offline
Uczniak

Dołączył(a): niedziela, 27 marca 2005, 21:21
Posty: 113
http://www.freebsd.org/doc/en/books/handbook/serial.html

26.2.2.2.2 Port Names

In FreeBSD, you access each serial port through an entry in the /dev directory. There are two different kinds of entries:

*

Call-in ports are named /dev/ttydN where N is the port number, starting from zero. Generally, you use the call-in port for terminals. Call-in ports require that the serial line assert the data carrier detect (DCD) signal to work correctly.
*

Call-out ports are named /dev/cuadN. You usually do not use the call-out port for terminals, just for modems. You may use the call-out port if the serial cable or the terminal does not support the carrier detect signal.

If you have connected a terminal to the first serial port (COM1 in MS-DOS®), then you will use /dev/ttyd0 to refer to the terminal. If the terminal is on the second serial port (also known as COM2), use /dev/ttyd1, and so forth.

Pozdrawiam, Cr4sH

_________________
Obrazek


Góra
 Zobacz profil
Post Napisane: wtorek, 22 września 2009, 13:03
 
Offline
Avatar użytkownika

Dołączył(a): środa, 12 kwietnia 2006, 08:44
Posty: 67
Lokalizacja: Poznań
Sam się zastanów, co Ty chcesz zrobić. Napisałeś post'a o tytule: Programowanie portow COM. Następnie w poście napisałeś: "problem w tym ze kiedy chce to zrobic z portem lpt ten zwraca mi wiadomosc - Device busy - dlaczego jest 'busy' skoro jeszcze nic z nim nie robilem? "
Porty COM post wyżej. Nazwa ich zaczyna się od CUA...
Jest to port szeregowy.
Port równoległy (LPT) masz tutaj:
http://www.excamera.com/articles/21/parallel.html


Góra
 Zobacz profil
WyÅ›wietl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wÄ…tek Odpowiedz w wÄ…tku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów

Szukaj:
Skocz do:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group  
Design By Poker Bandits  
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL


Datanet.pl - stabilny hosting BSDGuru.org