Pages: 1 [2] 3   Go Down
Author Topic: Serial Monitor  (Read 2923 times)
0 Members and 1 Guest are viewing this topic.
Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich über gerade mit dem Putty062 den kann ich ja so einstellen das er mir genau so eine Größe an Fenster liefert wie ich brauche. Es ist nur immer so langwierig alles raus zu bekommen wenn man kein Englisch kann. Aber ich werde es schon irgendwie schaffen. smiley-roll-blue
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Offline Offline
Sr. Member
****
Karma: 4
Posts: 361
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn dir das so reicht.

Im Prinzip schickt der Arduino nur den Temperaturwert.
Die Zeit der RTC brauchst du am PC nicht, könnte man alternativ die Rechneruhr anzeigen
Wäre in Delphi kein Problem, wenn eine tserial Komponente vorhanden.

Geht natürlich auch mit dem C++ Builder, kannst ja mal ansehen
Ich würde dann aber den Tempwert als Integer schicken und auf der PC Seite umrechnen.
 
Wie volvodani schon sagte, ein Ethernetshield wäre eine bessere Alternative.
Die "richtig harten Brocken" übernimmt die Lib, der Rest ist relativ easy. (must dich ein wenig mit HTML befassen)
Logged

Arduino UNO,MEGA,Pro Mini Ethernet Shield

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ja da hast Du schon Recht das ich die System Uhr des PC nutzen kann, jedoch habe ich dann keine Controlle darüber ob die RTC in Aktion ist oder nicht. Mit Html sollte kein Problem sein da ich schon so manche HP gebaut habe.Mit dem Putty das geht schon ganz gut auf dem Netbook, jedoch weis ich nicht wie er die Daten ausliest. Da mir bei dem Putty Monitor die Zeit , Datum und Tempratur angezeigt wird in dem Fenster wie ich die Größe einstelle, jedoch nicht so wie ich das möchte, so das die z.B Uhrzeit ruhig steht und die Sekunden hochgezahlt werden, wie es eben bei einer Digitalen UHR sein sollte sondern immer die komplette Uhrzeit weg ist und neu angezeigt wird. Gut ich habe mir das schon gedacht das ich eventuell die ausgelesenen  Daten vom Pc neu verarbeiten lassen muss um die fest stehende Zeit an zu geben. Jedoch solch ein Programm kann ich nicht schreiben, da habe ich überhaupt kein Plan. Aber ich Danke euch für eure rege Anteil Nahme und vielleicht  klappt es ja doch noch. Gut mit dem Ehtenetshild  ist vielleicht die bessere Lösung nur ich machen nichts mit einem Smartphon oder sonstiges und ich brauche ja auch nicht von meinem PC auf den Arduino zu zu greifen, mir geht es lediglich darum das Netbook zu nutzen und Ihn als Monitor zu nutzen. Um auf das Netbook zu zu greifen gibt es einfachere lösungen z.B. Taemwiever.
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jurs

Mal eine Frage an Dich. Ich habe mir das Programm Putty runtergeladen und mir auch das von Dir gepostete Beispielangesehen, das gefällt mir Gut. Nur ich möchte gerne wenn das machbar ist mir einen Monitor basteln, wo die Uhrzeit, Datum temperatur ausgegeben wird ohne das jedesmal die Anzeige gelöscht wird und neu geschrieben wird, wenn Du weist was ich meine. So wie bei einer Digitalen UHR wo die Sekunden hoch gezählt werden in der Anzeig. ist das möglich oder müsste ich die Daten erst auslesen aus dem Arduino und auf dem PC mit einem anderen Programm so zur Anzeige brnigen wie ich mir das vorstelle????? Dein Beispiel in dem Link den Du gepostet hast gefällt mir echt Gut nur das ist ja nur die Grafik und da bewegt sich nichts. Aber so stelle ich mir mein Netbook als Monitor schon vor. Schön wäre natürlich wenn es noch eine Funktion gäbe wo, wenn die Uhrzeit sich mal ändert vor der nach läuft ich über den Monitor die Uhr neu stellen könnte.
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2436
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nur ich möchte gerne wenn das machbar ist mir einen Monitor basteln, wo die Uhrzeit, Datum temperatur ausgegeben wird ohne das jedesmal die Anzeige gelöscht wird und neu geschrieben wird, wenn Du weist was ich meine. So wie bei einer Digitalen UHR wo die Sekunden hoch gezählt werden in der Anzeig. ist das möglich oder müsste ich die Daten erst auslesen aus dem Arduino und auf dem PC mit einem anderen Programm so zur Anzeige brnigen wie ich mir das vorstelle?????

