Forum: Projekte & Code OpenSource: Universelle library zum Ansteuern von Geräten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Martin S. (strubi)


Bewertung
0 lesenswert
nicht lesenswert
Hallo an die Entwickler-Gemeinde,

Ich würde gerne eine länger gereifte, und nun endlich als OpenSource 
"releaste" Library vorstellen. Dazu muss ich allerdings erst mal etwas 
ausholen:

Wer kennt das nicht: Immer wieder ein neues Gerät an einen (embedded) PC 
anbinden zu müssen. Ob i2c, SPI, UART, Ethernet, usw. - immer wieder 
geht's von vorne los mit:

- Headerfiles mit Registertabellen schreiben
- Protokoll implementieren
- Die Register irgendwie in einer API als "Eigenschaften" oder 
"Parameter"
  eines Geräts abbilden
- Software zur Parametrisierung schreiben (GUI, ...)
- Viel debuggen und bloss nichts mehr am Protokoll ändern

Es ist nun schon ca. acht Jahre her, dass nach langer Diskussion in 
diversen Machine-Vision-Gremien zumindest ein einigermassen 
intelligenter" Standard basierend auf XML für Kameras - das GenICAM 
Framework - eingeführt wurde.

Logische nächste Frage:
Warum nicht das Ganze noch generischer für beliebige "embedded" Geräte?

Herausgekommen ist schlussendlich nach längerer Reife das Framework 
"netpp-DClib" (network property prototol / Device Control library), bei 
der sich die Knochenarbeit der Entwickler (idealisiert) auf folgendes 
herunterkocht:

- Mit Hilfe einer Gerätebeschreibungssprache auf XML-Basis werden
  Register und ev. einzelne Bits per GUI-Editor eingegeben und in
  "Properties" (Eigenschaften mit Namen, wie "Enable") abgebildet
- Es müssen device_write() und device_read()-Funktionen geschrieben
  werden. Diese bilden einen 'flachen' Register-Adressraum auf ein
  oder mehrere angeschlossene embedded Geräte (i2c-Sensoren, ADCs, etc.)
  ab.
- Eventuelle kompliziertere Zugriffsarten müssen als Handler
  implementiert werden (getter/setter)
- "make" aufrufen und den so erstellten 'Server' auf dem embedded
  Target ausführen.
- Um das Gerät schlussendlich fernzusteuern, genügt EIN generischer
  Client für ALLE netpp-fähigen Geräte.

Nach diversen Adoptionen durch die werte Kundenschaft (hier ein "Danke!" 
für das Ermöglichen all der Entwicklungen und Verbesserungen) ist nun 
der Zeitpunkt gekommen, wo die Erwartungen an netpp allmählich die 
alltäglich handhabbaren Komplexitäten sprengen - es ergo Sinn macht, 
wenn mehrere Entwickler an der Sache mitdenken.

Der allseits bewährte Lieblings-Ausweg aus dieser Situation ist 
bekanntlich:
"Let the baby go".
Heisst: Das Paket wird hiermit in einer abgespeckten Version (nur für 
Linux/GCC-Crosscompiler getestet), wie an der Embedded World Conference 
2011 angekündigt, als OpenSource-Paket freigegeben.
Und wir dürfen gespannt sein, was alles an interessanten 
Aspekten/Erweiterungen dazukommt.

Mehr dazu (bisher nur auf englisch):

  http://www.section5.ch/netpp

Viel Spass,

- Strubi

von Eulendieb (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

irgendwo in der Dokumentation ist auch ein 8051-Port erwähnt, aber ich 
finde dazu keine zugehörigen Files bzw verstehe ich nicht, wie die 
Konfiguration für den 8051 (ohne den Netzwerk-Krempel) von statten gehen 
soll. Gibt es dazu noch mehr Info?

von Martin S. (strubi)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

tut mir leid, die 8051-Version ist ein fork und nicht im "freien" Tree 
unterstützt, geht leider nicht generisch, wegen der vielen 
8051-Varianten. Eine Portierung wäre machbar, würde aber eher davon 
abraten, es ist inzwischen wohl billiger, einen kleinen ARM 
einzudesignen, als mit den alten 8-Bittern zu arbeiten.

Gruss,

- Strubi

von Alex W. (a20q90)


Bewertung
-1 lesenswert
nicht lesenswert
Martin S. schrieb:
> Wer kennt das nicht: Immer wieder ein neues Gerät an einen (embedded) PC
> anbinden zu müssen. Ob i2c, SPI, UART, Ethernet, usw. - immer wieder
> geht's von vorne los mit:

Hi Martin,

ich kenn das Problem! Ich bin deswegen zu BASCOM gewechselt...

von Martin S. (strubi)


Bewertung
0 lesenswert
nicht lesenswert
Moin,

um mal endlich mit aktuellen OpenSource-Plattformen mitzuhalten: Das 
offizielle Repo ist definitiv migriert und nun unter

https://gitlab.com/hackfin/netpp

zu finden.
Alle anderen Repos (insbesondere SVN) und angepassten Baeume sind nicht 
mehr gewartet und koennen beim naechsten Reinemachen verschwinden.

Beitrag #6110032 wurde von einem Moderator gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.