Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 08-11-2009 20:19:32

ger-le-sky
Membre
Distrib. : squeeze
Noyau : 2.6.30.2.686
(G)UI : Gnome 2.26.3
Inscription : 13-09-2009

script perl qui envoi une commande AT à récuper dans conky

salut le monde,

j'aimerais faire un script qui lance wvdial et si connexion établie (ppp0), lance conky

#!/bin/sh

if

sudo wvdial

then

if [ ps aux |grep /usr/sbin/pppd ]

then

conky -c /home/zorg/.conkyrc/conky3G

fi
  fi


je pense que j'ai tout faux , de l'aide serait la bien venu . merci big_smile

Dernière modification par ger-le-sky (09-11-2009 19:10:11)


Laptop : Asus G2P - ATI mobility radeon X1700 - Ubuntu 9.10
Virtualbox : Debian squeeze
screenshot  shère compiz desktop

Hors ligne

#2 08-11-2009 20:39:01

Thuban
Modérateur
Distrib. : OpenBSD
Noyau : current
(G)UI : xfce ou dwm
Inscription : 09-01-2009
Site Web

Re : script perl qui envoi une commande AT à récuper dans conky

je ne suis pas très doué, je bidouille moi aussi pour arriver à mes fins. C'est pouquoi on m'a filé ce lien aujourd'hui, alors je te le fais passer si ça t'intéresse :

http://abs.traduc.org/abs-5.1-fr/index.html

YA3HGA-H

Hors ligne

#3 09-11-2009 10:11:19

ger-le-sky
Membre
Distrib. : squeeze
Noyau : 2.6.30.2.686
(G)UI : Gnome 2.26.3
Inscription : 13-09-2009

Re : script perl qui envoi une commande AT à récuper dans conky

merci Thuban , un peu de lecture pourquoi pas smile

Laptop : Asus G2P - ATI mobility radeon X1700 - Ubuntu 9.10
Virtualbox : Debian squeeze
screenshot  shère compiz desktop

Hors ligne

#4 09-11-2009 10:29:40

ger-le-sky
Membre
Distrib. : squeeze
Noyau : 2.6.30.2.686
(G)UI : Gnome 2.26.3
Inscription : 13-09-2009

Re : script perl qui envoi une commande AT à récuper dans conky

#!/bin/sh

if [[ "`ls -1 /dev | grep ttyACM0`" != "" ]]

    then

                        echo "######################"

                        echo "# Connexion CABLE = OK"

                        echo "######################"

                        sudo wvdial



if [[ "`sudo ifconfig | grep ppp0`" != "" ]]
    then               
                        echo "######################"

                        echo "# connexion au reseau 3G = ok"

                        echo "######################"

                        conky -c /home/zorg/.conkyrc/conky3G

fi
   fi


une petite amélioration mais ça ne fonctionne toujours pas


Laptop : Asus G2P - ATI mobility radeon X1700 - Ubuntu 9.10
Virtualbox : Debian squeeze
screenshot  shère compiz desktop

Hors ligne

#5 09-11-2009 11:30:08

palmito
Administrateur
Lieu : Dans la boite de gâteau!
Distrib. : bah....
Noyau : heu...
(G)UI : gné?
Inscription : 28-05-2007

Re : script perl qui envoi une commande AT à récuper dans conky

Salut

Attend que le pro du script passe dans le coin wink

Hors ligne

#6 09-11-2009 14:52:21

ger-le-sky
Membre
Distrib. : squeeze
Noyau : 2.6.30.2.686
(G)UI : Gnome 2.26.3
Inscription : 13-09-2009

Re : script perl qui envoi une commande AT à récuper dans conky

sinon je peut me connecté à la 3G grave à networkmanager , j'aimerais pouvoir lancer conky lorsqu'il est connecté au GSM SFR ttyACM0

Laptop : Asus G2P - ATI mobility radeon X1700 - Ubuntu 9.10
Virtualbox : Debian squeeze
screenshot  shère compiz desktop

Hors ligne

#7 09-11-2009 17:35:22

ger-le-sky
Membre
Distrib. : squeeze
Noyau : 2.6.30.2.686
(G)UI : Gnome 2.26.3
Inscription : 13-09-2009

Re : script perl qui envoi une commande AT à récuper dans conky

je me suis débrouiller autrement merci bien

Laptop : Asus G2P - ATI mobility radeon X1700 - Ubuntu 9.10
Virtualbox : Debian squeeze
screenshot  shère compiz desktop