Natürlich kannst Du die Daten so an das Terminal senden, dass das Terminal die Daten darstellt, die Du möchtest.
Und zwar auch ohne jedesmal den Bildschirm zu löschen.

Im Prinzip hast Du die Vorgabe ja durch die Funktionen setup und loop:
Setup läuft nach einem Reset einmalig, loop läuft dauernd und wieder und wieder.

Da der Controller jedesmal ein Reset ausführt, wenn Du im PC das Terminal startest, ist es einfach:
1. In der setup-Funktion sendest Du einmalig eine feste "Bildschirmmaske"
2. In der loop-Funktion sendest Du die sich ständig ändernden Daten, immer in die Datenfelder und immer  "mit gleicher Datenbreite"

Ich habe da mal ein Beispiel vorbereitet:
Code:
// Demonstration code for ANSI/VT100 terminal codes on Arduino
// Created by "jurs" for German Arduino forum
// Do NOT use the Arduino serial monitor with this sketch!
// You must use a terminal emulation software to show the serial output correctly.
// When using Windows you can use "PUTTY" configured to your Arduino COM Port.

// defines taken from list at http://www.fourwalledcubicle.com/files/LUFA/Doc/090605/html/dd/d6d/a00111.html
#define ANSI_ESCAPE_SEQUENCE(c) "\33[" c
#define ESC_RESET ANSI_ESCAPE_SEQUENCE("0m")
#define ESC_BOLD_ON ANSI_ESCAPE_SEQUENCE("1m")
#define ESC_ITALICS_ON ANSI_ESCAPE_SEQUENCE("3m")
#define ESC_UNDERLINE_ON ANSI_ESCAPE_SEQUENCE("4m")
#define ESC_INVERSE_ON ANSI_ESCAPE_SEQUENCE("7m")
#define ESC_STRIKETHROUGH_ON ANSI_ESCAPE_SEQUENCE("9m")
#define ESC_BOLD_OFF ANSI_ESCAPE_SEQUENCE("22m")
#define ESC_ITALICS_OFF ANSI_ESCAPE_SEQUENCE("23m")
#define ESC_UNDERLINE_OFF ANSI_ESCAPE_SEQUENCE("24m")
#define ESC_INVERSE_OFF ANSI_ESCAPE_SEQUENCE("27m")
#define ESC_STRIKETHROUGH_OFF ANSI_ESCAPE_SEQUENCE("29m")
#define ESC_FG_BLACK ANSI_ESCAPE_SEQUENCE("30m")
#define ESC_FG_RED ANSI_ESCAPE_SEQUENCE("31m")
#define ESC_FG_GREEN ANSI_ESCAPE_SEQUENCE("32m")
#define ESC_FG_YELLOW ANSI_ESCAPE_SEQUENCE("33m")
#define ESC_FG_BLUE ANSI_ESCAPE_SEQUENCE("34m")
#define ESC_FG_MAGENTA ANSI_ESCAPE_SEQUENCE("35m")
#define ESC_FG_CYAN ANSI_ESCAPE_SEQUENCE("36m")
#define ESC_FG_WHITE ANSI_ESCAPE_SEQUENCE("37m")
#define ESC_FG_DEFAULT ANSI_ESCAPE_SEQUENCE("39m")
#define ESC_BG_BLACK ANSI_ESCAPE_SEQUENCE("40m")
#define ESC_BG_RED ANSI_ESCAPE_SEQUENCE("41m")
#define ESC_BG_GREEN ANSI_ESCAPE_SEQUENCE("42m")
#define ESC_BG_YELLOW ANSI_ESCAPE_SEQUENCE("43m")
#define ESC_BG_BLUE ANSI_ESCAPE_SEQUENCE("44m")
#define ESC_BG_MAGENTA ANSI_ESCAPE_SEQUENCE("45m")
#define ESC_BG_CYAN ANSI_ESCAPE_SEQUENCE("46m")
#define ESC_BG_WHITE ANSI_ESCAPE_SEQUENCE("47m")
#define ESC_BG_DEFAULT ANSI_ESCAPE_SEQUENCE("49m")
#define ESC_CURSOR_POS(L,C) ANSI_ESCAPE_SEQUENCE(#L ";" #C "H")
#define ESC_CURSOR_UP(L) ANSI_ESCAPE_SEQUENCE(#L "A")
#define ESC_CURSOR_DOWN(L) ANSI_ESCAPE_SEQUENCE(#L "B")
#define ESC_CURSOR_FORWARD(C) ANSI_ESCAPE_SEQUENCE(#C "C")
#define ESC_CURSOR_BACKWARD(C) ANSI_ESCAPE_SEQUENCE(#C "D")
#define ESC_CURSOR_POS_SAVE ANSI_ESCAPE_SEQUENCE("s")
#define ESC_CURSOR_POS_RESTORE ANSI_ESCAPE_SEQUENCE("u")
#define ESC_ERASE_DISPLAY ANSI_ESCAPE_SEQUENCE("2J")
#define ESC_ERASE_LINE ANSI_ESCAPE_SEQUENCE("K")

