AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

Ein Thema von Andre.R · begonnen am 11. Feb 2012 · letzter Beitrag vom 18. Feb 2012
Antwort Antwort
Seite 1 von 2  1 2   
Andre.R

Registriert seit: 31. Mai 2003
45 Beiträge
 
#1

Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 11. Feb 2012, 11:44
Hi ,

ich möchte via Indy UDPCient einen ASCI Befehl an ein Netzwerk Gerät senden.
Das Gerät ist von Irtrans.de ein Infrarotempfänger / sender.
Leider kommt immer "Received: ERROR: ASCII Format Error" !
Mit Putty und RAW Mode geht's !

Hier steht:
Zitat:
Anmeldung am IRTrans System / ASCII Modus inititalisieren
Die gesamte Kommunikation erfolgt über den Port TCP/21000. Dieser Port ist offiziell für das
IRTrans System reserviert, so daß es hier auch nicht zu Konflikten kommen sollte.
Zunächst muß eine Anmeldung am System erfolgen. Hierzu besteht folgender Ablauf:
- Aufbau einer Verbindung zum Port TCP/21000 des irservers/IRTrans Moduls
- Senden der 4 Bytes „ASCI“ über die neue TCP Verbindung.
Wichtig: Diese Bytes müssen als erste Daten über die Verbindung
geschickt werden. Sie müssen als Großbuchstaben und ohne zusätzliche
Zeichen wie <CR> oder <LF> geschickt werden.
Auszug aus der Indy demo:

Delphi-Quellcode:
begin

 ThisMessage := 'AVER' ;
  UDPMemo.Lines.Add(ThisMessage);
   UDPClient.Send(ThisMessage);
Habe ich was übersehen ?
andre
  Mit Zitat antworten Zitat
Klaus01

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

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 11. Feb 2012, 11:56
.. trägt vielleicht nicht zur Lösung Deines Problems bei,
Aber in der Beschreibung wird von TCP geredet - warum willst Du dann UDP einsetzen.
Irgendwie passt das nicht.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 11. Feb 2012, 12:36
Zitat:
- Senden der 4 Bytes „ASCI“ über die neue TCP Verbindung.
Dass es nicht funktioniert könnte an der Delphi Version (Unicode oder nicht) liegen.

Der Unicode-String "ASCI" wäre 8 Bytes lang, wenn man ihn unbehandelt an den Server sendet.

"ASCI" sind zwar nicht 4 "Bytes", aber man kann annehmen dass ASCII Encoding gemeint ist.
Michael Justin
  Mit Zitat antworten Zitat
Andre.R

Registriert seit: 31. Mai 2003
45 Beiträge
 
#4

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 11. Feb 2012, 21:52
Hi,

habe mal angepasst String > AnsiString.
Keine Änderung !

@Klaus, gibt es eine TCP Indy Demo wie ich den String senden kann ?
Bin nicht so Fit, deshalb frage ich ...

In der Anleitung steht UDP:

Zitat:
1. Einleitung
Das IRTrans ASCII Format dient der Ansteuerung von IRTrans Modulen (über den irserver
oder Ethernetmodule mit IRDB bzw. LAN Controller direkt) via TCP/IP über einfache ASCII
Strings. Das Format dieser ASCII Strings entspricht denen der UDP ASCII Strings.
Derzeit werden folgende Transaktionen unterstützt:
http://www.irtrans.de/download/Docs/...tstelle_DE.pdf



grüße
andre
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 12. Feb 2012, 00:52
Zitat:
Das Format dieser ASCII Strings entspricht denen der UDP ASCII Strings.
In der Anleitung taucht auch der Begriff UDP auf, allerdings in einem Kontext, der IMHO in keinster Weise die Verbindungsart beschreibt.

Zitat:
Die gesamte Kommunikation erfolgt über den Port TCP/21000. Dieser Port ist offiziell für das IRTrans System reserviert, so daß es hier auch nicht zu Konflikten kommen sollte.
Ich frage mich, wie man es noch deutlicher in einer Anleitung schreiben könnte. Größer? Bunter? Mit Sternchen?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Andre.R

Registriert seit: 31. Mai 2003
45 Beiträge
 
#6

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 12. Feb 2012, 10:12
Moin,

hier unter 5. steht aber auch:

Zitat:
Die Parameter sind hierbei die gleichen wie beim UDP Senden:
Asnd <remote>,<command>,[l<led>],[b<bus>],[m<mask>]
Asndr <remote>,<command>,[l<led>],[b<bus>],[m<mask>]

usw.
Hat jemand mal ein Indy TCP Beispiel für mich?
Oder ein paar Zeilen, damit ich mich damit beschäftigen kann.

danke
andre
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 16. Feb 2012, 14:41
Also bei der Beschreibung steht folgendes :

Code:
Wichtig: Diese Bytes müssen als erste Daten über die Verbindung
geschickt werden. Sie müssen als Großbuchstaben und ohne zusätzliche
Zeichen wie <CR> oder <LF> geschickt werden.
Ich weis das Indy wenn du Strings über Indy direkt sendest das er CR oder LF Anhängt.
Hast du mal versucht, diese als Zahl zusenden?
Cardinal entspricht auch 4 Bytes.
Hier ein Testcode bei einem Localen TCP Cleint/Server
Der Server bekommt es richtig bei mir, aber naja ist halt nicht dein Server:
Delphi-Quellcode:
const Befehl : array[0..3] of AnsiChar = ('A','S','C','I');
begin
IdTCPClient1.Connect;
IdTCPClient1.IOHandler.Write(Cardinal(Befehl));
end;
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Andre.R

Registriert seit: 31. Mai 2003
45 Beiträge
 
#8

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 17. Feb 2012, 11:27
Hi Nikel,

danke dir für Deine Antwort.
Ich verstehe dein Beispiel, gute Idee !
Ich Teste es am Wochenende, bin noch berufl. Unterwegs.
Ach ja, nach dem Senden schickt das IR Teil auch eine Antwort zurück.
Für den Empfang muss ich dann den Server nehmen, oder ?

andre
  Mit Zitat antworten Zitat
Benutzerbild von jokerfacehro
jokerfacehro

Registriert seit: 13. Feb 2007
306 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 17. Feb 2012, 15:43
Bitte mal den Traffic mit Wireshark und co scannen, dann sieht man schneller obs an der Codierung liegt
"Never touch a running system administrator !"
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Via Indy UDP Client ASCI Daten zu einem Netzwerkgerät senden

  Alt 18. Feb 2012, 00:39
Die Antwort bekommt der Client. So wie ich der Hilfe entnehme kannst du nun über ReadString (glaub ich heisst die Funktion) dei Antwort entgegennehmen, Da der String mit einem <LF> (eine Art String-End Zeichen) endet, was Indy in dieser Funktion Unterstützt.
Wie du dann den Result-String zerlegst, denk ich mal weisst du

Gruß
NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:49 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