factored commonalitied between Expedition and SwissTiming UDP receivers

This commit is contained in:
Axel Uhl committed 2011-08-29 17:59:24 +02:00
1 parent b880f8a51b
commit 3fd911764c
39 files changed
+460 -227

No files matched your search

@@ -5,5 +5,6 @@ Bundle-SymbolicName: com.sap.sailing.domain.swisstimingadapter
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: com.sap.sailing.domain
Require-Bundle: com.sap.sailing.domain,
com.sap.sailing.udpconnector
Export-Package: com.sap.sailing.domain.swisstimingadapter
@@ -1,6 +1,6 @@
package com.sap.sailing.domain.swisstimingadapter;
public class SwissTimingFormatException extends Exception {
public class SwissTimingFormatException extends RuntimeException {
private static final long serialVersionUID = -1210353206288437237L;
private final byte[] swissTimingMessage;
@@ -0,0 +1,5 @@
package com.sap.sailing.domain.swisstimingadapter;
public interface SwissTimingListener {
void received(SwissTimingMessage message);
}
@@ -3,8 +3,9 @@ package com.sap.sailing.domain.swisstimingadapter;
import com.sap.sailing.domain.base.Position;
import com.sap.sailing.domain.base.Speed;
import com.sap.sailing.domain.base.TimePoint;
import com.sap.sailing.udpconnector.UDPMessage;
public interface SwissTimingMessage {
public interface SwissTimingMessage extends UDPMessage {
String getRaceID();
int getPacketID();
@@ -0,0 +1,6 @@
package com.sap.sailing.domain.swisstimingadapter;
import com.sap.sailing.udpconnector.UDPMessageListener;
public interface SwissTimingMessageListener extends UDPMessageListener<SwissTimingMessage> {
}
@@ -1,8 +1,9 @@
package com.sap.sailing.domain.swisstimingadapter;
import com.sap.sailing.domain.swisstimingadapter.impl.SwissTimingMessageParserImpl;
import com.sap.sailing.udpconnector.UDPMessageParser;
public interface SwissTimingMessageParser {
public interface SwissTimingMessageParser extends UDPMessageParser<SwissTimingMessage> {
SwissTimingMessageParser INSTANCE = new SwissTimingMessageParserImpl();
SwissTimingMessage parse(byte[] message) throws SwissTimingFormatException;
@@ -29,6 +29,11 @@ public class SwissTimingMessageImpl implements SwissTimingMessage {
this.batteryPercent = batteryPercent;
this.length = length;
}
@Override
public boolean isValid() {
return true;
}
@Override
public String getRaceID() {
@@ -1,5 +1,7 @@
package com.sap.sailing.domain.swisstimingadapter.impl;
import java.net.DatagramPacket;
import com.sap.sailing.domain.base.impl.DegreeBearingImpl;
import com.sap.sailing.domain.base.impl.DegreePosition;
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
@@ -84,4 +86,9 @@ public class SwissTimingMessageParserImpl implements SwissTimingMessageParser {
return result;
}
@Override
public SwissTimingMessage parse(DatagramPacket p) throws SwissTimingFormatException {
return parse(p.getData(), p.getOffset());
}
}
@@ -0,0 +1,24 @@
package com.sap.sailing.domain.swisstimingadapter.impl;
import java.net.SocketException;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingMessage;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingMessageListener;
import com.sap.sailing.udpconnector.UDPMessageParser;
import com.sap.sailing.udpconnector.UDPReceiver;
public class SwissTimingUDPReceiverImpl extends UDPReceiver<SwissTimingMessage, SwissTimingMessageListener> {
private final SwissTimingMessageParserImpl parser;
public SwissTimingUDPReceiverImpl(int port) throws SocketException {
super(port);
parser = new SwissTimingMessageParserImpl();
}
@Override
protected UDPMessageParser<SwissTimingMessage> getParser() {
return parser;
}
}