• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

Conrad WS-2300 auslesen

Begonnen von ReinhardK, 25.08.2002, 18:56:00

⏪ vorheriges - nächstes ⏩

Centauri

Mal der aktuelle Stand:

Ich habe mein VB Programm soweit ausgebaut, daß es wie eine Wetterstation funktioniert, zumindest auf den Protokollausschnitt von Reinhard bezogen. Nachdem &HFE empfangen wurde, und die entsprechenden Daten geschickt wurden, wird die Windgeschwindigkeit und die Richtung angezeigt. In obigen Beispiel ist dies 0 km/h, Richtung WSW/247,5°, min 0 km/h und max 53,2 km/h.

Ich werde mal noch die restlichen Sachen einbinden. Die Logbücher sind ja noch lang.

Wenn jemand die Werte entschlüsselt hat, dann bitte hier mal posten.

cu
Marco

uli_u

Hallo Centauri,

super Arbeit, weiter so!

Jetzt noch mal für jemand, der sich mit seriellen Schnittstellen nicht so auskennt:

Heisst das, der PC sendet FE und als Antwort kommt 3F 00 00 00 00 D0 14 56 15 10 11 02 21 19 27 10 E3? Sind darin die Daten verborgen?

Gruß
Uli

Brian Hamilton

Hi
Weather display software works well with station (I did all the ahrd work decoding the data protocol).
So why re-invent the wheel?

Comments welcome!

( and you can create csv log files or even custom log files in weather display)
Cheers
Brian Hamilton

Brian Hamilton

Hi
Weather display software works well with station (I did all the hard work decoding the data protocol).
So why re-invent the wheel?

Comments welcome!

( and you can create csv log files or even custom log files in weather display)
Cheers
Brian Hamilton

ReinhardK

Auch mein großes Lob an Centauri, die Werte die du aus meinem Protokoll entschlüsselt hast stimmen mit meinem Display überein. Verrätst du uns wie du die Werte aus den Bits rausliest? Und hast du schon mehr rausgefunden?

My comment to Bryan:
The first wheel was made of stone or wood. Modern wheels are made from a mixture of rubber and steel and so they are much more better than the old wheels.
In my opinion then Weather Display Software is like a wheel of stone and so we try to evolve some alternatives.

Ich wünsch euch allen 'nen Guten Rutsch ins nächste Jahr ...
Reinhard

uli_u

Hallo Reinhard, Brian,

die Software als "wheel of stone" zu bezeichnen ist etwas hart...

Das ist schon ein super Programm, allerdings mit vielleicht zu vielen Features. Meiner Meinung nach sollte die Datenübertragung getrennt von der Weiterverarbeitung erfolgen. Am besten mit einem kleinen Programm, von der Kommandozeile aufrufbar. Den Rest kann dann jeder selber erledigen.

Brian: Your program is really great but maybe with too many features. I would prefer a separation of data-communication and postprocessing. A small command-line driven tool for reading out the station-data would be great.

Auch Euch einen guten Rutsch and a happy new year

Gruss
Uli

[ Diese Nachricht wurde geändert von: uli_u am 2002-12-30 11:21 ]

Centauri

Hallo Leute!

Gestern kurz vor dem Aufhören, kam die alles erleuchtende Einsicht. Ich fange gleich an einen Emulator für die WS 2300 zu schreiben.

Also hier mal zum allgemeinen Aufbau:
(alle Zahlen sind hexadezimal)
Am Anfang wird immer eine 06 gesendet. Einmal bedeutet, daß die Datenübertragung des letzten Datensatzes wieder holt wird. Zweimal bedeutet die komplett Zurücksetzung der Datenübertragung. Das passiert also bei jedem Neustart der Software.
Die Datenanforderung scheint einfach über Speicheradressen zu laufen.
Für jeden Datensatz werden 5 Byte zum Anforderung der Daten gesendet. Begonnen wird immer mit 82 worauf die Station 00 zur Bestätigung sendet. Das setzt die Speicheradresse zurück. Danach folgen 3 Byte als Speicheradresse. Das 5. Byte enthält die angeforderte Datenmenge.
Jetzt kommt das, was mir kurz vor Schluss aufgefallen ist. Es gibt eine Beziehung zwischen den Bytes, die die Software anfordert und denen, die die Station zurücksendet. Diese Beziehung kann man in eine Formel bringen:
(Anforderungcode-h82)/4 ergibt die Rechte Stelle (Bit 0-3) des Returncodes. Die linke Stelle (Bit 4-7) wird einfach durchnummeriert von 0 bis 3, wobei der Returncode in den Daten immer nochmal 3 hat.
Die selbe Logic steckt auch in dem Anforderungscode für die Datenbytes drin.
(Anforderungscode-hC2)/4=Anzahl der Datenbytes ohne Returncode.
Jeder Satz von Datenbytes hat am Ende eine Prüfsumme. Die Prüfsumme wird durch addieren der einzelnen Datenbytes gebildet (Ohne Returncode). Es wird von Ergebnis nur das Lowbyte verwendet. Ich werde das mal am Beispiel von Reinhard beschreiben:

