Logic Analyzer-Projekt: Ideen zur Software

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Nachdem jetzt offensichtlich doch einige Blut geleckt haben und der Logic Analyzer nun mit ziemlicher Sicherheit zustande kommt hier schonmal vorab die Software-Seite.

Hier soll bis es die ersten Analyzer gibt eine Feature-List entstehen.

Wishlist

Bitte hier alle gewünschten Funktionen reintun... alles fällt mir auch nicht auf Anhieb ein ;)



Was ist mit JAVA? ist vielleicht nicht die schnellste lösung, doch schneller als JAVA kann man ja ohnehin nicht guggen :). Damit ist das Programm auch ohne Probleme auf Sun,Sparc & Co. lauffähig und man könnte z. B. für USB-Anbindung jUSB verwenden (ich glaube aber nur auf x86).


Ich möchte mal auf das hier verweisen... Derzeit ist nur 1 String schuld,dass es nicht sofort unter allen Plattformen laufen wird.. aber die Kleinigkeit hab ich auch nur zu Testzwecken drinnen ;)

Der Einwand mit Java ist zwar nicht grundlos.. aber wie ich im Forum schon mal gesagt hab... ich mags nicht *g*

Und nachdem es den gcc für alles mögliche gibt läuft die Soft auch auf den meisten Plattformen... eigentlich überall wo die GTK+ oder M$ läuft ;)...

und für den Rest... x86 Emu drauf und warten bis ReactOS kompatibel genug ist...(es dürfte eigentlich nur USB Unterstützung fehlen ;)

--Hans 07:51, 20. Jul 2005 (CEST)

Features

Framework, Libs, Widgetset...

Daten Projektweise organisieren

Projekt Dateien sind eigentlich SQLite Datenbanken. In 2 Tabellen werden Einstellungen und Daten gespeichert.

Um die Dateien nicht unnötig aufzublähen wird der Daten-BLOB vor dem Speichern noch komprimiert (zlib ???).

Daten

  • Beschreibung
  • Datenblob
* 4 Byte Timestamp (DWORD ausreizen)
* 2 Byte/8 Pins für HighZ-Detection (=> sicher nett für die Schnittstellenanalyze) und Daten

Konfiguration

  • Datenstruktur Version
  • Analyzer Typ
  • Projekt Beschreibung

Messungen

  • Plugin Id
  • Plugin Version
  • Messungs-Typ
  • Daten-Blob

Projekt History

  • Datum
  • Kommentar

Plugins

Ich habe vor möglichst viel aum Basiscode auszulagern und nur das aller Nötigste zu integrieren. So soll mehrere Plugin-Typen geben:

  • Input : Stellen die Verbindung zwischen Software und Capture-Engine her (wie auch immer sie aussehen soll)
  • Analyze : Analysieren die Daten. Dies kann jetzt von Jitter-Anaylse bis zum Protokoll-Analyzer alles sein
  • Output : Unter Umständen der Datenbank Export nicht in dieser Art und Weise erwünscht bzw sinnvoll. Dann könnte man z.B über ein Output Plugin noch Daten-Dezimierung einführen oder was auch immer
  • View : Ein richtiger Protokoll-Analyzer stellt die daten sicher anders da => Plugin und Fertig

Unter Windows ist eine Plugin-Architektur eigentlich ganz brauchbar machbar über DLLs. Ähnliches gilt auch für Linux wie hier zu lesen ist.

Eine Alternative ist die Verwendung von libtool in Verbindung mit der autoconfig/automake Package. Sie stellt einen Wrapper für den unter Unix oft verwendeten dlopen (Solaris, Linux and various BSD flavors) Mechanismus bereit und ist auch unter Win32 für LoadLibrary anwendbar (neben shl_load/HP-UX und load_add_on/BeOS). Unter Windows wird dadurch ggf. mingw oder cygwin erforderlich.

Die Plugin-Grundstruktur läuft mittlerweile mehr oder weniger problemlos. Derzeit sieht die ganze Angelegenheit ungefähr so aus:

Die Plugin-DLLs exportieren die Funktion GetPluginObject. Diese liefert einen Pointer auf ein von CPlugInBase abgeleitetes Projekt.

Von diesem Objekt holt sich die Applikation nun die benötigten Information.

Das Framework lädt dynamisch die vom Plugin angegebenen Menüs und fügt sie an der richtigen Stelle ein. Events werden natürlich auch registriert und an das Plugin gesendet.

Der Klassenstruktur wird nun noch ein Interface auf den Data-Manager hinzugefügt und schon sollten sich Daten laden lassen.

Im Laufe der nächsten Woche könnte ich bereits einen Snapshot online stellen.. für den Fall jemand möchte sich einbringen ;)

--Ope 13:27, 23. Jul 2005 (CEST) Wie wäre es mit einem cvs? ggf. sourceforge?

hab ich mir auch schon überlegt... das dürfte aber erst halbwegs sinnvoll sein wenn am core nicht mehr allzuviel gedreht wird... wenn nur mehr plugins rangebastelt werden müssen wird das schon interessant...

--Hans 19:03, 24. Jul 2005 (CEST)

Wenn ihr einen SVN-Server, Bugtracker usw. braucht, sagt Bescheid. Trac (http://www.edgewall.com/trac/) ist hier eh schon installiert, ein Account wird euch von mikrocontroller.net gerne zur Verfügung gestellt ;)

--Andreas 21:27, 19. Sep 2005 (CEST)

Unterstütze Betriebsysteme

  • Windows
  • Linux

Weitere sollten sich einfach durch neukompilieren hinzugesellen können, da die oben erwähnten Libraries (wxWidgets, zlib, SQLite) für verschiedenste Systeme verfügbar sind.

Unterstütze Hardware

Hier kommen sie dann... die im Forum dikutierten CPLD/FPGA-Captureengines sowie noch Ultra-Lowcost AVR,dsPic,Parallel-Port oder wasauchimmer Gerätschaften.