Programm: Dev Tools

Veröffentlicht von Joe-C (jch) am Mar 06 2013
Software >>

Diese Webseite ist gerade in Überarbeitung.

Bis zum Abschluss der Arbeiten, ist auf den Unterseiten mit Darstellungsfehlern und Unvollständigkeiten zu rechnen.

Index

Zurück zur Übersicht

Beschreibung

zurück zum Index


Dieses Programm wurde ursprünglich nebenbei erstellt, um die eine oder andere nützliche Funktion (für mich angepasst) verfügbar zu haben. Inzwischen ist es ein eigenständiges Projekt, das teilweise als Vorlage für andere dient.

Die Funktionen sind in folgende Blocks (Tabs) unterteilt:


 Startseite

Startseite:
zur Direktwahl der Funktionen.
Eine inzwischen kaum noch verwendete Funktion ist der PDA Design-Mod. Die Oberfläche für die Funktion ist zu klein, weshalb sie auch nicht auf einem eigenen Tab sitzt. Der PDA Design-Mod ist dazu verwendet worden, den Code des Designers zu kopieren und per Knopfdruck anzupassen. Anwendungen für PocketPCs, lassen sich mit Sharpdevelop 3.1 programmieren (siehe PDA Steuerung). Aber SDev ist nicht direkt darauf ausgelegt, deshalb tauchen im Designer Eigenschaften auf, die das Compact Framework nicht hergibt. Hier kommt diese Funktion ins Spiel:
 - Mit STRG+A und STRG+C den gesamten Code des Designers in die Zwischenablage kopieren
 - Auf Bearbeite Zwischenablage klicken
 - Mit STRG+V den Code wieder einfügen und ausführen
Jetzt gibt es entweder weniger Fehlermeldungen oder keine. So kann man PDA Anwendungen etwas komfortabler (und schneller) entwickeln als vorher.

Bitconverter:
Das Tool ist zum umrechnen von bei der Programmierung häufig vorkommenden Formaten.
Auf dieser Webseite ist ja schon ein recht umfangreiches 16Bit-Umrechner Programm in Javascript.
Auch ein 32Bit-Umwandler ist bei dem STM32 Tools schon zu finden.
Aber dieser Programmabschnitt ist dennoch hilfreich, wenn der Programmierrechner nicht mit dem Internet verbunden ist. Außerdem sind noch ein paar Feinheiten drin, die die Onlinevariante nicht hat... man kann eine Farbe auswählen und Umrechnen lassen (so bekommt man die Wunschfarbe schneller auf sein Display), oder man kann automatisch den Zwischenablageinhalt auswerten lassen. Mit Auto STRG+C braucht man die Maus nur noch über die Variablen im Code bewegen und bekommt im Tool ihre anderen Darstellungen angezeigt. Eingaben sind gelb, ausgaben sind grün (außer bei Farbe).

Fileformat:
Dieser Teil zeigt die Bytes an, aus denen eine Datei besteht. Dieser Bereich war sehr nützlich, um für das Wärmebild-Kamerabilder für den ThermalViewer zu entschlüsseln.
Dafür wurde auch noch ein anderes Tool verwendet, was ich später noch hier implementieren werde (in Version 018).

Serial Terminal:
Wird zur Kommunikation mit der Seriellen Schnittstelle verwendet. Es Kann in Text oder in Bytes gesendet werden. Empfangen wird beides. Gerade wenn man einen Mikrocontroller über UART anspricht, ist es nützlich, wenn man beides sieht. Die Steuerein- und Ausgänge sind ebenfalls verwendbar. Die Schaltflächen 0-6 Senden jeweils ein Byte mit dem Wert von 0-6. Ist dazu gedacht, am µC was zu testen.
Die Funktion Refresh Ports versucht alle Ports von 1-99 (das dauert < 1 Sec. bei mir) zu öffnen. Jeder, der geöffnet werden konnte, wird in die Liste rechts daneben aufgenommen. So braucht man nicht alle Ports durchzuprobieren oder immer im Gerätemanager nachschauen... einfach schauen was so drin steckt, dann sein USB-RS232 Wandler verbinden und auf Refresh Ports drücken... der neue hinzugefügte ist dann gleich der richtige. Die Baudrate wird in einem Textfeld reingeschrieben, wodurch man da eintragen kann, was man will... man kann den Port auch mit Baud 120000 öffnen, oder mehr... ob die Hardware das mitmacht steht auf einem anderen Blatt (gerade in Verbindung mit VCP also Virtual Com Ports ist es nützlich, an der Baudrate etwas herumzustellen). Man kann aber auch Standardgeschwindigkeiten aus der Comboliste wählen, die dann direkt in das Textfeld übernommen werden.

