Jump to content

Erstes Plugin schreiben?


Allodo

Recommended Posts

Hallo,

 

erst einmal was habe ich vor?

Ich möchte gerne ein Plugin für mein Futaba VFD (M402SD06GL) schreiben, welches mir die Stati auf dem Display anzeigt (analog dem IMon-VFD-Plugin von markymark).

 

Was habe ich bisher erreicht?

Ich habe mir die Sourcen vom VFD-Test angeschaut und entsprechend angepasst, so dass die Stati auf dem Display ausgegeben werden, welche sonst in dem Frame angezeigt wurden. So weit so gut.

 

Nur leider bin ich kein Delphicrack, sondern habe mir in den letzten 2 Wochen den Sourcecode genau angeschaut und ein wenig rumexperimentiert. Wie oben schon geschrieben mit Erfolg.

 

Mein Problem:

Leider habe ich bis jetzt nur ein Exe-File erzeugen können mit der enthaltenen GUI. Das möchte ich aber nicht, sondern "lediglich" eine DLL erzeugen, welche in dem Plugin-Ordner ihren Dienst verrichtet und als solches auch unsichtbar bleibt.

 

Ich weiss, dass ich die 5 Funktionen InitPlugin2; PluginName; Version; Copyright und LibTyp bestücken muss gesagt getan, aber dann?

 

Hier mal der Code:

   function InitPlugin2: TVFDPlugin; stdcall; {export;}
  begin
 if vfdplugin = nil then
	vfdplugin := TVFDPlugin.Create(???);
 result := vfdplugin;
  end;

  procedure DLLEntry(dwReason: Integer);
  begin
 if dwReason = DLL_PROCESS_DETACH then
 begin
   vfdplugin.FDestroy(???);
 end
 else
   if dwreason = DLL_PROCESS_ATTACH then
   begin
	 vfdplugin.FActivate(???);
   end;
  end;

Welchen Parameter muss ich beim Create übergeben bzw. bei der Klassendeklaration anweisen damit es mit TDVBViewer passt?

 

Sorry für mein Unwissenheit, aber wie schon gesagt bin ich ein Delphi-Noob und dies mein erstes Plugin :) . Im SDK stehen auch nur 4 Pluginparameter (PluginName; Version; Copyright und LibTyp).

 

Ich hoffe ihr habt mein Problem verstanden und könnt mir weiterhelfen.

 

Recht herzlichen Dank im voraus ;)

Link to comment

Keiner hier der mir helfen kann? Nicht mal diejenigen, welche für die Plugin-Schnittstelle zuständig sind?

Ist ja wirklich schade.

 

Ich habe schon versucht eine dll zu erstellen, welche nur die 4 beschriebenen Funktionen inne hat und bei einer Funktion eine Instanz meiner Klasse erzeugt (was bei der exe so anscheinend ausreicht).

 

Nur leider startet dann der DVBViewer nicht mehr, sobald ich die dll in den Plugin-Ordner stelle.

 

Es ist nicht so, dass ich mir nicht schon verschiedene Plugins-Sources angeschaut hätte, aber entweder es waren Plugins mit GUI-Elementen (von mir nicht benötigt), oder es waren Input-Plugins (ebenfalls nicht benötigt) oder sonst etwas. Die Beschreibung des SDK ist leider auch nicht wahnsinnig aussagekräftig.

 

Deswegen noch einmal die bitte einen Hinweis zu geben, wie man an meiner Stelle (nur Ausgabe auf dem Display) vorgehen muss bzw. sollte.

 

Vielen Dank.

Link to comment
Es ist nicht so, dass ich mir nicht schon verschiedene Plugins-Sources angeschaut hätte, aber entweder es waren Plugins mit GUI-Elementen (von mir nicht benötigt), oder es waren Input-Plugins (ebenfalls nicht benötigt) oder sonst etwas. Die Beschreibung des SDK ist leider auch nicht wahnsinnig aussagekräftig.

 

Ja, das ist leider so, dass hier jeder auf seinem Plugin-Code und Plugin-Knowhow hockt, als wäre es die grö0te Erfindung der Welt. Aber wo käme man denn da hin, wenn man sich mühsam in das Thema einarbeitet und dann andere einfach schmarozend davon provitieren. ;-)

 

Wenn es mehr Quellen gäbe, die man als Vorlage (oder Grundlage) für eigene Projekte verwenden könnte, gäbe es sicher deutlich mehr Plugins. Aber so eine Open-Source-Kultur gibt es um den DVBViewer herum leider nicht.

 

Ich habe auch schon zwei Anläufe gestartet, aber da bei mir die Hürde doppelt hoch war (Einarbeitung in Delphi und Einarbeitung in die Plugin-Schnittstelle, überhaupt bin ich nicht so er erfahrene Windows-Programmierer) habe ich es mangels Quelltextvorlagen immer wieder zu Seite gelegt. Mein Plan war, meine Hausautomatisierung (die in C geschrieben ist) per Plugin an den DVBViewer zu hängen. Ich habe jetzt schon überlegt, ob ich nicht einfach EventGhost zwischenschalte und das ganze in Perl code. Da gibt es dann wenigstens viele Quelltextvorlagen. Aber ein Nativ-Plugin in Delphi wäre mir lieber gewesen. Im Moment bediene ich alles über ein eigenes HTML-Interface. Aber das geht leider nicht mit der Fernbedienung von der Wohnzimmer-Couch.

 

Bezeichnend ist auch, dass sich bei Fragen zur Plugin-Schnittstelle eher noch die Programmierer selbst zu Wort melden als andere Plugin-Programmierer. Letztere verweisen eher auf die spärlichen Beispiele im Download-Bereich, als dass sie selber mal eine Info rausrücken oder gar eigene Erfahrungen preisgeben.

 

Ich habe leider nicht unbegrenzt Zeit und Lust, alles was andere vorher schon mal ausgetüftet haben, nochmal neu zu coden.

Edited by dgdg
Link to comment

Für Delphi gibt es ja 2 Beispiele von den Entwicklern mit Sourcecode. Für C gibts sowas leider nicht.

 

Im Gegensatz zur Com-Schnittstelle verstehe ich bei der Plugin-Doku kein Wort. Ist wohl auch nicht für Anfänger geeignet.

Link to comment
Ja, das ist leider so, dass hier jeder auf seinem Plugin-Code und Plugin-Knowhow hockt, als wäre es die grö0te Erfindung der Welt. Aber wo käme man denn da hin, wenn man sich mühsam in das Thema einarbeitet und dann andere einfach schmarozend davon provitieren. ;-)

Das finde ich ziemlich schade bei euch.

In VBS Sachen läuft das von Natur aus anders, da es ja eh für jeden ersichtlich ist.

Ich halte auch nicht viel davon wenn jeder sein eigenes Süppchen kocht, denn das behindert deutlich die Verbesserung des DVBViewers.

Da mir das DVBViewer Entwicklerteam ihre Verbesserungen auch kostenlos zur Verfügung stellt gibt es für mich gar keine andere Option als mein Wissen bzw. meine Problemlösungen hier zu veröffentlichen.

Und das jeder von dem anderen lernen kann steht wohl völlig außer Frage. Schließlich führen viele Wege nach Rom. o:)

Link to comment
Für Delphi gibt es ja 2 Beispiele von den Entwicklern mit Sourcecode. Für C gibts sowas leider nicht.

 

Es gibt aber wohl Leute, die das in C schon erfolgreich gemacht haben. Aber veröffentlich wird der Code leider nicht.

Link to comment

Naja es kann niemand gezwungen werden seinen Quellcode zu veröffentlichen.

Man weiss ja gar nicht was für Funktionen wirklich dahinterstecken (könnten ja auch Sachen von der Arbeit mit eingeflossen sein usw.).

Bei Skriptsprachen ist das ja anders. Ersten gibt es kaum was schützenswertes und zweitens ist der Sourcecode eh leicht zu ermittlen.

 

Trotzdem wäre ein kleines Basis-Plugin in C natürlich super!

Edited by nuts
Link to comment

Einen wichtigen Punkt sollte man nicht vergessen. Wenn man den Quelltext veröffentlicht muss er auch halbwegs geordnet sein und das ist nicht immer der Fall wenn jemand was hauptsächlich für sich in der Freizeit Programmiert.

 

Und mir ist auch kein Plugin bekannt was in C geschrieben ist. Mit C++ sieht es da schon etwas anders aus, dazu hat aber erwin auch schon einiges geschrieben:

http://www.DVBViewer.info/forum/index.php?showtopic=33691

 

und Rayman (bezieht sich aber auf das COM Interface)

http://www.DVBViewer.info/forum/index.php?showtopic=13784

http://www.DVBViewer.info/forum/index.php?showtopic=10580

 

