Lazarsprogramm für Linux ohne QT etc

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Lazarsprogramm für Linux ohne QT etc

Beitrag von mschnell »

Hi,

Ich möchte ein (-en Teil eines) Delphi Programm auf ein kleines embedded System mit ARM Prozessor und Linux-Betriebssystem portieren.

Schön wäre, wenn ich dabei Lazurus verwenden könnte.

Ich möchte dabei keine GUI haben, denn das Zielsystem unterstützt keine Grafik (OK, man könnte einen remote X-Server via TCP/IP verwenden, aber das verschlingt vermutlich zu viele Ressourcen.)

Die Frage ist nun: Kann ich ein Lazarus-Programm (für Linux) machen, das keine QT (o.ä.) -Aufrufe macht.

Wie gesagt brauche ich keine Bildschirm-Ausgaben und keine Tastatur oder Maus. (writeln-Testausgaben o.ä wären natürlich hilfreich.)

Ich brauche aber File/IO, Serienschnittstellen, Timer und TCP/IP.

Gruß
-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Projekt->Neues Projekt->Programm (statt Anwendung)
In den Compilereinstellungen prozessortyp auf Arm setzen entsprecehnden crosscompiler installiern (siehe anleitungen für wince) und los gehts
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Wie Christian sagt.
Ausnahme ist vielleicht der Timer. Der ist soviel ich weiss ans Widgetset gebunden.
Aber ein Konsolenprogramm / Daemon braucht eigentlich keinen Timer.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Christian hat geschrieben:Projekt->Neues Projekt->Programm (statt Anwendung)

Und dann tut's TTimer, und TThrerad (hatte ich in meiner Aufzählung vergessen) noch ? Ich werd's gleich testen (zunächst in Windows).

TCP/IP und Serienschnittstellen habe ioch noch gar nicht getestet, weil man ja dafür irgendwelche Komponenten (z.B. Indy) verwenden muss. Indy in Lazarus soll ja gehen :).

Christian hat geschrieben:In den Compilereinstellungen prozessortyp auf Arm setzen entsprecehnden crosscompiler installiern (siehe anleitungen für wince) und los gehts

Wäre ja toll, wenn das wirklich so einfach ginge...

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

theo hat geschrieben:Wie Christian sagt.
Ausnahme ist vielleicht der Timer. Der ist soviel ich weiss ans Widgetset gebunden.
Aber ein Konsolenprogramm / Daemon braucht eigentlich keinen Timer.


Das ist, wie gesagt kein Konsolenprogramm / Daemon sondern ein embedded Programm, das ohne Benutzer-Aktivität so vor sich hin läuft und ab und zu etwas macht. Dabei darf es nicht z.B. die Uhrzeit pollen, weil es auf einem System im Hintergrund mitläuft und bis zum Wecken möglicht keine CPU-Zeit verbraten darf.

-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

embedded Programme gibts nicht Programme ohne Benutzereingriff die nur Services bereitstellen sind Server. Den Ausdruck embedded Programm gibt es nicht embedded ist nur ein Zusatz und kein Schlagwort es beschreibt lediglich intigriert ob nun Schaltungen, Systeme oder Programmieranweisungen darüber trifft es keine Aussage

Mit den Timern bin ich mir gar nicht so sicher die LCL wird ja auch in Konsolenanwendungen mit ein compiliert und implementiert die Messagingschleife mehr oder minder selbst von daher könnte das senden von Narichten an die eigene Anwendung und damit dir Funktion des Timers auch in Konsolenanwendungen gegeben sein
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

@Christian: Ich will hier nichts behaupten, aber wenn du dir die Implementation anschaust:

procedure TCustomTimer.UpdateTimer;
begin
blah,blah
FTimerHandle := WidgetSet.CreateTimer(FInterval, @Timer);

sieht's schon so aus als werde das vom WidgetSet erledigt.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ja aber man kanns ja mit einkompiliern würd mich mal interessiern ob das dann geht
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Christian hat geschrieben:Ja aber man kanns ja mit einkompiliern würd mich mal interessiern ob das dann geht


Wie meinst du das? Was kann man einkompilieren?

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Ich hab's ausprobiert. Für Lazarus (in Windows) und Delphi gilt dasselbe: In einer Konsolenanwendung geht TTimer nicht. (In Lazarus wird schon beim Kompilieren die uUnit extctrls nicht gefunden. Delpi übersetzt es, aber ein Timer-Event kommt nie.)

TThread geht aber. Damit (und mit messages) kann man dann ja dann selber einen Timer basteln.

Ob das aber viel nützt ist die andere Frage. Wie gesagt brauche ich TCP/IP. und dazu sollte man ja wohlö am besten Indy verwenden. Ich kann mir nicht vorstellen, dass Indy ohne TTimer auskommt. Und wie man Indy überreden kann einen TTimer zu verwenden, den ich für diesen Zweck neu basteln würde ist dann die nächste Frage.

Ähnliches gilt vermutlich auch für Komponenten, mit denen man die serielle Schnittstelle ansprechen könnte.

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Christian hat geschrieben:embedded Programme gibts nicht


Ich wollte nur klar stellen, dass mein Programm immer läuft und manchmal (zu bestimmten Zeiten) irgendwas tut. Dazwischen muss es warten. Und dafür braucht man irgend eine Art Timer. Auch um Timeouts auf Kommunikationsschnittstelle zu erkennen ist ein Timer nötig.

-Michael

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

mschnell hat geschrieben:Ich kann mir nicht vorstellen, dass Indy ohne TTimer auskommt.


Ich glaube nicht, dass Indy einen Timer benötigt.
Trotzdem würde ich Synapse empfehlen. Das braucht bestimmt keinen.
http://synapse.ararat.cz/

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Wie meinst du das? Was kann man einkompilieren?

das gtk interface z.b. ist zwar mit kanonen auf spatzen geschossen aber interessieren würde es mich mal ob dann ttimer auch an der konsole funktioniert oder ob man dann zwingend win x braucht um das programm überhaupt zu satrten glaub ich aber nicht
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Christian hat geschrieben:das gtk interface z.b. ist zwar mit kanonen auf spatzen geschossen aber interessieren würde es mich mal ob dann ttimer auch an der konsole funktioniert oder ob man dann zwingend win x braucht um das programm überhaupt zu satrten glaub ich aber nicht


Da seh ich aber Rabenschwarz. GTK ohne X/Winapi, wie soll das gehen?
Ich vermute sogar, das TTimer letzlich in GTK auch über X events abgewickelt wird,
weiss es aber nicht.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

ich denke das es mit installierten gtk librarys geht aber die diskussion führt eh zu nix bei gelegenheit probier ichs mal
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten