Hallo allemaal,
Ik ben voor een schoolopdracht bezig met een GPS ontvanger en een java programma. Nu heb ik het probleem dat ik op de een of andere manier moet dedecteren dat het apparaat niet meer aan de COM poort hangt. Er wordt wel een event getriggerd op het moment dat ik de GPS ontvanger van het apparaat af haal, maar ik heb geen idee hoe ik dat event moet opvangen. Ik krijg de volgende melding:
Er is helemaal nergens iets te vinden over dat Event. Op http://java.sun.com vind je helemaal niks terug (*klik*), en op Google is het allemaal C/C++ en geen Java, dus dat schiet ook niet op.
Weet iemand hoe ik kan dedecteren of het apparaat er nog aan hangt?
Hieronder de code die ik nu heb:
Ik ben voor een schoolopdracht bezig met een GPS ontvanger en een java programma. Nu heb ik het probleem dat ik op de een of andere manier moet dedecteren dat het apparaat niet meer aan de COM poort hangt. Er wordt wel een event getriggerd op het moment dat ik de GPS ontvanger van het apparaat af haal, maar ik heb geen idee hoe ik dat event moet opvangen. Ik krijg de volgende melding:
code:
1
| WaitCommEvent: Error 5 |
Er is helemaal nergens iets te vinden over dat Event. Op http://java.sun.com vind je helemaal niks terug (*klik*), en op Google is het allemaal C/C++ en geen Java, dus dat schiet ook niet op.
Weet iemand hoe ik kan dedecteren of het apparaat er nog aan hangt?
Hieronder de code die ik nu heb:
code:
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
| package gps;
import javax.comm.*;
import java.io.*;
import java.util.TooManyListenersException;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class LegacyGps extends GpsImplementor implements SerialPortEventListener, CommPortOwnershipListener
{
private InputStream is;
private CommPortIdentifier portId;
private SerialPort sPort;
private String str_GPSData, str_COMport = "COM10";
private int int_BaudRate = 4800, int_DataBits = 8, int_StopBits = 1, int_ParityBit = 0;
public void run()
{
openConnectie();
}
public void openConnectie()
{
try
{
portId = CommPortIdentifier.getPortIdentifier(this.str_COMport);
sPort = (SerialPort) portId.open("iWalk", 30000);
sPort.setSerialPortParams(int_BaudRate, int_DataBits, int_StopBits, int_ParityBit);
is = sPort.getInputStream();
sPort.addEventListener(this);
sPort.notifyOnDataAvailable(true);
sPort.notifyOnBreakInterrupt(true);
sPort.notifyOnFramingError(true);
sPort.notifyOnOverrunError(true);
sPort.notifyOnParityError(true);
sPort.enableReceiveTimeout(30);
sPort.notifyOnCarrierDetect(true);
portId.addPortOwnershipListener(this);
}
// alle catch-statements
}
public void serialEvent(SerialPortEvent serialPortEvent)
{
// Create a StringBuffer and int to receive input data.
StringBuffer inputBuffer = new StringBuffer();
int newData = 0;
// Determine type of event.
switch (serialPortEvent.getEventType())
{
// Read data into inputbuffer
refreshPosition(new String(inputBuffer));
break;
// If break event append BREAK RECEIVED message.
case SerialPortEvent.BI:
System.out.println("--- BREAK RECEIVED ---");
System.exit(1);
break;
case SerialPortEvent.FE:
case SerialPortEvent.OE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
if(sPort.isCD())
{
System.out.println( "Er gaat nu dus iets fout" );
}
else
{
System.out.println( "nu gaat het goed" );
}
break;
}
}
private void showException(Exception e)
{
//laat relevante info zien
}
} |
[ Voor 45% gewijzigd door Verwijderd op 21-12-2005 15:15 ]