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
52b65d07
Commit
52b65d07
authored
Jun 12, 2017
by
garciay
Browse files
GeoNetworking codecs & Layers ongoing
parent
612f663a
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
ccsrc/Framework/src/Params.cc
View file @
52b65d07
...
...
@@ -12,12 +12,12 @@ void Params::convert(Params& p_param, const std::string p_parameters) {
}
// Extract parameters
try
{
std
::
regex
rgx
(
"(
(
\\
.*)
\\
s*=
\\
s*(
\\
.*
)
)(,
((
\\
.*)
\\
s*=
\\
s*(
\\
.*)))*
"
);
std
::
regex
rgx
(
"(
\\
w+)=(
.*
?
)(,
|$)
"
);
std
::
sregex_iterator
begin
(
p_parameters
.
cbegin
(),
p_parameters
.
cend
(),
rgx
);
std
::
sregex_iterator
end
=
std
::
sregex_iterator
();
for
(
std
::
sregex_iterator
it
=
begin
;
it
!=
end
;
++
it
)
{
std
::
smatch
m
=
*
it
;
loggers
::
loggers
::
log
(
"Params::convert: %d - %s - %s - %s -
%s -
%s"
,
m
.
size
(),
m
[
0
].
str
().
c_str
(),
m
[
1
].
str
().
c_str
(),
m
[
2
].
str
().
c_str
(),
m
[
3
].
str
().
c_str
()
,
m
[
4
].
str
().
c_str
()
);
loggers
::
loggers
::
log
(
"Params::convert: %d - %s - %s - %s - %s"
,
m
.
size
(),
m
[
0
].
str
().
c_str
(),
m
[
1
].
str
().
c_str
(),
m
[
2
].
str
().
c_str
(),
m
[
3
].
str
().
c_str
());
p_param
.
insert
(
std
::
pair
<
std
::
string
,
std
::
string
>
(
m
[
1
].
str
(),
m
[
2
].
str
()));
}
// End of 'for' statement
}
...
...
ccsrc/Ports/LibIts_ports/GN_ports/GeoNetworkingPort.cc
View file @
52b65d07
...
...
@@ -13,20 +13,22 @@
namespace
LibItsGeoNetworking__TestSystem
{
GeoNetworkingPort
::
GeoNetworkingPort
(
const
char
*
par_port_name
)
:
GeoNetworkingPort_BASE
(
par_port_name
),
_params
(),
_layer
(
NULL
)
:
GeoNetworkingPort_BASE
(
par_port_name
),
_cfg_params
(),
_layer
_params
(),
_layer
(
NULL
)
,
_codec
()
{
}
GeoNetworkingPort
::~
GeoNetworkingPort
()
{
if
(
_layer
!=
NULL
)
{
delete
_layer
;
}
}
void
GeoNetworkingPort
::
set_parameter
(
const
char
*
parameter_name
,
const
char
*
parameter_value
)
{
loggers
::
loggers
::
log
(
"GeoNetworkingPort::set_parameter: %s=%s"
,
parameter_name
,
parameter_value
);
_params
.
insert
(
std
::
pair
<
std
::
string
,
std
::
string
>
(
std
::
string
(
parameter_name
),
std
::
string
(
parameter_value
)));
_cfg
_params
.
insert
(
std
::
pair
<
std
::
string
,
std
::
string
>
(
std
::
string
(
parameter_name
),
std
::
string
(
parameter_value
)));
}
/*void GeoNetworkingPort::Handle_Fd_Event(int fd, boolean is_readable,
...
...
@@ -52,14 +54,19 @@ void GeoNetworkingPort::Handle_Fd_Event_Readable(int /*fd*/)
void
GeoNetworkingPort
::
user_map
(
const
char
*
system_port
)
{
loggers
::
loggers
::
log
(
"GeoNetworkingPort::user_map: %s"
,
system_port
);
std
::
map
<
std
::
string
,
std
::
string
>::
iterator
it
=
_params
.
find
(
std
::
string
(
"params"
));
if
(
it
!=
_params
.
end
())
{
_layer
=
LayerStackBuilder
::
GetInstance
()
->
createLayerStack
(
it
->
second
.
c_str
());
std
::
map
<
std
::
string
,
std
::
string
>::
iterator
it
=
_cfg
_params
.
find
(
std
::
string
(
"params"
));
if
(
it
!=
_cfg
_params
.
end
())
{
_layer
=
LayerStackBuilder
::
GetInstance
()
->
createLayerStack
(
it
->
second
.
c_str
());
}
}
void
GeoNetworkingPort
::
user_unmap
(
const
char
*
/*
system_port
*/
)
void
GeoNetworkingPort
::
user_unmap
(
const
char
*
system_port
)
{
loggers
::
loggers
::
log
(
"GeoNetworkingPort::user_unmap: %s"
,
system_port
);
if
(
_layer
!=
NULL
)
{
delete
_layer
;
_layer
=
NULL
;
}
}
...
...
@@ -73,8 +80,16 @@ void GeoNetworkingPort::user_stop()
}
void
GeoNetworkingPort
::
outgoing_send
(
const
GeoNetworkingReq
&
/*
send_par
*/
)
void
GeoNetworkingPort
::
outgoing_send
(
const
GeoNetworkingReq
&
send_par
)
{
loggers
::
loggers
::
log_msg
(
">>> GeoNetworkingPort::outgoing_send: payload="
,
send_par
);
// TODO Does a port implement its layer
// TODO Does the port add additionnal values? Yes
OCTETSTRING
data
;
_codec
.
encode
(
send_par
.
msgOut
(),
data
);
loggers
::
loggers
::
log_msg
(
"GeoNetworkingPort::outgoing_send: Call Layer::sendData"
,
data
);
_layer
->
sendData
(
data
,
_layer_params
);
}
...
...
ccsrc/Ports/LibIts_ports/GN_ports/GeoNetworkingPort.hh
View file @
52b65d07
...
...
@@ -12,38 +12,42 @@
#include
"LibItsGeoNetworking_TestSystem.hh"
#include
"GeoNetworkingCodec.hh"
#include
"GeoNetworkingLayer.hh"
#include
"
p
arams.hh"
#include
"
P
arams.hh"
namespace
LibItsGeoNetworking__TestSystem
{
class
GeoNetworkingPort
:
public
GeoNetworkingPort_BASE
{
params
_params
;
Layer
*
_layer
;
Params
_cfg_params
;
Params
_layer_params
;
Layer
*
_layer
;
GeoNetworkingCodec
_codec
;
public:
GeoNetworkingPort
(
const
char
*
par_port_name
=
NULL
);
~
GeoNetworkingPort
();
GeoNetworkingPort
(
const
char
*
par_port_name
=
NULL
);
~
GeoNetworkingPort
();
void
set_parameter
(
const
char
*
parameter_name
,
const
char
*
parameter_value
);
void
set_parameter
(
const
char
*
parameter_name
,
const
char
*
parameter_value
);
void
receiveMsg
(
const
LibItsGeoNetworking__TestSystem
::
GeoNetworkingInd
&
,
const
Params
&
)
{};
void
receiveMsg
(
const
LibItsGeoNetworking__TestSystem
::
GeoNetworkingInd
&
,
const
Params
&
)
{};
private:
/* void Handle_Fd_Event(int fd, boolean is_readable,
boolean is_writable, boolean is_error); */
void
Handle_Fd_Event_Error
(
int
fd
);
void
Handle_Fd_Event_Writable
(
int
fd
);
void
Handle_Fd_Event_Readable
(
int
fd
);
/* void Handle_Timeout(double time_since_last_call); */
/* void Handle_Fd_Event(int fd, boolean is_readable,
boolean is_writable, boolean is_error); */
void
Handle_Fd_Event_Error
(
int
fd
);
void
Handle_Fd_Event_Writable
(
int
fd
);
void
Handle_Fd_Event_Readable
(
int
fd
);
/* void Handle_Timeout(double time_since_last_call); */
protected:
void
user_map
(
const
char
*
system_port
);
void
user_unmap
(
const
char
*
system_port
);
void
user_map
(
const
char
*
system_port
);
void
user_unmap
(
const
char
*
system_port
);
void
user_start
();
void
user_stop
();
void
user_start
();
void
user_stop
();
void
outgoing_send
(
const
GeoNetworkingReq
&
send_par
);
void
outgoing_send
(
const
GeoNetworkingReq
&
send_par
);
};
}
/* end of namespace */
...
...
ccsrc/Protocols/ETH/EthernetLayer.cc
View file @
52b65d07
...
...
@@ -4,9 +4,12 @@
EthernetLayer
::
EthernetLayer
(
const
std
::
string
&
type
,
const
std
::
string
&
param
)
:
EthernetLayer
()
{
loggers
::
loggers
::
log
(
">>> EthernetLayer::EthernetLayer: %s, %s"
,
type
.
c_str
(),
param
.
c_str
());
// Setup parameters
Params
::
convert
(
_params
,
param
);
_params
.
log
();
}
void
EthernetLayer
::
sendData
(
const
OCTETSTRING
&
data
,
const
Params
&
params
)
{
loggers
::
loggers
::
log_msg
(
">>> EthernetLayer::sendData: "
,
data
);
}
void
EthernetLayer
::
receiveData
(
const
OCTETSTRING
&
data
,
const
Params
&
info
)
{
...
...
ccsrc/Protocols/ETH/EthernetLayer.hh
View file @
52b65d07
...
...
@@ -2,10 +2,12 @@
#define ETHERNET_FINAL_LAYER_H
#include
"Layer.hh"
#include
"Params.hh"
class
EthernetLayer
:
public
Layer
{
Params
_params
;
public:
inline
EthernetLayer
()
:
Layer
()
{}
inline
EthernetLayer
()
:
Layer
()
,
_params
()
{}
EthernetLayer
(
const
std
::
string
&
type
,
const
std
::
string
&
param
);
virtual
~
EthernetLayer
()
{}
...
...
ccsrc/Protocols/GeoNetworking/GeoNetworkingCodec.cc
View file @
52b65d07
This diff is collapsed.
Click to expand it.
ccsrc/Protocols/GeoNetworking/GeoNetworkingCodec.hh
View file @
52b65d07
...
...
@@ -10,12 +10,15 @@ class OCTETSTRING;
class
TTCN_Typedescriptor_t
;
class
TTCN_Buffer
;
namespace
LibItsGeoNetworking__TypesAndValues
{
class
GeoNetworkingPdu
;
class
ExtendedHeader
;
class
DecodedPayload
;
}
};
namespace
LibItsSecurity__TypesAndValues
{
class
SecuredMessage
;
};
struct
Encoding_Context
{
unsigned
char
next_header
;
// FIXME Useless?
...
...
@@ -46,8 +49,6 @@ class GeoNetworkingCodec : public Codec<LibItsGeoNetworking__TypesAndValues::Geo
int
encode_decodedPayload
(
const
LibItsGeoNetworking__TypesAndValues
::
DecodedPayload
&
u
,
TTCN_Buffer
&
encoding_buffer
);
int
decode_
(
Base_Type
&
type
,
const
TTCN_Typedescriptor_t
&
field_descriptor
,
TTCN_Buffer
&
decoding_buffer
);
int
decode_extendedHeader
(
LibItsGeoNetworking__TypesAndValues
::
ExtendedHeader
&
u
,
TTCN_Buffer
&
decoding_buffer
);
public:
GeoNetworkingCodec
()
:
_ec
(),
_dc
()
{};
...
...
ccsrc/Protocols/GeoNetworking/GeoNetworkingLayer.cc
View file @
52b65d07
...
...
@@ -5,7 +5,9 @@
GeoNetworkingLayer
::
GeoNetworkingLayer
(
const
std
::
string
&
type
,
const
std
::
string
&
param
)
:
GeoNetworkingLayer
()
{
loggers
::
loggers
::
log
(
">>> GeoNetworkingLayer::GeoNetworkingLayer: %s, %s"
,
type
.
c_str
(),
param
.
c_str
());
// Setup parameters
Params
::
convert
(
_params
,
param
);
_params
.
log
();
}
void
GeoNetworkingLayer
::
sendMsg
(
const
LibItsGeoNetworking__TestSystem
::
GeoNetworkingReq
&
p
,
const
Params
&
params
)
{
...
...
ccsrc/Protocols/GeoNetworking/GeoNetworkingLayer.hh
View file @
52b65d07
...
...
@@ -10,8 +10,9 @@ namespace LibItsGeoNetworking__TestSystem {
class
GeoNetworkingLayer
:
public
TLayer
<
LibItsGeoNetworking__TestSystem
::
GeoNetworkingPort
>
{
GeoNetworkingCodec
_codec
;
Params
_params
;
public:
inline
GeoNetworkingLayer
()
:
TLayer
<
LibItsGeoNetworking__TestSystem
::
GeoNetworkingPort
>
()
{}
inline
GeoNetworkingLayer
()
:
TLayer
<
LibItsGeoNetworking__TestSystem
::
GeoNetworkingPort
>
()
,
_codec
(),
_params
()
{}
GeoNetworkingLayer
(
const
std
::
string
&
type
,
const
std
::
string
&
param
);
virtual
~
GeoNetworkingLayer
(){}
...
...
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