Skip to content

Commit 312d20f

Browse files
committed
Minor fixes
1 parent 443206e commit 312d20f

File tree

3 files changed

+75
-67
lines changed
  • src/java/components/safetylogic
    • hu.bme.mit.inf.modes3.components.safetylogic.systemlevel.event/src/main/java/hu/bme/mit/inf/safetylogic/event
    • hu.bme.mit.inf.modes3.components.safetylogic.systemlevel.patterns
    • hu.bme.mit.inf.modes3.components.safetylogic.systemlevel.rules/src-gen/hu/bme/mit/inf/modes3/components/safetylogic/systemlevel/rules/mapping

3 files changed

+75
-67
lines changed

src/java/components/safetylogic/hu.bme.mit.inf.modes3.components.safetylogic.systemlevel.event/src/main/java/hu/bme/mit/inf/safetylogic/event/SafetyLogic.xtend

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import hu.bme.mit.inf.modes3.messaging.communication.state.interfaces.ComputerVi
2121

2222
class SafetyLogic extends AbstractRailRoadCommunicationComponent implements INotifiable {
2323

24+
var initializeRailRoad = false
25+
2426
@Accessors(PUBLIC_GETTER) protected IModelInteractor model
2527
private ILoggerFactory factory
2628

@@ -148,19 +150,25 @@ class SafetyLogic extends AbstractRailRoadCommunicationComponent implements INot
148150
}
149151
}
150152

151-
initRailRoad
153+
if(initializeRailRoad){
154+
initRailRoad
155+
}
152156

153157
logger.info('adding the cv callback')
154158

