Page 1 sur 1

[..] Question sur _ImageSearchArea

Posté : mer. 21 janv. 2015 12:55
par Kiani
Bonjour

Voici un bout du code que j'utilise

Code : Tout sélectionner

$pat1 = _ImageSearchArea('patrouille1.bmp', 1, 760, 430, 910, 460, $x, $y, 50)
$pat2 = _ImageSearchArea('patrouille2.bmp', 1, 760, 430, 910, 460, $x, $y, 50)
$car1 = _ImageSearchArea('juliette.bmp', 1, 95, 433, 255, 460, $x1, $y1, 50)
$car2 = _ImageSearchArea('bravo.bmp', 1, 95, 433, 255, 460, $x1, $y1, 50)



$redeasy = PixelSearch(893, 793,913, 818,0x570D08,1)  ; vérification qu'une notification patrouille arrive
    $finishA= isarray($redeasy)


    if $finishA = 1 then
        ;MsgBox (0, "ok", "nouvelle Notif")
            Local $search = $pat1 or $pat2
                If $search = 1 Then
                      ;action 1
                    $t = $t + 1
                    Sleep (2500)
                Else
    Else
        ;MsgBox (0, "Fail", "pas de news")
        
    Endif
$redcar = PixelSearch(558, 793,578, 818,0x570D08,1)  ; verification retour vehicule
$finishb= isarray($redcar)

if $finishb = 1 then
            ;MsgBox (0, "ok", "retour vehicule")
            local $searchm = $car1 or $car2

                If $searchm = 1 Then
                                        ;Action 2           
                                Sleep (2500)
                EndIf
    Else
        ;MsgBox (0, "Fail", "pas de retour vehicule")
        
    Endif
    sleep (200)
 
Ma question est celle ci:lorsque j'ai un retour véhicule mon code marche bien mais si juste aprés une patrouille déclanche la condition "$finishb" imagesearch identifie mon pictogramme comme celui d'un véhicule alors que c'est en réalité une patrouille. Si je coupe le script et que j'essaie uniquement avec la patrouille qui déclanche la condition "$finishb" rien ne se passe car le picto ne correspond pas a celui chercher.

est ce que j'ai oublié quelque choses?

Cordialement

Re: [..] question sur _ImageSearchArea

Posté : mer. 21 janv. 2015 14:09
par Y01
Bonjour,

Je ne pense pas que ce soit lié mais il me semble qu'il y a un Else au lieu d'un EndIf

Code : Tout sélectionner

if $finishA = 1 then
        ;MsgBox (0, "ok", "nouvelle Notif")
            Local $search = $pat1 or $pat2
                If $search = 1 Then
                      ;action 1
                    $t = $t + 1
                    Sleep (2500)
                [i]Else[/i] -> [b]EndIf[/b] -> ?
    Else
        ;MsgBox (0, "Fail", "pas de news")
       
    Endif
Sinon, pour répondre à la question, quand $finishb est activé, la variable $searchm est attribué à juliette ou bravo et non à une patrouille, ça doit être de la que viens l'erreur :

Code : Tout sélectionner

if $finishb = 1 then
            local $searchm = $car1 or $car2 -> [b]Juliette ou Bravo[/b]

Re: [..] question sur _ImageSearchArea

Posté : mer. 21 janv. 2015 15:11
par Kiani
merci pour la reponse

Pour le endif, une erreur de recopie du code, il y a bien un else qui incrémente un compteur et pas pertinent pour la question.
Ma question est justement celle ci en théorie ce que je demande c'est une action que si juliette ou bravo rentre et que si juste apres une patrouille rentre il ne m'indique pas que deux véhicules sont rentrés.

alors que si je stoppe le code et le relance il voit bien que ce n'est pas un véhicule qui est rentré.

je ne sais pas si j'arrive a être claire dsl

Re: [..] question sur _ImageSearchArea

Posté : mer. 21 janv. 2015 15:13
par Y01
Et avec ça :

Code : Tout sélectionner

local $searchm = $car1 or $car2 or $pat1 or $pat2
?

Re: [..] question sur _ImageSearchArea

Posté : mer. 21 janv. 2015 18:40
par Kiani
effectivement dit comme cela c'est de suite plus logic ... vais essayer de modifier et je te tiens au courant.

Re: [R] Question sur _ImageSearchArea

Posté : mar. 27 janv. 2015 05:55
par Kiani
Bon je l'ai retourné dans tous les sens et cela ne fonctionne pas comme je le souhaite.
Je repart de la page blanche pour trouver un autre moyen, comme le projet change au fur et a mesure ce n'est pas plus mal.

merci de votre aide.