Pourquoi?
Suite à un accident de moto, je me retrouve dans une chaise toute la journée à developper des bouts de code ici et là et pour tout et n'importe quoi. Je bricole en C, C++, Python et quelques macro en VB. Un collegue me tanne pour commencer le java, donc je me lance sur un projet qui me tient à coeur.

Le projet final consiste à developper un soft de répondeur automatique RTC.
Je gère des stations de mesure automatique disséminées un peu partout, mais qui sont toutes connectées sur RTC ou GSM. Ces dernières peuvent renvoyer des alarmes à un numéro de telephone. Le but est donc de récuperer ces infos, les enregistrer et enventuellement les dispatcher par mail et/ou par SMS.

Le pseudo algorithme serait le suivant:
Attendre un appel
Decrocher
Ecouter
Acquiter
Racrocher
Enregistrer les infos
Dispatcher si necessaire

Coté matériel et logiciel, je dispose de tout le necessaire, modem RTC externe, modem GSM, 2 ports com libres, une ligne RTC, une carte SIM,java,eclipse et internet

Bien évidemment, je ne me lance pas d'un bloc dans ce projet, j'essaye de découper un peu le travail, donc dans un premier temps, je voudrais bien comprendre comment fonctionne l'interface modem et je bloque déjà
Voici le 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
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
import java.io.*;
import java.util.*;
import javax.comm.*;
import com.sun.comm.Win32Driver;
 
 
 
public class UtilisationFlux {
	static CommPortIdentifier portId;
	static Enumeration portList;
	private SerialPort sPort; //le port série
	private BufferedReader bufRead; //flux de lecture du port
	private OutputStream outStream; //flux d'écriture du port
 
 
 
 
	public UtilisationFlux(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", 10000);
		} 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 String communique(int envoie) {
		String poids = null;
		try {
			//demande de poids
			outStream.write(envoie);
			//lecture du poids 
			poids = bufRead.readLine().trim();
		} catch (IOException e) {
		}
		return poids;
	}
 
	public String communique() {
		String poids = null;
		String envoie = "ATD0612345678";
		try {
			outStream.write(41);
			poids = bufRead.readLine().trim();
		} catch (IOException e) {
		}
		return poids;
	}
 
	public void close(){
		try {
			bufRead.close();
			outStream.close();
		} catch (IOException e) {
		}
		sPort.close();
	}
 
 
	public static void main(String[] args) {
		portList = CommPortIdentifier.getPortIdentifiers();
 
		//while (portList.hasMoreElements()) {
			portId =  (CommPortIdentifier) portList.nextElement();
			System.out.println (portId.getName());
		//}
 
		UtilisationFlux conversation = new UtilisationFlux(portId.getName());
		BufferedReader clavier = new BufferedReader(new InputStreamReader(System.in));
		int x=1;
		try
		{
			//String lu = clavier.readLine();
			while (x==1){
				System.out.println(conversation.communique());
 
			}
 
		}finally
		{
			conversation.close();
		}
 
 
	}
et l'erreur, en plus de ne pas numéroter
COM1
java.lang.NullPointerException
at UtilisationFlux.<init>(UtilisationFlux.java:36)
at UtilisationFlux.main(UtilisationFlux.java:92)
Exception in thread "main"

Quelqu'un a t'il eu le courage de tout lire?