Callsign



Delphi 6 / Free Pascal
Programmierung



Hier nun einige Programmier-Projekte in Delphi 6 / Free Pascal.


Turbo Compare 0.4 alpha


Turbo Compare

DOWNLOAD

Die meisten Programme zum Vergleichen von Dateien sind schrecklich langsam, und nicht gerade komfortabel. Hier meine Variante zum turboschnellen Vergleich zweier Dateien auf Gleichheit/Ungleichheit. Es werden die Anzahl der Unterschiede, die Position, die beiden Bytes und die ASCII-Zeichen dafür angezeigt. Ein Vorteil meiner Eigenentwicklung besteht also in erster Linie in der immens hohen Geschwindigkeit, welche aus der in reinem Assembler (ASM) implementierten Suchroutine resultiert. Es ist möglich auf einem Pentium II mit 300 MHz zwei Dateien von 60 MB Größe in unter 2 Sekunden zu vergleichen !!! Siehe dazu die Bilder unten. Die meiste Zeit wird zum Laden der beiden Dateien von der Festplatte in den Speicher benötigt, die zur reinen Vergleichszeit dann allerdings noch hinzukommt. Bei der 8bit-Methode wird Byte für Byte verglichen, bei der 32bit-Methode hingegen gleich 4 Bytes auf einmal. Letztere Methode ist deswegen aber nicht zwangsläufig die schnellere, da bei einem Unterschied auch nur eines der 4 Bytes alle 4 Byte nocheinmal durchsucht werden müssen, welches Byte sich davon genau unterscheidet (und das jeweils protokolliert werden muss). Bei großen Unterschieden der Dateien ist aus diesem Grunde die 32bit-Methode wesentlich langsamer als die 8bit-Methode. Im Normalfall sollte man daher die 8bit-Methode eingestellt lassen. Die Umschaltung ist daher nur als experimentell anzusehen.

TurboCompare 8bit TurboCompare 32bit
Vergleich zweier 60 MB grosser Dateien in < 2 Sekunden : links 8bit, rechts 32bit-Methode

Ein weiterer Vorteil des Programmes ist die Möglichkeit auch Dateien unterschiedlicher Größe miteinander vergleichen zu können. Dazu wird die größere der beiden Dateien bis zur Größe der kleineren Datei verglichen. Es wird darüberhinaus auch ein Verlauf der letzten 4 erfolgreich verglichenen Dateien erzeugt, sodaß beim nächsten Mal nur noch beide Dateien aus dem DropDown-Feld ausgewählt werden müssen. Auch ist es möglich, einen Dateipfad als Kommandozeilen-Parameter an das Programm zu übergeben. Die jeweilige Datei wird dann als erste zu vergleichende Datei in das Programm übernommen. So ist eine Integration in das Kontextmenü von Windows problemlos möglich. Dieses ist aber bisher nur manuell über eine Eintragung in der Registry möglich, und noch nicht als Option implementiert. Ebenfalls noch nicht vollständig implementiert ist die Möglichkeit, die Suchergebnisse in verschiedenen Dateiformaten abzuspeichern (TXT,TAB,CSV). Auch ist die Geschwindigkeitsanzeige (c/b => clockcycles/byte) im Moment nur auf eine festgesetze Taktfrequenz von 300 MHz eingestellt, also für andere Rechner nicht aussagekräftig. Dazu müsste später eine Geschwindigkeitsmessung implementiert werden, um die tatsächliche Taktfrequenz der jeweiligen CPU zu ermitteln.UPDATE 22.07.2010: Neue Version 0.4 alpha. Das Projekt wurde nach GNU Free Pascal unter der Lazarus IDE portiert.



Visual FileAnalyzer 0.80 beta


FileAnalyzer
Byte Statistik
FileAnalyzer
Index Tabelle
FileAnalyzer
SVG Datei
FileAnalyzer
GIF Datei
FileAnalyzer
BMP Datei
FileAnalyzer
WAV Datei

DOWNLOAD