USB-HID:
Dient zur Kommunikation mit dem STM32 oder anderen HID-Geräten. Man muss Venor-ID (VID, Anbieternummer) und Product-ID (PID, Produktnummer) von seinem Gerät wissen... das ist quasi die Adresse des Gerätes, egal in welchem USB-Port das so steckt. Im Verbindungslog werden eintreffende und getrennte Geräte dargestellt. Stimmen VID und PID überein, werden Ein- und Ausgangsreportgröße des Gerätes angezeigt. Bei Send HID und Recive HID werden Bytes ausgetauscht.
Diese Funktionen sind auf das STM32 Paint-Beispiel abgestimmt. LED1 und Key1 sind Digitale I/Os, die Picturebox zeigt und Zeichnet die Stiftpositionen vom MiniSTM32 Board mit.

STM32 Code Generator:
Hier sind wieder Berechnungstools für Adressen. Einerseits für den F1xx andererseits für den F4xx (F4 Discovery-Board). Ein ähnliches Tool ist Online als Adressrechner implementiert. Dieses Tool hier kann noch ein paar Sachen mehr. Unter anderem kann man eine GPIO-Konfiguration erstellen. Die Configdatei für die Keil IDE hat das zwar schon gut umgesetzt, aber wenn ich mal auf eine andere Umsteige (CoIde z.B.) dann will ich ja immer noch komfortabel Einstellungen machen können.

Version 018

zurück zum Index


Die Hauptänderung betreffen Erweiterungen für das STM32F103 Miniboard (Font-Editor, GUI-Modus). Außerdem wurde der TC3-Analyzer integriert. Dieser war ein Testprojekt, das nur dazu diente, das IRI Dateiformat von der TC3-Wärmebildkamera zu entschlüsseln.

Wärmebild Rohdaten
Die Wärmebilder werden von mir vorwiegend deswegen entschlüsselt, damit ich sie mit meinem Thermoviewer öffnen kann.
Die Rohdaten (also ein fertiges Bild, aber ohne direkte Temperatur Informationen), hab ich bisher bei folgenden Kameras entschlüsseln können:

 Dateiendung Auflösung Kamera Hersteller
*.SAT 384x288 Hotfind L SDS Infrared
*.SAT 384x288 IC080 LV Trotec
*.SAT 160x120 EC060, IC060 L Trotec
*.SAT 100x80 EC040 Trotec
*.JPG 160x120 Mobir M8 Guide IR
*.IRI 120x120 Mobir M2 Guide IR
*.IRI 160x120 TC3 PCE

Viele Kameras sind Baugleich zu anderen Herstellern. Außer ein paar Optischen Änderungen, sind sie vom Format (Hard-/Software) wie die anderen. Beispielsweise ist die TC3 von PCE-Group Baugleich mit der IRI 4010 von Irisys. Die Kameras von Trotec findet man meistens auch bei anderen Herstellern und auch Geräte wie die Hotfind L von Goratech sind weit verbreitete Kameraformate.
Hier sind ein paar Bilder inklusive Configdatein zum ausprobieren. Die Bilder sind von meinen (meist ehemaligen) Kameras, aber auch von anderen Besitzern die bei ebay Kameras verkauft haben und bereit waren, mir ihre Kamerabilder zur Verfügung zu stellen:
DevTools IR-Bilder_000.zip (834 kB)

Version 019

zurück zum Index


Inzwischen habe ich mich mit dem STM32F4 Discovery Board genauer beschäftigt und musste leider feststellen, dass die Codeerstellung für den F4 nicht so richtig geklappt hat. Mit dieser Version funktioniert es allerdings.
Die für die Keil-IDE vorgesehene STM32_Init.c funktioniert nämlich nur für den F1xx und daher nutzte ich für das F4 Discoveryboard mein Programm.