155159
locator.computerVisionCallback.setComputerVisionListener(new IComputerVisionListener(){
156160

157161
override onComputerVisionDetection(List<ComputerVisionInformation> information, long timestamp, long frameindex) {
158-
// println('''
159-
// Information recieved @ «timestamp» frame #«frameindex»
160-
// «FOR info : information»
161-
// CV Estimated train «info.name» on segment #«computerVisionEstimator.getElementByCoordinates(info.realPosition.x, info.realPosition.y).id»
162-
// «ENDFOR»
163-
// ''')
162+
val segmentIds = information.map[computerVisionEstimator.getElementByCoordinates(it.realPosition.x, it.realPosition.y)]
163+
val infoIter = information.iterator
164+
val combined = segmentIds.map[it -> infoIter.next]
165+
println('''
166+
Information recieved @ «timestamp» frame #«frameindex»
167+
«FOR info : information»
168+
CV Estimated train «info.name» on segment #«computerVisionEstimator.getElementByCoordinates(info.realPosition.x, info.realPosition.y).id»
169+
«ENDFOR»
170+
''')
171+
model.ensureIds(combined)
164172
}
165173
})
166174

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
1-
<?xml version="1.0" encoding="UTF-8"?><plugin>
2-
<extension id="hu.bme.mit.inf.safetylogic.patterns.DerivedFeatures" point="org.eclipse.viatra.query.runtime.queryspecification">
3-
<group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.safetylogic.patterns.DerivedFeatures" id="hu.bme.mit.inf.safetylogic.patterns.DerivedFeatures">
4-
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.currentlyConnected"/>
5-
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.connected"/>
6-
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.viablePaths"/>
7-
</group>
8-
</extension>
9-
<extension id="hu.bme.mit.inf.safetylogic.patterns.PathBuildingHelperQueries" point="org.eclipse.viatra.query.runtime.queryspecification">
10-
<group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.safetylogic.patterns.PathBuildingHelperQueries" id="hu.bme.mit.inf.safetylogic.patterns.PathBuildingHelperQueries">
11-
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.threeConnectedRailRoadParts"/>
12-
</group>
13-
</extension>
14-
<extension id="hu.bme.mit.inf.safetylogic.patterns.SafetyPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
15-
<group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.safetylogic.patterns.SafetyPatterns" id="hu.bme.mit.inf.safetylogic.patterns.SafetyPatterns">
16-
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.nextSection"/>
17-
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.trainHitsAnotherTrain"/>
18-
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.trainTrailingTurnout"/>
19-
</group>
20-
</extension>
21-
<extension id="hu.bme.mit.inf.safetylogic.rulepatterns.RulePatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
22-
<group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.safetylogic.rulepatterns.RulePatterns" id="hu.bme.mit.inf.safetylogic.rulepatterns.RulePatterns">
23-
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.trainOnStation"/>
24-
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.trainLeftStation"/>
25-
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.trainIsNotInStation"/>
26-
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.noTrainOnStation"/>
27-
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.multipleTrainsOnStation"/>
28-
</group>
29-
</extension>
30-
</plugin>
1+
<?xml version="1.0" encoding="UTF-8"?><plugin>
2+
<extension id="hu.bme.mit.inf.safetylogic.patterns.DerivedFeatures" point="org.eclipse.viatra.query.runtime.queryspecification">
3+
<group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.safetylogic.patterns.DerivedFeatures" id="hu.bme.mit.inf.safetylogic.patterns.DerivedFeatures">
4+
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.currentlyConnected"/>
5+
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.connected"/>
6+
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.viablePaths"/>
7+
</group>
8+
</extension>
9+
<extension id="hu.bme.mit.inf.safetylogic.patterns.PathBuildingHelperQueries" point="org.eclipse.viatra.query.runtime.queryspecification">
10+
<group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.safetylogic.patterns.PathBuildingHelperQueries" id="hu.bme.mit.inf.safetylogic.patterns.PathBuildingHelperQueries">
11+
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.threeConnectedRailRoadParts"/>
12+
</group>
13+
</extension>
14+
<extension id="hu.bme.mit.inf.safetylogic.patterns.SafetyPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
15+
<group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.safetylogic.patterns.SafetyPatterns" id="hu.bme.mit.inf.safetylogic.patterns.SafetyPatterns">
16+
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.nextSection"/>
17+
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.trainHitsAnotherTrain"/>
18+
<query-specification fqn="hu.bme.mit.inf.safetylogic.patterns.trainTrailingTurnout"/>
19+
</group>
20+
</extension>
21+
<extension id="hu.bme.mit.inf.safetylogic.rulepatterns.RulePatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
22+
<group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:hu.bme.mit.inf.safetylogic.rulepatterns.RulePatterns" id="hu.bme.mit.inf.safetylogic.rulepatterns.RulePatterns">
23+
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.trainOnStation"/>
24+
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.trainLeftStation"/>
25+
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.trainIsNotInStation"/>
26+
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.noTrainOnStation"/>
27+
<query-specification fqn="hu.bme.mit.inf.safetylogic.rulepatterns.multipleTrainsOnStation"/>
28+
</group>
29+
</extension>
30+
</plugin>

src/java/components/safetylogic/hu.bme.mit.inf.modes3.components.safetylogic.systemlevel.rules/src-gen/hu/bme/mit/inf/modes3/components/safetylogic/systemlevel/rules/mapping/QueryEngine2ViatraCep.java

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@ public static QueryEngine2ViatraCep register(final ResourceSet resourceSet, fina
4444

4545
public EventDrivenTransformationRuleGroup getRules() {
4646
EventDrivenTransformationRuleGroup ruleGroup = new EventDrivenTransformationRuleGroup(
47-
createnoTrainOnStation_MappingRule(),
4847
createtrainOnStation_MappingRule(),
49-
createmultipleTrainsOnStation_MappingRule()
48+
createmultipleTrainsOnStation_MappingRule(),
49+
createnoTrainOnStation_MappingRule()
5050
);
5151
return ruleGroup;
5252
}
@@ -59,24 +59,24 @@ private void registerRules() {
5959
}
6060
}
6161

