Ce sujet est résolu.
1 | |||
Auteur | Messages | ||
---|---|---|---|
codex | #1 Posté le 29/5/2014 à 07:32:06 | ||
À bas la vermine ! disait le debogueur | Bonjour à vous, Comme c'était un peu prévisible, voici la suite des requêtes snmp qui ne se passent pas bien dans gambas3 lors d'une connexion defectueuse. la commande suivante a été réalisée dans un timer : $ shell "snmpget -v1 public 000.000.00.00 .1.3.6.1.4.1.19861.1.2.2.0 2>1" to variable Aucun souci lorsque la connexion est bonne, par contre dans le cas contraire l'attente du retour Shell (Timeout:No Response from 000.... bloque le timer et le programme complet par la même occasion Ce comportement est bien logique car je n'utilise sûrement pas la bonne méthode. Que dois-je faire pour qu'un processus autonome gère l'attente sans impacter l'execution du programme? Ce peut être très intéressant aussi pour d'autres applications ou plusieurs choses doivent être en action (quasi) simultanément. merci d'avance | ||
Reivillo | #2 Posté le 29/5/2014 à 12:44:11 | ||
C' est ici, et nul part ailleurs. « Et pis c'est tout ! » | Bonjour codex. Tu peux essayé ça, peut-être! (et voir à gérer l'Erreur, autrement...) Reivillo.
Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015) LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr LÀ. Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous... sudo add-apt-repository ppa:gambas-team/gambas3 sudo apt-get update sudo apt-get install gambas3 -y Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016) Pour la Doc, c'est vers là: Documentation Gambas3 FR | ||
codex | #3 Posté le 29/5/2014 à 13:16:34 | ||
À bas la vermine ! disait le debogueur | Bien le bonjour Reivillo, Merci pour l' entraide, je suis épaté de la participation active sur ce forum. Donc ceci ne marche pas car le Shell attend inexorablement la réponse du Timeout qui déborde joyeusement le temps du Timer. Alors en bon chercheur, une solution a été trouvée (il est vrai que la documentation Gambas est bien faite). Il faut crééer un processus qui va travailler en arrière plan et fournir la réponse dans une fonction prévue pour cela. Par exemple en simplifiant un maximum: $Public process1 As Process $Public variable1 As String $Public Sub Timer1_Timer() $process1 = Shell "snmpget -v1 -c public 000.000.00.00 .1.3.6.1.4.1.19865.1.2.3.1.0 2>&1" For Read As "process1" $End $Public Sub Process1_Read() $Read #Last, variable1, -256 $End La trame se retrouve bien dans la variable1. Sachant que l'on peut empiler une bonne quantité de processus, les essais me semblent positifs et je ne constate plus aucune latence sur la bécanne que j'utilise. Dans un souci de participation et d'aide j'espère que ces petites lignes rendront service, surtout que ceci peut à priori s'adapter à d'autres types de flux. merci en tout cas | ||
Reivillo | #4 Posté le 29/5/2014 à 14:06:33 | ||
C' est ici, et nul part ailleurs. « Et pis c'est tout ! » | Mde, j'ai zappé le < Process >. Désolé... Version LinuxMint 13 (1.6.1-1+maya-mate(32-bit)) LTS Noyau 3.14.33-031433-generic (27-02-2015) LinuxMint 13 Mate Fr ICI, LinuxMint 17 Mate Fr LÀ. Programmation Gambas3 Installé depuis la Console Terminal avec successivement: Les 3 Lignes sudo en Gras ci-dessous... sudo add-apt-repository ppa:gambas-team/gambas3 sudo apt-get update sudo apt-get install gambas3 -y Gambas3.8.4-57.47 (Mise à Jour Auto via mintupdate le 28-01-2016) Pour la Doc, c'est vers là: Documentation Gambas3 FR | ||
codex | #5 Posté le 29/5/2014 à 14:13:32 | ||
À bas la vermine ! disait le debogueur | Il ne faut pas ...au plaisir | ||
1 |