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 :

Créer méthode configuration port de série


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut Créer méthode configuration port de série
    Bonjour à tous !

    Voilà je débute avec Java et je dois élaborer une interface qui va communiquer sur un port java.

    Je me suis servi de l'exemple donné sur le tuto ici en utilisation des flux.

    J'ai créé dans mon interface un menu déroulant (JComboBox) listant mes ports série, la vitesse à choisir du port, son nombre de bits de données, son nombre de bits de stop et sa parité.

    J'arrive à récupérer dans une chaîne la valeur de l'item choisi pour chacun des menus déroulants mais je n'arrive pas à trouver comment rentrer ces informations dans la classe donné dans le tuto pour pouvoir modifier le port et ses caractéristiques ?

    J'ai vu que le port était déjà donné en argument dans cette classe mais là j'avoue que je suis perdu...

    Quelqu'un aurait-il une idée ? Si il faut créer une nouvelle méthode ?

    Merci d'avance pour vos réponses !!

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Citation Envoyé par trifly Voir le message
    mais je n'arrive pas à trouver comment rentrer ces informations dans la classe donné dans le tuto pour pouvoir modifier le port et ses caractéristiques ?

    J'ai vu que le port était déjà donné en argument dans cette classe mais là j'avoue que je suis perdu...
    Donne ton code.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut
    Ok voici mon 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
    public class EcritureSerie {
     
    	private BufferedReader bufRead; // flux de lecture du port
    	private OutputStream outStream; // flux d'écriture du port
    	private CommPortIdentifier portId; // identifiant du port
    	private SerialPort sPort; // le port série
     
    	public EcritureSerie(String port) {
     
    		// initialisation du driver
    		Win32Driver w32Driver = new Win32Driver();
    		w32Driver.initialize();
     
    		// récupération de l'identifiant du port
    		try {
    			portId = CommPortIdentifier.getPortIdentifier(port);
    		} catch (NoSuchPortException e) {
    		}
     
    		// ouverture du port
    		try {
    			sPort = (SerialPort) portId.open("UtilisationFlux", 30000);
    		} catch (PortInUseException e) {
    		}
     
    		// règle les paramètres de la connexion
    		try {
    			sPort.setSerialPortParams(9600, SerialPort.DATABITS_8,	SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
    		} catch (UnsupportedCommOperationException e) {
    		}
     
    		// récupération du flux de lecture et écriture du port
    		try {
    			outStream = sPort.getOutputStream();
    			bufRead = new BufferedReader(new InputStreamReader(sPort.getInputStream()));
    		} catch (IOException e) {
    		}
    	}
     
    	public void communique(char envoie) {
    		try {
    			// envoie du caractère
    			outStream.write(envoie);
    		} catch (IOException e) {
    		}
    	}
     
    	public void close() {
    		try {
    			bufRead.close();
    			outStream.close();
    		} catch (IOException e) {
    		}
    		sPort.close();
    	}
    }
    Merci !

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Il n'y a aucun JCombobox dans ton code
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 46
    Par défaut
    C'est parce que c'est la juste la classe pour communiquer sur le port série.

    Voici mon code pour l'interface :
    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
    public class Fenetre extends JPanel implements ActionListener {
     
    	public Fenetre() {
     
    		settings = new JPanel();
     
    		empty = new JLabel("");
     
     
    		// Panneau de configuration
     
    		panel_settings = new JPanel();
    		panel_settings.setLayout(new GridLayout(12, 1));
     
    		port_label = new JLabel("Please select the correct port : ");
    		panel_settings.add(port_label);
     
    		// Création menu déroulant - sélection du port
    		port_list_model = new DefaultComboBoxModel();
    		for (int i = 1; i <= 4; i++) {
    			port_list_model.addElement("COM" + i);
    		}
    		port_list = new JComboBox(port_list_model);
    		port_list.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				port_select = (port_list.getSelectedItem().toString());
    				System.out.println(port_select);
    			}
    		});
    		panel_settings.add(port_list);
     
    		speed_label = new JLabel("Please select the speed :  ");
    		panel_settings.add(speed_label);
     
    		// Création menu déroulant - sélection de la vitesse
    		speed_list_model = new DefaultComboBoxModel();
    		for (int i = 150; i <= 19200;) {
    			speed_list_model.addElement(i);
    			i = i * 2;
    		}
    		speed_list = new JComboBox(speed_list_model);
    		panel_settings.add(speed_list);
     
    		data_label = new JLabel("Please select the data bits number :  ");
    		panel_settings.add(data_label);
     
    		// Création menu déroulant - sélection du nombre des bits de données
    		data_list_model = new DefaultComboBoxModel();
    		for (int i = 5; i <= 8; i++) {
    			data_list_model.addElement(i);
    		}
    		data_list = new JComboBox(data_list_model);
    		panel_settings.add(data_list);
     
    		bit_stop_label = new JLabel("Please select the number of stop bit :  ");
    		panel_settings.add(bit_stop_label);
     
    		// Création menu déroulant - sélection du nombre de bits de stop
    		bit_stop_list_model = new DefaultComboBoxModel();
    		for (double i = 1; i <= 2;) {
    			bit_stop_list_model.addElement(i);
    			i = i + 0.5;
    		}
    		bit_stop_list = new JComboBox(bit_stop_list_model);
    		panel_settings.add(bit_stop_list);
     
    		parity_label = new JLabel("Please select the parity :  ");
    		panel_settings.add(parity_label);
     
    		// Création menu déroulant - sélection de la parité
    		parity_list_model = new DefaultComboBoxModel();
    		parity_list_model.addElement("None");
    		parity_list_model.addElement("Odd");
    		parity_list_model.addElement("Pair");
    		parity_list = new JComboBox(parity_list_model);
    		panel_settings.add(parity_list);
    		panel_settings.add(empty);
     
    		settings_change = new JButton("Change Configuration");
    		settings_change.addActionListener(this);
    		settings_change.setActionCommand("settings");
    		panel_settings.add(settings_change);
     
    		settings.add(panel_settings);
    		this.add(settings);
    	}
     
    	public static void main(String[] args) {
    		JFrame f = new JFrame();
    		Fenetre fen = new Fenetre();
    		f.setContentPane(fen);
    		f.setLocationRelativeTo(null);
    		f.pack();
    		f.setVisible(true);
    		f.setResizable(false);
    		f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
     
    	}
     
    	public void actionPerformed(ActionEvent e) {
    		serie = new EcritureSerie("COM1");
     
    		// Écoute de l'évènements sur l'onglet "Settings"
    		else if (e.getActionCommand() == "settings") {
    		}
    	}
    }
    Dans mon écouteur, je souhaiterai récupérer toutes les valeurs de mes JComboBox et modifier le choix du port et de sa config.

    Merci

Discussions similaires

  1. Configurer port com : -mode open et fconfigure
    Par julien M dans le forum Tcl/Tk
    Réponses: 1
    Dernier message: 11/10/2008, 20h55
  2. Erreur -1073807202 sur configuration port série
    Par Nephi dans le forum LabVIEW
    Réponses: 1
    Dernier message: 10/06/2008, 17h52
  3. Configuration port imprimante sur Win 95
    Par osiris4 dans le forum Windows 2000/Me/98/95
    Réponses: 1
    Dernier message: 07/11/2006, 19h15
  4. Configuration Port Série (RS232)
    Par Bmagic dans le forum MFC
    Réponses: 2
    Dernier message: 07/07/2006, 10h18

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