Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
monticore
EmbeddedMontiArc
generators
EMAM2SomeIP
Commits
e35215a7
Commit
e35215a7
authored
Sep 22, 2019
by
Florian Raeth
Browse files
use model helper functions to get service id etc
parent
2e9978d0
Pipeline
#186064
failed with stages
in 1 minute and 44 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
src/main/resources/de/monticore/lang/monticar/generator/someip/template/Adapter.cpp.ftl
View file @
e35215a7
...
...
@@ -3,21 +3,7 @@
#
include
"<@m.mwIdent/>Adapter_$
{
model
.getEscapedCompName
()}
.h"
<@
m
.mwIdent
/>
Adapter_
${
model
.getEscapedCompName
()}::<@
m
.mwIdent
/>
Adapter_
${
model
.getEscapedCompName
()}()
: public IAdapter_$
{
model
.getEscapedCompName
()}
{
<#--
<#
list
model
.getIncomingPorts
()
as
sub
>
$
{
sub
.getName
()}
_
service_id
=
11
;
$
{
sub
.getName
()}
_
instance_id
=
12
;
$
{
sub
.getName
()}
_
method_id
=
13
;
$
{
sub
.getName
()}
_
event_id
=
14
;
$
{
sub
.getName
()}
_
eventgroup_id
=
15
;
</#
list
>
<#
list
model
.getOutgoingPorts
()
as
pub
>
$
{
pub
.getName
()}
_
service_id
=
111
;
$
{
pub
.getName
()}
_
instance_id
=
112
;
$
{
pub
.getName
()}
_
method_id
=
113
;
$
{
pub
.getName
()}
_
event_id
=
114
;
$
{
pub
.getName
()}
_
eventgroup_id
=
115
;
</#
list
>
-
->
}
void
<@m.mwIdent/>Adapter_$
{
model
.getEscapedCompName
()}
::init($
{
model
.getEscapedCompName
()}
*
comp)
{
...
...
@@ -35,14 +21,14 @@ void <@m.mwIdent/>Adapter_${model.getEscapedCompName()}::init(${model.getEscaped
$
{
sub
.getName
()}
_
S
ubscriber-
>
register_state_handler
(
std
::
bind
(
&
S
omeIPAdapter_
$
{
model
.getEscapedCompName
()}::
on_state
,
this
,
std
::
placeholders
::
_
1
)
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
register_message_handler
(
$
{
sub
.getSomeIPConnectionSymbol
()
.get
s
erviceI
D
(
)},
$
{
sub
.getSomeIPConnectionSymbol
()
.get
i
nstanceI
D
(
)},
$
{
sub
.getSomeIPConnectionSymbol
()
.get
m
ethodI
D
(
)},
std
::
bind
(
&
S
omeIPAdapter_
$
{
model
.getEscapedCompName
()}::
on_message_
$
{
sub
.getName
()},
this
,
std
::
placeholders
::
_
1
))
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
register_availability_handler
(
$
{
sub
.getSomeIPConnectionSymbol
()
.get
s
erviceI
D
(
)},
$
{
sub
.getSomeIPConnectionSymbol
()
.get
i
nstanceI
D
(
)},
std
::
bind
(
&
S
omeIPAdapter_
$
{
model
.getEscapedCompName
()}::
on_availability
,
this
,
std
::
placeholders
::
_
1
,
std
::
placeholders
::
_
2
,
std
::
placeholders
::
_
3
))
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
register_message_handler
(
$
{
model
.get
S
erviceI
d
(
sub
)},
$
{
model
.get
I
nstanceI
d
(
sub
)},
$
{
model
.get
M
ethodI
d
(
sub
)},
std
::
bind
(
&
S
omeIPAdapter_
$
{
model
.getEscapedCompName
()}::
on_message_
$
{
sub
.getName
()},
this
,
std
::
placeholders
::
_
1
))
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
register_availability_handler
(
$
{
model
.get
S
erviceI
d
(
sub
)},
$
{
model
.get
I
nstanceI
d
(
sub
)},
std
::
bind
(
&
S
omeIPAdapter_
$
{
model
.getEscapedCompName
()}::
on_availability
,
this
,
std
::
placeholders
::
_
1
,
std
::
placeholders
::
_
2
,
std
::
placeholders
::
_
3
))
;
//
S
ubscribe
std
::
set
<
vsomeip
::
eventgroup_t
>
event_group
;
event_group
.insert
(
$
{
sub
.getSomeIPConnectionSymbol
()
.get
e
vent
g
roupI
D
(
)})
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
request_event
(
$
{
sub
.getSomeIPConnectionSymbol
()
.get
s
erviceI
D
(
)},
$
{
sub
.getSomeIPConnectionSymbol
()
.get
i
nstanceI
D
(
)},
$
{
sub
.getSomeIPConnectionSymbol
()
.get
e
ventI
D
(
)},
event_group
,
true
)
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
subscribe
(
$
{
sub
.getSomeIPConnectionSymbol
()
.get
s
erviceI
D
(
)},
$
{
sub
.getSomeIPConnectionSymbol
()
.get
i
nstanceI
D
(
)},
$
{
sub
.getSomeIPConnectionSymbol
()
.get
e
vent
g
roupI
D
(
)})
;
event_group
.insert
(
$
{
model
.get
E
vent
G
roupI
d
(
sub
)})
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
request_event
(
$
{
model
.get
S
erviceI
d
(
sub
)},
$
{
model
.get
I
nstanceI
d
(
sub
)},
$
{
model
.get
E
ventI
d
(
sub
)},
event_group
,
true
)
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
subscribe
(
$
{
model
.get
S
erviceI
d
(
sub
)},
$
{
model
.get
I
nstanceI
d
(
sub
)},
$
{
model
.get
E
vent
G
roupI
d
(
sub
)})
;
</#
list
>
...
...
@@ -53,7 +39,7 @@ void <@m.mwIdent/>Adapter_${model.getEscapedCompName()}::init(${model.getEscaped
std
::
cerr
<<
"Couldn't initialize Publisher ${pub.getName()}"
<<
std
::
endl
;
return
false
;
}
$
{
pub
.getName
()}
_
P
ublisher-
>
offer_service
(
$
{
pub
.getSomeIPConnectionSymbol
()
.get
s
erviceI
D
(
)},
$
{
pub
.getSomeIPConnectionSymbol
()
.get
i
nstanceI
D
(
)})
;
$
{
pub
.getName
()}
_
P
ublisher-
>
offer_service
(
$
{
model
.get
S
erviceI
d
(
pub
)},
$
{
model
.get
I
nstanceI
d
(
pub
)})
;
</#
list
>
//
S
tart
S
ubscriber
...
...
@@ -97,16 +83,16 @@ void <@m.mwIdent/>Adapter_${model.getEscapedCompName()}::publish${pub.getName()}
//Publish
std::set<vsomeip::eventgroup_t> event_group;
event_group.insert($
{
pub
.getSomeIPConnectionSymbol
()
.get
e
vent
g
roupI
D
(
)}
);
$
{
pub
.getName
()}
_Publisher->offer_event($
{
pub
.getSomeIPConnectionSymbol
()
.get
s
erviceI
D
(
)}
, $
{
pub
.getSomeIPConnectionSymbol
()
.get
i
nstanceI
D
(
)}
, $
{
pub
.getSomeIPConnectionSymbol
()
.get
e
ventI
D
(
)}
, event_group, true);
$
{
pub
.getName
()}
_Publisher->notify($
{
pub
.getSomeIPConnectionSymbol
()
.get
s
erviceI
D
(
)}
, $
{
pub
.getSomeIPConnectionSymbol
()
.get
i
nstanceI
D
(
)}
, $
{
pub
.getSomeIPConnectionSymbol
()
.get
e
ventI
D
(
)}
, payload);
event_group.insert($
{
model
.get
E
vent
G
roupI
d
(
pub
)}
);
$
{
pub
.getName
()}
_Publisher->offer_event($
{
model
.get
S
erviceI
d
(
pub
)}
, $
{
model
.get
I
nstanceI
d
(
pub
)}
, $
{
model
.get
E
ventI
d
(
pub
)}
, event_group, true);
$
{
pub
.getName
()}
_Publisher->notify($
{
model
.get
S
erviceI
d
(
pub
)}
, $
{
model
.get
I
nstanceI
d
(
pub
)}
, $
{
model
.get
E
ventI
d
(
pub
)}
, payload);
}
</#
list
>
<#
list
model.getIncomingPorts() as sub>
void
<@m.mwIdent/>Adapter_$
{
model
.getEscapedCompName
()}
::on_state_$
{
sub
.getName
()}
(vsomeip::state_type_e _state)
{
if
(
_
state
==
vsomeip
::
state_type_e
::
ST
_
REGISTERED
)
{
$
{
sub
.getName
()}
_
S
ubscriber-
>
request_service
(
$
{
pub
.getSomeIPConnectionSymbol
()
.get
s
erviceI
D
(
)},
$
{
pub
.getSomeIPConnectionSymbol
()
.get
i
nstanceI
D
(
)})
;
$
{
sub
.getName
()}
_
S
ubscriber-
>
request_service
(
$
{
model
.get
S
erviceI
d
(
sub
)},
$
{
model
.get
I
nstanceI
d
(
sub
)})
;
}
}
</#
list
>
...
...
src/main/resources/de/monticore/lang/monticar/generator/someip/template/Adapter.h.ftl
View file @
e35215a7
...
...
@@ -44,21 +44,4 @@ private:
</#
list
>
void
on_availability
(
vsomeip
::
service_t
_
service
,
vsomeip
::
instance_t
_
instance
,
bool
_
is_available
)
;
<#--
<#
list
model
.getIncomingPorts
()
as
sub
>
int
$
{
sub
.getName
()}
_
service_id
;
int
$
{
sub
.getName
()}
_
instance_id
;
int
$
{
sub
.getName
()}
_
method_id
;
int
$
{
sub
.getName
()}
_
event_id
;
int
$
{
sub
.getName
()}
_
eventgroup_id
;
</#
list
>
<#
list
model
.getOutgoingPorts
()
as
pub
>
int
$
{
pub
.getName
()}
_
service_id
;
int
$
{
pub
.getName
()}
_
instance_id
;
int
$
{
pub
.getName
()}
_
method_id
;
int
$
{
pub
.getName
()}
_
event_id
;
int
$
{
pub
.getName
()}
_
eventgroup_id
;
</#
list
>
-
->
}
;
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