Gambas France BETA


Pas de compte ? Incription

latence si mauvaise connexion snmp

Ce sujet est résolu.

1
AuteurMessages
codex#1 Posté le 29/5/2014 à 07:32:06
À bas la vermine ! disait le debogueurBonjour à 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 :x

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.
1
2
3
4
5
6
7
8
9
10
11
12
PUBLIC SUB Timer1_Timer()

DIM variable AS STRING = ""

Timer1.Stop

TRY SHELL "snmpget -v1 public 000.000.00.00 .1.3.6.1.4.1.19861.1.2.2.0 2>1" TO variable ' Mettre un < WAIT >, si nécessaire.
IF ERROR THEN QUIT

Timer1.Start

END

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 .
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 debogueurBien 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 :o :o
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 .
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 debogueurIl ne faut pas ...au plaisir ;)
1