Bonjour à tous,

Je suis débutant en java, et je voudrais savoir comment adapter le programme suivant pour récupérer des trames NMEA d'un récepteur GPS via le port série du PC.
Dans la méthode de communication (milieu du programme) qu'est ce qui faudrait que je change pour récupérer les trames du récepteur GPS?

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
import javax.comm.*;
	import java.io.*;
	
	
	
	
	public class Flux {

		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
		/**
		 * Constructeur
		 */
		public Flux(String port) {
			//initialisation du driver
		
			//récupération de l'identifiant du port
			try {
				portId = CommPortIdentifier.getPortIdentifier("COM5");
			} catch (NoSuchPortException e) {
			}
			//ouverture du port
			try {
				sPort = (SerialPort) portId.open("Flux", 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) {
			}
		}
		/** 
		 * Méthode de communication.
		 */
		public String communique(char envoie) {
			String poids = null;
			try {
				//demande de poids
				outStream.write((int) envoie);
				//lecture du poids 
				poids = bufRead.readLine().trim();
			} catch (IOException e) {
			}
			return poids;
		}
		/**
		 * Méthode de fermeture des flux et port.
		 */
		public void close(){
			try {
				bufRead.close();
				outStream.close();
			} catch (IOException e) {
			}
			sPort.close();
		}
		/**
		 * Méthode principale de l'exemple.
		 */
		public static void main(String[] args) {
			
			
			
			//Récupération du port en argument
			String port = args[0];
			//Construction de l'interface à la balance
			Flux utilFlux = new Flux(port);
			//"interface utilisateur"
			System.out.println("taper q pour quitter, ou ENTER pour le poids");
			//construction flux lecture
			BufferedReader clavier =
				new BufferedReader(new InputStreamReader(System.in));
			//lecture sur le flux entrée.
			try {
				String lu = clavier.readLine();
				while (!lu.equals("q")) {
					System.out.println(utilFlux.communique('$'));
					lu = clavier.readLine();
				}
			} catch (IOException e) {
			}
			utilFlux.close();
		}
	}
Merci d'avance