Gambas France BETA


Pas de compte ? Incription

Récuperation d'une variable SHELL

Ce sujet est résolu.

1
AuteurMessages
codex#1 Posté le 27/5/2014 à 14:37:51
À bas la vermine ! disait le debogueurBonjour à vous,

En train de crééer une petite application Gambas3 je me désèspère dans un souci un peu particulier mais qui peut interesser.

Le but du jeux est de pouvoir rappatrier par le protocole snmp des données d'un pc distant.
Dans un treminal ou un script bash tout fonctionne bien.

J'utilise pour le moment l'instruction Shell dans mon code Gambas pour vérifier la réception des informations.

par exemple: $Shell "snmpget -v1 -c public 222.222.222.222 .1.3.6.4.119866.1.2.1.0"
Le résultat apparait bien dans le champs de la console en bas de l'espace de travail Gambas
par exemple: $iso.3.6.1.4.1.119866.1.2.3.1 = INTEGER: 369

Jusque là tout va bien ....ce que je voudrais est de pouvoir mettre la réponse dans une variable gambas
afin de pouvoir l'exploiter.

des commandes du type
$ dim variable as string
$ variable = Shell "snmpget -v1 -c public 222.222.222.222 .1.3.6.4.119866.1.2.1.0"
ne fonctionnent pas.

En fait (sans se prendre la tête avec le flux snmp) le but est de rapatrier la réponse de la console dans une variable .

Je vous remercie par avance de votre aide ou réponse. ;)

A.b
linuxos#2 Posté le 27/5/2014 à 15:56:48
Un peu de sel, de poivre et la crevette sera... Bonjour,

Il faut le coder de cette manière:

$ dim variable as string
$ Shell "snmpget -v1 -c public 222.222.222.222 .1.3.6.4.119866.1.2.1.0 2>&1" TO Variable

Il est indispensable d'utiliser l'instruction SHELL car j'ai ajouté 2>&1 a la fin de ta commande. Cela fonctionne mieux et cela permet de récupérer les messages d'erreur de la commande snmpget au cas ou.
Sinon, sans ajouter 2>&1 a la fin, pour aller plus vite tu peux utiliser l'instruction EXEC

Ex: EXEC["-v1", "-c", "public", "222.222.222.222", ".1.3.6.4.119866.1.2.1.0"] TO Variable

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
codex#3 Posté le 27/5/2014 à 16:43:34
À bas la vermine ! disait le debogueuren tout cas merci de la rapide réponse, j'avais déjà un peu taquiné la chose au niveau du code sans la gestion d'erreur.

Cela ne fonctionne pas encore malgrès tout. lorsque je rajoute la variable au code comme ceci:
$ Shell "snmpget -v1 -c public 222.222.222.222 .1.3.6.4.119866.1.2.1.0 2>&1" To Variable

la réponse disparaît de la console sans message supplémentaire et la variable est vide.

Exactement identique avec Exec comme préconisé.

Je re-verifie le reste des objets de mon code,il doit y avoir erreur de mon côté.....

Donc tout est bon selon votre aide. l'objet ValueBox ne pouvait pas prendre un String
(erreur de débutant :P )

Au moins notre petite conversation aura renseigné aussi ceux qui veulent integrer des requêtes snmp dans Gambas

@ bientôt ;)
linuxos#4 Posté le 28/5/2014 à 03:43:01
Un peu de sel, de poivre et la crevette sera... Bonsoir,

Si cela peut aider, je developpe un logiciel en Gambas depuis 8 ans de métrologie dont la principale tache est de faire de requête snmp pour créer des graphiques.
C'est un logiciel de métrologie, dans le même genre que Cacti;

Donc j'ai beaucoup travaillé sur la partie SNMP.

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
codex#5 Posté le 28/5/2014 à 08:02:03
À bas la vermine ! disait le debogueurAh d'accord Olivier pour l'aplication de métrologie, en 8 années l'outil doit être bien affûté. Pour cette aplication, je fais tout simplement de l'acquisition de données analogiques qu'un serveur snmp distant me renvoie. Pour la suite, il me sera nécessaire d' archiver et faire des graphiques. Pour mon cas c'est du pro-loisir dans un environnement préféré.

On se recroisera sûrement par ici :o


1