Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

21

29.12.2005, 15:25

RE: Leitung einer Seriellen Schnittstelle initialisieren

Mit zurücksetzten meine ích die standardparameter setzten (wie beim hochfahren) vergleichbar mir reset.
bin immer am testen immer das gleiche Ergebnis. Des kann doch nicht am Terminal liegen, wenn es beim alten System funktioniert.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Newbie85« (29.12.2005, 15:36)


linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

22

29.12.2005, 22:28

RE: Leitung einer Seriellen Schnittstelle initialisieren

Zitat

Original von Newbie85
Mit zurücksetzten meine ích die standardparameter setzten (wie beim hochfahren) vergleichbar mir reset.
bin immer am testen immer das gleiche Ergebnis. Des kann doch nicht am Terminal liegen, wenn es beim alten System funktioniert.

1. du kannst doch mit stty -F /dev/ttyS0 -a alle optionen auslesen und die schnittstelle immer wieder mit diesen werten initialisieren.
2. soll das bedeuten, das vom alten rs6000 system die ausgabe auf den win2000 rechner funktioniert? hast du das getestet??

gruss
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

23

30.12.2005, 09:02

RE: Leitung einer Seriellen Schnittstelle initialisieren

Hoi

Auf die idee bin ich auch schon gekommen nur habe ich gedacht, dass es sowas gibt wie stty sane /dev/ttyS0.

Die RS 6000 funktioniert an der Maschine. Nur dasProblem ist das Mein Script auf die Maschine genauso reagiert wie am Terminal.

Maschine
Schicke Daten an Maschine. Maschine zählt zeilen bis stehen bleibt. Connection bleibt an der Maschine offen .(cat ist durchgelaufen = Pc wo Daten schickt läuft durch). Wenn man die Connection an der Maschine beendet und in die DAten hineinschaut fehlt ein teil.

Hyperterminal
Schicke Daten an Hyperterminal (Aufzeichnung). Nur ein Teil der Daten kommt an.

Maschine und Hyperterminal verhalten sich gleich.
Ein Arbeitskolege hat gemeint es liegt warscheinlich an den XON XOFF handschake.

24

30.12.2005, 10:16

RE: Leitung einer Seriellen Schnittstelle initialisieren

Noch eine Frage??? Hatte das Problem auch schon öffters. Was kann ich tun wenn der cat Befehl oder beim Setzen der Parameter mit stty nicht durchläuft. (Befehl wird nicht abarbeitet Prompt verschwindet). Hilft da nur ein Neustart???

25

30.12.2005, 11:33

RE: Leitung einer Seriellen Schnittstelle initialisieren

Es funktioniert zumiindest am Terminal jetzt. Keine Ahnung warum. Habe mal die Aufzeichnungsdatei nicht als Textdatei abgespeichtert sondern als Windows Datei und Anschließend mit den Editor geöffnet. Alles komplett. Hoffentlich klappt es bei den Maschinen.

Muss jetzt eine Woche warten damit ich es testen kann.
ich Berichte dann neues ob es geklappt hat oder nicht.

26

30.12.2005, 11:54

RE: Leitung einer Seriellen Schnittstelle initialisieren

Noch was Vergessen.

Gibt es irgend ein Zeichen das man schicken kann damit man mitteil das die Verbindung zuende ist. Sowas wie STRG Z (in Linux ^Z)

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

27

30.12.2005, 12:37

RE: Leitung einer Seriellen Schnittstelle initialisieren

Zitat

Original von Newbie85
Noch eine Frage??? Hatte das Problem auch schon öffters. Was kann ich tun wenn der cat Befehl oder beim Setzen der Parameter mit stty nicht durchläuft. (Befehl wird nicht abarbeitet Prompt verschwindet). Hilft da nur ein Neustart???

du kannst das cat doch mit dem kill befehl aus der prozesstabelle löschen .
einfach auf einer zweiten konsole ps -ax aufrufen und die prozessnummer des cat-prozesses ablesen. mit kill prozessnummer kansst du den prozess auffordern sich selbst zu beenden. sollte er sich nicht beenden, kannst du zu härteren mitteln greifen und mit kill -9 prozessnummer das ding wegruppen (brachialmethode für prozesse die nicht hören wollen :() ).
der character zum beenden ist der eof (end-of-file) charakter. welcher im aktuellen tty definiert ist, erfährst du mit stty -F /dev/ttyS0 -a. dort siehst du alle einstellungen und kannst auch den eof charakter sehen.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

28

30.12.2005, 14:41

RE: Leitung einer Seriellen Schnittstelle initialisieren

eof ist ^Z bei stty -F /dev/ttyS0 muss ich dann ein echo ^Z über ttyS0 schicken damit der empfänger weis das die Übetragung geendet ist oder erfolgt das automatisch mit der handshake definition (xon /xoff).

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

29

31.12.2005, 16:17

RE: Leitung einer Seriellen Schnittstelle initialisieren

Zitat

Original von Newbie85
eof ist ^Z bei stty -F /dev/ttyS0 muss ich dann ein echo ^Z über ttyS0 schicken damit der empfänger weis das die Übetragung geendet ist oder erfolgt das automatisch mit der handshake definition (xon /xoff).

natürlich kannst du steueranweisungen an ein terminal schicken, bedenke aber, dass zb ^Z eine escape-sequenz ist. es nützt also nichtst mit echo
echo "^Z" > /dev/ttyS0
abzuschicken, da das ja ganz normaler text ist. mit dem zeichen ^ ich das ascii-escape (nichtdruckbares zeichen 033=0x1B=27 oktal,hexadezimal,dezimal) gemeint. richtig sieht die echo anweisung also so aus
echo -e "\033Z" > /dev/ttyS0
\033 ist die oktale codierung des escape-ascii-zeichens
du kannst zb den inhalt eines ansi terminals mit
echo -e "\033[;H\033[2J" > /dev/ttyS0
löschen.
ob eine escape sequenz funktioniert hängt davon ab, ob das terminal,das die anweisung empfängt, diese auch kennt. du musst also die escape sequenzen senden, die das hyperterminal versteht, nicht dein linuxterminal!
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

30

20.01.2006, 14:02

RE: Leitung einer Seriellen Schnittstelle initialisieren

hi linuxerr!!

Ertmal ein gutes neues Jahr und enschuldige das ich mich schon lange nicht mehr gemeldet habe. Kann leider meine Scripte nicht an der Maschine testen. Habe jetzt übertragungstest vom Altsystem (RS6000) und Laptop (Hyperterminal) gemacht. Folgendes wurde festgestellt: Ab Ende jedes Programms war eine schwarze Raute zu sehen. Kannst du mir sagen was Sie bedeutet. Teilt sie der MAschine mit das die Übertragung zuende ist.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

31

20.01.2006, 14:18

RE: Leitung einer Seriellen Schnittstelle initialisieren

hallo,
auch dir ein gesundes neues jahr.

nun zur schwarzen raute.

ich habe mal generell einen vorschlag.
verbinde die ibm kiste doch mal mit einem linuxrechner, der als dummy-maschine dienen soll. dann schickst du von der ibm einige verschiedene, nicht zu lange files ab und zeichnest sie mit dem linuxrechner auf.
dann haben wir das originalfile vor dem versenden von der ibm-maschine und das file nach dem versenden als kopie auf dem linuxrechner. durch ein diff können wir dann sehen, welche versteckten zeichen evtl noch eingefügt wurden.

es ist näturlich ohne weiteres denkbar, das als eot-zeichen eine schwarze route vereinbart wurde, denn prinzipiell gibt es da ja keine feste vorgabe und es würde sich jedes nichtdruckbare zeichen eignen.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »linuxerr« (20.01.2006, 14:19)


32

20.01.2006, 15:43

