Virtual uC Controlpanel

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

von Themroc (Diskussion) 01:18, 16. Dez. 2013 (CET)

Einleitung

Ein Generator für virtuelle Frontplatten zur uC-Fernsteuerung über eine serielle Verbindung.

  • Schnittstellen: Aktuell UART oder UDP/IP, später gern auch USB/Wlan/whatever
  • Multiplatform: Läuft auf Linux und Windows (und theoretisch auch auf Mac, das ist aber noch ungetestet)
  • Mehrsprachig: Kleine Anpassungsroutinen können in allen Sprachen programmiert werden, für die GTK-Bindings verfügbar sind. Aktuell natürlich C (und C++), perl ist in Arbeit und einfach möglich sind z.B. python, lua, java, ruby, ... Siehe http://www.gtk.org/language-bindings.php.

Software

Das System besteht aus einer Library ("libvuc") und einem GUI-Editor ("vuc-glXXX"). Mit letzterem lassen per Mausschubserei die GUI-Elemente (auch "Widgets" genannt) platzieren und konfigurieren.

Als Ergebnis schreibt der Editor per Druck auf den "Create"-Knopf eine Source-Code-Datei (plus Makefile) in der gewählten Sprache auf die Platte. Die daraus kompilierte Anwendung kommuniziert mithilfe der Library mit dem uC, stellt Werte von diesem auf dem Schirm dar und übermittelt Bedienungsvorgänge mit den diverse Widgets. Dabei ist das VUC-Protokoll in der Lage, Übertragungsfehler zu erkennen und das betreffende Paket erneut anzufordern. Das lässt sich aber auch abschalten um den Overhead zu minimieren, etwa bei sehr guten seriellen Leitungen und/oder niedrigen Baudraten sowie bei bereits gesicherten Transportmechanismen wie TCP/IP oder (Hardware-)USB.

Downloads

Erstmal hier: http://www.mikrocontroller.net/topic/312841#3453639 vuc-0.0.8 (eventuell nachgucken ob es weiter unten noch eine neuere version gibt...)

Installation

Linux

Auf Debian/Ubuntu (und ähnlichen) reicht vermutlich ein

apt-get install avr-libc avrdude gcc autoconf automake binutils intltool make libtool pkg-config libgtk2.0-dev libxml2-dev

Dann wie üblich auspacken,

cd vuc-0.0.8
./configure --prefix=/opt/vuc
make
make install
cd ../vuc-gl384-0.0.8
./configure --disable-gtk-doc --disable-gnome --disable-python --disable-scrollkeeper --prefix=/opt/vuc PKG_CONFIG_PATH=/opt/vuc/lib/pkgconfig
make
make install
cd ..

und starten mit

/opt/vuc/bin/vuc-gl384

Windows

mit MinGW

  1. Lesen: http://www.mingw.org/wiki/Getting_Started
  2. MinGW wie beschrieben installieren. Im "MinGW Installation Manager" reichen vermutlich unter "Basic Setup" die Optionen mingw-developer-toolkit, mingw32-base und msys-base, da hab ich nicht mehr im Kopf, welche ich da anknipsen musste... Es sollten aber unter "All Packages" mindestens mingw32-binutils, mingw32-gcc, mingw32-gcc-g++, mingw32-xz, msys-libiconv, msys-make und msys-tar an sein.
  3. C:\MinGW\bin;C:\vuc\bin;C:\vuc\gtk2\bin;C:\Programme\7-Zip; dem Suchpfad voranstellen
  4. Neue Umgebungsvariable PKG_CONFIG_PATH erzeugen und auf C:\vuc\lib\pkgconfig setzen
  5. Ordner C:\vuc\src und C:\vuc\gtk2 anlegen
  6. Runterladen und installieren: http://www.7-zip.org/
  7. Hier http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/ ein schönes GTK runterladen. Wer verschärften Wert auf Optik legt, sollte vlt. besser erstmal die 2.22 nehmen, ansonsten halt die neueste 2.24. Gefragt ist jeweils das gtk+-bundle_XXXX-YYYY_win32.zip. Auspacken in den Ordner C:\vuc\gtk2.
  8. vuc-x.y.z.tar.xz und vuc-gl384-x.y.z.tar.xz runterladen und in C:\vuc\src speichern (x.y.z ist aktuell 0.0.8 und hier zu finden).
  9. Doppelclick auf C:\MinGW\msys\1.0\msys.bat
  10. Da reinkopieren:

    export CFLAGS="-Wno-unused-variable -Wno-pointer-sign -Wno-pedantic"
    cd /c/vuc/src

    wget http://kent.dl.sourceforge.net/project/gtk-mingw/intltool/intltool-0.50.2-binwin32.7z
    7z x intltool-0.50.2-binwin32.7z
    ( cd intltool-0.50.2-binwin32; find . -type f -printf "mkdir -p /%h; mv %p /%h\n" | /bin/sh )
    rm -rf intltool-0.50.2-binwin32*

    wget http://xmlsoft.org/sources/libxml2-2.7.8.tar.gz
    tar -xaf libxml2-2.7.8.tar.gz
    rm -f libxml2-2.7.8.tar.gz
    cd libxml2-2.7.8
    ./configure --prefix=/c/vuc --without-http --without-push --without-python --without-regexps --without-run-debug --without-schematron --without-modules
    make
    make install
    cd -

    Damit müsste das buildsystem stehen.
  11. Jetzt noch schnell VUC installieren:

    cd /c/vuc/src
    tar -xaf vuc-0.0.8.tar.xz
    tar -xaf vuc-gl384-0.0.8.tar.xz
    cd vuc-0.0.8
    ./configure --prefix=/c/vuc
    make
    make install
    cd ../vuc-gl384-0.0.8
    ./configure --prefix=/c/vuc --enable-debug --disable-gtk-doc --disable-gnome --disable-python --disable-scrollkeeper
    make
    make install
    cd -

  12. ... und starten mit C:\vuc\bin\vuc-gl384.

mit Cygwin

Theoretisch sollte es auch mit cygwin gehen. Auf meinem XP hab ichs damit auch kompiliert gekriegt, aber beim starten musste ich leider feststellen, das X11 da nicht tut... Wers trotzdem wagen will, fängt wohl am besten so an:

  1. Downloaden und starten:
    1. Für 32 bit-systeme: http://cygwin.com/setup-x86.exe
    2. 64 bit: http://cygwin.com/setup-x86_64.exe
  2. Lesen: http://www.mathematik.uni-dortmund.de/material/SS11/010550/84178240.pdf
  3. Im cygwin-installer nicht nur wie im obigen PDF beschrieben gcc-core, sondern auch noch autoconf, automake, binutils, intltool, make, libtool und pkg-config installieren. Und aus der Rubrik Libs die Pakete libgtk2.0-devel und libxml2-devel.

Ob cygwin ein geeignetes intltool und libxml2 hat, weiss ich nicht. Im Zweifelsfall einfach ähnlich wie bei MinGW Punkt 3 weitermachen.

MAC

Vermutlich ähnlich wie bei Linux... Weiss das jemand?

Siehe auch

http://www.mikrocontroller.net/topic/312841