-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Zunächst möchte ich mich ganz herzlich bei allen bedanken, die die hervorragende Arbeit geleistet haben, auf der ich aufsetzen konnte - Chris für das ViessData 2.0, allen, die die Kommunikation und die unterschiedlichen Protokolle 'rausgesnifft' haben, und auch denen, die die Datenpunkte in Erfahrung gebracht haben, speziell Markus @sarnau Fritze!
Obwohl inzwischen seit ein paar Jahren die Geräte mit Optolink Schnittstelle durch die leidliche E3 Gerätegeneration ersetzt wurden, gibt es noch so einige, die ViessData benutzen. So wie ich auch, weil ich meine Heizung auf keinen Fall in's Internet stelle und dann irgendwer auch noch ohne mein Wissen dran rumstellt und meine ganzen ja auch nicht ganz unpersönlichen Daten 24/7 mitschreibt.
Also habe ich ViessData noch mal etwas überarbeitet. Von aussen sieht man nicht viel, aber im Inneren hat sich schon ein wenig getan. Das Wichtigste ist wahrscheinlich die Umstellung auf die gekapselte asynchrone Kommunikationsbibliothek OptoLinkCommAsyncLib.dll und damit die Entflechtung von Applikation und Kommunikation, wordurch ein erheblich saubereres Betriebsverhalten möglich wurde.
Die ganze Hard-Programmierung der Adressen und Wertekonvertierung etc habe ich erstmal so gelassen, VD 2.1 ist auch was die csv und xml Dateien anbetrifft kompatibel zur 2.06. Der alte Code ist auskommentiert aber noch da.
Die OptoLinkCommAsyncLib.dll könnt ihr übrigens auch in eure Tools einbauen, dazu wird es demnächst noch ein eigenes Projekt geben. Da sind jedenfalls so schöne Funktionen wie ReadDataA(addr, len), WriteDataA(addr, data[]) oder Read2ByteValueA(addr), Write1ByteValueA(addr, val) usw. drin.
Einfach Port öffnen, ggf. noch 300er Protokoll aktivieren und loslesen/schreiben. Keine Gedanken um irgendwelchen flow control, timing, COM port, Bits und Bytes und so. Die Kommunikation ist gequeuet, d.h. man kann sie lustig befeuern mit Kommunikationsrequests und alles wird der Reihe nach abgearbeitet, inklusive einstellbarem Hold-off um die Steuerung nicht zu überfordern.
- Werte schreiben funktioniert jetzt explizit per Enter Taste, es gibt eine Rückmeldung bezüglich der erfolgreichen Durchführung.
- Das ganze 'lese_alles_zweimal' ist Vergangenheit. Es wird alles gelesen a) am Anfang und b) wenn man den entsprechenden Knopf oben links drückt, dann aber auch definitiv und unmittelbar (ist aber gegen das zyklische Lesen verriegelt und andersrum, dazu muss VD natürlich verbunden sein).
- Das Poll Intervall (eigentlich Delay) kann jetzt auch als Zahl eingegeben werden (mit Enter bestätigen), runter bis zu 1 Sekunde.
- Die Kommunikation / der COM Port wird geöffnet durch den Startknopf und beendet durch den Stopknopf (gleicher Knopf wie gehabt), die Kommunikation / der Port bleibt zwischen den Lesezyklen geöffnet.
- In der Liste können Werte jetzt auch einzeln gelesen und neuerdings auch geschrieben werden. ACHTUNG: Hierbei ist Bedacht angesagt, man muss den zu schreibenden Raw Wert angeben, und es wird nicht geprüft, ob der Wert überhaupt geschrieben werden kann ooder darf u.s.w. Man kann z.B. auch die Gerätekennung überschreiben und wer weiss was noch... (wie gesagt, V2.1 ist nur eine Zwischenlösung).
- ViessData 2.1 funktioniert auch mit den alten Geräten mit KW Protokoll (ging das in der 2.06 auch?). Datenpunkte müssen natürlich ggf angepasst werden und die hard-programmierten Sachen funktionieren ggf nicht, aber die Liste auf alle Fälle, und der Graph damit auch.
- Das Protokoll wird ermittelt per trial&error, nicht aus der xml.
- csv Dateien werden bei Konfigurationsänderungen (Spalte 'Sp.') nicht mehr überschrieben, sondern die zu Ersetzende unbenannt. Aufgezeichnete Daten gehen so nicht mehr verloren.
- es wird jetzt die genaue Gerätebezeichnung ermittelt und in der Titelzeile angezeigt (soweit bekannt, eine Liste von 170 Geräten hinterlegt in Devices.csv)
- sauberes, stabiles Beenden/Schliessen des Programms
- noch so Kleinigkeiten wie Behandlung der Dezimaltrennzeichenproblematik, Betriebssystem-(un)abhängige Bildung der Datei-Pfade, Anpassung einiger Wertebereiche, Textboxwerte mit TryParse() statt mit Parse() und Absturz...
- Durch die 'Entflechtung' der Kommunikation von der Oberflächenbehandlung sind Anpassungen und 'Tweaks' jetzt viel einfacher.
- Ach ja, last not least ViessData 2.1 ist portiert auf das .NET Framework 4.5 (wegen dem async...)
Es gibt ziemlich vollständige Datenpunktlisten. Die sind inzwischen auch noch hochladen. Und vielleicht noch ein Tool schreiben um auch xml's für Viessdata zu generieren. Aber man kann ja die DP Adressen und Längen auch 'online' in die Liste schreiben wenn man was Spezielles machen möchte, oder auch die vito_DP.xml händisch ergänzen...
soweit - viel Spass!
Phil
Das Wichtigste ist, dass die hart-programmierte Wertekonvertierung (ausser bei Zeit/Datum und den Heiz/etc/zeiten) raus ist. Es zählt jetzt durchgehend der als 'precision' angegebene Umrechnungsfaktor aus der vito_DP.xml. Wenn diesem ein Minus-Zeichen vorangestellt ist (er also eigentlich negativ ist), werden die hex-Werte signed interpretiert. Dadurch ist die xml besser zu utilisieren.
Ausserdem ist das NotifyIcon raus. Das Fehlen des Icon Files in der AppOnly zip hatte bedingt, dass die 2.1.0.7 als AppOnly nicht lief. Das ist aber nicht der Grund für das Rauswerfen, und das Icon File ist jetzt auch im AppOnly Package drin.
ne Menge Kleinkram gemacht, viel um 'Bedienungsunzulänglichkeiten' abzufangen und die Sache sicherer zu machen.
In dem Sinne auch die Heiz/etc/zeiten Geschichte überarbeitet und ein paar nützliche Funktionen hinzugefügt
und man kann jetzt auch String Parameter 'sinnvoll' auslesen und die Liste ist jetzt 'full width' (die COM Port Einstellung ist auf den letzten Tab gewandert)