Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wetterstation WS-2005-PC von ELV seriell ansprechen (https://www.delphipraxis.net/45098-wetterstation-ws-2005-pc-von-elv-seriell-ansprechen.html)

dragi 29. Apr 2005 16:15


Wetterstation WS-2005-PC von ELV seriell ansprechen
 
Hallo,

ich habe mal eine Frage zur Kommunikation über RS232. Ich möchte meine Wetterstaion WS-2500-PC von ELV mit einem kleinen Programm abfragen. Die Spezifikation dazu ist ja veröffentlicht. Nun mal meine Frage:

In der Spezifikation steht das folgendes zur Aktivierung gesendet werden soll: <SOH> '0' (-Summe) <EOT>
Als Antwort soll dann 1Byte <ACK> von der Wetterstation kommen.

Aber wie soll ich das senden? Als String? Bekomme ich als Antwort dann auch einen String?

Habe sowas noch nie gemacht und tu mich da gerade ziemlich schwer mit dem Einstieg.

Hat jemand einen Tip?

Vielen Dank

Dragi

Sharky 29. Apr 2005 16:20

Re: Wetterstation WS-2005-PC von ELV seriell ansprechen
 
Hai dragi,

in der Regel wird der ASCII-Code für das Zeichen 0 gesendet. Bei Dir sähe der Aktivirungscode dann so aus:

Delphi-Quellcode:
var
  code : String;
begin
  code := #01 + #48 + #04; // SOH + 0 + EOH
end;
[EDIT]
Ob Du die Bytes einzeln oder den ganzen String sendest sollte egal sein.

Bei der Antwort solltest Du das Byte auswerten. <ACK> hat ja den ASCII-Code 06.

dragi 29. Apr 2005 16:47

Re: Wetterstation WS-2005-PC von ELV seriell ansprechen
 
Danke für die schnelle Antwort. Das funktioniert :)
Ich habe die Antwort in einen Char eingelesen. und der hat den Wert #1 bekommen. So wie es beschrieben wurde.

Wenn ich nun aber längere Antworten erwarte wie z.B. 6Byte oder so, lese ich die dann in einen Filestream oder so ein?

dragi 30. Apr 2005 16:05

Re: Wetterstation WS-2005-PC von ELV seriell ansprechen
 
Jetzt hab ich aber ganz schön Mist geschrieben. Es funktioniert nämlich doch nicht. Ich bekomme immer genau das zurück was ich auch hinschicke...egal was ich sende?!?!?!

Code:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ComPort.Open := True;
  ComPort.Output := #01 + #48 + #04;
end;

procedure TForm1.ComPortTriggerAvail(CP: TObject; Count: Word);
var
  Buffer: String[255];
  Bufferindex: Integer;
  I: Word;
  C: Char;
begin
  Label1.Caption := '';
  for I := 1 to Count do
  begin
    C := ComPort.GetChar;
    Buffer := Buffer + C;
    Label1.Caption := Label1.Caption + C;
  end;
end;
Egal was ich im Output sende, es kommt unten im ComPortTriggerAvail wieder an? Was mache ich denn falsch? Das Gerät funktioniert mit fremder Software einwandfrei :(

Die Dokumentation zur Schnittstelle findet ihr hier: http://www.wickl.net/diverse/WS2500-...schreibung.pdf

Hat da vielleicht nochmal jemand einen Tip?

Vielen Dank

Dragi

dragi 1. Mai 2005 12:40

Re: Wetterstation WS-2005-PC von ELV seriell ansprechen
 
Jetzt habe ich gelsesen das dieses Interface eine bestimmte kombination aus einer Steuerung der DTR, DSR Leitungen und das senden der Befehle braucht um zu funktionieren. Aber wie das gemeint ist war dort nicht beschrieben. Kann sich vielleicht jemand denken was man mit den DTR, DSR LEitungen machen muss? Das sind doch bei AsyncPro nur boolsche Werte???

Gruss

Dragi


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz