aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-06-09 14:45:02 -0400
committerLibravatar Kristóf Marussy <kris7topher@gmail.com>2019-06-09 14:45:02 -0400
commit555987a459702674da350fa1fd5f76ffe14cd7c0 (patch)
treec64f2af9d655eb94b1a13d8c22f67bbf34435e0f /Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains
parentTrying to simplify Satellite case study (diff)
downloadVIATRA-Generator-555987a459702674da350fa1fd5f76ffe14cd7c0.tar.gz
VIATRA-Generator-555987a459702674da350fa1fd5f76ffe14cd7c0.tar.zst
VIATRA-Generator-555987a459702674da350fa1fd5f76ffe14cd7c0.zip
Simplify satellite metamodel further
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend22
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql31
2 files changed, 27 insertions, 26 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend
index 3a8688e9..43b2902f 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/mdeo/CostObjective.xtend
@@ -1,13 +1,13 @@
1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo 1package hu.bme.mit.inf.dslreasoner.domains.satellite.mdeo
2 2
3import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric 3//import hu.bme.mit.inf.dslreasoner.domains.satellite.queries.CostMetric
4 4//
5class CostObjective extends MetricBasedGuidanceFunction { 5//class CostObjective extends MetricBasedGuidanceFunction {
6 new() { 6// new() {
7 super(CostMetric.instance) 7// super(CostMetric.instance)
8 } 8// }
9 9//
10 override getName() { 10// override getName() {
11 "Cost" 11// "Cost"
12 } 12// }
13} 13//}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
index 557c1172..bdda6ec7 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/src/hu/bme/mit/inf/dslreasoner/domains/satellite/queries/SatelliteQueries.vql
@@ -2,13 +2,17 @@ package hu.bme.mit.inf.dslreasoner.domains.satellite.queries
2 2
3import "http://www.example.org/satellite" 3import "http://www.example.org/satellite"
4 4
5@Constraint(severity = "error", key = {Link}, 5@Constraint(severity = "error", key = {Element},
6 message = "Communication links must start from the containing element.") 6 message = "A communicating element may not have two transmitting communication subsystems..")
7pattern communicationLinkDoesNotStartAtContainingElement(Link : DirectedCommunicationLink) { 7pattern communicationLinkDoesNotStartAtContainingElement(Element : CommunicatingElement) {
8 CommunicatingElement.communicationLink(Element, Link); 8 find transmittingCommSubsystem(Element, Comm1);
9 DirectedCommunicationLink.source(Link, SourceComm); 9 find transmittingCommSubsystem(Element, Comm2);
10 CommunicatingElement.commSubsystem(SourceElement, SourceComm); 10 Comm1 != Comm2;
11 Element != SourceElement; 11}
12
13private pattern transmittingCommSubsystem(Element : CommunicatingElement, Comm : CommSubsystem) {
14 CommunicatingElement.commSubsystem(Element, Comm);
15 CommSubsystem.target(Comm, _);
12} 16}
13 17
14// At least two spacecraft must have the interferometry payload configured 18// At least two spacecraft must have the interferometry payload configured
@@ -105,19 +109,17 @@ private pattern indirectCommunicationLink(Source : CommunicatingElement, Target
105} 109}
106 110
107private pattern directCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) { 111private pattern directCommunicationLink(Source : CommunicatingElement, Target : CommunicatingElement) {
108 DirectedCommunicationLink.source(Link, SourceSubsystem); 112 CommSubsystem.target(SourceSubsystem, TargetSubsystem);
109 DirectedCommunicationLink.target(Link, TargetSubsystem);
110 CommunicatingElement.commSubsystem(Source, SourceSubsystem); 113 CommunicatingElement.commSubsystem(Source, SourceSubsystem);
111 CommunicatingElement.commSubsystem(Target, TargetSubsystem); 114 CommunicatingElement.commSubsystem(Target, TargetSubsystem);
112} 115}
113 116
114// Source and target communication systems must be compatible. 117// Source and target communication systems must be compatible.
115 118
116@Constraint(severity = "error", key = {Link}, 119@Constraint(severity = "error", key = {SourceSubsystem},
117 message = "Two ends of a communication link must use the same band.") 120 message = "Two ends of a communication link must use the same band.")
118pattern incompatibleSourceAndTargetBand(Link : DirectedCommunicationLink) { 121pattern incompatibleSourceAndTargetBand(SourceSubsystem : CommSubsystem) {
119 DirectedCommunicationLink.source(Link, SourceSubsystem); 122 CommSubsystem.target(SourceSubsystem, TargetSubsystem);
120 DirectedCommunicationLink.target(Link, TargetSubsystem);
121 neg find matchingCommSubsystem(SourceSubsystem, TargetSubsystem); 123 neg find matchingCommSubsystem(SourceSubsystem, TargetSubsystem);
122} 124}
123 125
@@ -129,8 +131,7 @@ pattern incompatibleSourceAndTargetBand(Link : DirectedCommunicationLink) {
129pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) { 131pattern threeUCubeSatWithNonUhfCrossLink(Sat : CubeSat3U) {
130 CommunicatingElement.commSubsystem(Sat, SourceComm); 132 CommunicatingElement.commSubsystem(Sat, SourceComm);
131 neg find commSubsystemBandUhf(SourceComm); 133 neg find commSubsystemBandUhf(SourceComm);
132 DirectedCommunicationLink.source(Link, SourceComm); 134 CommSubsystem.target(SourceComm, TargetComm);
133 DirectedCommunicationLink.target(Link, TargetComm);
134 CommunicatingElement.commSubsystem(Target, TargetComm); 135 CommunicatingElement.commSubsystem(Target, TargetComm);
135 neg find groundStationNetwork(Target); 136 neg find groundStationNetwork(Target);
136} 137}