Danke.
Ich habe einen Thread eingerichtet.
.....
.......
Wenn ich Delay dort rausnehme oder verkleinere bricht die Netzwerkverbindung zusammen.
Danke.
Code: Alles auswählen
Global Quit.l, Port.l, conID.l, status.l, cEvent.l, Result.l, EventID.l
Global text_e.s,op.l,z.l,datatext.s,tt.l,test_1.l,test_2.l,s_alti.s,s_apoa.s,s_peri.s,s_velo.s
Global anzahl.l, wert.l,hoehe.l
Declare auswerten(*interval)
Enumeration
#Window_0
#b_ende
#b_connect
#b_disconnect
#b_cls
#b_start
#b_edit
#b_run
#str_netzwerk
#str_alti
#str_apoa
#str_peri
#str_velo
#edit
#text_alti
#text_apoa
#text_peri
#text_velo
EndEnumeration
thread = CreateThread(@auswerten(), *interval)
ThreadPriority(thread, 16)
;PauseThread(thread)
DataBuffer = AllocateMemory(1024)
OpenWindow( #Window_0, 10, 10, 400, 500, "kos_gadget", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
AddWindowTimer(#Window_0, 123, 500)
ButtonGadget(#b_ende,10, 10,100, 20, "Ende")
ButtonGadget(#b_connect,120, 10, 100, 20, "Connect")
ButtonGadget(#b_disconnect,120, 30, 100, 20, "Disconnect")
ButtonGadget(#b_cls,280,200, 80, 25, "Cls")
ButtonGadget(#b_start,280,260, 80, 25, "Start")
ButtonGadget(#b_edit,280,225, 80, 25, "Sende Edit")
ButtonGadget(#b_run,280,285, 80, 25, "Sende Run")
StringGadget(#str_netzwerk,230, 10, 120, 22, "")
StringGadget(#str_alti,10, 80, 140, 22, "")
StringGadget(#str_apoa,10, 105, 140, 22, "")
StringGadget(#str_peri,10, 130, 140, 22, "")
StringGadget(#str_velo,10, 155, 140, 22, "")
TextGadget(#text_alti, 160,85, 200, 20, "ALTITUDE")
TextGadget(#text_apoa, 160,110, 200, 20, "APOAPSIS")
TextGadget(#text_peri, 160,135, 200, 20, "PERIAPSIS")
TextGadget(#text_velo, 160,160, 200, 20, "VELOCITY m/s")
EditorGadget(#edit, 10,200, 250, 250)
Quit = 0
Port = 5411
status = 0
test_1=0
test_2=0
InitNetwork()
Repeat
EventID = WaitWindowEvent(5)
If EventID = #PB_Event_Timer And EventTimer() = 123 And status=1
SendNetworkString(conID,"run kosdaten(1)."+Chr(10))
EndIf
Select EventID
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case #b_ende
Quit = 1
Case #b_connect
If Not status
conID = OpenNetworkConnection("127.0.0.1", Port,#PB_Network_TCP,2000)
If conID
status = 1
SetGadgetText(#str_netzwerk,"Connected" + #CR$)
EndIf
EndIf
Case #b_disconnect
If status <> 0
CloseNetworkConnection(conID)
status = 0
SetGadgetText(#str_netzwerk,"Connection closed" + #CR$)
EndIf
Case #b_cls
text_e=""
SetGadgetText(#edit, text_e)
Case #b_start
If status=1
SendNetworkString(conID, "1"+Chr(10))
Delay(100)
SendNetworkString(conID, "switch to 0."+Chr(10))
Delay(100)
EndIf
Case #b_run
If status=1
SendNetworkString(conID,"run kosdaten(1)."+Chr(10))
EndIf
Case #b_edit
If status=1
anzahl = CountGadgetItems(#edit)
For wert =0 To anzahl
text_e=GetGadgetItemText(#edit,wert)
SendNetworkString(conID,text_e+Chr(10))
Delay(100)
Next
EndIf
EndSelect
EndSelect
If status
cEvent = NetworkClientEvent(conID)
Select cEvent
Case #PB_NetworkEvent_Data
test_1=1
datatext=""
FillMemory(DataBuffer, 1024)
Result = ReceiveNetworkData(ConID, DataBuffer, 1024)
For z=0 To result
tt=PeekA(DataBuffer+z)
If tt > 31 And tt < 128
datatext=datatext+Chr(tt)
EndIf
Next
EndSelect
EndIf
Until Quit = 1 Or EventID = #PB_Event_CloseWindow
FreeMemory(DataBuffer)
End
Procedure auswerten(*interval)
Repeat
Delay(5)
If test_1=1
s_alti=StringField(datatext,2,":")
s_apoa=StringField(datatext,3,":")
s_peri=StringField(datatext,4,":")
s_velo=StringField(datatext,5,":")
SetGadgetText(#str_alti,s_alti)
SetGadgetText(#str_apoa,s_apoa)
SetGadgetText(#str_peri,s_peri)
SetGadgetText(#str_velo,s_velo)
hoehe= Val(s_alti)
If hoehe > 10000 And test_2=0
SendNetworkString(conID,"LOCK THROTTLE To 0."+Chr(10))
Delay(500)
SendNetworkString(conID,"stage."+Chr(10))
Delay(500)
SendNetworkString(conID,"LOCK THROTTLE To 1."+Chr(10))
test_2=1
EndIf
If hoehe > 20000 And test_2=1
SendNetworkString(conID,"LOCK THROTTLE To 0."+Chr(10))
Delay(100)
test_2=2
EndIf
If hoehe > 30000 And test_2=2
SendNetworkString(conID,"LOCK THROTTLE To 1."+Chr(10))
Delay(100)
test_2=3
EndIf
test_1=0
EndIf
ForEver
EndProcedure