Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Präsentiere: siginfo-ng 0.1
Blue Offline
Seit dem 17.10.2006 dabei!

Beiträge: 21.534
Registriert seit: Jul 2008
Beitrag #141
Präsentiere: siginfo-ng 0.1
Blue-Fox schrieb:  Was sind gits?

Mit dummen Fehlern meine ich sowas wie wenn ich vergesse, die wichtigste Variabele zu deklarieren, oder anstatt do od schreibe, das sind für mich dumme Fehler.

Das ist zb ein git, und dieser git ist für den Kernel. ;)

git.kernel.org

schau da: würde nur die newline vergessen (/n), flüchtigkeitsfehler halt ;)

http://git.kernel.org/?p=bluetooth/bluez...a39ef9ab1d
20.08.2009 21:17
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Blue-Fox Offline
nothing to see here

Beiträge: 2.758
Registriert seit: Jul 2008
Beitrag #142
Präsentiere: siginfo-ng 0.1
Ich glaube, ich verstehe was das ist...

Aber mein Programm mit all den Headern und Fehlern ist nicht so, wie ich das möchte.
(Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2009 21:31 von Blue-Fox.)
20.08.2009 21:19
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.953
Registriert seit: Jul 2008
Beitrag #143
Präsentiere: siginfo-ng 0.1
Wynton schrieb:  (obwohl ich als Programmiersprachen-Noob davon ausgehe das man siginfo-ng zu 80% umschreiben dürfte.).
Problem ist Netzwerk (also HTTP) und der ganze Kram, den gibts in C nicht plattformunabhängig, ohne besondere Bibliothek. Und die Plugins selber müssen um an die Infos ranzukommen direkt Linux-Funktionen verwenden. Plugins muss man also so oder so auch für Windows neu schreiben.

Ansonsten dürfte man siginfo-ng ohne Plugins vermutlich mit einer POSIX-kompatiblen Umgebung wie cygwin unter Windows kompileren können. Unter OSX kompiliertes ja angeblich.

Blue-Fox schrieb:  Was ich gut finden würde, wenn gandro mir verraten würde, wie das mit den Makefile krams ist, oder sonstige Implentierungen in siginfo-ng, damit ich mein Plug-In so implrntieren kann, wie ich mir das vorstelle.
Als Pluginentwickler brauchst du nicht an der Makefile rumzufummeln, lediglich wenn es dich interessiert, wie das intern läuft, aber dazu musst du so ne Makefile auch lesen könne, um das zu verstehen.

Kleines Beispiel-Plugin:
Code:
#include <stdio.h>

#include "../plugin.h"
#include "../siginfo-ng.h"

void myplugin_funktion(plugin_t *self) {
    int variable = 42;
    set_value(self, &variable, T_INTEGER);
}

void myplugin_init() {
    register_plugin("MY_PLUGIN", myplugin_funktion);
}
Beachten:
#include "../plugin.h"
#include "../siginfo-ng.h"


Wird benötigt für die Funktionen und Datentypen die man als Plugin braucht. Dass man die <stdio.h> einbinden muss, ist mehr ein Bug den ich gerade gefunden habe.

Wichtig: Der Dateiname (hier myplugin.c) muss auch in den Funktionen verwendet werden. Wenn du also im "plugins" Ordner eine "myplugin.c" erstellst, muss in dieser Datei eine Funktion myplugin_init() vorhanden sein.

Diese Funktion wird beim Starten von siginfo-ng bei allen Plugins aufgerufen, in dieser Funktion meldest du deine "Hooks" an. Im obigen Beispiel soll beim Hook "MY_PLUGIN" (in der Konfigurationsdatei dann {MY_PLUGIN}) die Funktion myplugin_funktion bei jedem Update aufgerufen werden.

Die Funktion muss einen Parameter als Pointer von Typ plugin_t sein. In diesem Beispiel, heisst der self. Jetzt kannst du in der Funktion tun und lassen was du willst, das Resultat, welches am Ende in der Signatur angezeigt werden soll, gibst du dann über die Funktion set_value(plugin_t *plugin, const void *value, type_t type) zurück.

