Embedded GUI Package für Lazarus

Zur Vorstellung von Komponenten und Units für Lazarus
sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: AVR/Arduino GUI Package für Lazarus

Beitrag von sstvmaster »

Ja das kommt davon weil das Package in trunk erstellt worden ist und du das mit Stable installieren möchtest.
Da scheint sich was geändert zu haben.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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

Re: AVR/Arduino GUI Package für Lazarus

Beitrag von Mathias »

Ok, ich hab das Repo jetzt lokal geclont. Wenn ich dann Package -> Package Datei (*.lpk) öffnen wähle und die Datei embedded_gui_package.lpk im Verzeichnis Lazarus_Arduino_AVR_GUI_Package öffne, erscheint ein Package Fenster ohne Inhalt?


Ich habe es gerade auf dem Laptop probiert.
Da kommt auch nur ein leeres Fenster. (Lazarus 2.0.6)
Wen ich es kompilieren will, kommt folgendes:

Code: Alles auswählen

embedded_gui_package.pas(11,3) Fatal: Kann LazarusPackageIntf nicht finden verwendet von Embedded_GUI_Package. Prüfen, ob Package FCL in den Abhängigkeiten ist von Package Embedded_GUI_Package.

Mit Trunk geht es. Ich werde es mal mit dem neunen Lazarus 2.0.8 probieren.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: AVR/Arduino GUI Package für Lazarus

Beitrag von Mathias »

sstvmaster hat geschrieben:Ja das kommt davon weil das Package in trunk erstellt worden ist und du das mit Stable installieren möchtest.
Da scheint sich was geändert zu haben.

Das scheint so, wen ich es kompilieren will kommen zuerst folgende Hinweis:

Code: Alles auswählen

The package Embedded_GUI_Package does not have any "Register" procedure which typically means it does not provide any IDE addon. Installing it will probably only increase the size of the IDE and may even make it unstable.
 
Hint: If you want to use a package in your project, use the "Add to project" menu item.

Code: Alles auswählen

Das Package "Embedded_GUI_Package 0.0.71" war für die Installation vorgemerkt.
Derzeit unterstützt Lazarus nur statisch gelinkte Packages. Die echte Installation verlangt das Kompilieren und den Neustart von Lazarus.
 
Wollen Sie Lazarus jetzt neu kompilieren?

Könnte es sein, das Lazarus nun dynamische Packages unterstützt ?

Der Hauptgrund das ich auf Trunk umstieg, war folgendes Problem:
https://www.lazarusforum.de/viewtopic.p ... it=package
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: AVR/Arduino GUI Package für Lazarus

Beitrag von af0815 »

Der Unterschied ist Laufzeit versus Designtime. Das Laufzeitpaket braucht nicht in die IDE installiert werden, damit gibt es kein neukompilieren der IDE. Das sagen die Meldungen aus.

Laufzeitpakete brauchen keine Registerprocedure.

Code: Alles auswählen

The package Embedded_GUI_Package does not have any "Register" procedure which typically means it does not provide any IDE addon. Installing it will probably only increase the size of the IDE and may even make it unstable.
bedeutet das es ein Laufzeitpaket ist. Also braucht man es NICHT installieren.
Sollte es in die Lazarus-IDE integriert werden, so MUSS eine eine Register Procedure verwendet werden. Dann ist es ein Designtimepaket und somit muss die IDE rekompiliert werden.

Da hat sich bisher nichts geändert. Die Frage an den Author -> was für ein Paket ist es ?

BTW: Die Änderungen von Trunk damals (2018 !) sollten schon längst im fixes Zweig (wenn nicht im aktuellen Stable) von Lazarus/FPC sein.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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

Embedde GUI Package für Lazarus

Beitrag von Mathias »

Da hat sich bisher nichts geändert. Die Frage an den Author -> was für ein Paket ist es ?

Meine Embedded GUI Package. Der Titel im Forum ist unterdessen nicht mehr richtig, da es nicht mehr nur für AVRs ist.
Ich habe nun den Titel im Forum angepasst. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Embedded GUI Package für Lazarus

