Page 1 sur 1

[R] Arrêter action en cours car trop long

Posté : ven. 17 juin 2011 14:26
par ludoo
Bonjour à tous,
comment arrêter une action en cours car la requête mais trop de temps.
voici un bout du code:

Code : Tout sélectionner

UDPStartUp()
$Socket = UDPopen($dest_IP_xxxx, $Port)
; ecrire dans le fichier ini la section par rapport au nom de l'imprimante
IniWriteSection($Cheminresultat&$nomfileResultat, "xxxxx", "")
;Read value at sysLocation
$SNMP_Command_HP_1 = _SNMPBuildPacket($OID_HP_3525_1, $SNMP_Community,$SNMP_Version, $SNMP_ReqID, "A0")
UDPSend($Socket, $SNMP_Command_HP_1)
_StartListener()
sleep (200)
merci de votre aide.

ps: utilisation udf: SNMP_UDF_v1.5.1

Re: [..] Arrêter action en cours car trop long

Posté : ven. 17 juin 2011 14:28
par Tlem
C'est bien de parler d'un UDF non standard, mais tout le monde ne le possède pas !!!

Re: [..] Arrêter action en cours car trop long

Posté : ven. 17 juin 2011 14:36
par ludoo
oui effectivement,
voici le lien vers l'UDF :http://www.autoitscript.com/forum/topic ... __hl__SNMP

la commande _Timer_Diff pourrait être utilisée ?

Re: [..] Arrêter action en cours car trop long

Posté : ven. 17 juin 2011 14:45
par Tlem
Je ne pense pas que _Timer_Diff soit une solution.

Il faudrait voir ou le script bloque. Ce doit surement être sur une des fonctions de communication : UDPopen() ou $SNMP_Command_HP_1() ou encore UDPSend().
Essayez de connaitre cet élément en débugant votre script. Une fois cette réponse obtenue, vous pourrez investiguer plus loin.

Re: [..] Arrêter action en cours car trop long

Posté : ven. 17 juin 2011 15:15
par ludoo
merci pour la piste , cela viens de la fonction :_StartListener()

Code : Tout sélectionner

Func _StartListener()
    If $Start = 1 Then
        $i = 0
        While (1)
            $srcv = UDPRecv($Socket, 2048)
            If ($srcv <> "") Then
                $result = _ShowSNMPReceived ($srcv)
                ConsoleWrite($srcv &@CRLF)
;~              _ArrayDisplay($result)
                ExitLoop
            ElseIf ($srcv == "") Then
            ConsoleWrite(@error)
            ExitLoop
            EndIf
         sleep(100)
        WEnd
    EndIf
EndFunc
j'ai rajouté , pour la gestion d'erreur de UDPRecv

Code : Tout sélectionner

ElseIf ($srcv == "") Then
            ConsoleWrite(@error)
            ExitLoop