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


von XC866 (Gast)


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

von mr.chip (Gast)


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

von XC866 (Gast)


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.

von Knuddel P. (knopf)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Jan D. (keyman)


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

von Knuddel P. (knopf)


Lesenswert?

Leider ist da keine source

von Rufus Τ. F. (rufus) Benutzerseite


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?

von XC866 (Gast)


Lesenswert?

Hallo

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

Gruss

von Rahul, der Trollige (Gast)


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.


von Rahul, der Trollige (Gast)


Lesenswert?

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

von XC866 (Gast)


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

von KISS (Gast)


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.

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.