Windows CE Scannersoftware

22. Juli 2010

Veröffentlichung: Juli 2010
Programmiersprache: C#; Compact Framework 2.0
Interfaces: Datalogic Memor WinCE SDK 4.00; Datalogic Memor WinCe Mobility Kit for VS2005

Hier wieder ein kleines, aber sehr interessantes Projekt. Eine Steuersoftware für Datalogic Memor Barcode Scannersysteme.

Die Software ist in C# mit dem Compact Framework 2.0 geschrieben und läuft auf einem Handheld Scanner mit Windows CE. Dabei kommuniziert sie direkt mit dem Scanner und kann diesen fernsteuern.
Im Grunde wird ein einfacher Arbeitsablauf automatisiert und mit div. Plausibilitätsprüfungen versehen um gleichzeitig Zeit zu sparen und die Qualität der Ergebnisse zu erhöhen.

Das Programm erkennt zuverlässig unterschiedliche vordefinierte Barcodes und Barcodetypen, zerlegt diese in ihre Grundinformationen und prüft anschliessend die Plausibilität der Ergebnisse und lässt fehlende Daten ggf. durch den Benutzer nachpflegen.

Am Ende eines Vorgangs wird ein CSV Export durchgeführt der anschliessend z.B. an einem PC  oder über WLAN synchronisiert werden kann.

Das Programm lässt sich entweder per Touch-Screen oder mit der Tastatur bedienen.

Excel Iterator / Restrukturierungstool

19. April 2010

Veröffentlichung: April 2010
Programmiersprache: C# (VB.net)
Interfaces: Microsoft Office 11.0 InterOp, MSXML 6.0