Erstmals Danke für die schnelle Antwort. Kann momentan kein PC an der Maschine ranhängen (wird zurzeit benutzt). Muss auf freigabe warten. Kleine Frage am Rande was für Programmierspachen gibt es die mit f enden z.b test.f. Es besteht die möglichkeit das ich in meiner C anwendung was vergesen habe.

33

23.01.2006, 16:25

Hi!!

kleine Frage mit echo -e "/004" > /dev/ttyS0 dann schicke ich doch EOT an die Schnittstelle. Ist das normal wenn ich es ausführe, das am hyperterminal ein F erscheint. Sollte da nicht ^D erscheinen oder ist das egal.

004 ist der oktalwert von EOT.

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

34

23.01.2006, 16:39

Zitat

Original von Newbie85
Hi!!

kleine Frage mit echo -e "/004" > /dev/ttyS0 dann schicke ich doch EOT an die Schnittstelle. Ist das normal wenn ich es ausführe, das am hyperterminal ein F erscheint. Sollte da nicht ^D erscheinen oder ist das egal.

004 ist der oktalwert von EOT.


wenn du den oktalwert versenden willst, dann mit
echo -e "\004" > /dev/ttyS0
^D ist jedoch eine escape-sequenz und die gibst du entweder mit
echo -e "\033D" > /dev/ttyS0
oder mit dem vordefinierten zeichen \e aus, also mit
echo -e "\eD" > /dev/ttyS0
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

35

23.01.2006, 16:40

Ich will nur ein EOT schicken. Wäre es dann echo -e "\004" richtig??

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Newbie85« (23.01.2006, 16:41)


linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

36

23.01.2006, 16:47

Zitat

Original von Newbie85
Ich will nur ein EOT schicken. Wäre es dann echo -e "\004" richtig??


wenn du den oktalwert \004 schicken willst (jetzt ist der schrägstrich richtig herum :) ) , dann ist das so richtig. ob das terminal das als eot akzeptiert, weiss ich nicht das hängt vom terminal ab. probier es aus, kann ja nichts weiter passieren, von einer nuklearen kernschmelze mit anschliessender zündung des gesamten schweren wassers der weltmeere mal abgesehen. na ja wirds wenigstens ein bisschen wärmer, bei der saukälte momentan.
also probiers einfach.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

37

23.01.2006, 16:55

Kann es gerade nur am Hyperterminal testen. Maschinen werden gerade benutzt. habe eine Exe gefunden die von der alten MAschine ausgeführt wird. Da steht drin.

---Wenn ein "]"-Zeichen an der ersten Stelle erkannt wird, wird stattessen ein EOT ASCII 4 sowie 100 Nullcharacter ausgegeben

Danke für Schnelle antwort

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

38

23.01.2006, 17:10

na wie gesagt, wenn man ein eigenes terminalprogramm schreibt (wie es ja bei der implementierung in den maschinen ist) kann man alle möglichen zeichenkombinationen zur steuerung verwenden und das ohne dokumentation aufzudröseln ist eine suche nach dem heuhalm im stecknadelhaufen. als orientierung ist es bestimmt nicht schlecht, wenn du eine aufzeichnung des datenstroms von der ibm kiste machst um zu sehen, was wircklich raus geht.
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

39

24.01.2006, 12:26

Hoi!!

Es funktioiert. Ich musste der Maschine nur ein EOT schicken. Sie beendet die übertragung.

Danke für deine Hilfe

linuxerr

Prof. Dr. Schlaumeier

  • »linuxerr« ist männlich

Beiträge: 8 557

Wohnort: Mecklenburg, zur Entwicklungshilfe in Chemnitz/Sachsen ;-)

  • Nachricht senden

40

24.01.2006, 12:49

sehr schön,
ich freue mich mit dir :)

gruß
Die Rechtschreibfehler in diesem Beitrag sind nicht urheberrechtlich geschützt.
Jeder der einen findet darf ihn behalten und in eigenen Werken weiterverwenden.

Thema bewerten