GUI Editor
Des Weiteren wurde das Tab "LCD Controls" erweitert und umstrukturiert. Anstatt wie früher einzelne Objekte (text1, text2... ) zu beschreiben, werden nun Channels angelegt.
Was auf das Display geschrieben wird, bleibt da, bis es überschrieben wird. Daher brauche Ich also für 5 Buttons nicht 5 Einzelobjekte erstellen, sondern lediglich ein Objekt 4x überschreiben. Es wird also nur 1 Button benutzt, aber für jede Darstellung mit unterschiedlichen Parametern initialisiert. So existiert von den 5 Buttons auf dem Display letztendlich nur der letzte wirklich (und lässt sich klicken), aber für die anderen 4 wird der Code mit generiert.
Somit kann man 5 Buttons auf dem Display darstellen und verändern, obwohl auf dem Bord letztendlich nur einer zur Darstellung Verwendet wird. Daher muss für die GUI-Entwicklungsphase nicht extra darauf geachtet werden, dass genügend Objekte gleichzeitig erstellbar wären.
Die Channels sind mit Code gefüllte Comboboxen, mit denen sich einzelne virtuelle Objekte laden und verändern lassen.
Man kann z.B. 20 Buttons nacheinander erstellen und nachträglich von Button 4 die Breite und von Button 7 den Text ändern. Codeänderungen werden (wenn verbunden) direkt auf dem Board-Display dargestellt.
Da immer alles überschrieben wird, was vorher auf dem Display stand, ist es notwendig, die aktuelle Codedarstellung ab und zu neu darzustellen (wenn z.B. während der Einstellung ein Objekt ein anderes gekreuzt und überschrieben hat).
Dafür gibt es die Funktion "Clear LCD (Black)". Damit wird zuerst der Bildschirm komplett schwarz überschrieben, dann werden nach und nach alle Objekte darüber gezeichnet. Hierfür muss sich der Code nur in der Combobox befinden, was die Schaltfläche "Hinzufügen" erledigt.
Zuerst gezeichnet werden Rechtecke, dann Texte, dann Schaltflächen und zuletzt Progress Bars. Wenn an einer Position ein Button und eine Progressbar sich überschneiden, dann wird grafisch die Progressbar "oben drauf liegen". Der erzeugte Code in dem Fenster rechts wird auf dem Display genau die Objekte erstellen, wie sie vorher schon (nach "Clear LCD (Black)") dargestellt wurden. Ihre Reihenfolge entscheidet darüber, welche davon grafisch "oben liegen".
So erstellte Oberflächen lassen sich als xxx.gui Datei abspeichern und laden. Man kann sich so verschiedene Oberflächen schnell erstellen und speichern. Die xxx.gui wird als Textdatei gespeichert, kann also in einem normalen Editor geöffnet/bearbeitet werden.

Eine Möglichkeit zum löschen von einzelnen Objekten hab ich bisher nicht stellt. Allerdings brauchte ich das auch nicht. Man kann unbenötigtes einfach aus der xxx.gui löschen oder die Objekte zu klein zur Darstellung machen (Höhe=0 oder so).

Um den GUI Editor mit dem Ministm32 Board benutzen zu können, muss die Firmware V005 auf dem Board sein.

Version 020

zurück zum Index


Neben ein paar kleinen Fehlerbeseitigungen und einem Icon für das Programm, sind folgende Änderungen enthalten:

Fileformat
Struktur des Auslesens einer Datei so verändert, dass nun auch größere Dateien erfasst werden können.
Nachdem über die Feiertage ein paar Filme über den Receiver aufgenommen wurden stellte sich heraus, dass sich einige davon nicht wiedergeben ließen und daher wollte ich sie mir mal in ihrer Struktur ansehen. Dabei stellte sich heraus, das die bisherige Ausleseweise bei 2gb Dateien zu Problemen führt. Ab jetzt kann man solche Dateien byteweise betrachten. So erkannte ich, dass die Filme zwar ein paar GB hatten, diese aber nur mit nullen gefüllt waren. Da brauch ich mir also auch keine Gedanken um Header und Wiederherstellung zu machen...

GUI Editor
Nachdem ich ein paar zusätzliche Schriftarten eingebaut hatte (LCD Schriftarten) wurde der Editor so verändert, dass die Fonts auch vom Editor aus benutzt werden können.
Texte haben jetzt das zusätzliche Attribut "Font" und Schaltflächen haben jetzt zusätzlich "Font", "Front Color" und "Back Color". Somit ist jetzt nicht nur die Schriftart von Schaltflächen einstellbar sondern auch ihre Farbe. Außerdem ist die Schaltfläche mit Anzeige in einen Switch verändert worden. Damit führt ein klicken darauf dazu, dass die Anzeigefläche rechts zwischen Vorder- und Hintergrundfarbe wechselt. Das lässt sich über eine Statusnummer im Code entsprechend abfragen und auswerten.
Gespeicherte *.gui Dateien werden jetzt per Drag&Drop direkt auf das Board übertragen (sofern die Funktion nicht mit "automatisch alle Objekte neu darstellen" abgeschaltet wurde), damit man unterschiedliche Bildeinstellungen besser miteinander vergleichen kann.
Außerdem lassen sich jetzt auch normale Linien als Einzelobjekte mit erfassen.
Durch die Änderungen ist der Editor nicht mehr mit älteren Firmwareversionen kompatibel.
Für Version 20 werden mindestens folgende Firmwares benötigt:

Bilder / Screenshots

zurück zum Index


  • 1. Startseite
  • 2. Bitconverter
  • 3. Fileformat
  • 4. Serial Terminal
  • 5. USB HID
  • 6. STM32 Code Generator
  • Ab Version 018...
  • 7. in Bild umwandeln 1
  • 8. in Bild umwandeln 2
  • 9. 8x16 Font Editor
  • 10. GUI Editor
  • Ab Version 019...
  • 11. GUI Editor 2
  • Ab Version 020...
  • 11. GUI Editor 3

Download

zurück zum Index



zurück zum Index




 

Zuletzt geändert am: Jan 31 2014 um 1:39 PM

Zurück