Foro | | | |  funkheld | ¡Hola, con el Processen se ejecuta lo ahora wunderbar. Yo habe hier una Ejemplo con Datos Process encima Settext/Gettext$, also sin Filmap usw.
Ein Ventana principal para el Roboter, wo el Entfernungen el él encima WLan schickt de XProfan dargestellt voluntad. El WLan-Daten voluntad encima 1 Process empfangen y gesendet. 1 Process Yo una serielle Datenübertragung y 1 Process voluntad Pixel ausgegeben.
Also una tolle Sache con el Processen, wunderbar. Yo quería veces el Comportamiento prüfen.
Wann se el Hauptprogramm veces en el holpern kommen con el vielen Processen?
Gruss
{$cle}
{$PUSHKEYWORD pExec}
declarar b_vor&,b_zur&,zielfenster&
declarar b_links&,b_hlinks&,b_mitte&,b_hrechts&,b_rechts&
declarar b_v0&,b_v1&,b_v2&
declarar b_ser0&,b_ser1&,b_sharp&,b_ton&,b_cls&
declarar ende&,texto$,bpic&,bpich&,wert&,hw&,ht&,hx&,hy&,p&,p1&,p2&,htext&,hd1&
declarar x!,y!,wtest&,color&
windowtitle "send"
Ventana 20,20-700,650
color&=rgb(160,160,160)
cls color&
bpic& = create("hNewPic", 400,400,rgb(255,255,255))
bpich& = create("hNewPic", 400,400,rgb(255,255,255))
b_vor& = Crear("Button",%HWnd,"vor", 10, 20, 80, 24)
b_zur& = Crear("Button",%HWnd,"zurück", 10, 45, 80, 24)
b_links& = Crear("Button",%HWnd,"links", 10, 70, 80, 24)
b_hlinks& = Crear("Button",%HWnd,"hlinks", 10, 95, 80, 24)
b_mitte& = Crear("Button",%HWnd,"mitte", 10, 120, 80, 24)
b_hrechts& = Crear("Button",%HWnd,"hrechts", 10, 145, 80, 24)
b_rechts& = Crear("Button",%HWnd,"rechts", 10, 170, 80, 24)
b_v0& = Crear("Button",%HWnd,"v0", 10, 195, 80, 24)
b_v1& = Crear("Button",%HWnd,"v1", 10, 220, 80, 24)
b_v2& = Crear("Button",%HWnd,"v2", 10, 245, 80, 24)
b_ser0& = Crear("Button",%HWnd,"ser0", 10, 270, 80, 24)
b_ser1& = Crear("Button",%HWnd,"ser1", 10, 295, 80, 24)
b_sharp& = Crear("Button",%HWnd,"sharp", 10, 320, 80, 24)
b_ton& = Crear("Button",%HWnd,"ton", 10, 345, 80, 24)
b_cls& = Crear("Button",%HWnd,"cls", 120, 20, 40, 24)
hw& = create("Edit", %HWnd, "", 100,500,60,20)
ht& = create("Edit", %HWnd, "", 100,525,60,20)
hx& = create("Edit", %HWnd, "", 100,550,90,20)
hy& = create("Edit", %HWnd, "",100,575,90,20)
htext& = create("Edit", %HWnd, "",0,0,0,0)
hd1& = create("Edit", %HWnd, "",300,500,90,20)
startpaint bpic&
USEP 0,1,$ff0000
EndPaint
startpaint %HWnd
drawpic bpic&,200,20;0
DrawText 20, 500, "Entfernung"
DrawText 20, 525, "Status"
DrawText 20, 550, "XPosition"
DrawText 20, 575, "YPosition"
DrawText 245, 500, "seriell"
EndPaint
p& = pExec("|Prozess",hw&,ht&,hx&,hy&,htext&)
sleep 200
p1&=pExec("|Prozess1",%HWnd, hd1&)
sleep 200
p2&=pExec("|Prozess2")
sleep 200
ZielFenster& = FindWindow("roboter")
ende&=1
Mientras que ende&
WaitInput
If Clicked(b_vor&)
texto$="1,0,vor"
WriteStr(texto$)
elseIf Clicked(b_zur&)
texto$="1,0,zur"
WriteStr(texto$)
elseIf Clicked(b_links&)
texto$="1,0,links"
WriteStr(texto$)
elseIf Clicked(b_hlinks&)
texto$="1,0,hlinks"
WriteStr(texto$)
elseIf Clicked(b_mitte&)
texto$="1,0,mitte"
WriteStr(texto$)
elseIf Clicked(b_hrechts&)
texto$="1,0,hrechts"
WriteStr(texto$)
elseIf Clicked(b_rechts&)
texto$="1,0,rechts"
WriteStr(texto$)
elseIf Clicked(b_v0&)
texto$="1,0,v0"
WriteStr(texto$)
elseIf Clicked(b_v1&)
texto$="1,0,v1"
WriteStr(texto$)
elseIf Clicked(b_v2&)
texto$="1,0,v2"
WriteStr(texto$)
elseIf Clicked(b_ser0&)
texto$="1,0,ser0"
WriteStr(texto$)
elseIf Clicked(b_ser1&)
texto$="1,1,ser1"
WriteStr(texto$)
elseIf Clicked(b_sharp&)
texto$="1,2,sharp"
WriteStr(texto$)
elseIf Clicked(b_ton&)
texto$="1,0,ton"
WriteStr(texto$)
EndIf
If Clicked(b_cls&)
startpaint bpic&
drawpic bpich&,0,0;0
EndPaint
startpaint %HWnd
drawpic bpic&,200,20;0
EndPaint
EndIf
wtest&=val(gettext$(ht&))
x!=val(gettext$(hx&))
y!=val(gettext$(hy&))
if wtest& = 1
startpaint bpic&
USEP 0,1,$0000ff
Line 200,200-200+x!,200+y!
EndPaint
startpaint %HWnd
drawpic bpic&,200,20;0
EndPaint
endif
if wtest& = 2
startpaint bpic&
USEP 0,1,$ff00
Line 200,200-200+x!,200+y!
EndPaint
startpaint %HWnd
drawpic bpic&,200,20;0
EndPaint
endif
endwhile
end
Proc WriteStr
Parámetros Texto$
settext htext&,texto$
PostMessage(ZielFenster&, $1000, 0, 0)
ENDPROC
Proc Prozess
Parámetros hw&,ht&,hx&,hy&,htext&
Declarar ende&,texto$,test&,test1&,wtest&,wert&,x!,y!,winkel!,urlpart$
Declarar HandleMap&, ViewPointer&, Buffer#
windowtitle "roboter"
window 720,20 - 200, 200
Ende& = 0
Mensajes del usuario $1000
Sinestar encargado ende&
waitinput 100
If %UMessage = $1000
texto$ = gettext$(htext&)
test1&=val(substr$(texto$,1,","))
if test1& > 0
test&=1
wtest&=val(substr$(texto$,2,","))
urlpart$=substr$(texto$,3,",")
imprimir texto$
texto$=""
endif
endif
if test&=1
downloadfile("https://192.168.2.101/?pin="+urlpart$)
test&=0
más
downloadfile("https://192.168.2.101/?pin=leer")
endif
mientras que %Loading
sleep 10
endwhile
wert&=str$(ord($download))
if wtest&=1
winkel!=winkel!+1.6
if winkel! > 180.0
wtest&=0
winkel!=0
endif
x!=Sin(winkel!*0.0174532925199433)*wert&
y!=Cos(winkel!*0.0174532925199433)*wert&
endif
if wtest&=2
winkel!=winkel!+1.6
if winkel! > 180.0
wtest&=0
winkel!=0
endif
x!=Sin((winkel!+180)*0.0174532925199433)*wert&
y!=Cos((winkel!+180)*0.0174532925199433)*wert&
endif
setText hw&,str$(wert&)
setText ht&,str$(wtest&)
setText hx&,str$(x!)
setText hy&,str$(y!)
EndWhile
endProc
Proc Prozess1
parámetros win&,hd1&
declarar ende&,f&,wert&
declarar texto$
f& = OpenCom("COM1",1024,1024)
SetCom("COM1:19200,N,8,1")
windowtitle "seriell"
window 920,20 - 200,200
imprimir "Process Seriell"
ende& = 0
whilenot ende&
Case GetText $(win&) = "" : ende& = 1
GetComInput f&
endwhile
Proc GetComInput
texto$ = ReadCom$(f&,128,128)
wert&=Ord(texto$)
if wert& > 0
setText hd1&, str$(wert&)
endif
ENDPROC
ENDPROC
Proc Prozess2
declarar ende&,bild&
windowtitle "pixel"
Ventana 1120,20-200,200
erzeugebild()
ende&=1
WHILE ende&
waitkey
ENDWHILE
proc erzeugebild()
Declarar x&,y&
whileloop 1,199
y&=&bucle
WhileLoop 1,199
startpaint %HWnd
x&=&bucle
sleep 1
SetPixel x&,y&,rgb(255,0,0)
EndWhile
EndWhile
ENDPROC
ENDPROC
|
 | | | | |