#define ESC_CURSOR_OFF ANSI_ESCAPE_SEQUENCE("?25l")
#define ESC_CURSOR_ON ANSI_ESCAPE_SEQUENCE("?25h")

void s(char* str)
{ // put string to Serial - short form
  Serial.print(str);
}

void sendcursor(int r, int c)
{ // set ANSI terminal cursor to specified row and column
  char str[12];
  sprintf(str,"\33[%d;%dH",r,c);
  s(str);
}

void settext(char* fg, char* bg, char* cup, char* str)
// send text to terminal with foreground color, background color, cursor position
{
  s(cup);
  s(fg);
  s(bg);
  s(str);
}

void clearsquare(char* fg, char* bg, int r1, int c1, int r2, int c2)
{ // clears a square on the terminal window with colors set
  s(fg);
  s(bg);
  for (int i=0;i<r2-r1;i++)
  {
    sendcursor(r1+i, c1);
    for (int i=0;i<c2-c1;i++) s(" ");
  } 
}

char time[]=__TIME__;
int stunden,minuten,sekunden;

void ShowScreen()
// Die Bildschirmmaske ausgeben (was gleich bleibt)
{
  char* color;
  s(ESC_BG_BLUE);
  s(ESC_FG_GREEN);
  s(ESC_ERASE_DISPLAY);
  s(ESC_CURSOR_OFF);
  for (int i=0;i<6;i++)
  {
    switch (i)
    {
      case 0: color=ESC_BG_RED;break;
      case 1: color=ESC_BG_YELLOW;break;
      case 2: color=ESC_BG_GREEN;break;
      case 3: color=ESC_BG_MAGENTA;break;
      case 4: color=ESC_BG_CYAN;break;
      case 5: color=ESC_BG_BLACK;break;
     }
     clearsquare(ESC_FG_BLACK,color, 2+i,2+2*i, 15-i,32-2*i);
  } 
}

void showTime()
// Die veränderlichen Teile des Bildschirms ausgeben (Zeitanzeige)
{
  char textbuffer[10];
  sprintf(textbuffer,"%02d:%02d:%02d",stunden,minuten,sekunden);
  settext(ESC_FG_WHITE, ESC_BG_BLACK, ESC_CURSOR_POS(8, 13), textbuffer);
}


void tickOneSecond()
{
  sekunden++;
  if (sekunden>=60) {sekunden=0;minuten++;}
  if (minuten>=60) {minuten=0;stunden++;}
  if (stunden>=24) {stunden=0;}
}


void setup()
{
  Serial.begin(9600);
  ShowScreen();
  stunden=atoi(time);
  minuten=atoi(&time[3]);
  sekunden=atoi(&time[6]);
}

unsigned long alteSekunde;
void loop()
{
  if (alteSekunde==millis()/1000) return; // selbe Sekunde, loop verlassen
  alteSekunde=millis()/1000;
  tickOneSecond(); // Uhrzeit weiterticken lassen
  showTime();  // Uhrzeit anzeigen
}

Die setup-Funktion sendet einmalig den bunten Multi-Rahmen.
Die loop-Funktion sendet jede Sekunde einmal die neue Zeit (und nur die Zeit, ohne den Rahmen)

Das mit der Zeit ist in dem Fall natürlich ein kleiner Fake, weil der Sketch keine Echtzeituhr ausliest, sondern die Zeit aus der Zeitangabe ermittelt, zu der Du das Programm kompiliert hast. Diese Zeitangabe hole ich aus dem fertigen Programm. Nach jedem Reset fängt die Zeit daher mit demselben Startwert an zu laufen, nämlich mit der Uhrzeit, zu der Du das Programm kompiliert und hochgeladen hast. Also jedesmal beim Starten von Putty startet wieder dieselbe Zeit auf dieser "Uhr".
smiley-wink

Dein Beispiel in dem Link den Du gepostet hast gefällt mir echt Gut nur das ist ja nur die Grafik und da bewegt sich nichts. Aber so stelle ich mir mein Netbook als Monitor schon vor.

Dann teste mal den Sketch mit der sich bewegenden Uhrzeit.
Geschwindigkeit ist keine Hexerei.

Damit es am Bildschirm nicht flimmert, mußt Du Änderungen im Prinzip in weniger als 1/25s ausführen, dann liegt die Änderungszeit unterhalb der Trägheit des Auges.

Flimmerfrei hältst Du den Bildschirm also dadurch, dass Du
- nur die wenigen geänderten Daten auf den Bildschirm schickst
- und im Zweifelsfall die Baudrate erhöhst (bei Arduino im Serial.begin und auch bei Putty)

Schön wäre natürlich wenn es noch eine Funktion gäbe wo, wenn die Uhrzeit sich mal ändert vor der nach läuft ich über den Monitor die Uhr neu stellen könnte.

So eine Konfigurationsmöglichkeit ist natürlich nicht ganz so einfach, je nachdem wie nett es optisch aussehen soll.

Wenn es optisch gar nicht aussehen soll, könntest Du eine "Kommando-Blindeingabe" vorsehen. Dann müßtest Du etwa zum Setzen der Zeit eine solche Zeile eingeben können, ohne dass die Zeichen am Bildschirm sichtbar werden:
time 21:37
und mit der Enter-Taste abschließen, um die Zeit z.B. auf 21:37 Uhr zu setzen.

Die nächsthöhere Schwierigkeitsklasse wäre, dass Du oben oder unten am Bildschirm zusätzlich zu den dargestellten Daten einen Zeileneditor programmierst, in dem die eingegebenen Zeichen erscheinen. So wie im seriellen Monitor der Arduino-Software die Sendezeile oben oberhalb des Datenfensters.

Die höchste Schwierigkeitsklasse wäre es schließlich, wenn Du eigene Dateneingabebildschirme programmierst, so dass Du komplett verschiedene Bildschirme für Dateneingabe und Datendarstellung hast. Das ist alles möglich, aber da ein Arduino nur ein Mikrocontroller ist und kein Betriebssystem hat, bekommst Du natürlich auch keine Betriebssystemunterstützung, z.B. bei der Darstellung eines Eingabefelds. Da mußt Du Cursorverschiebung nach rechts und links, Eingabe, Löschen und alles komplett selbst programmieren.

