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

avec Java Discussion :

Reception port UDP écriture Port COM


Sujet :

avec Java

  1. #1
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut Reception port UDP écriture Port COM
    Bonsoir,
    j'essaye désespérément d’écrire sur un port COM des données reçu via un port UDP.
    Code UDP
    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
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
     
    public class UDPReceive {
     
     
      public static void main(String args[]) throws Exception {
          UtilisationFlux toto = new UtilisationFlux();
     
        try {
          int port = 6020;
          DatagramSocket dsocket = new DatagramSocket(port);
          byte[] buffer = new byte[2048];
          DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
          while (true) {
            dsocket.receive(packet);
            String msg = new String(buffer, 0, packet.getLength());
           // System.out.println(packet.getAddress().getHostName() + ": "
              //  + msg);
           toto.essai(msg);
            packet.setLength(buffer.length);
          }
        } catch (Exception e) {
          System.err.println(e);
        }
      }
    }
    Class 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
    import javax.comm.*;
     
    import java.io.OutputStream;
    import java.util.Enumeration;
     
    public class UtilisationFlux {
     
    	static Enumeration ports;
        static CommPortIdentifier pID;
        static OutputStream outStream;
        SerialPort serPort;
     
    	public UtilisationFlux() throws Exception {
     
    		  serPort = (SerialPort)pID.open("PortWriter",100);
            outStream = serPort.getOutputStream();
            serPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
            SerialPort.STOPBITS_1,
            SerialPort.PARITY_NONE);
    	}   /**
         * @param args the command line arguments
         */
     
           public void essai(String message) 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("COM1"))
                    {
                        UtilisationFlux pWriter = new UtilisationFlux();
                        System.out.println("COM1 found");
                    }
                }
            }
            outStream.write(message.getBytes());
            serPort.close();
           }
     
    }
    Et J'obtiens ca comme erreur:
    Exception in thread "main" java.lang.NullPointerException
    at modeevenement.UtilisationFlux.<init>(UtilisationFlux.java:27)
    at modeevenement.UDPReceive.main(UDPReceive.java:14)
    Java Result: 1
    soit les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    serPort = (SerialPort)pID.open("PortWriter",100);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UtilisationFlux toto = new UtilisationFlux();
    Si quelqu'un a une idée.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur logiciel embarqué
    Inscrit en
    Juillet 2002
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur logiciel embarqué
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2002
    Messages : 389
    Points : 1 178
    Points
    1 178
    Par défaut
    quant tu fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    static CommPortIdentifier pID;
    .
    .
    .
    pID.open("PortWriter",100);
    pID == null car tu n'a pas appelé le constructeur de pid.


    soit tu n'a jamais fait de java, soit tu n'a pas trop chercher soit c'est un signe que tu devrais aller dormir

    Mais bon j'ai appris qu'on pouvais écrire sur un port com en java du coup merci !

  3. #3
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Merci, mais pourquoi quand je fais
    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
    import java.io.*;
    import javax.comm.*;
    import java.util.*;
     
    public class PortWriter
    {
        static Enumeration ports;
        static CommPortIdentifier pID;
        static OutputStream outStream;
        SerialPort serPort;
        static String messageToSend = "message!\n";
     
        public PortWriter() throws Exception{
            serPort = (SerialPort)pID.open("PortWriter",2000);
            outStream = serPort.getOutputStream();
            serPort.setSerialPortParams(9600, SerialPort.DATABITS_8,
            SerialPort.STOPBITS_1,
            SerialPort.PARITY_NONE);
        }    
     
        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("COM1"))
                    {
                        PortWriter pWriter = new PortWriter();
                        System.out.println("COM1 found");
                    }
                }
            }
            outStream.write(messageToSend.getBytes());
        }
    }
    j'arrive a ecrire sur le port COM. Et pourtant je n'appelle pas le constructeur de pID.
    En fait ce que je souhaite c'est que soit = aux données du port UDP.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Reception et envoi sur port COM RS232
    Par foujino dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/02/2009, 09h34
  2. Emettre sur 1 port UDP et réception avec 2 process
    Par dagosgil dans le forum Développement
    Réponses: 1
    Dernier message: 05/09/2007, 23h20
  3. [Système] Tester un port UDP avec PHP
    Par kanaziwok dans le forum Langage
    Réponses: 17
    Dernier message: 16/07/2007, 15h01
  4. Réception sur même port UDP par 2 appli
    Par Yannick_from_31 dans le forum Langage
    Réponses: 4
    Dernier message: 19/06/2007, 16h36
  5. Envoyer des paquets vers un port UDP spécifique
    Par be_tnt dans le forum Réseau
    Réponses: 8
    Dernier message: 15/06/2006, 17h16

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