Präsentiere: siginfo-ng 0.1

  • Wenn ich mehr Zeit hätte wäre ich übrigens an der siginfo-ng 0.2 entwickelung interressiert. Vielleicht lässt sich sogar ein Windows NT-Basierenden Port zu realisieren? (obwohl ich als Programmiersprachen-Noob davon ausgehe das man siginfo-ng zu 80% umschreiben dürfte.) Wollte jetzt zum Winter endlich mal eine Programmiersprache der Art angreifen.

  • Ich veröffentliche den Code, wenn da nicht so viele dumme Fehler drin sind...
    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.

    Wenn mir jemand hilft, habe ich schon eine Idee für ein zweites Plug-In, welches den von vnstat ermitteltdn Traffic ausgibt.

  • Fehler sind immer dumm, oder gibts gute/schlaue Fehler ;D?

    Du musst öfters mal in gits von wichtigen Sachen gucken.. da kriegste auch öfters mal ein schock, aber sind halt meist flüchtigkeitsfehler bzw kaffeemangel ;)

  • Zitat von Wynton

    Fehler sind immer dumm, oder gibts gute/schlaue Fehler ;D?

    naja wenn man z.B. nen taschenrechner programmiert und der statt dem Ergebnis einer Addition den Beweis von Fermats letztem Satz ausgibt, das würde ich nen schlauen Fehler nennen :)

  • Zitat von Wynton

    (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.

    Zitat von Blue-Fox

    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:

    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".

    Einmal editiert, zuletzt von gandro (20. August 2009 um 22:41)

  • An mein BOFH-Plugin sähe der Code so aus:

    Spoiler anzeigen

    Meine siginfo-ng.conf sieht so aus:

    Spoiler anzeigen
    Code
    row1=CPU: {CPU0_MODEL}, {CPU0_CACHE} KB Cache, {CPU_COUNT} Kerne.
    row2=RAM: {RAM_USED} von {RAM_TOTAL} MB benutzt, {RAM_FREE} MB frei. Swap: {SWAP_USED} von {SWAP_TOTAL} MB benutzt, {SWAP_FREE} MB frei.
    row3=OS: {UNAME_SYSNAME}, {UNAME_RELEASE} auf {UNAME_NODENAME}, wo{PROCESSES} Prozesse laufen.
    row4=HDD: {HDD_USED} von {HDD_TOTAL} GB Speicher benutzt, {HDD_FREE} GB frei.
    row5=Uptime: {UPTIME_DAYS_TOTAL} Tage, {UPTIME_HOURS} Stunden, {UPTIME_MINS} Minuten und {UPTIME_SECS} Sekunden. {BOFH_PLUGIN}


    Und die Befehle (make) so:

    Spoiler anzeigen

    Bei Make kommt immer ein Fehler, dass irgendwas falsch in Zeile 7 sei.

  • 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!

    Einmal editiert, zuletzt von Blue-Fox (21. August 2009 um 14:32)

  • Zitat von gandro

    Noch ein Flüchtigkeitsfehler: Du hast den Hook in deinem Quellcode BOFH_PLUGIN und nicht BOFH genannt.

    [...]

    Das habe ich geändert;

    Gleicher Fehler...

  • Huhu, Version 0.1.3-1 ist fertig!

    Muss nur noch Fehlerbereinig werden, bzw. optimiert werden.

    Edit: Fehlerfrei!
    Edit2: Optimiert!
    Edit3: Jetzt fehlt nur noch die sprueche.conf
    Edit4: Done!
    Edit5: Quellcode:

    Spoiler anzeigen


    Bis jetzt weiß ich noch nicht genau, ob das so funktioniert...
    Edit6: Die sprueche.conf muss selber geschrieben werden und im plugin-Verzeichnis abgelegt werden.

    So, 0.1.3-1pl1 ist fertig, Zip, rar und tar folgen.
    Done!:
    http://blue-fox.bplaced.net/BOFH/bofh-plug….3-1pl1.tar.bz2
    http://blue-fox.bplaced.net/BOFH/bofh-plugin-0.1.3-1pl1.tar.gz
    http://blue-fox.bplaced.net/BOFH/bofh-plugin-0.1.3pl1.7z
    http://blue-fox.bplaced.net/BOFH/bofh-plugin-0.1.3pl1.tar
    http://blue-fox.bplaced.net/BOFH/bofh-plugin-0.1.3pl1.zip

    Ist alles das selbe, nur in Anderen Archiven.

    Wichtig: Ich übernehme keine Haftung für Schäden an PC und Software!
    (gandro wies mich darauf hin, dass ich aufpassen soll, das meine Programme keine Hunde fressen.)

    Einmal editiert, zuletzt von Blue-Fox (21. August 2009 um 22:00)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!