Den Wert hinter dem Pointer *value (in diesem Falle &variable) kannst du danach wieder löschen/freigeben, er wird kopiert. Als Datentyp kannst du momentan Strings (T_STRING), Ganzahlen (T_INTEGER), Gleitpunktzahlen (T_FLOAT)) oder lange Ganzzahlen (T_LONG) zurückgeben.

Die fertige Datei kommt wie gesagt mit richtigem Dateinamen ins "plugins"-Verzeichnis. Danach machst du im Hauptverzeichnis (da wo die Makefile liegt) sicherheitshalber erstmal ein "make clean", danach ein "make config", wo du dein Plugin jetzt mit Y aktivieren kannst. Danach compilieren mit "make".
(Dieser Beitrag wurde zuletzt bearbeitet: 20.08.2009 21:41 von gandro.)
20.08.2009 21:38
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Blue-Fox Offline
nothing to see here

Beiträge: 2.758
Registriert seit: Jul 2008
Beitrag #144
Präsentiere: siginfo-ng 0.1
An mein BOFH-Plugin sähe der Code so aus:


Meine siginfo-ng.conf sieht so aus:

Und die Befehle (make) so:


Bei Make kommt immer ein Fehler, dass irgendwas falsch in Zeile 7 sei.
21.08.2009 13:04
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Alpha Offline
Oskar

Beiträge: 16.347
Registriert seit: Jan 2009
Beitrag #145
Präsentiere: siginfo-ng 0.1
Schau mal in deinen Code... hast nen Typo.

Mark IV Style Motherfucker!
21.08.2009 13:10
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Blue-Fox Offline
nothing to see here

Beiträge: 2.758
Registriert seit: Jul 2008
Beitrag #146
Präsentiere: siginfo-ng 0.1
Typo?

wat's that?
21.08.2009 13:19
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.953
Registriert seit: Jul 2008
Beitrag #147
Präsentiere: siginfo-ng 0.1
Ein Tippfehler: int variablbe = 42;
21.08.2009 13:28
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Blue-Fox Offline
nothing to see here

Beiträge: 2.758
Registriert seit: Jul 2008
Beitrag #148
Präsentiere: siginfo-ng 0.1
okay, habe ich übersehen... :(


Edit: Tippfehler verbessert, make meckert nicht mehr rum, aber...
...wenn ich siginfo-ng ausführe, kommt eine Fehlermeldung:
Zitat:Warning: Unkown plugin hook {BOFH} in row 5!
(Dieser Beitrag wurde zuletzt bearbeitet: 21.08.2009 13:32 von Blue-Fox.)
21.08.2009 13:29
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.953
Registriert seit: Jul 2008
Beitrag #149
Präsentiere: siginfo-ng 0.1
Noch ein Flüchtigkeitsfehler: Du hast den Hook in deinem Quellcode BOFH_PLUGIN und nicht BOFH genannt.

Überigens, falls das Ding dann läuft und du mehr machen willst, schau dir die Ausgabe von Strings & Co evtl. das Beispiel-Plugin von weiter vorne an:

http://www.winhistory-forum.net/71451-post36.html
21.08.2009 13:36
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Blue-Fox Offline
nothing to see here

Beiträge: 2.758
Registriert seit: Jul 2008
Beitrag #150
Präsentiere: siginfo-ng 0.1
gandro schrieb:  Noch ein Flüchtigkeitsfehler: Du hast den Hook in deinem Quellcode BOFH_PLUGIN und nicht BOFH genannt.

[...]

Das habe ich geändert;
Code:
#include <stdio.h>
#include "../plugin.h"
#include "../siginfo-ng.h"

void bofh_funktion(plugin_t *self) {
   int variable = 42;
   set_value(self, &variable, T_INTEGER);
}

void bofh_init() {
   register_plugin("BOFH", bofh_funktion);
}
Gleicher Fehler...
21.08.2009 13:57
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste