Autor Beitrag
jjturbo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 477

Win2000 prof., WinXP prof.
D4 Stand., D5 Prof, D7 Prof, D2007 Prof.
BeitragVerfasst: Di 08.09.15 09:45 
Moin Forum,

ich habe einen Thread am laufen der einen TUDPSocket erstellt und per WLAN mit einem anderen Ethernet Teilnehmer "spricht", in diesem speziellen Fall ist es ein Schrittmotor.

Der Socket wir so erzeugt:
ausblenden Delphi-Quelltext
1:
type TmySocket = Class(TUDPSocket);					

ausblenden Delphi-Quelltext
1:
myMotorSocket  :TmySocket;					

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  myMotorSocket                 := TmySocket.Create(nil);
  myMotorSocket.BlockMode       := bmBlocking;
  myMotorSocket.OnConnect       := mySocketConnect;
  myMotorSocket.OnDisconnect    := mySocketDisconnect;
  myMotorSocket.OnError         := mySocketError;
  myMotorSocket.OnSend          := mySocketSend;
  myMotorSocket.OnReceive       := mySocketReceive;


Dieser Thread schickt zyklisch bestimmte Kommandos an den Motor und liest Informationen wie zum Beispiel die aktuelle Istposition aus.
Es passiert ab und zu das der Thread einfriert und ich weiß einfach nicht was ich falsch mache. Ich hätte erwartet dass wenn ich die Kommandos zu schnell hintereinander schicke oder ähnliches eine Fehlermeldung bekomme.
Stattdessen hängt er einfach. Ein zweiter Thread mit der gleichen Funktion kommuniziert derweil mit einem zweiten Motor. Der Motor der von meinem Thread nicht mehr angesprochen werden kann ist per Ping auf jeden Fall noch erreichbar.

Ich hoffe Ihr könnt mir etwas auf die Sprünge helfen?

Gruß Oliver

_________________
Windows XP: Für die einen nur ein Betriebssystem - für die anderen der längste Virus der Welt...