Beitrag von Mathias »

Mir ist gerade etwas aufgefallen.
Wen ich im Package-Explorer "Weiter --> Package Quelltext anzeige", wird die Datei mit folgendem Inhalt geöffnet:

Code: Alles auswählen

{ This file was automatically created by Lazarus. Do not edit!
  This source is only used to compile and install the package.
 }

 
unit Embedded_GUI_Package;
 
{$warn 5023 off : no warning about unused units}
interface
 
uses
  LazarusPackageIntf;
 
implementation
 
procedure Register;
begin
end;
 
initialization
  RegisterPackage('Embedded_GUI_Package', @Register);
end.
Wen ich da den Uses-Abschnitt angucke, ist der recht leer.
Wen ich eine älter Package öffne, zB eine für OpenGL, sind dort alle Units gelistet, die in der PAckage gebraucht werden.

Code: Alles auswählen

 
interface
 
uses
  oglLighting, dglOpenGL, oglShader, oglTexturVAO, oglWaveFrontOBJ,
  oglFontTextur, oglBackground, oglTexturKoerper, oglUnit, oglTextur, oglVAO,
  oglColorKoerper, oglLinesVAO, oglVBO, oglDarstellung, oglKoerper, oglCamera,
  oglMatrix, oglSteuerung, oglUBO, oglLightingShader, oglContext, oglLogForm,
  oglVector, LazarusPackageIntf;

Unter anderem ist dort auch die LazarusPackageIntf; vorhanden, die dort auch gefunden wird.

Nochmals zurück zum Package-Explorer.
Bei der Trunk von Lazarus sind dort alle benötigten Units gelistet, bei der Stable nicht.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Embedded GUI Package für Lazarus

Beitrag von Mathias »

Etwas ist doch anders an den beiden Packagen.
Bei "benötigten Packages" sind andere Packages eingetragen.

Siehe Anhang:
(Screenshot mit Trunk gemacht)

Nachtrag:
Bei Stable ist auch dieser Eintrag leer. :roll:
Bei OpenGL ist dort alles gelistet.
Dateianhänge
empedded.png
empedded.png (16.58 KiB) 3539 mal betrachtet
opengl.png
opengl.png (19.11 KiB) 3539 mal betrachtet
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Embedded GUI Package für Lazarus

Beitrag von Mathias »

Ich habe den Fehler der verschwunden Dateien gefunden. Ic habe mir die *.lpk genauer angeguckt.

Code: Alles auswählen

...
    <RequiredPkgs>
      <Item>
        <PackageName Value="CodeTools"/>
      </Item>
      <Item>
        <PackageName Value="IDEIntf"/>
      </Item>
...

Bei der OpenGL-Package sind die Dateien durchnummeriert. Also habe ich das auch Embeeded pkg gemacht:

Code: Alles auswählen

    <RequiredPkgs Count="2">
      <Item1>
        <PackageName Value="CodeTools"/>
      </Item1>
      <Item2>
        <PackageName Value="IDEIntf"/>
      </Item2>

Jetzt werden die Dateien auch in der Stable gelistet.
Die Unit "LazarusPackageInt" wurde aber immer noch nicht gefunden.
Somit wollte ich LCL und FCL einbinden, Lazarus hat gemotzt, er habe die schon. :?
Somit habe ich sie von Hand in die *.lpk eingetragen:

Code: Alles auswählen

      <Item3>
        <PackageName Value="LCL"/>
      </Item3>
      <Item4>
        <PackageName Value="FCL"/>
      </Item4>

Jetzt wird die Unit gefunden.
Nur habe ich wieder ein Problem, ich habe Arrays verwendet, welche erst in der Trunk von FPC unterstützt werden.
Dynamische Array in const. Dies ist aber nicht so tragisch, da man für AVR und ARM sowieso am besten die Trunk verwendet.

Code: Alles auswählen

