IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

API smslib envoie SMS pour le port USB


Sujet :

Java

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2012
    Messages : 109
    Points : 47
    Points
    47
    Par défaut API smslib envoie SMS pour le port USB
    Bonjour,

    J'ai un code source en Java qui est censé envoyer des SMS avec une connexion USB entre l'ordinateur et le mobile mais le problème est que le SMS est envoyé seulement après avoir déconnecté la prise USB.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    package packageExemple;
     
    import java.io.*;
    import javax.comm.*;
    import java.util.*;
     
    public class PortWriter {
     
        static Enumeration            ports;
        static CommPortIdentifier    pID;
        static OutputStream            outStream;
        static SerialPort            serPort;
        static BufferedReader        is    = null;
        static PrintStream            os;
        static int                    i    = 0;
     
        public PortWriter() throws Exception {
     
            try {
                // serPort = (SerialPort)pID.open("/dev/ttyUSB0",2000);
                serPort = (SerialPort) pID.open("COM3", 2000);
                System.out.println();
                System.out.println();
                serPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
     
                try {
                    is = new BufferedReader(new InputStreamReader(serPort.getInputStream()));
                } catch (IOException e) {
                    System.err.println("Can't open input stream: write-only");
                    is = null;
                }
     
                os = new PrintStream(serPort.getOutputStream(), true, "US-ASCII");
            } catch (PortInUseException e) {
                System.out.println("PortInUseException : " + e);
            } catch (Exception e) {
                System.out.println("PortInUseException : " + e);
            }
     
        }
     
        public static void main(String[] args) throws Exception {
     
            ports = CommPortIdentifier.getPortIdentifiers();
     
            while (ports.hasMoreElements()) {
                pID = (CommPortIdentifier) ports.nextElement();
                System.out.println("Port " + pID.getName());
     
                if (pID.getPortType() == CommPortIdentifier.PORT_SERIAL) {
                    if (pID.getName().equals("COM3")) {
                        PortWriter pWriter = new PortWriter();
                        System.out.println("USB found");
                        sendData();
     
                        try {
                            closingPort();
                        } catch (Exception e) {
                            System.out.println("error in calling closingPort()");
                            System.out.println(e.toString());
                        }
                    }
                }
            }
        }
     
        public static void sendData() {
     
            try {
                String sCMGF = "AT+CMGF=1\r\n";
                send(sCMGF);
                Thread.sleep(1000);
                readLine();
     
                String sCMGS = "AT+CMGS=\"+336xxxxxxxx\"\r\n";
                send(sCMGS);
                Thread.sleep(1000);
                readLine();
                String smsMessage = "hi test5666 testing done\032\r\n";
                send(smsMessage);
            } catch (Exception e) {
                System.out.println("could not write to outputstream:");
                System.out.println(e.toString());
            }
        }
     
        // called finally to close the port
        public static void closingPort() throws Exception {
     
            try {
                if (is != null)
                    is.close();
            } catch (IOException e) {
                System.out.println("could not close is");
                System.out.println(e.toString());
            }
     
            try {
                if (os != null)
                    os.close();
            } catch (Exception e) {
                System.out.println("could not close os");
                System.out.println(e.toString());
            }
     
            try {
                if (serPort != null)
                    serPort.close();
            } catch (Exception e) {
                System.out.println("could not close serPort");
                System.out.println(e.toString());
            }
        }
     
        // send the string to the gsm modem
        public static void send(String cmd) {
     
            try {
                os.write(cmd.getBytes());
            } catch (IOException e) {
                System.out.println("IO Exception : " + e);
            }
        }
     
        // to read line after each send of string
        public static void readLine() {
     
            try {
                // Read the response
                String response = is.readLine();
                System.out.println("Response is :" + response);
            } catch (IOException e) {
                System.out.println("IO Exception : " + e);
            }
        }
    }
    Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    Bonjour,
    mais le problème est que le SMS est envoyé seulement après avoir déconnecté la prise USB
    Quand tu parles de déconnecter, est-ce-que tu débranches totalement de l'ordi ou ... quoi ?

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2012
    Messages : 109
    Points : 47
    Points
    47
    Par défaut
    Oui c'est ça, il faut que je débranche le mobile par le câble USB entre l'ordinateur et le mobile pour que le SMS soit envoyé.

  4. #4
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 122
    Points : 327
    Points
    327
    Par défaut
    Je ne suis pas trop expert en envoi de SMS avec Java, je te réponds tout simplement logiquement en lisant le code.

    1ère remarque
    A la ligne 65, mets un break; pour sortir de la boucle parce que tu as déjà trouvé ton port.

    2ème remarque (ou plutôt une idée de ma part)
    Si ton SMS n'est envoyé que si le la prise USB est déconnectée c'est peut être parce que ton application Java n'est pas encore propriétaire du port tant que la prise USB est là. Essaie de faire de ton application la propriétaire du port lors de l'exécution du code et à la fin libère le port.

    3ème remarque
    Ligne 124, essaie d'ajouter

  5. #5
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2012
    Messages : 109
    Points : 47
    Points
    47
    Par défaut
    J'ai appliqué ce que tu ma recommandé mais je ne sais pas comment faire pour que mon application soit propriétaire du port COM3.

    As-tu un petit exemple car je cherche sur Google mais je ne trouve rien d’intéressant.

Discussions similaires

  1. Recherche API pour lecture port USB sous Linux
    Par pcouas dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 20/10/2013, 16h03
  2. Récupérer le port pour envoi sms
    Par DrMaboul dans le forum Java ME
    Réponses: 12
    Dernier message: 11/05/2009, 18h49
  3. API pour Port USB C#
    Par nasix dans le forum C#
    Réponses: 1
    Dernier message: 28/02/2009, 14h02
  4. Open "LPT1:" pour un port USB
    Par olosimam dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 09/07/2008, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo