Martin Angler wrote:

> Hallo,
> 
> ich habe ein Programm geschrieben, das Daten �ber eine RS-232
> Schnittstelle einlesen soll. Nun m�chte ich es gerne testen, habe aber
> an meinem Computer nur eine RS-232er Schnittstelle. Ein weiterer
> Computer zum Senden von Testdaten an meine RS-232 steht mir leider
> auch nicht zur Verf�gung. Das Programm muss aber dringend getestet
> werden. Deswegen meine Frage:
> 
> Kann ich vielleicht so etwas wie eine virtuelle serial-Verbindung
> herstellen? Kann man das mit ptys realisieren? Oder brauche ich so
> etwas wie einen virtual serial port driver?

Warum postest du hier? de.comp.os.unix.programming ist besser geeignet.
fup gesetzt.

Ich w�rde einmal sagen, du kannst ohne Probleme mit einem ptys das
Programm schreiben, das einzige was du nicht testen kannst sind die
termios Optionen ob die dann wirklich mit deinen Hardwareanforderungen
funktionieren.

Hinten gibts ein kleines open_port [0] als Hilfe, es gibt aber
massenhaft howtos daf�r im Internet.

mfg Markus


[0]
int open_port (char * PORT)
{
��������struct�termios�options;
��������int�fd;�//�Filedeskriptor
��������fd�=�open�(PORT,�O_RDWR�|�O_NOCTTY�|�O_NONBLOCK�|�O_SYNC);
��������//�fd�=�open�("/dev/ttyS0",�O_WRONLY�|�O_NOCTTY�|�O_NDELAY);
��������//�fd�=�open�("/dev/ttyS0",�O_RDWR�|�O_NOCTTY);
�������/*�ffne�serielle�Schnittstelle�ttyS1�mit�folgenden�Eigenschaften:
���������*�O_RDWR�read�and�write
���������*�O_NOCTTY�es�handelt�sich�um�keine�Konsole
���������*�O_NONBLOCK�nicht�blockieren
���������*�O_SYNC�warte�bei�jeden�write�aufruf,�bis�er�fertig�ist*/
��������if�(fd�<�0)�//�negative�Zahl�bei�fehler!
��������{
����������������fprintf(stderr,�"Open_port:�unable�to�open�%s\n",�PORT);
����������������exit�(1);�������//�irreparebel,�verlasse�Programm
��������}
��������fcntl�(fd,�F_SETFL,�O_ASYNC);
��������tcgetattr�(fd,�&options);
����������������//�verlange�die�aktuellen�Einstellungen
��������cfsetispeed�(&options,�B9600);��//��ndere�die�Baud-rate�auf�9600
��������cfsetospeed�(&options,�B9600);��//��ndere�die�Baud-rate�auf�9600
��������options.c_cflag�|=�(CLOCAL�|�CREAD);����//�auch�lesen�m�glich
��������options.c_cflag�&=�~PARENB;�����//�keine�Parit�tbits
��������options.c_cflag�&=�~CSTOPB;�����//�nur�ein�Stop-bit
��������//�options.c_cflag�|=��CSTOPB;��//�2�Stopbits
��������options.c_cflag�&=�~CSIZE;
��������//�l�sche�Datenbitseinstellung,�damit�n�chster�Befehl�g�ltig�ist
��������options.c_cflag�|=�CS8;�//�select�8�Databits
��������options.c_cflag�&=�~CRTSCTS;����//�disable�Hardwareflow�control
��������//�options.c_lflag�&=�~(ICANON�|�ECHO�|�ISIG);��//�raw�data
��������cfmakeraw�(&options);�����������//�real�raw!
��������tcsetattr�(fd,�TCSANOW,�&options);
��������return�fd;
}
-- 
Linux, the choice          | �ndern und bessern ist zweierlei.  --
of a GNU generation   -o)  | Sprichwort  
Kernel 2.6.6           /\  | 
on a i686             _\_v | 


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an