External SIGHUP, warum?

Für Fragen rund um die Ide und zum Debugger
thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

Re: External SIGHUP, warum?

Beitrag von thosch »

Mathias hat geschrieben:Ist das Zufall, das hier über keyboard diskutiert wird, oder hast du hier geschrieben ?
http://lists.freepascal.org/pipermail/f ... 38278.html

Mal eine andere Frage, hast du etwas spezielles mit der Konsole vor ?


Das ist Zufall. Ich habe den Quellcode von hier:
https://www.freepascal.org/docs-html/rt ... event.html

Das Beispielprogramm zur PollKeyEvent - Funktion. In meiner Windows Konsole funktioniert das, aber nicht in meiner Linux Konsole. Nicht mal, wenn ich das Programm außerhalb der IDE aufrufe.

Zunächst will ich, nun auch wegen der unerwarteten Schwierigkeit, sie für Lazarus einzurichten, die Konsolenanbindung hinbekommen.

Danach will ich mal was mit Arduino machen. Ich weiß, dass dort die Sprache C verwendet wird, aber prinzipiell sollte es doch auch mit Object Pascal möglich sein, das Arduino Board anzusprechen. Oder?

GUI Programme funktionieren.

Daher habe ich ein einfaches Programm aus der Freepascal Dokumentation kopiert und unter Windows festgestellt, dass das erst mal dort funktioniert. Da sollte das von Rechts wegen auch unter Linux funktionieren.

Aber an dem von Dir verlinkten Beispiel sehe ich, dass die Konsolenanbindung auf anderen Plattformen, wie in Deinem Beispiel Mac, auch nicht optimal funktioniert. Das deutet auf einen Bug im Compiler hin. Habe aber noch keinen Bugreport gepostet, ich hoffe noch immer auf eine Lösung. Deshalb habe ich Dir mein Compilat geschickt und Dich gebeten, das auf Deinem Linux System zu testen. Ich sehe, der Testlauf kann nicht ernst genug genommen werden.

.

Mathias
Beiträge: 6165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: External SIGHUP, warum?

Beitrag von Mathias »

Das Beispielprogramm zur PollKeyEvent - Funktion. In meiner Windows Konsole funktioniert das, aber nicht in meiner Linux Konsole. Nicht mal, wenn ich das Programm außerhalb der IDE aufrufe.
Wieso nimmst du nicht einfach die Unit CRT, da gibt es ReadKey und Keypressed, dies reicht locker für die meisten Konsolenanwendungen.

Danach will ich mal was mit Arduino machen. Ich weiß, dass dort die Sprache C verwendet wird, aber prinzipiell sollte es doch auch mit Object Pascal möglich sein, das Arduino Board anzusprechen. Oder?
Jein, wen du andere Thread hier im Forum list, dann wirst du momentan recht viel über Arduino/AVR lesen.
Auch wen es C++ ist, kann ich dir sehr Sloeber empfehlen, da hast du den Bedienkomfort, fast wie bei Lazarus, abgesehen von der Sprache.

Deshalb habe ich Dir mein Compilat geschickt und Dich gebeten, das auf Deinem Linux System zu testen.

Da kommt nicht gescheites, das Terminal wird vollgepumpt mit Fehlermeldungen, siehe Anhang.
Dateianhänge
Bildschirmfoto vom 2017-10-03 22-37-26.png
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

Re: External SIGHUP, warum?

Beitrag von thosch »

Mathias hat geschrieben:
Das Beispielprogramm zur PollKeyEvent - Funktion. In meiner Windows Konsole funktioniert das, aber nicht in meiner Linux Konsole. Nicht mal, wenn ich das Programm außerhalb der IDE aufrufe.
Wieso nimmst du nicht einfach die Unit CRT, da gibt es ReadKey und Keypressed, dies reicht locker für die meisten Konsolenanwendungen.


Das wird mein nächster Arbeitsschritt sein. Ich habe die Keyboard Unit verwendet, weil ich auf die viel geproesene Plattformunabhängigkeit vertraut habe. Außerdem hoffte ich, dass der Code des Raw Keyevent irgendwie mit den Virtual KeyCodes, wie aus Windows bekannt, kompatibel sein könnte. Immerhin sind die tatsächlichen physischen Tastencodes ja hardwareabhängig.

Mathias hat geschrieben:
Danach will ich mal was mit Arduino machen. Ich weiß, dass dort die Sprache C verwendet wird, aber prinzipiell sollte es doch auch mit Object Pascal möglich sein, das Arduino Board anzusprechen. Oder?
Jein, wen du andere Thread hier im Forum list, dann wirst du momentan recht viel über Arduino/AVR lesen.
Auch wen es C++ ist, kann ich dir sehr Sloeber empfehlen, da hast du den Bedienkomfort, fast wie bei Lazarus, abgesehen von der Sprache.


Ok, Danke, schau ich mir an.


Mathias hat geschrieben:
Deshalb habe ich Dir mein Compilat geschickt und Dich gebeten, das auf Deinem Linux System zu testen.

Da kommt nicht gescheites, das Terminal wird vollgepumpt mit Fehlermeldungen, siehe Anhang.


Genau das gleiche erhalte auch ich. Deshalb dieser Strang. Offenbar baut der Compiler hier Mist. Wäre es nur meine ungeeignete Lazarus Version oder fehlerhafte Konsolenanbindung an mein Lazarus, dann müsste es ja bei Dir funktionieren. Der Code den der Compiler erzeugt, ist ja derselbe, egal welche Linuxdistribution verwendet wird.

Und: Freepascal unterstützt ja noch Konsolenprogramme. Da kann ich das ja auch nutzen. Sonst könnte ja die Möglichkeit, Konsolenprogramme zu schreiben, auch aus dem Compiler entfernt werden, dann gehen eben nur noch GUI Programme. Aber solange der Compiler prinzipiell auch noch Konsolenprogramme drauf hat? Was ja in Einzelfällen durchaus Sinn machen Kann. Natürlich nur, solange die Konsolenanbindung auich funktioniert.

Abgesehen davon, dass dann die Portierung aus DOS nicht mehr möglich wäre. Für Linux könnte man zum Bau von Frontends für die Kommandozeilenprogramme ja auch das Kommandozeilenprogramm als Backend verwenden.

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: External SIGHUP, warum?

Beitrag von Achtzig »