const
  i8086_List: array of string = (
 
    // 8086
    '',
 
    // 80186
    '',     
...
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Embedded GUI Package für Lazarus

Beitrag von Mathias »

Irgendwas muss mit meiner Kommponente passiert sein. Ich hatte ursprünglich folgende Komponente genommen und angepasst. :roll:
~/fpcupdeluxe/lazarus/components/pas2js/pas2jsdsgn.lpk
Und die läuft auch mit Stable.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: AVR/Arduino GUI Package für Lazarus

Beitrag von Mathias »

sstvmaster hat geschrieben:Ja das kommt davon weil das Package in trunk erstellt worden ist und du das mit Stable installieren möchtest.
Da scheint sich was geändert zu haben.

Jetzt habe ich die Ursache des Problems gefunden. Ich hatte mal im Package-Explorer "Weiter --> Dateischreibweisen korrigieren" gedrückt.
Dabei verschwindet die Durchnummerierung bei den "<Item>" in der *.lpk.
Und die Stable 2.0.x unterstützt dies nicht.
Ein gefährliches Features, das ohne Warnung und Nachfrage eine Package unbrauchbar macht. :roll:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Embedded GUI Package für Lazarus

Beitrag von Mathias »

Auf der neusten Stable FPC 3.2RC1 und Lazarus 2.0.8, sollte die Komponente auf Anhieb laufen.
Wie es mit dem Crosscompiler für FPC 3.2 aussieht, kann ich nicht sagen.

Kann dies nochmals jemand testen, vor allem unter Windows :wink: ?
Zuletzt geändert von Mathias am Mo 20. Apr 2020, 12:59, insgesamt 1-mal geändert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Embedded GUI Package für Lazarus

Beitrag von fliegermichl »

Hmm,
ich hatte den FPC Stable und Lazarus fixes installiert. Da hat er in embedded_gui_subarch_list.pas die definition des StringArrays angemeckert. (Syntax error NIL expected "(" found).
Ich hab dann von fpcupdeluxe FPC 3.3.1 installieren lassen. Da liess sich dann Lazarus nicht mehr compilieren.

Ich hab dann die aktuellste Version von fpcupdeluxe heruntergeladen, alle Verzeichnisse, die mit fpc anfangen gelöscht und dann nochmal FPC Stable und Lazarus fixes installieren lassen.
Da bekomme ich dann wieder den gleichen Fehler wie oben. Installiert wurde fpc 3.0.4.

Wie komme ich denn an diese Version 3.4RC1?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Embedded GUI Package für Lazarus

Beitrag von af0815 »

fliegermichl hat geschrieben:Wie komme ich denn an diese Version 3.4RC1?

Bei fpcupdeluxe den entsprechenden fixes Zweig für den FPC nehmen. Ist aber fpc 3.2 RC1 meines wissens. Also fixes3.2 für FPC und fixes2.0 für Lazarus.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1430
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Embedded GUI Package für Lazarus

Beitrag von fliegermichl »

Also die FPC fixes2.0 und Lazarus fixex2.0 installiert. Crosscompiler für AVR / embedded gebastelt.

Beispielprojekt Blink_Pin_13 geladen, hat anstandslos compiliert. Allerdings hat avrdude seine config nicht gefunden. Ich habe dann bei "nachher ausführen" ergänzt:

Code: Alles auswählen

 
-C c:\avrdude\avrdude.conf -c arduino -P COM3
 


Dann hat es geklappt. Aber sollte denn der Pfad der avrdude.conf / Port / Programmer nicht aus den Einstellungen geholt werden?

[Edit:] Natürlich FPC fixes 3.2

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

Re: Embedded GUI Package für Lazarus

Beitrag von Mathias »

Dann hat es geklappt. Aber sollte denn der Pfad der avrdude.conf / Port / Programmer nicht aus den Einstellungen geholt werden?

Macht es ja, nur habe ich dort avrdude falsch geschrieben. :oops:
Dies werde ich noch anpassen.

c:\avrdude\averdude.exe

Ist c:\avrdude\ ein Standardpfad bei Windows ?

Nachtrag: Ist korrigiert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten