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

Eclipse Java Discussion :

communication avec port series en java


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut communication avec port series en java
    Je veux savoir pourquoi mon code ci-dessous se bloque à l'execution se bloque.

    j'ai écrit un code en java qui permet de communiquer avec le port seris d'un pc ,mais à la compilation ,le programme se bloque au niveau
    de linstruction "po.reponse()" du main
    Mon mail est "gnamienrassou@hotmail.com"

    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
    import javax.comm.*;
     
    import com.sun.comm.Win32Driver;
     
    import java.io.*;
    //import java.util.*;
     
    public class Port 
    {
    	public CommPortIdentifier cpi;
    	public CommPort cp;
    	static InputStream is;
    	static OutputStream os;
    	private BufferedReader bufRead; //flux de lecture du port
    	static PrintStream ps;
    	static String portname;
    	static SerialPort sp;
     
     
    	public Port(String pn)
    	{
    		portname=pn;
    	}
    	public void open() throws IOException, NoSuchPortException, PortInUseException,
        UnsupportedCommOperationException 
        {   
    		try
    		{
    			//initialisation du driver
    			Win32Driver w32Driver = new Win32Driver();
    			w32Driver.initialize();
    		cpi=CommPortIdentifier.getPortIdentifier(portname);
    		System.out.println("Port"+portname );
    		cp=cpi.open("sms",2000);
    	    sp=(SerialPort)cp;
    	    System.out.println("Port ouvert ");
    	    sp.setSerialPortParams(9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
    	    os=cp.getOutputStream();
    	    ps =new PrintStream(os);
    	    bufRead =
    			new BufferedReader(
    				new InputStreamReader(sp.getInputStream()));
           		}
    		catch(Exception ed)
    		{
    			System.out.println("on ne pe pas trouver le port");
    		}
        }
     
    	public void close()
        {
     
    	 cp.close();
     
     
        }
     
        public void send(String commande)
        {
         ps.print(commande);
    	 ps.print("\r\n");
    	}
     
    	public String reponse()
    	{     
    	    String rep=null;
    	         try
    	         {System.out.println("essai ");  
    	          rep=bufRead .readLine();
    	         }
    			 catch(IOException ert)
    			 {
    			 	System.out.println("Impossible de lire sur le port");
    			 }
    			 return rep;
    	}
     
     
    public static void main (String[] Args) throws IOException, NoSuchPortException, PortInUseException, UnsupportedCommOperationException
    {
    	Port po=new Port("COM1");
    	String r1;
    	po.open();
    	po.send("AT+CMEE=1");
    	r1=po.reponse();
    	System.out.println(r1);
    	po.close();
    }
     
    }

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    L'instruction "readLine()" d'un buffer est blocante. Tant que rien n'écrit sur ton port COM, le programme attendra à cette ligne de ta méthode "reponse()".
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

Discussions similaires

  1. Communication port serie en java
    Par rimas2009 dans le forum Général Java
    Réponses: 3
    Dernier message: 24/04/2009, 16h59
  2. Communication avec port Serie Com1 / Com2
    Par god_enel dans le forum Windows
    Réponses: 2
    Dernier message: 26/03/2009, 22h50
  3. Communication avec port Serie Com1 / Com2
    Par god_enel dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 24/03/2009, 10h41
  4. communication avec port serie
    Par seignseifer dans le forum C++
    Réponses: 2
    Dernier message: 14/03/2007, 09h34
  5. communication avec port serie
    Par seignseifer dans le forum C++
    Réponses: 1
    Dernier message: 28/02/2007, 02h56

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