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 137 138 139 140 141
| /**
* Programme de Communication Liaison série
* @version 1.0
*/
package communication;
import javax.comm.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import com.sun.comm.Win32Driver;
public class C_com {
protected BufferedReader m_bufRead; //flux de lecture du port
protected OutputStream m_outStream; //flux d'écriture du port
protected CommPortIdentifier m_portId; //identifiant du port
protected SerialPort m_sPort; //le port série
protected int m_flowControlIn=SerialPort.FLOWCONTROL_RTSCTS_IN;
private String m_Port_com = "COM1";
private int m_Bits_donnees = SerialPort.DATABITS_8;
private int m_Parite = SerialPort.PARITY_NONE;
private int m_Bits_stop = SerialPort.STOPBITS_1;
private int m_Vitesse = 1200;
//***************************************************************************************************//
/**
* Constructeur de la classe C_com
*/
public C_com(){open (m_Port_com , m_Vitesse,m_Bits_donnees,m_Bits_stop,m_Parite);}
//*******************************************************************************************//
/**
* Methode d'ouverture de la liaison série
*
*/
public void open (String port_com, int vitesse, int bits_donnees, int bits_stop, int parite){
/**
* initialisation du driver
*/
Win32Driver Driver = new Win32Driver();
Driver.initialize();
/**
* récupération de l'identifiant du port
*/
try {
m_portId = CommPortIdentifier.getPortIdentifier(m_Port_com);}
catch (NoSuchPortException e) {System.out.println("Port introuvable");}
/**
* Ouverture du port
*/
try {
m_sPort = (SerialPort) m_portId.open("UtilisationFlux", 30000);}
catch (PortInUseException e) {e.printStackTrace();}
/**
* règle les paramètres de la connexion, control de flux et le Timeout
*/
try {
m_sPort.setFlowControlMode(m_flowControlIn);
m_sPort.enableReceiveTimeout(3000); //si on recoit rien au bout de 5s on sort du read
m_sPort.setSerialPortParams(m_Vitesse,m_Bits_donnees,m_Bits_stop,m_Parite);}
catch (UnsupportedCommOperationException e) {e.printStackTrace();}
/**
* récupération du flux de lecture et écriture du port
*/
try {
m_outStream = m_sPort.getOutputStream();
m_bufRead =new BufferedReader(new InputStreamReader(m_sPort.getInputStream()));}
catch (IOException e) {e.printStackTrace();}
}
//**************************************************************************************//
/**
* Changer les paramètres par défaut
*
*/
public void change(String m_port_com,int m_Vitesse,int m_Bits_donnees,int m_Bits_stop,int m_Parite){
close();
open(m_port_com,m_Vitesse,m_Bits_donnees,m_Bits_stop,m_Parite);}
//****************************************************************************************//
/**
* Méthode de communication générique : lecture d'une ligne de chaines de caractères (readline())
* @return reponse
*/
public String communique(String envoi){
String reponse = null;
try{
//Demande
m_outStream.write(envoi.getBytes());
//Lecture
reponse = m_bufRead.readLine().trim();}
catch (IOException e){e.printStackTrace();}
return reponse;}
//******************************************************************************************//
/**
* La méthode de fermeture des flux et du port
*
* @exception fermeture du port
*/
public void close(){
try {
m_bufRead.close();
m_outStream.close();
m_sPort.close();}
catch (IOException e) {}
m_sPort.close();}
//*****************************************************************************************//
/**
* Les accesseurs
*/
public int get_bitsdonnees(){return m_Bits_donnees;}
public int get_parite(){return m_Parite;}
public int get_bitsstop(){return m_Bits_stop;}
public int get_vitesse(){return m_Vitesse;}
public String get_portcom(){return m_Port_com;}
public void set_bitsdonnees(int p_donnees){m_Bits_donnees=p_donnees;}
public void set_parite(int p_parite){m_Parite=p_parite;}
public void set_bitsstop(int p_bitsstop){m_Bits_stop=p_bitsstop;}
public void set_vitesse(int p_vitesse){m_Vitesse=p_vitesse;}
public void set_portcom(String p_port){m_Port_com=p_port;}
} |
Partager