AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TCP/ASCII - Protocoll2000/3000 über Indy
Thema durchsuchen
Ansicht
Themen-Optionen

TCP/ASCII - Protocoll2000/3000 über Indy

Ein Thema von MondoShiva · begonnen am 25. Apr 2013 · letzter Beitrag vom 26. Apr 2013
Antwort Antwort
MondoShiva

Registriert seit: 14. Aug 2007
Ort: Mönchengladbach
63 Beiträge
 
Delphi XE2 Professional
 
#1

TCP/ASCII - Protocoll2000/3000 über Indy

  Alt 25. Apr 2013, 14:35
Hallo,

habe ein Problem mit einer Verbindung die nicht entsprechend den Geräten laufen will.

Folgendes:
Ich habe eine Verbindung zu einer Bestimmten Adresse 192.168.1.50
Diese Adresse hört über TCP auf den Port 5000

jetzt ist es kein Problem Daten zu übermitteln ( einen entsprechenden Server habe ich mal aufgesetzt) Jedoch versteht die Maschine nicht was ich Ihr übergeben will. In diesem Fall Protocoll2000/3000 befehle damit entsprechend umgeschaltet wird. (bsp. TV sender umschalten oder Lautstärke runter/hoch)

Wenn ich einen Befehl als String übermittle inkl. Länge macht das Gerät nix. zuckt nichtmal ^^.

Das Problem wird sicherlich im Paketaufbau liegen von dem ich aber Ehrlichgesagt soviel ahnung habe wie vom Bergsteigen. Entsprechende Tut's konnte ich nicht zu dem Thema finden. Ebenfalls nicht wie ich den Aufbau bei den Indy clients ändere.

Für eure Hilfe wäre ich extrem Dankbar.

MfG

Mondo
Veritas et Aequitas
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TCP/ASCII - Protocoll2000/3000 über Indy

  Alt 25. Apr 2013, 14:55
.. gibt es irgendwo ein Spezifikation zu dem Protokoll?

Zum Verbindungsaufbau (TCP Client -> TCP Server) sollte hier eingentlich genügend zu finden sein.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#3

AW: TCP/ASCII - Protocoll2000/3000 über Indy

  Alt 25. Apr 2013, 15:20
Ist das das Kramer Protocol?

Da besteht zwischen 2000 und 3000 doch ein gewaltiger Unterschied oder?

Stell mal sicher, welches Protokoll du da wirklich brauchst, verrat uns mal was du da genau machen willst - und auch mit welchem Gerät - und zeig uns mal ein bischen Code...


Sonst bräucht ich da eine Glaskugel und die hab ich grad nicht da...

Luggi
  Mit Zitat antworten Zitat
MondoShiva

Registriert seit: 14. Aug 2007
Ort: Mönchengladbach
63 Beiträge
 
Delphi XE2 Professional
 
#4

AW: TCP/ASCII - Protocoll2000/3000 über Indy

  Alt 26. Apr 2013, 08:28
Richtig handelt sich um die Kramer Protocolle.

Bevorzugen würde ich Protocol 3000 jedoch ein Auswahlverfahren wäre klasse, da man die Geräte im Protocol bereich wechseln kann.

Geräte sind es extrem viele die ich damit steuern will aber zu Beginn würde ein VS-42HN ausreichen um den Syntax des Codes ins Hirn zu bekommen ^^.

Ein Beispiel wäre:
#VID 1>1

damit würde ich über Prtotocol 3000 eingang 1 zu ausgang 1 routen.

Hatte bislang gehofft das ganze als einen String zu übermitteln entsprechend sieht mein Code aus

Delphi-Quellcode:

procedure TForm1.Button2Click(Sender: TObject); begin
   if not IdTCPClient1.Connected then
IdTCPClient1.Connect
else
Panel1.Color := clGreen;

     ListBox1.Items.AddObject('Gerät: ' +Label2.Caption, Pointer(clGreen));
     ListBox1.Items.AddObject('IP: '+ Form3.Edit2.Text, Pointer(clGreen));
     ListBox1.Items.AddObject('Port: '+ Form3.Edit1.Text, Pointer(clGreen));
     ListBox1.Items.AddObject('Nachricht: ' + Edit1.Text, Pointer(clGreen));
     ListBox1.Items.AddObject('', Pointer(clGreen));

        IdTCPClient1.Socket.Write(Length(edit1.text));
        IdTCPClient1.Socket.Write(Edit1.Text);

IdTCPClient1.Disconnect;
Sleep(500);
Panel1.Color := clRed;

end;
Veritas et Aequitas
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TCP/ASCII - Protocoll2000/3000 über Indy

  Alt 26. Apr 2013, 12:38
Hallo,

viellicht liegt es daran das die Strings bei XE2 unicode String sind, also pro Zeichen 2 Bytes enthalten.
Versuche mal vor der Übertragung die Zeichenkette in AnsiStrings zu wandeln.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

AW: TCP/ASCII - Protocoll2000/3000 über Indy

  Alt 26. Apr 2013, 12:59
Das Protocol 3000 gibt's hier: http://www.kramerelectronics.com/dow..._3000_full.pdf

Delphi-Quellcode:
// Erzeuge eine HostMessage für das Protocol 3000
function BuildHostMessage(const Message:AnsiString; const DestId:AnsiString=''):AnsiString;
const
  CR = #13;
begin
  result := '#';
  if DestId <> 'then
    Result := Result + DestId + '@';
  Result := Result + Message + CR;
end;
Am Besten du fängst damit an, dem Gerät eine leere Message zu schicken:
Delphi-Quellcode:
var s : Ansistring;
s := BuildHostMessage(''); // leere Message (protocol handshaking)
IdTCPClient1.Socket.Write(s);
Das Gerät sollte mit ~OK[CR][LF] antworten.
Die Tilde am Anfang und die CR/LF am Ende gehören nicht zu den Nutzdaten, sondern stellen das Start- und die Endezeichen dar.
Die Message vom Geräte ist also effektiv "OK" als Antwort auf eine leere Message.
  Mit Zitat antworten Zitat
MondoShiva

Registriert seit: 14. Aug 2007
Ort: Mönchengladbach
63 Beiträge
 
Delphi XE2 Professional
 
#7

AW: TCP/ASCII - Protocoll2000/3000 über Indy

  Alt 26. Apr 2013, 13:37
Herzlichen Dank,

das Problem ist gelöst und das Gerät schaltet jetzt einwandfrei alles um . Werde das Projekt nach fertigstellung auch als RS232/TCP Terminal hier zur Verfügung stellen.

Vielen Dank an euch,.. der Knoten ist geplatzt.
Veritas et Aequitas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz