Serial Monitor V2

Vorstellungen von Programmen, welche mit Lazarus erstellt worden.

Serial Monitor V2

Beitragvon pluto » 28. Aug 2018, 19:53 Serial Monitor V2

Hallo
- Fehlende Unit hinzugefügt, nun sollte es gehen.

Neue Version hochgeladen: V2_01
- Mehr Baud Raten(Danke für den Hinweis: Mathias)
- Ausgabe Lösch Button hatte keine Event Zuweisung
- Ein Rechtschreib Fehler "behoben", den zweiten konnte ich nicht finden.
- Eine Unit aus der LPR entfernt(Danke für den Hinweis: Mathias)
- Pfade gelöscht, die nicht mehr gebraucht wurden(lnet)


Ich habe gestern angefangen ein neuen Serial Monitor zu schreiben und bin heute Fertig geworden.

Ich habe vor einiger Zeit, nach Fertigen Serial Monitor(en) gesucht und habe leider keinen gefunden, der mir gefiel bzw. mit den ich umgehen konnte, also habe ich mir einige selbst geschrieben.

Das ist nun die dritte Variante. Die zweite war ein WebSocketServer und die erste ein einfaches Grafische Umgebung.

Diese Umgebung bietet nun einige Einstellungsmöglichkeiten mehr.

Zum Beispiel kann die:
- Baud Eingestellt werden,
- Automatisches Scrollen wird unterstützt
- Mehrer Uarts gleichzeitig wird unterstützt
- Einstellungen pro Uart werden in einer json Config im Programm Verzeichnis Abgespeichert(Ändere ich vielleicht später noch mal)

Was haltet ihr vom dem Programm? habt ihr noch den ein oder anderen "Sonder-Wunsch"?
Im Anhang findet ihr den Soruce(Ihr braucht nur noch Synapse) und ein ScreenShot.

Hinweis: Zurzeit läuft die Anwendung nur unter Linux, für Windows sollten einige Sachen geändert werden. Das werde ich in einer der nächsten Updates einbauen...
Da ich selbst kein Windows nutze, habe ich an sowas nicht gedacht.

Die Ausgaben auf dem Bild, sind die vom AM2320....

Serial_MonitorV2.png

SerialMontitorV2_01.zip
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von pluto am 29. Aug 2018, 13:46, insgesamt 4-mal geändert.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7006
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon Mathias » 28. Aug 2018, 20:10 Re: Serial Monitor V2

Was ist dies für eine Unit ?
uplArduinoPCInterface

PS: Habe die Unit gelöscht, dann wurde es kompiliert, aber es stürtzt mit einem Debuggerfehler ab, auch wen ich den Debugger deaktiviere.
Start ich es aber von eine Konsole aus, dann läuft es ohne Fehler.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4344
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon sstvmaster » 28. Aug 2018, 20:15 Re: Serial Monitor V2

Klasse Michael! So möchte ich auch programmieren können. Ich versuche mich jetzt schon seit 2 Jahren an Lazarus und Seriell, raffe es aber nicht. Danke
sstvmaster
 
Beiträge: 199
Registriert: 22. Okt 2016, 22:12
Wohnort: Dresden
OS, Lazarus, FPC: Windows 7 32bit (L 2.0.2 FPC 3.0.4) | 
CPU-Target: 32Bit
Nach oben

Beitragvon pluto » 28. Aug 2018, 20:16 Re: Serial Monitor V2

uplArduinoPCInterface

Danke für den Hinweis, werde ich löschen.

aber es stürtzt mit einem Debuggerfehler ab, auch wen ich den Debugger deaktiviere.
Start ich es aber von eine Konsole aus, dann läuft es ohne Fehler.

Komisch... Bei mir läuft es mit Debugger...Problemlos...

Der "Lösch" Button hat noch keine "Funktion", hier habe ich die Event Zuweisung vergessen.... in ein paar Tagen wird es eine neue Version geben....
Kannst es ja mal "Ohne Debugger" starten, wusste gar nicht das es diese Funktion gibt....
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7006
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon pluto » 28. Aug 2018, 20:17 Re: Serial Monitor V2

Klasse Michael! So möchte ich auch programmieren können. Ich versuche mich jetzt schon seit 2 Jahren an Lazarus und Seriell, raffe es aber nicht. Danke

Danke... Bis hierher war es ein weiter und langer Weg.. Ich habe viele Fertige Code mir angeschaut....und einiges Probiert....
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7006
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon Mathias » 28. Aug 2018, 20:36 Re: Serial Monitor V2