Wenn ich den Quelltext von oben (https://www.freepascal.org/docs-html/rt ... event.html) kompiliere, funktioniert bei mir alles soweit.

Debian GNU/Linux 7.11 (wheezy)
FPC 2.6.2
Lazarus 1.2.0

xterm und gnome-terminal

thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

Re: External SIGHUP, warum?

Beitrag von thosch »

Achtzig hat geschrieben:Wenn ich den Quelltext von oben (https://www.freepascal.org/docs-html/rt ... event.html) kompiliere, funktioniert bei mir alles soweit.

Debian GNU/Linux 7.11 (wheezy)
FPC 2.6.2
Lazarus 1.2.0

xterm und gnome-terminal


Da muss ich mich mal kümmern. Auf jeden Fall funktioniert es dann erst mal prinzipiell und ich könnte ebenso unter Windows entwickeln und dann den Quellcode halt bereit stellen. Wer dann mein Programm mit Linux nutzen will, übersetzt es sich halt.

Mathias
Beiträge: 6165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: External SIGHUP, warum?

Beitrag von Mathias »

Und: Freepascal unterstützt ja noch Konsolenprogramme. Da kann ich das ja auch nutzen. Sonst könnte ja die Möglichkeit, Konsolenprogramme zu schreiben, auch aus dem Compiler entfernt
Ich denke mal, Konsolenprogramme werden in nächster Zeit nicht verschwinden. Ein apt-get ist auch nichts anderes als ein Konsolenprogramm.
Wen du das hier anguckst, sieht man, was man mit der Konsole alles machen kann: viewtopic.php?f=22&t=11063&p=98205&hilit=freevision#p98205
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

Re: External SIGHUP, warum?

Beitrag von thosch »

Mathias hat geschrieben:
Und: Freepascal unterstützt ja noch Konsolenprogramme. Da kann ich das ja auch nutzen. Sonst könnte ja die Möglichkeit, Konsolenprogramme zu schreiben, auch aus dem Compiler entfernt
Ich denke mal, Konsolenprogramme werden in nächster Zeit nicht verschwinden. Ein apt-get ist auch nichts anderes als ein Konsolenprogramm.
Wen du das hier anguckst, sieht man, was man mit der Konsole alles machen kann: viewtopic.php?f=22&t=11063&p=98205&hilit=freevision#p98205


Ich bin 100% sicher, nicht nur ich sondern auch andere akzeptieren als Benutzeroberfläche ausschließlich richtige GUI. Die ist auch im Konsolenmodus möglich, es gibt die altbekannte Unit Graph, als PTC-Graph sogar rasend schnell. Es gibt außerdem die PTC-Bibliothek. Und es gibt sogar noch was besseres, nämlich Matthias Köppes GVIsion3, ein grafisches Turbo Vision im Windows 3.11 Stil. Und es gibt GVision von Jason Burgon, der auch schon den Gedanken hatte, sein Produkt als Open Source frei zu geben. Sollte ja dann mit der 16 Bit Version von Freepascal übersetzbar sein. Sollten dort zu viele DOS spezifische Aufrufe enthalten sein, dann funktioniert diese Variante eben erst mal ausschließlich in DOS, es sei denn die Portierung ist nicht allzu aufwendig. Wenn doch, dann gibt es für Linux die svgalib, auf der die gute alte Graph Unit aufsetzt. Je nach Design dieser svgalib ist möglicherweise die Graph Unit unter Linux recht flott und damit um so besser geeignet, eine GUI zu bauen. Ich kenne auch alte DOS GUI Programme, in denen das Verschieben der Fenster aus Geschwindigkeitsgründen derart vorenommen wird, dass erst mal nur der Rahmen verschoben wird und erst beim Loslassen der Maustaste das Fenster neu gezeichnet wird. Heutige Rechner können auf jeden Fall richtige GUI, um so mehr, wenn es sich um eine GUI handelt die ohne den doch recht ressourcenaufwendigen XServer auskommen, weil sie auf der besgten svgalib aufsetzen. Es hat schon zu DOS Zeiten aufwendige GUIs gegeben, nur konnte die sich damals kein Normalsterblicher leisten. Es gab damals StarWord, mit GUI (nicht Textmode) Oberfläche.

Wenn so eine Konsolen GUI wirklich eine Neuentwicklung von Grund auf nötig machen sollte, wäre nach praktischen Erfordernissen zu überlegen, was in diese GUI Bibliothek unbedingt rein gehört und was man nicht braucht. Immerhin könnte man damit auch ohne XServer Frontends für die Kommandozeilenprogramme bauen oder Konsolenanweendungen halt mit GUI Oberfläche, ohne den XServer zu benötigen und so auch auf schwächeren Rechnern GUI zu ermöglichen.

Allerdings ist es heute eher so, dass die Kommandozeilenfetischisten lieber mit besagter Kommandozeile arbeiten, die brauchen dann gar keine Benutzeroberfläche, weder Textmode noch GUI. Und die andere Fraktion, zu der auch ich gehöre, bevozugt GUI und ich sagte ja schon, dass heutige Rechner das locker schaffen, dann aber eben auch mit XServer oder Windows.

Aber als Anhänger der GUI akzeptiere ich wegen der besseren Optik eben auch bei Konsolenprogrammen Ohne Windows oder XServer nur richtige GUI, zumal es ja die Bibliotheken dafür längst gibt. In C/C++ geschrieben gibt es da einige. Für Linux könnte die OpenGUI die Lösung sein für diesen Zweck, so die ohne XServer auskommt, sonst wäre die ein weiterer Fenstermanager.

Download hier:
https://sourceforge.net/projects/opengui/

Hier gibt es Schreenshot's:
http://www.freecode.com/projects/opengui

Sollte die aktuelle Version auf XServer aufsetzen, lohnt es sich möglicherweise, nach älteren Versionen zu suchen, die noch mit Konsolengrafik arbeiten und diese dann einzusetzen. Und dann natürlich einen passenden Mechanismus in FPC zu integrieren, die Open GUI Bibliotheken in Freepascal zu verlinken, um deren Funktionen auch in Freepascal nutzen zu können.

.

Mathias
Beiträge: 6165
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: External SIGHUP, warum?

Beitrag von Mathias »

Für Linux könnte die OpenGUI die Lösung sein für diesen Zweck, so die ohne XServer auskommt,

So wie ich sehe, geht dies über den VESA-Treiber?
Aber wen man Grafik will, kann man doch genau so gut die Desktops verwenden, welche Linux standardmäßig mitliefert.

. Es gibt außerdem die PTC-Bibliothek. Und es gibt sogar noch was besseres, nämlich Matthias Köppes GVIsion3, ein grafisches Turbo Vision im Windows 3.11 Stil.

Von dieser habe ich auch schon gelsen: https://www.math.ucdavis.edu/~mkoeppe/mkm/ diese ist immerhin FPC kompatibel.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten