mikrocontroller.net

Forum: PC-Programmierung Terminal für C++


Autor: XC866 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Ich habe ein kleines Reglessystem auf einem uP in C progrmmiert. Jetzt 
möchte ich zahlen von 0 bis 60 vom PC zum uP senden.

Ich möchte das Programm auf dem PC in C++ Programmieren.

Hat jemand ein fertiges Terminal in C++ das funktioniert.

Ich habe schon etliche Beispielterminals aus dem Internet geladen, habe 
aber keines richtig zum laufen gekriegt.

Ich programmiere mit Visual C++ 2005 express edition.

Gruss und Danke

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Also was willst du jetzt genau? Ein Terminalprogramm, ähnlich wie das 
Windows-Hyperterminal? Oder eine Terminal-Bibliothek, die du in dein 
(noch zu erstellendes) C++-Programm auf dem PC einbinden willst?

Im ersteren Fall kann ich dir Hterm 
(http://www.der-hammer.info/terminal/index.htm, Windows) empfehlen, 
wurde AFAIK von einem Mitglied dieses Forums erstellt.

Falls du nicht zwingend PC-seitig auf C++ angewiesen bist, so gibt es 
für Java die RXTX-Bibliothek (http://www.rxtx.org). Auch wenn Java für 
sowas oft als nicht geeignet betrachtet wird, habe ich damit sehr gute 
Erfahrungen gemacht!

Gruss

Michael

Autor: XC866 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Danke für deine Antwort.
Ich möchte eigentlich gerne das Terminal in ein Projekt einbinden.
Bis jetzt habe ich es mit VB versucht, dort habe ich auch ein Terminal 
gefunden, dass funktioniert aber irgendwie nicht richtig.

Die Kommunikation über das Hyperterminal funktioniert.

Autor: Knuddel Pudel (knopf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Im ersteren Fall kann ich dir Hterm
> (http://www.der-hammer.info/terminal/index.htm, Windows) empfehlen,
> wurde AFAIK von einem Mitglied dieses Forums erstellt.
>
>

Mich würde der Code interessieren.

Leider ist der Link tod.

Hast Du da ev. was für mich?

Gruß

Ralf

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sieh Dir einfach mal die Hauptseite http://www.der-hammer.info an, dann 
kommst Du weiter ...

Autor: Jan Dressler (keyman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mh ein geschulter blick auf den link sagt, dass da ein komma am ende 
ist.
also einfach hier versuchen:

http://www.der-hammer.info/terminal/index.htm

jan

Autor: Knuddel Pudel (knopf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Leider ist da keine source

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann schreib doch einfach Tobi an.

C-Quelltext für ein (Windows-) Terminalprogramm gibt es übrigens auch 
hier:

http://hp.vector.co.jp/authors/VA002416/teraterm.html

Was überhaupt ist für Dich ein "Terminal"? Geht es um eine ANSI- oder 
VT100-Emulation, oder meinst Du -wie Tobi auch- einfach nur ein 
Programm, das mit der seriellen Schnittstelle herummacht und darüber 
empfangene Daten als Hexdump (und in anderen Formaten) darstellt?

Autor: XC866 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich meine nur ein Programm wo ich int oder float Werte über die serielle 
Schnittstelle senden und empfangen kann.

Gruss

Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich meine nur ein Programm wo ich int oder float Werte über die serielle
>Schnittstelle senden und empfangen kann.

int = 16bit?
float auch mehr als 8 Bit?!

Über die serielle Schnittstelle kann man in der Regel nur 8bit breite 
Sachen schicken.
Also entweder den Datentyp in einzelne Byte zerlegen (z.B. per Union),
oder mit (s)printf oder itoa in ASCII-Zeichen wandeln und diese 
übertragen.


Autor: Rahul, der Trollige (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auf der anderen Seite muß man die Werte dann natürlich wieder 
entsprechend umformen.

Autor: XC866 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe mit dem uP ein kleines Tariersystem gebaut. Der uP senden die 
Ist-Neigung an den PC und dieser stellt die Werte mit einer Linie dar. 
Die Daten werden auch noch in einer Excel Datei gespeichert. Das 
funktioniert alles. Die Daten werden als float Wert gesendet. Um die 
komplette Zahl zu empfangen muss ich acht bytes empfangen. Dies hat aber 
automatisch so funktioniert.

Das senden funktioniert im Moment nur, wenn ich ein Byte nach dem 
anderen sende. Ich weis jetzt aber nicht, wie ich das machen kann, dass 
ich eine ganze zahl senden kann.
Es muss eigentlich kein float oder int Wert gesendet werden. Es reichen 
die Zahlen zwischen 11 und 71.

Gruss

Autor: KISS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es muss eigentlich kein float oder int Wert gesendet werden. Es reichen
>die Zahlen zwischen 11 und 71.

dann mach doch sowas wie
if(11<=x && x<12) c='A';
if(12<=x && x<13) c='B';
...
if(70<=x && x<71) c='?';

Irgendwelche 61 Zeichen wirst du schon finden. Das c kannst du dann wie 
gehabt terminalisieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.