Logged

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich danke Dir für die Tolle Erklärung und ich werde Dein Beispiel mal ausprobieren. Aber so ist es schon in Ordnung, denn mir geht es ja echt nur darum das ich den Lappi für den Monitor nutzen kann.
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe mir Dein Beispiel einmal angesehne, Genau so möchte ich das haben, Gut die Farben wohl ehr nicht, aber die UHR sollte genau so angezeigt werden, da werde ich mich einmal einarbeiten, ich schreibe Dir wenn ich es geschafft habe. smiley-fat
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2436
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich danke Dir für die Tolle Erklärung und ich werde Dein Beispiel mal ausprobieren. Aber so ist es schon in Ordnung, denn mir geht es ja echt nur darum das ich den Lappi für den Monitor nutzen kann.

Kein Problem. Vielleicht sollte ich nochmal ein etwas praxisgerechteres Beispiel machen, mit einer Zeile für Kommandoeingabe. So dass man Kommandos eingeben kann, die dann in Steuerbefehle umgesetzt werden, z.B. zum Schalten von irgendwas, oder zum Neusetzen der Uhrzeit und des Datums.

Übrigens hat Putty als Terminalprogramm anscheinend eine recht umfangreiche Implementierung der VT100-Steuercodes. Unter anderem werden auch "doppelt hohe und doppelt breite Zeichen" unterstützt, so dass man Zahlen und Daten auch doppelt so groß darstellen kann. Dazu muß "die obere Hälfte" und "die untere Hälfte" der jeweiligen Zeile einzeln ausgegeben werden, zusammen mit den passenden Steuercodes.

Beispielausgabe zu meinem Code für doppelt große Zeichen:
Code:
// Zeit nochmal ausgaben und zwar mit doppelter Textgröße weiter unten
  settext(ESC_FG_YELLOW, ESC_BG_BLUE, ESC_CURSOR_POS(16, 5), "\33#3");
  s(textbuffer);
  settext(ESC_FG_YELLOW, ESC_BG_BLUE, ESC_CURSOR_POS(17, 5), "\33#4");
  s(textbuffer);

Mit Putty sind die doppelt großen Zeichen kein Problem, keine Ahnung wie es mit anderen Terminalprogrammen aussieht. Je speziellere Formatierungsoptionen man verwendet, desto wahrscheinlicher ist es jedenfalls, dass nicht jede beliebige Terminalsoftware auch jeden ausgefuchsten Spezialcode korrekt darstellen kann.

Ach ja, mal kurz mit einem anderen Freeware-Terminalprogramm getestet:
http://www.shamrock.de/tools.htm#shamcom
Das Programm versteht im Gegensatz zu Putty weder die doppelt hohen / doppelt breiten Zeichen.
Es versteht auch noch nicht einmal das Abschalten des Cursors.
Und es ist langsamer bei der Darstellung.
Ansonsten auch nicht schlecht.
« Last Edit: June 30, 2013, 03:43:01 pm by jurs » Logged

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jurs

Ich denke ich bleibe bei dem Putty, so langsam begreife ich wie es geht mit den Einstellungen und schön das man zum Testen die Einstellungen abspeichern kann und wieder aufrufen. Das mit den Doppelt Großen Ziffern ist schon toll. Ich möchte auch nicht soviel ausprobieren mit verschiedenen Terminal Programmen, da komme ich sonst durcheinander  smiley Aber ich möchte mich noch einmal Herzlich für Deine Hilfe bedanken...  ich habe nur das Problem ich kann kein Englisch und bei den Übersetzungs Programmen, die im INet rumschwirren, kommt meist bei längeren Texten so ein Mist bei rum nach der Übersetzung da ist das Englisch ja verständlicher. aber so komme ich schon zurecht, dauert zwar immer was beim Testen  aber es macht Spaß und ich mache das gerne vor allem wenn ich Erfolge sehe.
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