Basierend auf meinem Plugin / Script System (http://www.smokingfish.de/?p=119) , einem einfachen Programm zum iterieren von Daten und div. Klassen z.B. zum automatisieren von Excel ist dieses extrem nützliche Tool entstanden.

Es ermöglicht dem Benutzer anhand einfacher C# oder VB.net Scripts aus div. Quelldaten möglichst gleicher Struktur resultierende Tabellen zu erstellen.

Zum Beispiel: Ich habe 200 Excel Files mit je 5 Tabs. Jedes Tab ist mit 200 Werten gefüllt. Diese Dateien gibt es in 3 verschiedenen Versionen. Diese Versionen untereinander sind jedoch von der Struktur identisch.
Das Tool kann nun durch definieren einer Struktur für eine fertige Datei und dem kopieren aller Werte, aller Quelldateien, eine neue Datei erstellen die nur exakt die Daten in der Struktur erhält wie ich sie gerne hätte.

Ab einer gewissen Anzahl an Werten ist ein umstrukturieren von Hand nicht mehr praktikabel, ein Makro ab einer gewissen Anzahl von Dateien ebenso nicht mehr. Hier kommt dieses Tool zum Einsatz und generiert aus den Quelldaten genau das was ich haben möchte.

Weitere Merkmale:
- Scripts verfügen über diverse Ereignisse die vor oder nach dem Start sowie bei jeder bearbeiteten Datei aufgerufen werden
- Das Script wird zur Laufzeit kompiliert und ist in der Ausführung genauso schnell wie das eigentliche Programm
- Es stehen Klassen zum Lesen und Schreiben von Excel Dateien zur Verfügung, es können aber nach dem selben Prinzip weitere Formate hinzugefügt werden
- Scripts haben vollen Zugriff auf alle relevanten Funktionen des Hauptprogramms

Event/Schulungs Buchungssystem in Excel

6. Januar 2010

Veröffentlichung: Januar 2010
Programmiersprache: VBA (Excel)

Auch neu diesen Monat ist dieses kleine Buchunstool für Events oder Schulungen.
Umgesetzt in Excel bietet es die Möglichkeit Teilnehmer der Events automatisch in passende Zeitfenster zu buchen ohne sich dabei Gedanken über Überbuchung, zeitliche Überschneidungen, falsche Buchungsreihenfolgen oder ähnliches zu machen.

Sonstige Funktionen:

- Eindeutige Buchungscodes mit Information über Art,Ort und Zeit
-
Automatische Buchung anhand der Auswahl der gewünschten Events
-
Automatische Überprüfung von Überbuchung,Überschneidung und sonstiges Grenzwerten
-
CSV Import von Namen und Adresslisten
-
Visualisierung der Events mit Teilnehmeranzeige
-
Visualisierung der Events mit Anzahl der Teilnehmer
-
Export von Namensschildern
-
Export von Begleitschreiben
-
Export von Rohdatenlisten zum weiteren Import
-
Speichern durch ablegen der Excel Tabelle, keine weiteren Dateien

Eine perfekte Buchung wird durch Permutation sichergestellt. Das System prüft alle theoretisch möglichen Buchungskombinationen und wählt am Ende die Kombination mit den meisten möglichen Buchungen automatisch aus.

Kleine Auftragsverwaltung

5. Januar 2010

Veröffentlichung: Januar 2010
Programmiersprache: C#

Auf Basis meines Datenbanktools und als Modul in meinem Prüfmittelverwaltungsprogramms nach ISO9001 / TS16949 habe ich eine kleine Auftragsverwaltung geschrieben. Das Tool ermöglicht ein einfaches dokumentieren von Arbeitsaufträgen in meinem gewohnten XML Datenbanktool. Dank der Vorzüge von XML sind auch hier wieder Verschachtelungen möglich. In der Praxis stellt sich das durch Teilaufgaben mit eigenen Stati wieder, die einem Auftrag zugeordnet werden können.

Ansonsten gibt es nicht allzu viel zu sehen, eine kleine Abfrage erstellt passend zur KW/Monat eine Liste aus aktuell bearbeiteten und/oder neu erstellten Aufträgen zusammen.

Besonders schön funktioniert hier noch die Druckfunktion die sich die ausgewählten Datensätze schnappt und eine saubere Auftragsliste druckt, inklusive der Teilaufgaben und ihrer Stati. Dafür habe ich eine kleine Klasse geschrieben die mit dem PrintDocument im .net Paket die zu druckenden Seiten komplett per GDI+ rendert. Das ermöglicht einen komplett eigenen Aufbau des resultierenden Dokuments auf Basis der XML Daten.

Das Tool kann ohne Probleme auch als Modul komplett seperat gestartet und mit neuen Feldern und Funktionen erweitert werden.

XML Datenbank Tool 2.0

3. September 2009
Veröffentlichung: Juli 2008 / Januar 2009
Programmiersprache: C#
Eines meiner liebsten Projekte, ein ganz einfaches Programm zur Visualisierung von XML Datenbanken.
Kompatibel sind alle Datenbanken die sich in eine ACCESS ähnliche Oberfläche packen lassen, also aus sich wiederholenden Einträgen bestehen.
Verschachtelungen werden ebenfalls unterstützt, diese werden dann in Form einer Untertabelle dargestellt.
Das Programm mag einfach aussehen, ist in der Praxis aber extrem komfortabel zu benutzen und anderen (z.B. meinem eigenen, folgt) komplett grafischen XML Editoren absolut vorzuziehen.
Beispiel:
Beispiel, Aufbau XML Datei
Beispiel, Aufbau XML Datei
Beispiel, Darstellung im Programm
Beispiel, Darstellung im Programm

Es können beliebig viele Datensätze aus einer XML Datei in Tabs aufgeteilt und dargestellt werden.

Über mein Plugin System ( http://www.smokingfish.de/?p=119 ) lassen sich die Lade/Speicher Routinen und spezifische Funktionen anpassen (braucht man z.B. eine ID Abfrage sobald der Benutzer die ID eines Eintrages ändert).

Ein grosser Vorteil an diesem System ist das die Datenbanken von jedem gelesen werden können und eine Visualisierung über ein Webtool wesentlich vereinfacht ist.

In meinem Beispiel , eine Prüfmittelüberwachung, findet sich auch die Visualisierung der Daten im Netz mit Hilfe von AJAX wieder.

Datensätze können zusätzlich noch in Excel,Access oder als reine Textdatei exportiert werden.

Excel Makro zur Hantelberechnung

3. September 2009

Veröffentlichung: 2005
Programmiersprache: VBA (Excel)

Beim aufräumen ist heute ein altes Excel Makro aus meiner Ausbildung wieder aufgetaucht -
ein kleines Tool um alle notwendigen Maße auszurechnen um eine Hantel mit vordefiniertem Gewicht
herzustellen.

Dem Tool lassen sich div. Grössen vorgeben, alle nicht angegebenen werden automatisch vervollständigt.
Es lassen sich u.a. auch die Dichte des Werkstoffs und optionale Phasen angeben.

Am Ende wird noch eine Vorschau generiert die sich wunderbar drucken lässt um damit dann die Hantel zu fertigen.

Kamera / Lineargeber Messprogramm

1. September 2009

Veröffentlichung: August 2009
Programmiersprache: C#
Sonstiges: 1 * RS232, Mitutoyo KA10 / LinearScale, USB 35x – 150x Mikroskop, Windows avicap32.dll / user32.dll

Ein kleines Unterprogramm aus einem meiner Messprogramme. Es verbindet sich mit jeder USB Kamera, in diesem Fall ein 35x/150x USB Mikroskop und zeigt das Bild im Programm an.
Zusätzlich wird das Bild zur Laufzeit manipuliert (mit Echtzeitfiltern, siehe http://www.smokingfish.de/?p=78 ) um z.B. Helligkeit oder Kontrast anzupassen.
Weiter wird noch eine Markierungsgeometrie gezeichnet (das kann eine einfache Linie sein oder z.B. Negativ von der gewünschten Geometrie).
Ist die Kamera fest ausgerichtet und fokusiert, lässt sie sich kalibrieren um Messungen im Bild vorzunehmen.
Wird die Kamera mit Lineargebern gekoppelt lassen sich Messungen über die Markierungen im Bild vornehmen.

Kameramesssystem

Kameramesssystem

Lichtdichtemessung Steuersoftware

17. August 2009

Veröffentlichung: August 2009
Programmiersprache: C#
Sonstiges: 2 * RS232, Mitutoyo KA10 / LinearScale S700, Spezialphotosensor

Dieses Programm ist in der Lage eine Mitutoyo Steuereinheit für LinearScales über die optionale RS232 Schnittstelle auszulesen sowie über eine weitere RS232 Schnittstelle einen speziell angefertigten Photometer Kopf mit der absoluten Positionsangabe zu verknüpfen.

Das Programm ordnet dem Längenwert den entsprechenden Photometer Wert zu und erstellt eine Messkurve mit Sollbereichsanzeige für den Benutzer.

Zusätzlich können Sollwert, Toleranz,  Kalibrierfaktor und Messintervall festgelegt werden. Ein Export in CSV ist auch möglich.

Das Programm lässt sich ohne weiteres um andere Messköpfe, Schnittstellen, Exporte und Funktionen erweitern.

R-PG Minerva SourceCode

16. August 2009

Grösse: 22,0MB
Letzte Änderung: ~2007

Inhalt: Der gesamte Quellcode des Minerva Projekts.
Zusätzlich sind AniQ,Rani und einige andere Tools enthalten.

Downloadlink:
Download!

Downloadlink , Video 1: Download!

Downloadlink , Video 2: Download!

Downloadlink , Video 3: Download!

R-PG Minerva

16. August 2009

Veröffentlichung: Nie veröffentlicht (Entwicklung ca. 2002-2007)
Programmiersprache: Visual Basic 6.0, C++, C, C#, VB.net, ASM(x86)

Noch bevor ich das erste ernsthafte Projekt angegangen bin hab ich vor und während meiner Ausbildung mit zeitweise bis zu 15 Leuten im R-PG Team am Projekt Minerva gearbeitet. Zusammen mit noch 2-3 anderen habe ich das Projekt ca. 2002 ins Leben gerufen. Aktiv waren wir bis ca. 2005-2006 und hatten 2007 sogar noch ein letztes Teamtreffen.

Das Hauptaugenmerk lag zu beginn auf der Entwicklung eines RPG Entwicklungssystems, ähnlich dem RPG Maker 2000, der selbst heute noch weit verbreitet ist. Das gelang uns auch ziemlich gut.

Mit der Zeit kamen immer mehr Leute in das Team und nebenbei wurde so eine fantastische Spielwelt erschaffen, es wurden Storys geschrieben, Artworks gezeichnet, Spielgrafiken erstellt und Musik komponiert. Dieser Teil des R-PG Teams taufte die Spielewelt “Phoenix”. Phoenix sollte sogar mal einen Nintendo DS Ableger bekommen, so wurde zu Promotionzwecken sogar eine Musik CD produziert und auf der GamesConvention an potentielle Sponsoren verteilt.

Nur leider haben wir immer wieder neue, bessere Ansätze gefunden um das Editorensystem noch flexibler und besser zu machen. Dazu gehörten auch diverse komplette Umstrukturierungen der gesamten Codebase. Das kostete Zeit – und warf uns wieder ein Stück zurück. Wenn ich im nachhinein so draufschaue, waren wir 2007 zwar technisch wesentlich besser aufgestellt als noch 2003, doch stand 2003 bereits ein wunderbar spielbares Mini RPG – soweit sind wir mit den späteren Iterationen nie wieder gekommen.

So kams am Ende wie es kommen musste und das Projekt wurde erst hängen, dann fallen gelassen.

Wie ich aber damals schon auf der offiziellen Homepage des Projekts geschrieben habe, es hat unglaublich viel Spass gemacht in einem so grossen Team an einem so interessanten Projekt zu arbeiten. Die Erfahrungen die ich damals sammeln konnte sind heute unbezahlbar und haben mir den Einstieg in die kommerzielle Programmierung wesentlich vereinfacht.

Aus dem Minervaprojekt sind einige tolle Tools und Techniken gewachsen die ich in naher Zukunft Stück für Stück herauslösen und hier publizieren werde. Hier eine grobe Übersicht der besonders interessanten Techniken und Tools aus Minerva und ein bisschen Trivia:

- Minerva ist ein extrem flexibler RPG Editor
- Karten waren in ihrer Grösse nicht limitiert und konnten beliebig detailliert aufgebaut werden
- NPC’s verfügten über umfangreiche Darstellungsoptionen und konnten komplett in VBScript gescriptet werden
- Die gesamte Logik neben der eigentlichen Spiellogik konnte in Scriptlayern ebenfalls in VBScript gescriptet werden
- Das Datenbanksystem basierte auf XML und konnte mit einem visuellen XML Editor direkt bearbeitet werden
- Minerva verfügte über ein tolles Partikelanimationssystem
- Minerva konnte RPG Maker 2000 Maps importieren
- Minerva unterstützte die Dateiformate vom RPG Maker 2000, inklusive der AutoTile Spezifikation
- Minerva benutzte ein Pathfinding System nach Dijkstra
- Minerva basierte am Ende auf DirectX8 und hatte einen zusätzlichen Software Renderer und ein Interface zur Implementierung weiterer Engines
- Sound wurde mit FMOD oder DirectSound3D (3D Sound wurde unterstützt) abgespielt
- Server/Client Code war bereits vorhanden um später Onlinefunktionen zu bieten
- Ein Frameskipping System für ältere Rechner war implementiert
- Die Kollisionsabfrage war in ASM geschrieben und Pixelgenau
- Der Scripteditor konnte Intellisense und Syntax Highlighting
- Die GUI benutzte zuletzt VBEclipse

- Es wurden eigene Dateiformate unterstützt wie AniQ und RANI
- Das Tool AniQ konnte Animationsfolgen erstellen
- Das Tool Rani konnte Flash ähnliche Animationen erstellen
- Der RipHelper konnte Grafiken aus vorhandenen Spielen rippen
- Der FontCreator konnte bunte BitMap Fonts generieren
- Der MenuEditor konnte Menüs visuell erstellen

Das Projekt ist seit Mitte 2008 offiziell beendet und der SourceCode für jeden downloadbar.