@Pluto

Hat es einen Grund, das du nur die Port an USB ermittelst ?
In der Unit synaser gibt es ganz am Ende eine Funktion, welche alle Port durchsucht. Diese sollte auch mit Windows funktionieren.

Die Baudraten höher 115200 würde ich dir auch empfehlen. Ich bae bei mir folgende Liste eingebaut:
Code: Alles auswählen
  with ComboBox1 do begin
    Items.Delimiter := ' ';
    Items.DelimitedText := '300 600 1200 2400 9600 14400 19200 38400 57600 76800 115200 230400 250000 500000 1000000 2000000';
    Text := '9600';
  end;


So wie ich sehe kämpfst du auch mit Autoscroll. Dies habe ich bei mir folgendemssen gelöst, wen auch nicht perfekt:
Code: Alles auswählen
procedure TForm1.Timer1Timer(Sender: TObject);
var
  s: string;
  l: integer;
begin
  while Timer1.Enabled and (ser.CanRead(10)) do begin
    l := ser.WaitingData;
    SetLength(s, l);
    ser.RecvBuffer(@s[1], l);
    Memo1.Text := Memo1.Text + s;
    if CheckBox1.Checked then begin
      Memo1.SelStart := -2;
      //      Memo1.SelStart := Length(Memo1.Text);
    end;
    Application.ProcessMessages;
  end;
end;
Ansonsten ist dein Serial-Monitor um einiges komfortabler als der von Arduino. :wink:

Was ich dir noch empfehlen könnte, wäre eine HEX-Ausgabe. Und eine Sendemöglichkeit von Zeichen #0-#255.

Da hat sich noch kleinere Tipfehler eingeschlichen:
Code: Alles auswählen
     NewTab.LineBreakMod.Items.Add('Kein Zeilende');
   NewTab.LineBreakMod.Items.Add('Sowhl NL als auch CR');


Ich hoffe du bist nicht beleidigt wegen der Kritik. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4344
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 28. Aug 2018, 20:41 Re: Serial Monitor V2

In der Unit synaser gibt es ganz am Ende eine Funktion, welche alle Port durchsucht. Diese sollte auch mit Windows funktionieren.

ja, so habe ich kein ttyS0 dabei... mir reichen die ttyUSB bzw. ttyACM...

Die Baudraten höher 115200 würde ich dir auch empfehlen. Ich bae bei mir folgende Liste eingebaut:

Danke für die Info, ich habe die liste auf die "schnelle" gefunden.... ich werde deine Liste übernehmen.

So wie ich sehe kämpfst du auch mit Autoscroll. Dies habe ich bei mir folgendemssen gelöst, wen auch nicht perfekt:

Warum kämpfen? ich habe es doch gelöst...
Ach "Memo1.SelStart := -2;" das geht auch? Danke für den Tipp, werde ich ausprobieren.

Ansonsten ist dein Serial-Monitor um einiges komfortabler als der von Arduino.

Danke!

Was ich dir noch empfehlen könnte, wäre eine HEX-Ausgabe. Und eine Sendemöglichkeit von Zeichen #0-#255.

mit Hex Zahle kenne ich mich leider nicht so gut aus.... mal sehen, und die Sendemöglichkeit von Zeichen zwischen 0 und 255 eigentlich keine schlechte Idee, mal sehen wie ich das einbauen kann.

Da hat sich noch kleinere Tipfehler eingeschlichen:

Werde ich ändern, danke für den Hinweis.

Ich hoffe du bist nicht beleidigt wegen der Kritik.

Nein, überhaupt nicht. Im Gegenteil, bin für jede Kritik dankbar, nur so kann ich das Programm verbessern.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7006
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon pluto » 28. Aug 2018, 20:51 Re: Serial Monitor V2

habe eben die neue Version hochgeladen. Das mit dem SelStart -2 klappt bei mir nicht, ändere mal den Cursor und beobachte es....Es wird nicht gescrollt. Den ersten Rechtschreibfehler "NewTab.LineBreakMod.Items.Add('Kein Zeilende');" finde ich nicht, was ist hier dran Falsch? Muss "Zeil Ende" getrennt?
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7006
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon sstvmaster » 28. Aug 2018, 20:54 Re: Serial Monitor V2

Ich denke Mathias meint das hier:

NewTab.LineBreakMod.Items.Add('Sowhl NL als auch CR');
sstvmaster
 