Aber zumindest von den Erweiterungen für den DVBViewer die wirklich die Plugin Schnittelle nutzen sind glaube ich die meisten in Delphi geschrieben und da gibt es ja auch ein paar beispiele.

Link to comment
Einen wichtigen Punkt sollte man nicht vergessen. Wenn man den Quelltext veröffentlicht muss er auch halbwegs geordnet sein und das ist nicht immer der Fall wenn jemand was hauptsächlich für sich in der Freizeit Programmiert.

Für sowas gibt es doch das Forum, da kann man das dann Fragen was unklar ist.

Allodo hat es so gemacht, nur geantwortet hat ihm keiner. o:)

Link to comment
Einen wichtigen Punkt sollte man nicht vergessen. Wenn man den Quelltext veröffentlicht muss er auch halbwegs geordnet sein und das ist nicht immer der Fall wenn jemand was hauptsächlich für sich in der Freizeit Programmiert.

Warum? Jeder kann doch sein Quellcode veröffentlichen wie er will? Es muss ja keine vom DVBViewer-Programmierteam geprüfte und freigegebene Version sein, die dann im offiziellen Download-Bereich liegt. Wenn man die Hürde so hoch legt, dann wirds sicher nix.

 

Und mir ist auch kein Plugin bekannt was in C geschrieben ist. Mit C++ sieht es da schon etwas anders aus, dazu hat aber erwin auch schon einiges geschrieben:

Natürlich meinte ich mit C eigentlich C++.

 

Aber zumindest von den Erweiterungen für den DVBViewer die wirklich die Plugin Schnittelle nutzen sind glaube ich die meisten in Delphi geschrieben und da gibt es ja auch ein paar beispiele.

Eben - Beispiele. Keine wirklich sinnvollen Plugins die auch wirklich im Einsatz sind. Dann wüsste man nämlich, dass die ersten noch auf dem aktuellen Stand sind und zweitens halbwegs fehlerfrei sind.

 

Ich will ja auch niemanden nötigen, seinen Code zu veröffentlichen. Ich meine nur, wir hätten für den DVBViewer deutlich mehr und deutlich bessere Plugins, wenn mehr Quellcode verfügbar wäre. Das zeigt ja auch beispsielsweise die Dynamik bei dem OSD-Skins. Wenn da auch jeder wieder bei Null angefangen hätte, hätten wir deutlich weniger Auswahl.

Edited by dgdg
Link to comment
Warum? Jeder kann doch sein Quellcode veröffentlichen wie er will?

Ich glaube du hast mich da Falsch verstanden. Mir ist es Egal wie jemand seinen Quellcode veröffentlicht.

Nur die meisten Zeigen nicht gerne Ihre Sachen wenn sie nicht wenigstens halbwegs Ordentlich sind.

Link to comment
Ich glaube du hast mich da Falsch verstanden. Mir ist es Egal wie jemand seinen Quellcode veröffentlicht. Nur die meisten Zeigen nicht gerne Ihre Sachen wenn sie nicht wenigstens halbwegs Ordentlich sind.

Stimmt. Da gebe ich dir recht.

 

Das wäre natürlich mal ein Anlass, den eigenen Code aufzuräumen. ;-)

Aber ich persönlich fände unordentlichen Code besser als gar keinen.

Link to comment
  • 1 month later...

Hallo,

 

ich besitze zwar nicht so ein Futuba aber ein ähnliches Samsung VFD 20S207DA1.

Habe meines über die serielle-(wandler)-USB schnittstelle angeschlossen und das ganze in LCDHype eingebunden.

Übrigens in LCDHype ist ein Futuba Treiber schon drin.

Im Anhang mal das Script, ist ähnlich IMON.

 

Ich hoffe es Hilft Dir weiter. :)

 

smd

smd2.zip

Link to comment
  • 2 months later...
Ja, das ist leider so, dass hier jeder auf seinem Plugin-Code und Plugin-Knowhow hockt, als wäre es die grö0te Erfindung der Welt. Aber wo käme man denn da hin, wenn man sich mühsam in das Thema einarbeitet und dann andere einfach schmarozend davon provitieren. ;-)

 

Wenn es mehr Quellen gäbe, die man als Vorlage (oder Grundlage) für eigene Projekte verwenden könnte, gäbe es sicher deutlich mehr Plugins. Aber so eine Open-Source-Kultur gibt es um den DVBViewer herum leider nicht.

 

http://www.DVBViewer.info/forum/index.php?...st&p=290734

 

erwin

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...