Forum: Compiler & IDEs Eclipse Terminal Baudrate


von Olaf (Gast)


Lesenswert?

Wie ihr ja bestimmt wißt, kann man in Eclipse auch ein Terminalfenster 
öffnen.

Falls ihr es noch nicht wissen solltet:

http://stackoverflow.com/questions/12140381/how-to-open-a-serial-terminal-in-eclipse-juno

Weiss zufällig jemand wie man da auch ungewöhnlich Baudraten nutzen 
kann? Also z.B 10000Baud anstatt 9600B?

Bevor jetzt einer sagt, noe das geht nicht, das kann die Hardware nicht. 
Es geht wenn man einen virtuellen FTDI Comport verwendet.

Olaf

von Uwe (de0508)


Lesenswert?

Wir würden bestimmt gerne wissen, Warum?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Olaf schrieb:
> Es geht wenn man einen virtuellen FTDI Comport verwendet.

Das mag sein. Kann aber die von Java verwendete Bibliothek für die 
Ansteuerung von seriellen Schnittstellen das? Lässt die beliebige 
Baudraten an das unterliegende Betriebssystem durch, oder kennt die nur 
eine fixe Liste von Baudraten?

Dir wird wenig anderes übrigbleiben, als die Eclipse-Sourcen daraufhin 
zu untersuchen - sofern nicht noch jemand hier postet, der all das schon 
untersucht hat.

Abhilfe: Nimm ein anderes Terminalprogramm.

von Karl H. (kbuchegg)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Olaf schrieb:
>> Es geht wenn man einen virtuellen FTDI Comport verwendet.
>
> Das mag sein. Kann aber die von Java verwendete Bibliothek für die
> Ansteuerung von seriellen Schnittstellen das? Lässt die beliebige
> Baudraten an das unterliegende Betriebssystem durch, oder kennt die nur
> eine fixe Liste von Baudraten?

Wahrscheinlich letzteres.
Zumal in der meistens verwendeten Windows-API Funktion setCommState, 
eine serielle Schnittstelle mit einem DCB konfigueriert wird, und es in 
dieser nur eine Handvoll Konstanten für die Baudraten gibt.

http://msdn.microsoft.com/en-us/library/aa363214(v=vs.85).aspx

Und das ist auch meistens gut so. Denn wenn Lieschen Müller die Baudrate 
jeweils in Zahlenform eintippen muss, vertippt sie sich mindestens 3 
mal. Wählt sie die aber aus einer Combobox aus, dann kann sie sich schon 
mal nicht mehr vertippen.

Von einem FTDI, und das der auch andere Baudraten könnte, weiß aber 
weder setCommState noch die DCB Struktur irgendwas.

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Von einem FTDI, und das der auch andere Baudraten könnte, weiß aber
> weder setCommState noch die DCB Struktur irgendwas.

Probiert es mal aus. Mit HTERM geht es. Allerdings ist die Eingabe etwas 
umstaendlich. Man muss jedes einzelne Zahl markieren und kann sie dann 
aendern.

Olaf

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Karl Heinz schrieb:
> ... in der meistens verwendeten Windows-API Funktion setCommState,
> eine serielle Schnittstelle mit einem DCB konfigueriert wird, und es in
> dieser nur eine Handvoll Konstanten für die Baudraten gibt.
>
> http://msdn.microsoft.com/en-us/library/aa363214(v=vs.85).aspx

Dann sieh Dir mal die numerischen Werte dieser Konstanten an.

Das schreibt auch MS selber:
1
BaudRate
2
3
  The baud rate at which the communications device operates.
4
  This member can be an actual baud rate value, or one of the following indexes.

Ja: Das ist ... einfach die Baudrate. Anstelle dieser Konstanten kann 
also auch direkt die Baudrate angegeben werden, und die wird auch 
transparent an den jeweiligen Devicetreiber durchgereicht.

Die klassische PC-Onboard-Schnittstelle mit 8250 bzw. 16550, die kennt 
nur die Baudraten bis einschließlich CBR_115200, das ist aber eine 
Hardwareeinschränkung, denn die 8250 erzeugt ihre Baudrate aus einem 
1.8432-MHz-Quarz mit einem Vorteiler von 16, und jedem ganzzahligen 
Teiler von 1 bis potentiell 64k, wobei Werte größer als 2304 
ungebräulich sein dürften - das sind 50 Baud, wie man sie von 
mechanischen Fernschreibern her kennt.

Jede modernere Schnittstelle aber, wie insbesondere der FT232, erzeugt 
ihre Baudrate auf andere, flexiblere Art und Weise. Und hier hat MS bei 
der API --erstaunlicherweise-- mal mitgedacht und statt symbolischer 
fixer Konstanten für die Baudrate einfach den direkten Wert verwendet, 
so daß jede beliebige Baudrate verwendet werden kann, so es die Hardware 
und der unterliegende Devicetreiber zulassen.

von Karl H. (kbuchegg)


Lesenswert?

Rufus Τ. Firefly schrieb:

Danke für die Korrektur

> Jede modernere Schnittstelle aber, wie insbesondere der FT232, erzeugt
> ihre Baudrate auf andere, flexiblere Art und Weise. Und hier hat MS bei
> der API --erstaunlicherweise-- mal mitgedacht

In der Tat. Erstaunlich.
Damit hätte ich nicht gerechnet.
Wieder was gelernt.

von Olaf (Gast)


Lesenswert?

> In der Tat. Erstaunlich.

Das hab ich auch gedacht. Wer noch die Register des 8250 persoenlich 
kennengelernt hat, kommt erstmal garnicht auf den Gedanken. Praktisch 
ist das ganze natuerlich im Embedded Bereich wo die Baudraten auch 
schonmal unbewoehnlich sein koennen.

Noch lustiger ist aber die Eingabe bei Hterm. Wo der Programmierer das 
wohl auch nicht bedacht hat, aber man die Oberflaeche "bescheissen" kann 
indem man immer nur eine Zahl aendert.

Olaf

von Julian B. (julinho)


Lesenswert?

Olaf schrieb:
> Noch lustiger ist aber die Eingabe bei Hterm. Wo der Programmierer das
> wohl auch nicht bedacht hat, aber man die Oberflaeche "bescheissen" kann
> indem man immer nur eine Zahl aendert.

Hat der Programmierer jetzt gefixt, jetzt kommt die Fehlermeldung
"Value of "XXXXX" is not supported.

Kenn jemand einen anderes Terminalprogramm, mit freier Baudraten-Wahl?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Julian B. schrieb:
> Hat der Programmierer jetzt gefixt

Es gibt nach zig Jahren eine neue HTerm-Version?

von Julian B. (julinho)


Lesenswert?

Rufus Τ. F. schrieb:
> Julian B. schrieb:
>> Hat der Programmierer jetzt gefixt
>
> Es gibt nach zig Jahren eine neue HTerm-Version?

letzte Version war 2008:  Version 0.8.1 (24.11.2008)

wahrscheinlich hatte "Autor: Olaf (Gast)" auch nicht die neueste Version

von Olaf (Gast)


Lesenswert?

Der Olaf hat 0.8.1beta. Damit geht das, gerade noch probiert...

Olaf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.