Beiträge: 199
Registriert: 22. Okt 2016, 22:12
Wohnort: Dresden
OS, Lazarus, FPC: Windows 7 32bit (L 2.0.2 FPC 3.0.4) | 
CPU-Target: 32Bit
Nach oben

Beitragvon Mathias » 28. Aug 2018, 20:55 Re: Serial Monitor V2

Der "Lösch" Button hat noch keine "Funktion", hier habe ich die Event Zuweisung vergessen.... in ein paar Tagen wird es eine neue Version geben....

Mit diesen paar Zeilen sollte auch der Button gehen,
Code: Alles auswählen
type
  { TPLTabSheet }
  TPLTabSheet = class(TTabSheet)
  private
    // ------- neu
    procedure ClerarButtonClick(sender: TObject);
 
Code: Alles auswählen
    ClearLogButton.AutoSize:=true;
    ClearLogButton.ParentFont:=false;
 
    // ----------- neu
    ClearLogButton.OnClick:=@NewTab.ClerarButtonClick;
 
Code: Alles auswählen
//--------------- neu
procedure TPLTabSheet.ClerarButtonClick(sender: TObject);
begin
  NewMemo.Clear;
end;
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4344
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 28. Aug 2018, 20:59 Re: Serial Monitor V2

Mit diesen paar Zeilen sollte auch der Button gehen,

Bin dir schon zuvor gekommen, habe eine neue Version hochgeladen, aber danke für den Hinweis.... es gab bereits eine Methode dafür, die wurde halt nur noch nicht zugewiesen....

NewTab.LineBreakMod.Items.Add('Sowhl NL als auch CR');

Das habe ich behoben....
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7006
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon Mathias » 28. Aug 2018, 21:01 Re: Serial Monitor V2

pluto hat geschrieben:habe eben die neue Version hochgeladen. Das mit dem SelStart -2 klappt bei mir nicht, ändere mal den Cursor und beobachte es....Es wird nicht gescrollt. Den ersten Rechtschreibfehler "NewTab.LineBreakMod.Items.Add('Kein Zeilende');" finde ich nicht, was ist hier dran Falsch? Muss "Zeil Ende" getrennt?


So wie du vielleicht gemerkt hast, habe ich auch einen Seriallmonitor geschrieben. Nur musste ich dort dies mit SelStart-2 einbauen, weil es bei mir sonst nicht funktionierte, dies ist aber schon länger her.
Das mit dem Zeilenenden würde ich so machen.
Code: Alles auswählen
'no CR/LF'
'LF  (#10)'
'CR (#13)'
'CR/LF (#13#10)'
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4344
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon pluto » 28. Aug 2018, 21:03 Re: Serial Monitor V2

Das mit dem Zeilenenden würde ich so machen.

Ich habe die Idee von Arduino übernommen, die finde ich einfacher...
Code: Alles auswählen
 
procedure TPLTabSheet.SendBitBtn(sender: TObject);
var
  EndChar:String;
begin
 
  if SendStringEdit.Text <> '' then begin
    case LineBreakMod.ItemIndex of
      0: EndChar:=#0;
      1: EndChar:=#13;
      2: EndChar:=#10;
      3: EndChar:=#13#10;
    end;
    Uart.SendAString(SendStringEdit.Text+EndChar);
  end;
end; // TPLTabSheet.SendBitBtn
 

So habe ich es gelöst.... ich glaube ich habe #13 und #10 vertauscht?
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7006
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon pluto » 28. Aug 2018, 21:05 Re: Serial Monitor V2

So wie du vielleicht gemerkt hast, habe ich auch einen Seriallmonitor geschrieben. Nur musste ich dort dies mit SelStart-2 einbauen, weil es bei mir sonst nicht funktionierte, dies ist aber schon länger her.

Komisch das es bei dir so klappt und bei mir nicht? Wir verwenden doch das gleiche Linux?
(Linux Mint 18.3) und ich habe das "neuste" Lazarus und FPC....
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7006
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon Mathias » 28. Aug 2018, 21:08 Re: Serial Monitor V2

Das ist richtig, 13 komm vor 10.

Ich habe die Idee von Arduino übernommen, die finde ich einfacher...

Ich meinte eigentlich die sichtbaren Strings in der Combobox.

Ich habe es gesehen, Arduino schreibt dies so merkwürdig.
Sloeber schreibt:
Code: Alles auswählen
none
CR
NL
CR/NL
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4344
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Programme



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried