1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
|
package org.eclipse.etrice.integration.PingPongThreadTestReplPort;
import org.eclipse.etrice.runtime.java.messaging.MessageService;
import org.eclipse.etrice.runtime.java.messaging.RTServices;
import org.eclipse.etrice.runtime.java.messaging.Address;
import org.eclipse.etrice.runtime.java.messaging.IRTObject;
import org.eclipse.etrice.runtime.java.messaging.RTSystemServicesProtocol.*;
import org.eclipse.etrice.runtime.java.modelbase.ActorClassBase;
import org.eclipse.etrice.runtime.java.modelbase.SubSystemClassBase;
import org.eclipse.etrice.runtime.java.modelbase.InterfaceItemBase;
import room.basic.service.timing.*;
public class SubSystem_PingPongReplPort extends SubSystemClassBase{
public SubSystem_PingPongReplPort(IRTObject parent, String name) {
super(parent, name);
}
@Override
public void receiveEvent(InterfaceItemBase ifitem, int evt, Object data){
}
@Override
public void instantiateMessageServices(){
RTServices.getInstance().getMsgSvcCtrl().addMsgSvc(new MessageService(this, new Address(0, 0, 0),"MessageService_Main"));
RTServices.getInstance().getMsgSvcCtrl().addMsgSvc(new MessageService(this, new Address(0, 1, 0),"MessageService_mrPingThread", 5));
RTServices.getInstance().getMsgSvcCtrl().addMsgSvc(new MessageService(this, new Address(0, 2, 0),"MessageService_mrPong1Thread", 5));
RTServices.getInstance().getMsgSvcCtrl().addMsgSvc(new MessageService(this, new Address(0, 3, 0),"MessageService_mrPong2Thread", 5));
RTServices.getInstance().getMsgSvcCtrl().addMsgSvc(new MessageService(this, new Address(0, 4, 0),"MessageService_mrPong3Thread", 5));
}
@Override
public void instantiateActors(){
// all addresses
// Addresses for the Subsystem Systemport
Address addr_item_SystemPort_0 = new Address(0,0,115);
Address addr_item_SystemPort_1 = new Address(0,0,116);
Address addr_item_SystemPort_2 = new Address(0,0,117);
Address addr_item_SystemPort_3 = new Address(0,0,118);
Address addr_item_SystemPort_4 = new Address(0,0,119);
Address addr_item_SystemPort_5 = new Address(0,0,120);
// actor instance /SubSystem_PingPongReplPort/application itself => Systemport Address
// TODOTJ: For each Actor, multiple addresses should be generated (actor?, systemport, debugport)
Address addr_item__SubSystem_PingPongReplPort_application = new Address(0,0,101);
// interface items of /SubSystem_PingPongReplPort/application
// actor instance /SubSystem_PingPongReplPort/application/MrPing itself => Systemport Address
// TODOTJ: For each Actor, multiple addresses should be generated (actor?, systemport, debugport)
Address addr_item__SubSystem_PingPongReplPort_application_MrPing = new Address(0,1,102);
// interface items of /SubSystem_PingPongReplPort/application/MrPing
Address addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_0 = new Address(0,0,103);
Address addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_1 = new Address(0,0,104);
Address addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_2 = new Address(0,0,105);
Address addr_item__SubSystem_PingPongReplPort_application_MrPing_timer = new Address(0,1,106);
// actor instance /SubSystem_PingPongReplPort/application/MrPong1 itself => Systemport Address
// TODOTJ: For each Actor, multiple addresses should be generated (actor?, systemport, debugport)
Address addr_item__SubSystem_PingPongReplPort_application_MrPong1 = new Address(0,2,107);
// interface items of /SubSystem_PingPongReplPort/application/MrPong1
Address addr_item__SubSystem_PingPongReplPort_application_MrPong1_PingPongPort = new Address(0,2,108);
// actor instance /SubSystem_PingPongReplPort/application/MrPong2 itself => Systemport Address
// TODOTJ: For each Actor, multiple addresses should be generated (actor?, systemport, debugport)
Address addr_item__SubSystem_PingPongReplPort_application_MrPong2 = new Address(0,3,109);
// interface items of /SubSystem_PingPongReplPort/application/MrPong2
Address addr_item__SubSystem_PingPongReplPort_application_MrPong2_PingPongPort = new Address(0,3,110);
// actor instance /SubSystem_PingPongReplPort/application/MrPong3 itself => Systemport Address
// TODOTJ: For each Actor, multiple addresses should be generated (actor?, systemport, debugport)
Address addr_item__SubSystem_PingPongReplPort_application_MrPong3 = new Address(0,4,111);
// interface items of /SubSystem_PingPongReplPort/application/MrPong3
Address addr_item__SubSystem_PingPongReplPort_application_MrPong3_PingPongPort = new Address(0,4,112);
// actor instance /SubSystem_PingPongReplPort/services itself => Systemport Address
// TODOTJ: For each Actor, multiple addresses should be generated (actor?, systemport, debugport)
Address addr_item__SubSystem_PingPongReplPort_services = new Address(0,0,113);
// interface items of /SubSystem_PingPongReplPort/services
Address addr_item__SubSystem_PingPongReplPort_services_timeout_0 = new Address(0,0,114);
// instantiate all actor instances
instances = new ActorClassBase[6];
instances[0] = new PingPongTop(
this,
"application",
// own interface item addresses
new Address[][] {{addr_item__SubSystem_PingPongReplPort_application}
},
// peer interface item addresses
new Address[][] {{addr_item_SystemPort_0}
}
);
instances[1] = new MrPingActor(
instances[0],
"MrPing",
// own interface item addresses
new Address[][] {{addr_item__SubSystem_PingPongReplPort_application_MrPing},
{
addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_0,
addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_1,
addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_2
},
{
addr_item__SubSystem_PingPongReplPort_application_MrPing_timer
}
},
// peer interface item addresses
new Address[][] {{addr_item_SystemPort_1},
{
addr_item__SubSystem_PingPongReplPort_application_MrPong1_PingPongPort,
addr_item__SubSystem_PingPongReplPort_application_MrPong2_PingPongPort,
addr_item__SubSystem_PingPongReplPort_application_MrPong3_PingPongPort
},
{
addr_item__SubSystem_PingPongReplPort_services_timeout_0
}
}
);
instances[2] = new MrPongActor1(
instances[0],
"MrPong1",
// own interface item addresses
new Address[][] {{addr_item__SubSystem_PingPongReplPort_application_MrPong1},
{
addr_item__SubSystem_PingPongReplPort_application_MrPong1_PingPongPort
}
},
// peer interface item addresses
new Address[][] {{addr_item_SystemPort_2},
{
addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_0
}
}
);
instances[3] = new MrPongActor1(
instances[0],
"MrPong2",
// own interface item addresses
new Address[][] {{addr_item__SubSystem_PingPongReplPort_application_MrPong2},
{
addr_item__SubSystem_PingPongReplPort_application_MrPong2_PingPongPort
}
},
// peer interface item addresses
new Address[][] {{addr_item_SystemPort_3},
{
addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_1
}
}
);
instances[4] = new MrPongActor1(
instances[0],
"MrPong3",
// own interface item addresses
new Address[][] {{addr_item__SubSystem_PingPongReplPort_application_MrPong3},
{
addr_item__SubSystem_PingPongReplPort_application_MrPong3_PingPongPort
}
},
// peer interface item addresses
new Address[][] {{addr_item_SystemPort_4},
{
addr_item__SubSystem_PingPongReplPort_application_MrPing_PingPongPort_2
}
}
);
instances[5] = new ATimingService(
this,
"services",
// own interface item addresses
new Address[][] {{addr_item__SubSystem_PingPongReplPort_services},
null,
{
addr_item__SubSystem_PingPongReplPort_services_timeout_0
}
},
// peer interface item addresses
new Address[][] {{addr_item_SystemPort_5},
null,
{
addr_item__SubSystem_PingPongReplPort_application_MrPing_timer
}
}
);
// create the subsystem system port
RTSystemPort = new RTSystemServicesProtocolConjPortRepl(this, "RTSystemPort",
0, //local ID
// own addresses
new Address[]{
addr_item_SystemPort_0,
addr_item_SystemPort_1,
addr_item_SystemPort_2,
addr_item_SystemPort_3,
addr_item_SystemPort_4,
addr_item_SystemPort_5
},
// peer addresses
new Address[]{
addr_item__SubSystem_PingPongReplPort_application,
addr_item__SubSystem_PingPongReplPort_application_MrPing,
addr_item__SubSystem_PingPongReplPort_application_MrPong1,
addr_item__SubSystem_PingPongReplPort_application_MrPong2,
addr_item__SubSystem_PingPongReplPort_application_MrPong3,
addr_item__SubSystem_PingPongReplPort_services
});
}
};
|