Announcement

Collapse
No announcement yet.

Socketverbindung mit Embedded-System

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Socketverbindung mit Embedded-System

    Ich habe ein Embedded-System, daß nach Herstellerangaben ein Server ist. Der Connect mit den gängigen Componenten TClientSocket, TcpClient und TIdTCPClient funktioniert soweit. Der Server dient dazu, JPEG's mit einem vorangestellten selbstdefinierten Header (Bildnummer, Bildgröße, Datum, Uhrzei u.a.) zu versenden. Das Versenden der Daten erfolgt durch den Server selbstständig (also ohne Aufforderung durch den Client). Ich muß noch anmerken, daß die Kommunikation in einem Thread ablaufen wird, um andere Programmfunktionen (wie Meßwerte lesen, Datenbankeintrag u.a.m.)
    nicht zu behindern.<P>
    Der Hersteller hat ein kleines Test-Programm (ich glaube in Visual C erstellt), mit der die Kommunikation funktioniert. Nach dessen Aussagen werden da direkt API-Aufrufe verwendet.<P>
    Doch nun zu den Problemen:<P>
    1. Welche Componente setzt man ein, und was ist der Unterschied zwischen TClientSocket und TTcpClient ? Bei TClientSocket ist eben schön, daß das OnErrorEvent mehr Informationen liefert, als bei TTcpClient.<P>
    2. Wie kann man die Daten lesen ? Das OnRead bzw. OnReceive bei TClientSocket/TTcpClient tritt nicht ein, wenn der Server sendet. Wie ist bei TIdTCPClient zu verfahren ? Muß man da im Thread ständig nachsehen ob Daten da sind ? Außerdem muß ich feststellen, wann ich Daten zu einem Bild vollständig empfangen habe.<P>
    3. Wie kann man bei dem Connect den eventuell auftretenden Timeout (Fehlerfall, ca. 4-5 s) verringern ? Da ich einen eigenen Thread verwenden möchte (muß ?) muß ich dann wohl ctBlocking verwenden (TClientSocket/TTcpClient) ?. Kann dann das Clientobjekt im Thread erzeugt werden, oder sollte ich dann auch gleich die API-Funktionen verwenden ?<P>
    Ich bin für jeden Rat dankbar. Ich will jetzt erstmal versuchen einen eigenen Test-Server auf dem PC zu erstellen, damit ich prüfen kann, ob die Serverfunktionalität richtig im Embedded-System implementiert ist (kein OnRead bzw. OnReceive). Warum funktioniert aber dann den ihr Test-Programm ???
Working...
X