use of net.sf.marineapi.nmea.util.Date in project marine-api by ktuukkan.
the class PositionProvider method createProviderEvent.
/*
* (non-Javadoc)
* @see net.sf.marineapi.provider.AbstractProvider#createProviderEvent()
*/
@Override
protected PositionEvent createProviderEvent() {
Position p = null;
Double sog = null;
Double cog = null;
Date d = null;
Time t = null;
FaaMode mode = null;
GpsFixQuality fix = null;
for (Sentence s : getSentences()) {
if (s instanceof RMCSentence) {
RMCSentence rmc = (RMCSentence) s;
sog = rmc.getSpeed();
try {
cog = rmc.getCourse();
} catch (DataNotAvailableException e) {
// If we are not moving, cource can be undefined. Leave null in that case.
}
d = rmc.getDate();
t = rmc.getTime();
if (p == null) {
p = rmc.getPosition();
if (rmc.getFieldCount() > 11) {
mode = rmc.getMode();
}
}
} else if (s instanceof VTGSentence) {
VTGSentence vtg = (VTGSentence) s;
sog = vtg.getSpeedKnots();
try {
cog = vtg.getTrueCourse();
} catch (DataNotAvailableException e) {
// If we are not moving, cource can be undefined. Leave null in that case.
}
} else if (s instanceof GGASentence) {
// Using GGA as primary position source as it contains both
// position and altitude
GGASentence gga = (GGASentence) s;
p = gga.getPosition();
fix = gga.getFixQuality();
// Some receivers do not provide RMC message
if (t == null) {
t = gga.getTime();
}
} else if (s instanceof GLLSentence && p == null) {
GLLSentence gll = (GLLSentence) s;
p = gll.getPosition();
}
}
// Ag-Star reciever does not provide RMC sentence. So we have to guess what date it is
if (d == null) {
d = new Date();
}
return new PositionEvent(this, p, sog, cog, d, t, mode, fix);
}
use of net.sf.marineapi.nmea.util.Date in project marine-api by ktuukkan.
the class ZDATest method testToDate.
/**
* Test method for {@link net.sf.marineapi.nmea.parser.ZDAParser#toDate()}.
*/
@Test
public void testToDate() {
Date d = new Date(2010, 6, 15);
Time t = new Time(12, 15, 30.246, 2, 0);
zda.setDate(d);
zda.setTime(t);
GregorianCalendar cal = new GregorianCalendar();
cal.set(Calendar.YEAR, 2010);
cal.set(Calendar.MONTH, 5);
cal.set(Calendar.DAY_OF_MONTH, 15);
cal.set(Calendar.HOUR_OF_DAY, 12);
cal.set(Calendar.MINUTE, 15);
cal.set(Calendar.SECOND, 30);
cal.set(Calendar.MILLISECOND, 246);
java.util.Date result = zda.toDate();
java.util.Date expected = cal.getTime();
assertEquals(expected, result);
assertEquals(expected.getTime(), result.getTime());
}
Aggregations