| |  | funkheld (17.04.2016)
Wann se el Hauptprogramm veces en el holpern kommen con el vielen Processen?
El Abarbeitung: scheint No konsistent como el Mensajes del usuario asynchron einflattern y dieser Tiempo htext& "längst" neu beschrieben voluntad podría. Der jeweils otro Prozess debería aktiv en una Gegenzeichen warten. |
| | | | |
| |  H.Brill | El otro Parámetro wparam y lparam en SendMessage / Postmessage kannst du sí auch todavía nutzen. Damit kannst du z.B. signalisieren, si en el Hauptprogramm algo geändert ha.
Der Prozess, el el Message gilt, kann entonces encima &uwParam oder &ulParam el erkennen y entsprechend reagieren. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 17.04.2016 ▲ |
| |
| |  funkheld | Gracias para el Respuesta.
¿Cómo se puede uno esta Aussage entonces Por favor, umsetzen en un Process: ......Der jeweils otro Prozess debería aktiv en una Gegenzeichen warten....
Gruss |
| | | | |
| |  H.Brill | Was macht porque dein Programa genau ?
Como Yo el sehe, empfängt Prozess el WLAN-Daten, Prozess1 empfängt qué encima el serielle Schnittstelle y Prozess2 malt con SetPixel qué aufs Ventana.
Was IF wahrscheinlich meint, es, daß el Prozesse Messages enviar, si qué bereit/fertig es.
Also, si el Datenpaket encima WLAN gesendet y el Daten berechnet fueron, informiert Prozess el Prozess2, daß él malen kann. Dafür puede ser wunderbar el Parámetro wParam y lParam de SendMessage benutzen, hacer frente a 0 oder 1 anzuzeigen, daß Prozess fertig es y Prozess2 beginnen kann.
Was el serielle Schnittstelle ahora macht, Yo todavía no rausbekommen.
Was me todavía auffiel : Yo sería el Procs no necesariamente ineinander verschachteln, also una Proc en uno otro Proc.
Das mag tal vez siempre gutgehen, aber verlassen sería Yo mich como no. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 18.04.2016 ▲ |
| |
| |  funkheld | Sí danke para el Info.
El RS232 es sólo sólo para Test en Betrieb y es entonces para Daten zuständig el parallel empfangen voluntad para el Hauptprogramm de una Steuerplatine (Arduino). Zum Hauptprogramm debería todos DatenFäden laufen y luego kommt una Aktion darauf.
Also : - Process-WLan para Hauptprogramm - Process-serielle Datos Hauptprogramm - zuständige Datos Process Grafikfenster
así lugar Yo el antes.
Gracias. Gruss |
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 3 subscriber: |