Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ITS - Intelligent Transport Systems
ITS
Commits
9e6bd6fa
Commit
9e6bd6fa
authored
Nov 01, 2016
by
garciay
Browse files
Add Marben UdpIp support
parent
7828f8be
Changes
2
Hide whitespace changes
Inline
Side-by-side
javasrc/adapter/org/etsi/its/adapter/layers/LayerFactory.java
View file @
9e6bd6fa
...
...
@@ -43,6 +43,7 @@ public class LayerFactory {
layers
.
put
(
"UdpIp"
,
UdpIpLayer
.
class
);
layers
.
put
(
"UdpIpCSG"
,
UdpIpCommsigniaLayer
.
class
);
layers
.
put
(
"CSG"
,
CommsigniaLayer
.
class
);
layers
.
put
(
"UdpIpMarben"
,
UdpIpMarbenLayer
.
class
);
// layers.put("Loopback", LoopbackLayer.class);
// layers.put("Debug", DebugLayer.class);
...
...
javasrc/adapter/org/etsi/its/adapter/layers/UdpIpMarbenLayer.java
0 → 100644
View file @
9e6bd6fa
package
org.etsi.its.adapter.layers
;
import
java.nio.ByteBuffer
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Stack
;
import
org.etsi.common.ByteHelper
;
import
org.etsi.its.adapter.IManagementLayers
;
import
org.etsi.its.adapter.UdpMultiplexer
;
public
class
UdpIpMarbenLayer
extends
UdpIpLayer
{
// Marben 88:ceres 182:Jupiter VM32G
private
static
String
UdpAddress
=
"192.168.7.182"
;
//"10.200.1.101"; // FIXME Use a generic way to retrieve UDP settings
private
static
int
UdpRecvPort
=
3751
;
//18501; // FIXME Use a generic way to retrieve UDP settings
private
static
int
UdpSendPort
=
3750
;
//18502; // FIXME Use a generic way to retrieve UDP settings
private
Map
<
String
,
Short
>
clientsToFrameTypes
=
new
HashMap
<
String
,
Short
>();
public
UdpIpMarbenLayer
(
IManagementLayers
management
,
Stack
<
String
>
lowerStack
)
{
super
(
management
,
lowerStack
);
UdpMultiplexer
.
getInstance
().
UdpAddress
=
UdpAddress
;
UdpMultiplexer
.
getInstance
().
UdpRecvPort
=
UdpRecvPort
;
UdpMultiplexer
.
getInstance
().
UdpSendPort
=
UdpSendPort
;
}
/* (non-Javadoc)
* @see org.etsi.its.adapter.layers.Layer#register(org.etsi.its.adapter.layers.Layer)
*/
@Override
public
void
register
(
Layer
upperLayer
)
{
if
(
registeredUpperLayer
==
null
)
{
super
.
register
(
upperLayer
);
// Workaround for Marben CAM send module
Map
<
String
,
Object
>
lowerInfo
=
new
HashMap
<
String
,
Object
>();
lowerInfo
.
put
(
UdpMultiplexer
.
getInstance
().
UDP_PORT_KEY
,
new
Integer
(
UdpRecvPort
).
toString
());
super
.
send
(
new
byte
[]
{
(
byte
)
0xAA
,
(
byte
)
0xAA
,
(
byte
)
0xAA
,
(
byte
)
0xAA
},
lowerInfo
);
}
else
{
super
.
register
(
upperLayer
);
}
clientsToFrameTypes
.
put
(
this
.
toString
(),
upperLayerFrameType
);
}
/* (non-Javadoc)
* @see org.etsi.its.adapter.layers.Layer#unregister(org.etsi.its.adapter.layers.Layer)
*/
@Override
public
void
unregister
(
Layer
upperLayer
)
{
super
.
unregister
(
upperLayer
);
clientsToFrameTypes
.
remove
(
this
.
toString
(),
upperLayerFrameType
);
}
/* (non-Javadoc)
* @see org.etsi.its.adapter.layers.Layer#send(byte[], java.util.Map)
*/
@Override
public
boolean
send
(
byte
[]
message
,
Map
<
String
,
Object
>
params
)
{
System
.
out
.
println
(
"UdpIpMarbenLayer.send: "
+
ByteHelper
.
byteArrayToString
(
message
));
return
super
.
send
(
message
,
params
);
// ML(Marben) : no lower header added
}
public
void
receive
(
byte
[]
message
,
Map
<
String
,
Object
>
lowerInfo
)
{
System
.
out
.
println
(
"UdpIpMarbenLayer.run: Received packet "
+
ByteHelper
.
byteArrayToString
(
message
));
lowerInfo
.
put
(
EthernetLayer
.
LINK_LAYER_DESTINATION
,
MAC_BROADCAST
);
registeredUpperLayer
.
receive
(
message
,
lowerInfo
);
// no MAC+LLC headers expected for Marben (ML)
}
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment