Раньше не сталкивался с подобным и пока никак не слеплю простейшую вещь: открыть/переоткрыть соединение в потоке, дождаться рукопожатия "PJLINK*" и, заслав команду, получить ответ.
Без потока все ок, с потоком же завершается сразу после установки соединения и не удается с Events его задержать до окончания приема ответа. Подсобите правильным пинком.
Add(TCP_Client,96010,245,175)
{
Port=4352
IP="192.168.86.36"
link(onRead,11266684:doSynchronize,[])
link(Data,15711235:Result,[(258,145)(370,145)])
}
Add(Button,10593311,21,238)
{
Left=15
Top=40
Caption="Слать"
link(onClick,69202:doStart,[])
}
Add(Label,2186510,602,224)
{
Left=15
Top=75
Height=20
}
Add(Hub,5377,175,189)
{
link(onEvent2,96010:doSend,[(235,202)(235,195)])
}
Add(Hub,7443013,350,175)
{
OutCount=3
link(onEvent3,15684426:doValue,[(375,195)(375,202)])
}
Add(StrMask,14505764,434,217)
{
Mask="PJLINK*"
link(onFalse,275603:doEvent1,[(480,223)(480,230)])
link(onTrue,5377:doEvent1,[(473,230)(473,153)(165,153)(165,195)])
link(Str,15684426:Value,[(440,187)(412,187)(412,236)(391,236)])
}
Add(Memory,15684426,385,196)
{
link(onData,14505764:doCompare,[(424,202)(424,223)])
}
Add(Hub,1554760,140,238)
{
OutCount=3
link(onEvent1,96010:doClose,[(228,244)(228,188)])
link(onEvent2,96010:doOpen,[(214,251)(214,181)])
link(onEvent3,12965886:doWait,[(277,258)(277,321)])
}
Add(Thread,69202,84,238)
{
Delay=0
FastStop=0
link(onExec,1554760:doEvent1,[])
}
Add(Synchronize,11266684,294,175)
{
link(onSync,7443013:doEvent1,[])
}
Add(Events,5953648,539,266)
{
ManualReset=1
}
Add(Hub,275603,490,224)
{
link(onEvent1,2186510:doText,[])
link(onEvent2,5953648:doSet,[(529,237)(529,272)])
}
Add(WaitObject,12965886,539,315)
{
link(ObjHandle,5953648:ObjHandle,[])
}
Add(StrCat,15711235,364,63)
{
Str1="%1"
}
Редактировалось 1 раз(а), последний 2019-12-12 14:21:34