82 -> 00
92 -> 14
BA -> 2E
B2 -> 3C
FE -> 3F 00 00 00 00 D0 14 56 15 10 11 02 21 19 27 10 E3

1. Zeile:
   Anforderungscode 82
   82-82=0
   da 1. Zeile Returncode= 0*256+(82-82)/4=00
2. Zeile:
   Anforderungscode 92
   da 2. Zeile Returncode = 1*256+(92-82)/4=14
3. Zeile:
   Anforderungscode BA
   da 3. Zeile Returncode = 2*256+(BA-82)/4=2E
4. Zeile:
   Anforderungscode B2
   da 4. Zeile Returncode = 3*256+(B2-82)/4=3C
5. Zeile:
   ist eine Besonderheit. Hier werden die Daten angefordert.
   Die Bits 0-3 ergeben immer E. Die Bits 4-7 sind die Länge der Daten. In dem Fall F=16.
   Der Returncode zählt ja nicht mit.
   Der Returncode berechtnet sich wieder genauso:
   3*256+(FE-82)/4=3F
   warum der linke Teil 3 sein muß, ist unlogisch. Wahrscheinlich wurde irgendwann man der Speicher vergrößert.

Es gibt noch ein paar Besonderheiten. Antwortet die Basisstation mit einem falschen Returncode. Sendet die Software 06. Wenn dann eine 02 von der Station kommt, dann wird wieder bei der 82->00 angefangen. Sendet die Basisstation dagegen nichts, wird der Anforderungscode nochmal gesendet. Wenn wieder nichts kommt, wieder 06 gesendet.

Mit diesem Wissen und einem kompletten Satz der Daten kann man erstmal einen Emulator schreiben. Und genau das werde ich jetzt tun.

Sollten noch Fragen sein, einfach hier rein, werde ab und zu noch mal reinschauen, da ich hier bei meinen Eltern nur Modem habe.

An Uli: Ich habe die Daten leider noch nicht entschlüsselt. Das wird erst gehen, wenn der Emulator funktioniert und man gezielt die Bytes ändern kann. Aber dem Ziel sind wir schon sehr nahe gekommen.

An Brain: Leider in Deutsch, da mein Englisch unbrauchbar ist. Vielleicht Übersetzt es ja mal einer.
Du könntest und ja das Protokoll geben. Es würde der Aufbau der Daten reichen. Weather Display gefällt mir vom Design her nicht. Außerdem sind die Daten unübersichtlich angeordnet. Deswegen werde ich auf alle Fälle eine eigene Software schreiben. Ganz davon abgesehen, dass das riesigen Spass macht.

Außerdem möchte ich die Station vom PC aus steuern. Also auch die angezeigten Werte umstellen und die Einheiten. Und die Alarm stellen will ich ja auch, was sicherlich noch am leichtesten ist.

cu
Marco

[ Diese Nachricht wurde geändert von: Centauri am 2002-12-30 14:04 ]

[ Diese Nachricht wurde geändert von: Centauri am 2002-12-30 14:09 ]

Centauri

Hi, mal wieder ein aktueller Stand.

Der Emulator läuft jetzt erstmal so 2 min. Dann fehlen noch ein paar Werte. Ich werde morgen mal noch länger protokollieren müssen.

cu
Marco

uli_u

Hallo Marco,

das war ja mal ein interessantes Posting.
Auf die Sache mit der Prüfsumme im letzten Byte wäre ich glaube ich nicht gekommen.

Gönn Dir auch mal ein wenig Ruhe, Rom ist auch nicht an einem Tag erbaut worden.

(Freue mich aber trotzdem schon auf weitere Ergebnisse...)

Gruß
Uli

Centauri

Hallo!

Wenn ich nicht in Ruhe arbeiten würde, wäre ich doch schon fertig. Ich mache immer nur Abends was.
Das mit der Prüfsumme war mir schon an Reinhards Posting aufgefallen.
Inzwischen habe ich schon die I/O-Temperatur entschlüsselt.

cu
Marco

Ich wünsche Euch allen noch einen guten Rutsch und ein erfolgreiches Jahr 2003!

[ Diese Nachricht wurde geändert von: Centauri am 2002-12-31 10:40 ]