Hors ligne

#8 09-11-2009 19:15:10

ger-le-sky
Membre
Distrib. : squeeze
Noyau : 2.6.30.2.686
(G)UI : Gnome 2.26.3
Inscription : 13-09-2009

Re : script perl qui envoi une commande AT à récuper dans conky

nouvelle idée de script , créer un scripte perl qui envoi une commande AT (à savoir "AT+CSQ") à mon modem 3G ( ttyACM0) pour récupérer la qualité du signal qui sera affcihé dans conky...

dur dur...

j'ai trouver un example de script perl dans lequel piqué les "commandes"

sub signal_strength
{
   my ($signal)= (&send_cmd("AT\+CSQ") =~ /\+CSQ\: (\d+),.*/i);
   return ($signal);
}


le script entier

#! /usr/bin/perl -w

use Device::SerialPort;
use Getopt::Long;

$version=0.1;

########################################
#
# GPL - http://www.equinoxefr.org
#
########################################

$DEVICE="/dev/ttyHS3";
my $port=Device::SerialPort->new($DEVICE);

sub send_cmd ($)
{
    my $cmd = shift;
    $port->write("$cmd\r");
    my $result="";
    $result=$port->input until ($result =~ /.*OK./ || $result =~ /.*ERROR./);
    $result=~ s/OK\r\n//g;
    return $result;
}

sub setup_port
{
    $port->baudrate(19200);
    $port->parity("odd");
    $port->databits(8);
    $port->stopbits(1);
}

sub signal_strength
{
   my ($signal)= (&send_cmd("AT\+CSQ") =~ /\+CSQ\: (\d+),.*/i);
   return ($signal);
}

sub network_capabilities
{
    my $capa="";
    my $result = &send_cmd("AT+WS46=?");
    if ( $result =~ /12/)
    {
    $capa .= "GSM\n"
    }
    if ( $result =~ /22/)
    {
    $capa .= "3G\n"
    }
    if ( $result =~ /25/)
    {
    $capa .= "GPRS\n"
    }

    return $capa;
}

sub hardware_infos
{
    my ($hw_info) = &send_cmd("ATI");
    my ($imei,$serial) = (&send_cmd("AT+CGSN") =~ m/(.*?),(.*?)\r\n/);
    return "$hw_info IMEI: $imei\n Serial Number: $serial\n";
}

my $hw;
my $net;
my $ver;
my $help;
my $pin;
my $connect;
my $disconnect;
my $apn="orange";


GetOptions ('help' => \$help, 'version' => \$ver, 'hw' => \$hw, 'net' => \$net, 'pin=s' => \$pin, 'connect' => \$connect, 'disconnect' => \$disconnect, 'apn=s' => \$apn);


&setup_port();

if (defined($help))
{
    print "Usage:\n";
    print "\t--help: this message :-)\n";
    print "\t--version: version of $0\n";
    print "\t--hw: information about your 3G hardware\n";
    print "\t--net: information about network capabilities\n";
    print "\t--pin=XXXX: PIN number\n";

}

if (defined($ver))
{
    print "Version: $version\n";
}

if (defined($hw))
{

    print "Hardware informations:\n";
    print &hardware_infos;
}

if (defined($net))
{
    printf ("Signal Quality:%s\n",&signal_strength());
    printf ("Network capabilities:\n%s",&network_capabilities);
}

if (defined ($connect))
{
    print "Connecting\n";
    &send_cmd("ATZ");   
    printf ("Signal Quality:%s\n",&signal_strength());
    if ( !defined($pin))
    {
    print "No PIN provided, enter it now:";
    $pin=<STDIN>;
    chomp($pin);
    }
    #&send_cmd("ABORT ERROR");
    #&send_cmd("TIMEOUT 10");
   
    my $result = &send_cmd("AT+CPIN=$pin");
    if ($result =~ /ERROR/)
    {
        print "Warning ERROR in PIN:\n$result\n";
        exit -1;
    }
    $result = &send_cmd("AT+COPS=0");
    $result = &send_cmd("AT+COPS=?");
    print "$result\n";
}


if (defined ($disconnect))
{
    print "Disconnecting\n";
}

undef $port;


s'il y a une âme charitable pour m'aider car je galère un max...


Laptop : Asus G2P - ATI mobility radeon X1700 - Ubuntu 9.10
Virtualbox : Debian squeeze
screenshot  shère compiz desktop

Hors ligne

Pied de page des forums