jurs, Ich habe ein Problem bei Putty. Ich habe mir jetzt was gebastelt was mir schon ganz Gut gefällt in den Anfängen. Erst einmal mit der Doppelten Zeichengröße geht super und was mir noch Gut gefällt ist das man dann den Zeichen 2 verschiedene Farben zu ordnen kann. Aber jetzt zu meinem Problem. Ich habe Oben in der Anzeige des Monitors, einmal Uhrzeit dann einen Titel und dann Datum stehen. Unter dem Schriftzug Uhrzeit erscheint jetzt die laufende UHR, mit dem Datum muß ich mal sehen wie ich das aus Windows auslese. Aber das ist es ja nicht, sondern ich wollte in der Anzeige unterhalb noch den Schriftzug Temperatur eingeben und darunter die Temperatur der Beleuchtung , wo dann ab einer bestimmten Temperatur die Lüfter an gehen. jetzt ist es so wenn ich den Schriftzug Temperatur eingebe und zwar genau so wie ich die anderen eingegeben habe mit Zeile und Spaltenangabe, bekomme ich jedesmal solche komischen Zeichen auf den Monitor und ich weis nicht woran es liegt, nehme ich den Schriftzug Temperatur raus ist der Monitor normal. Ich hänge einmal ein Bild an wo man die Zeichen sieht und den Code meiner Schrift eingaben.
// Zeit nochmal ausgaben und zwar mit doppelter Textgröße weiter unten
   
 
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(5, 5), "\33#3");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(5, 5), "Uhrzeit:");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(6, 5), "\33#4");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(6, 5), "Uhrzeit:");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(3, 25), "\33#3");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(3, 25), "AQUA-CONTROL");
  settext(ESC_FG_RED, ESC_BG_GREEN, ESC_CURSOR_POS(4, 25), "\33#4");
  settext(ESC_FG_RED, ESC_BG_GREEN, ESC_CURSOR_POS(4, 25), "AQUA-CONTROL");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(5, 50), "\33#3");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(5, 50), "Datum:");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(6, 50), "\33#4");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(6, 50), "Datum:");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(30, 25), "\33#3");
  settext(ESC_FG_BLUE, ESC_BG_GREEN, ESC_CURSOR_POS(30, 25), "Temperatur:");
  settext(ESC_FG_RED, ESC_BG_GREEN, ESC_CURSOR_POS(31, 25), "\33#4");
  settext(ESC_FG_RED, ESC_BG_GREEN, ESC_CURSOR_POS(31, 25), "Temperatur:");

  settext(ESC_FG_RED, ESC_BG_GREEN, ESC_CURSOR_POS(7, 5), "\33#3");
  s(textbuffer);
  settext(ESC_FG_RED, ESC_BG_GREEN, ESC_CURSOR_POS(8, 5), "\33#4");
  s(textbuffer);
}




* Monitor.JPG (61.46 KB, 720x540 - viewed 15 times.)
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2436
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich hänge einmal ein Bild an wo man die Zeichen sieht und den Code meiner Schrift eingaben.

Jetzt übertreibst Du es aber mit den VT100 Sonder-Spezialcodes für doppelt hohe und doppelt breite Zeichen!

Wenn Du alles auf dem Monitor nur größer darstellen möchtest, dann konfigurierst Du natürlich Putty-Fenster um und sendest nicht alles als Spezialcodes für doppelt hoch und doppelt breit.

So bekommst Du eine Darstellung mit großen Zeichen in Putty hinein:

1. Ich gehe mals davon aus, dass Du das Zugriffs-Profil unter Putty bereits mit einem Namen als "Saved Session" gespeichert hast, sagen wir mal Deine Saved Session heißt so ähnlich wie "Arduino COM8" wenn Du den Arduino an COM8 hängen hast.

2. Dann klickst Du einmal den gespeicherten Namen an und "Load", um das Profil zu laden

3. Dann klickst Du links auf "Window" und änderst die Optionen für das Putty Fenster:
Set the size of the window columns: 40
Set the size of the window rows: 12
When the windows is resized: X Change the size of the font.