Ein experimentelles Programm zur statistischen Auswertung und grafischen Darstellung von Dateiinhalten. Dazu werden die Anzahl der jeweiligen Bytes von 00h bis FFh zusammengezählt, und anschließend als Balken dargestellt. Der Pattern-Analyzer hingegen zeigt die Wertigkeit der einzelnen Bytes einer Datei in der entsprechenden Farbe. Das Farbspektrum (Palette) dafür ist auswählbar (RGB,Cyan,Green,Grayscale). Es wird der Dateiinhalt damit dann "flächig" dargestellt. Dies ist allerdings nur bei kleineren Dateien sinnvoll, da sonst nicht genügend Bildschirmpixel für alle darzustellenden Bytes zur Verfügung stehen. Da es sich hierbei um eine BETA-Version handelt, könnten noch einige kleinere BUGs enthalten sein. UPDATE 22.07.2010: Neue Version 0.80 alpha. Das Projekt wurde nach GNU Free Pascal unter der Lazarus IDE portiert. UPDATE 16.02.2011: Neue Version 0.80 beta. Bugfixes



FunkTherm v0.2


FunkTherm

Noch kein Download verfügbar !

Momentan noch im Entwicklungsstadium befindet sich dieses Programm, mit dessen Hilfe sich Datentelegramme von Funkthermometern (im 70cm ISM-Bereich / bei mir ca. 433,740 MHz AM) decodieren lassen. Es ist mein erster Versuch der Verarbeitung von Audiosignalen der Soundkarte, und bildet damit eine wichtige Grundlage eventueller weiterer Projekte mit Schwerpunkt der Decodierung von digitalen Datensignalen (z.B. RTTY).

Bei dem betreffenden Thermometersystem handelt es sich um eine Funk-Wetterstation WS-7073 mit Empfangsmodul "R3", dem dazugehörigen externen Temperatursensor "TX2", sowie einem zusätzlichen Temperaturmodul "TX3" mit LC-Display - alles von ELV-Elektronik.




TX3 front

TX3 back

Das Thermometer-Modul "TX3" von ELV-Elektronik


Bevor dieses Programm entstehen konnte, musste zuerst eine manuelle Dekodierung bzw. Entschlüsselung des Protokolls durchgeführt werden. Dies erschien anfangs schwieriger als es schließlich war. Die Berechnung der Prüfsumme zu durchschauen war letztlich das Schwierigste. Ich brauchte insgesamt etwa 2 Stunden dafür. Bei der Protokollanalyse habe ich mich vorerst nur auf das Modul mit LC-Display (TX3) beschränkt. Es ist anzunehmen, daß sich das Protokoll des anderen Modules (TX2) nur in der Geräte-Identifikation unterscheidet. Das muß aber erst noch geprüft werden, da es sich auch nur um ein kompatibeles Protokoll zum Protokoll des TX3 handeln kann (oder umgekehrt).

Alles in allem kann man nicht von vornherein von einer Kompatibilität mit anderen Temperaturmodulen aus dem Hause ELV, und erst recht nicht mit Modulen anderer Hersteller ausgehen. Dazu gibt es einfach zu viele auf dem Markt. Möglicherweise unterscheiden sich die Protokolle zu stark, sodaß dieses Programm damit nicht funktionieren wird. Dazu müßte ich für jedes dieser Module die Protokolle erneut entschlüsseln und in das Programm implementieren, was einen ziemlichen Arbeitsaufwand darstellen würde. Aber man soll ja niemals "nie" sagen...

Zum Protokoll: Jedes der Datagramme ist ca. 340 ms lang, und besteht aus 3 gleichen Teilen zu je 44 Bit. Die Datagramme werden im Intervall von etwa 60-62 Sekunden ausgesendet. Die korrekte Einstellung der Empfangsfrequenz ist für gute Dekodierergebnisse sehr wichtig und kritisch, aber eben auch sehr schwierig bei gerade einmal 1/3 Sekunde Sendedauer. Dieses Programm erreicht derzeit (23.03.04) eine sichere durchschnittliche Decodierungsrate von ca. 37 % aller empfangenen Datagramme. Diese sind jedoch anhand der Parität und der Checksumme geprüft, und können daher als gültig betrachtet werden. Tatsächlich liegt die "unsichere" Dekodierung ohne gültige Checksumme mit alleiniger Paritätsprüfung aber wesentlich höher (bei schätzungsweise 80 %).

Es müssen nun noch einige Verbesserungen vorgenommen werden, um die "sichere" Dekodierrate zu erhöhen (z.B. durch Implementierung von 2 geschaltenen Empfangspuffern, eines "Verzerrt"-Dekodiermodus bei abweichender Frequenz etc.). Realistisch betrachtet sollten >60 % sicherer Dekodierung durchaus möglich sein. Auch kann mit steigender Dekodierqualität die Abhängigkeit von der Geräte-ID zur Starterkennung des Datagrammes aufgehoben werden. Momentan ist die Dekodierung nämlich noch daran gekoppelt, weshalb das Programm momentan auch nur mit diesem einen Modul funktionieren dürfte. Aus diesem Grunde kann ich an dieser Stelle das Programm auch noch nicht zum Download bereitstellen. Zu gegebener Zeit und je nach Entwicklungsfortschritt wird es dann aber hier verfügbar sein.



Pioneer Rescue Tool 0.1


Pioneer Rescue Tool

DOWNLOAD Version 0.1 alpha (pre-release)

Bei diesem PIONEER DVR-630H Harddisk Recorder versagte die interne 250GB Seagate Festplatte bereits nach 2 Jahren ihren Dienst (Display zeigte "HDD ERR") - vermutlich durch andauernde Überhitzung im Gehäuse - alle Aufnahmen schienen verloren. Dieses Tool ist das Ergebniss meiner Bemühungen das komplette Dateisystem zu analysieren um davon die Video-Aufzeichnungen zu rekonstruieren bzw. zu retten. Glücklicherweise war ich noch in der Lage, ein komplettes Image der 250GB Seagate Festplatte zu erstellen, mit dem ich arbeiten konnte. Bisher ist mir nicht bekannt das jemand dazu in der Lage war, die Festplatte unter diversen Betriebssystemen (Windows/Linux/BSD) einfach zu "mounten".

Das Tool befindet sich noch im frühen Entwicklungsstadium, ist aber zum jetzigen Zeitpunkt bereits in der Lage, die Meta-Daten aller Aufzeichnungen wie Datum, Uhrzeit, Programmplatz/Videoquelle und Titel auszulesen und anzuzeigen. Ich habe versucht, das Programm so generisch (universell) wie möglich zu halten, wodurch es auch mit anderen Harddisk Recordern dieser Generation von PIONEER (z.B. DVR-530H-S) kompatibel sein sollte - kann dafür aber natürlich nicht garantieren. Da es sich hierbei lediglich um eine Vorabversion eines in der Entwicklung befindlichen Tools handelt wird das Programm mit einer Fehlermeldung beendet, sobald die Image-Datei inkompatibel oder zu stark beschädigt ist. Bitte gebt mir in jedem Falle Euer Feedback ob es funktioniert hat oder nicht. Dies ist für die weitere Entwicklung des Programmes sehr wichtig.

Ich konnte bereits die MPEG-2 Streams lokalisieren und einige davon manuell wiederherstellen und auf dem PC mit VLC abspielen. Ich denke es sollte möglich sein ALLE Aufzeichnungen zu retten, auch wenn diese über die ganze Festplatte verstreut (fragmentiert) sind. Der Grund weshalb das Projekt seit Januar 2008 festhängt ist, die Verbindung (den Pointer) der Meta Daten der Aufzeichnung und der MPEG-2 Aufzeichnung selbst zu finden. Leider konnte ich diese Verbindung noch nicht herstellen. Mehr Details zu diesem Projekt in der REPARATUR Sektion unter Pioneer DVR-630H.




This website is optimized for 1024x768 pixel and is no longer supporting MS Internet Explorer.
Valid HTML 4.01   Copyright © 2000-2025 DHØHQN - All Rights Reserved.
  Valid CSS2.1