62-
public EventDrivenTransformationRule<NoTrainOnStationMatch, NoTrainOnStationMatcher> createnoTrainOnStation_MappingRule() {
62+
public EventDrivenTransformationRule<TrainOnStationMatch, TrainOnStationMatcher> createtrainOnStation_MappingRule() {
6363
try{
64-
EventDrivenTransformationRuleFactory.EventDrivenTransformationRuleBuilder<NoTrainOnStationMatch, NoTrainOnStationMatcher> builder = new EventDrivenTransformationRuleFactory().createRule();
64+
EventDrivenTransformationRuleFactory.EventDrivenTransformationRuleBuilder<TrainOnStationMatch, TrainOnStationMatcher> builder = new EventDrivenTransformationRuleFactory().createRule();
6565
builder.addLifeCycle(Lifecycles.getDefault(false, true));
66-
builder.precondition(NoTrainOnStationMatcher.querySpecification());
66+
builder.precondition(TrainOnStationMatcher.querySpecification());
6767

68-
IMatchProcessor<NoTrainOnStationMatch> actionOnAppear_0 = new IMatchProcessor<NoTrainOnStationMatch>() {
69-
public void process(final NoTrainOnStationMatch matchedPattern) {
70-
NoTrainOnStation_Event event = new NoTrainOnStation_Event(null);
68+
IMatchProcessor<TrainOnStationMatch> actionOnAppear_0 = new IMatchProcessor<TrainOnStationMatch>() {
69+
public void process(final TrainOnStationMatch matchedPattern) {
70+
TrainOnStation_Event event = new TrainOnStation_Event(null);
7171
event.setQueryMatch(matchedPattern);
7272
eventStream.push(event);
7373
}
7474
};
7575
builder.action(CRUDActivationStateEnum.CREATED, actionOnAppear_0);
7676

77-
IMatchProcessor<NoTrainOnStationMatch> actionOnDisappear_0 = new IMatchProcessor<NoTrainOnStationMatch>() {
78-
public void process(final NoTrainOnStationMatch matchedPattern) {
79-
NoMultipleTrainsOnStation_Event event = new NoMultipleTrainsOnStation_Event(null);
77+
IMatchProcessor<TrainOnStationMatch> actionOnDisappear_0 = new IMatchProcessor<TrainOnStationMatch>() {
78+
public void process(final TrainOnStationMatch matchedPattern) {
79+
TrainLeftStation_Event event = new TrainLeftStation_Event(null);
8080
event.setQueryMatch(matchedPattern);
8181
eventStream.push(event);
8282
}
@@ -92,26 +92,23 @@ public void process(final NoTrainOnStationMatch matchedPattern) {
9292
return null;
9393
}
9494

95-
public EventDrivenTransformationRule<TrainOnStationMatch, TrainOnStationMatcher> createtrainOnStation_MappingRule() {
95+
public EventDrivenTransformationRule<MultipleTrainsOnStationMatch, MultipleTrainsOnStationMatcher> createmultipleTrainsOnStation_MappingRule() {
9696
try{
97-
EventDrivenTransformationRuleFactory.EventDrivenTransformationRuleBuilder<TrainOnStationMatch, TrainOnStationMatcher> builder = new EventDrivenTransformationRuleFactory().createRule();
97+
EventDrivenTransformationRuleFactory.EventDrivenTransformationRuleBuilder<MultipleTrainsOnStationMatch, MultipleTrainsOnStationMatcher> builder = new EventDrivenTransformationRuleFactory().createRule();
9898
builder.addLifeCycle(Lifecycles.getDefault(false, true));
99-
builder.precondition(TrainOnStationMatcher.querySpecification());
99+
builder.precondition(MultipleTrainsOnStationMatcher.querySpecification());
100100

101-
IMatchProcessor<TrainOnStationMatch> actionOnAppear_0 = new IMatchProcessor<TrainOnStationMatch>() {
102-
public void process(final TrainOnStationMatch matchedPattern) {
103-
TrainOnStation_Event event = new TrainOnStation_Event(null);
101+
IMatchProcessor<MultipleTrainsOnStationMatch> actionOnAppear_0 = new IMatchProcessor<MultipleTrainsOnStationMatch>() {
102+
public void process(final MultipleTrainsOnStationMatch matchedPattern) {
103+
MultipleTrainsOnStation_Event event = new MultipleTrainsOnStation_Event(null);
104104
event.setQueryMatch(matchedPattern);
105105
eventStream.push(event);
106106
}
107107
};
108108
builder.action(CRUDActivationStateEnum.CREATED, actionOnAppear_0);
109109

110-
IMatchProcessor<TrainOnStationMatch> actionOnDisappear_0 = new IMatchProcessor<TrainOnStationMatch>() {
111-
public void process(final TrainOnStationMatch matchedPattern) {
112-
TrainLeftStation_Event event = new TrainLeftStation_Event(null);
113-
event.setQueryMatch(matchedPattern);
114-
eventStream.push(event);
110+
IMatchProcessor<MultipleTrainsOnStationMatch> actionOnDisappear_0 = new IMatchProcessor<MultipleTrainsOnStationMatch>() {
111+
public void process(final MultipleTrainsOnStationMatch matchedPattern) {
115112
}
116113
};
117114
builder.action(CRUDActivationStateEnum.DELETED, actionOnDisappear_0);
@@ -125,23 +122,26 @@ public void process(final TrainOnStationMatch matchedPattern) {
125122
return null;
126123
}
127124

128-
public EventDrivenTransformationRule<MultipleTrainsOnStationMatch, MultipleTrainsOnStationMatcher> createmultipleTrainsOnStation_MappingRule() {
125+
public EventDrivenTransformationRule<NoTrainOnStationMatch, NoTrainOnStationMatcher> createnoTrainOnStation_MappingRule() {
129126
try{
130-
EventDrivenTransformationRuleFactory.EventDrivenTransformationRuleBuilder<MultipleTrainsOnStationMatch, MultipleTrainsOnStationMatcher> builder = new EventDrivenTransformationRuleFactory().createRule();
127+
EventDrivenTransformationRuleFactory.EventDrivenTransformationRuleBuilder<NoTrainOnStationMatch, NoTrainOnStationMatcher> builder = new EventDrivenTransformationRuleFactory().createRule();
131128
builder.addLifeCycle(Lifecycles.getDefault(false, true));
132-
builder.precondition(MultipleTrainsOnStationMatcher.querySpecification());
129+
builder.precondition(NoTrainOnStationMatcher.querySpecification());
133130

134-
IMatchProcessor<MultipleTrainsOnStationMatch> actionOnAppear_0 = new IMatchProcessor<MultipleTrainsOnStationMatch>() {
135-
public void process(final MultipleTrainsOnStationMatch matchedPattern) {
136-
MultipleTrainsOnStation_Event event = new MultipleTrainsOnStation_Event(null);
131+
IMatchProcessor<NoTrainOnStationMatch> actionOnAppear_0 = new IMatchProcessor<NoTrainOnStationMatch>() {
132+
public void process(final NoTrainOnStationMatch matchedPattern) {
133+
NoTrainOnStation_Event event = new NoTrainOnStation_Event(null);
137134
event.setQueryMatch(matchedPattern);
138135
eventStream.push(event);
139136
}
140137
};
141138
builder.action(CRUDActivationStateEnum.CREATED, actionOnAppear_0);
142139

143-
IMatchProcessor<MultipleTrainsOnStationMatch> actionOnDisappear_0 = new IMatchProcessor<MultipleTrainsOnStationMatch>() {
144-
public void process(final MultipleTrainsOnStationMatch matchedPattern) {
140+
IMatchProcessor<NoTrainOnStationMatch> actionOnDisappear_0 = new IMatchProcessor<NoTrainOnStationMatch>() {
141+
public void process(final NoTrainOnStationMatch matchedPattern) {
142+
NoMultipleTrainsOnStation_Event event = new NoMultipleTrainsOnStation_Event(null);
143+
event.setQueryMatch(matchedPattern);
144+
eventStream.push(event);
145145
}
146146
};
147147
builder.action(CRUDActivationStateEnum.DELETED, actionOnDisappear_0);

0 commit comments

Comments
 (0)