Damit setzte Du Fensterbreite auf 40 Spalten (bei einem Wide-Screen Monitor evt. auch 50) und 12 Zeilen und sagst, dass beim Ändern der Fenstergröße die Schriftgröße angepaßt werden soll (und nicht mehr Spalten und mehr Zeilen dargestellt werden sollen)

4. Dann klickst Du auf "Save", um das Profil als Saved Session zu speichern

Jetzt startest Du das Terminal unter Session mit Doppelklick auf den Session-Namen und siehst ein Putty-Fenster zur Darstellung von 40 Spalten mit 12 Zeilen. Wenn Du das Fenster nun vergrößerst, vergrößert sich die Schriftart. Du kannst das Fenster maximieren (Doppelklick auf die Titelzeile des Terminal-Fensters) und bekommst eine Bildschirmdarstellung mit 40x12 Zeichen auf dem Monitor in riesigen Buchstaben. Und zwar alles in riesigen Buchstaben. Ohne Spezialcodes.

Was die Matschzeichen auf dem Monitor betrifft, müßtest Du mal jede Ausgabe über Serial überprüfen, ob Du irgendwo Textpuffer ausgibst, die nicht richtig formatiert sind. Also wo entweder das Char-Array zu klein definiert ist, wenn Du irgendwelche auszugebenden Texte hineinformatierst. Oder Du irgendwo einen Textpuffer ausgibst, der nicht mit dem gewünschten Text initialisiert ist.
Logged

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, das mit der Configuration von Putty habe ich schon verstanden und alles schon mal probiert. Aber mit den Eingaben für Windows Größe ist so wie ich sie eingestellt habe schon Optimal, Columns 130 und Rows 110  so ist die Schrift auf den Bildschirm super Klar und Deutlich angepasst und Ideal zum lesen. Mit den Matschzeichen muss ich noch testen , wird aber schon klappen. Ich war nur so verwirrt, wenn ich den Schriftzug Temperatur raus nahm hatte ich diese Zeichen nicht sobald ich Ihn einfügte waren die Zeichen wieder da. Ich habe es jetzt soweit das mir der Monitor auf dem Netbook, Uhrzeit, Pumpensteuerung so das ich sehen kann welche Pumpe läuft 1 oder 2, Datum .... alles anzeigt. Jetzt noch die Temperatur auslesen lassen von dem Controller und auf den Monitor dann bin ich Zufrieden. Du warst mir eine Große Hilfe, ich denke einmal alleine hätte ich das nie hin bekommen, man braucht immer etwas wo man das Prinzip nachschlagen kann.  smiley


l.G.Jürgen
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So ich habe es, ich habe diese Zeile abgeschaltet und dann sind die Matschzeichen weg:
// clearsquare(ESC_FG_BLACK,color, 2+i,2+2*i, 15-i,32-2*i);

l.G.Jürgen
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So sieht es bisher aus und es gefällt mir echt gut mit Putty, die die Zahl der Pumpe wird beim Wechsel von Nr.1 auf 2 gesetzt oder Umgekehrt jetzt noch das Datum da habe ich noch leichte Probleme, aber das bekomme ich schon hin und die Temperatur, da muss ich noch den Sensor an den Arduino pinnen. Eventuell noch eine Eingaben Zeile am Unteren Bildschirm und eventuell noch die Hauptbeleuchtung, Blauephase und Komplette Beleuchtung anzeigen lassen. Ich weis es ist zwar nur eine Spielerei aber mir gefällt es.

l.G.Jürgen


* monitor.JPG (96.76 KB, 1024x768 - viewed 13 times.)
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Witten an der Ruhr
Offline Offline
God Member
*****
Karma: 5
Posts: 756
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Schade das kann man auf dem Bild nicht sehen, die Schrift ist 2 Farbig Obere Hälfte Blau und untere Hälfte Rot, sieht Optimal aus  smiley

l.G.Jürgen
Logged

l.G.Jürgen

Verzeihe Deinen Feinden, aber vergesse nie Ihren Namen.

Pages: 1 [2] 3   Go Up
Jump to: