Pārlūkot izejas kodu

Add models for mapping

Yentl Van Tendeloo 8 gadi atpakaļ
vecāks
revīzija
692e431e17
3 mainītis faili ar 278 papildinājumiem un 0 dzēšanām
  1. 16 0
      integration/code/my_cbd.mvc
  2. 124 0
      models/trace_example.mvc
  3. 138 0
      models/trace_mapper.mvc

+ 16 - 0
integration/code/my_cbd.mvc

@@ -0,0 +1,16 @@
+CBD my_CBD {
+    AdditionBlock c {}
+    ConstantBlock a {
+        value = 1.0
+    }
+    ConstantBlock b {
+        value = 2.0
+    }
+    ProbeBlock d {
+        name = "result"
+    }
+
+    Link (a, c) {}
+    Link (b, c) {}
+    Link (c, d) {}
+}

+ 124 - 0
models/trace_example.mvc

@@ -0,0 +1,124 @@
+TraceLanguage trace {
+    Signal signal_x {
+        name = "position"
+    }
+
+    Point px_0 {
+        x = 0.0
+        y = 0.0
+    }
+
+    Point px_1 {
+        x = 1.0
+        y = 0.5
+    }
+
+    Point px_2 {
+        x = 2.0
+        y = 2.0
+    }
+
+    Point px_3 {
+        x = 3.0
+        y = 4.5
+    }
+
+    Point px_4 {
+        x = 4.0
+        y = 8.0
+    }
+
+    Point px_5 {
+        x = 5.0
+        y = 12.5
+    }
+
+    contains (signal_x, px_0) {}
+    contains (signal_x, px_1) {}
+    contains (signal_x, px_2) {}
+    contains (signal_x, px_3) {}
+    contains (signal_x, px_4) {}
+    contains (signal_x, px_5) {}
+
+    Signal signal_v {
+        name = "velocity"
+    }
+
+    Point pv_0 {
+        x = 0.0
+        y = 0.0
+    }
+
+    Point pv_1 {
+        x = 1.0
+        y = 1.0
+    }
+
+    Point pv_2 {
+        x = 2.0
+        y = 2.0
+    }
+
+    Point pv_3 {
+        x = 3.0
+        y = 3.0
+    }
+
+    Point pv_4 {
+        x = 4.0
+        y = 4.0
+    }
+
+    Point pv_5 {
+        x = 5.0
+        y = 5.0
+    }
+
+    contains (signal_v, pv_0) {}
+    contains (signal_v, pv_1) {}
+    contains (signal_v, pv_2) {}
+    contains (signal_v, pv_3) {}
+    contains (signal_v, pv_4) {}
+    contains (signal_v, pv_5) {}
+
+    Signal signal_a {
+        name = "acceleration"
+    }
+
+    Point pa_0 {
+        x = 0.0
+        y = 1.0
+    }
+
+    Point pa_1 {
+        x = 1.0
+        y = 1.0
+    }
+
+    Point pa_2 {
+        x = 2.0
+        y = 1.0
+    }
+
+    Point pa_3 {
+        x = 3.0
+        y = 1.0
+    }
+
+    Point pa_4 {
+        x = 4.0
+        y = 1.0
+    }
+
+    Point pa_5 {
+        x = 5.0
+        y = 1.0
+    }
+
+    contains (signal_a, pa_0) {}
+    contains (signal_a, pa_1) {}
+    contains (signal_a, pa_2) {}
+    contains (signal_a, pa_3) {}
+    contains (signal_a, pa_4) {}
+    contains (signal_a, pa_5) {}
+}

+ 138 - 0
models/trace_mapper.mvc

@@ -0,0 +1,138 @@
+include "primitives.alh"
+include "modelling.alh"
+include "object_operations.alh"
+
+A B {
+    Composite schedule {
+        {Contains} Success success {}
+
+        {Contains} ForAll render_dataset {
+            LHS {
+                Pre_Trace/Signal {
+                    label = "0"
+                }
+            }
+            RHS {
+                Post_Trace/Signal post_ds_0 {
+                    label = "0"
+                }
+                Post_MM_rendered_plot/Plot post_ds_1 {
+                    label = "1"
+                    value_title = $
+                        String function value(model : Element, name : String, mapping : Element):
+                            return read_attribute(model, mapping["0"], "name")!
+                        $
+                    value_legend = $
+                        Boolean function value(model : Element, name : String, mapping : Element):
+                            return False!
+                        $
+                }
+                Post_MM_rendered_plot/Dataset post_ds_2 {
+                    label = "2"
+                    value_legend = $
+                        String function value(model : Element, name : String, mapping : Element):
+                            return "signal"!
+                        $
+                    value_color = $
+                        String function value(model : Element, name : String, mapping : Element):
+                            return "blue"!
+                        $
+                    value_linestyle = $
+                        String function value(model : Element, name : String, mapping : Element):
+                            return "straight"!
+                        $
+                }
+                Post_TracabilityPlot (post_ds_0, post_ds_2) {
+                    label = "3"
+                }
+                Post_MM_rendered_plot/XAxis post_ds_4 {
+                    label = "4"
+                    value_name = $
+                        String function value(model : Element, name : String, mapping : Element):
+                            return "time"!
+                        $
+                    value_unit = $
+                        String function value(model : Element, name : String, mapping : Element):
+                            return "seconds"!
+                        $
+                }
+                Post_MM_rendered_plot/YAxis post_ds_5 {
+                    label = "5"
+                    value_name = $
+                        String function value(model : Element, name : String, mapping : Element):
+                            return "signal"!
+                        $
+                    value_unit = $
+                        String function value(model : Element, name : String, mapping : Element):
+                            return "power"!
+                        $
+                }
+                Post_MM_rendered_plot/x (post_ds_1, post_ds_4) {
+                    label = "6"
+                }
+                Post_MM_rendered_plot/y (post_ds_1, post_ds_5) {
+                    label = "7"
+                }
+            }
+        }
+
+        {Contains} ForAll render_points {
+            LHS {
+                Pre_Trace/Signal pre_p_0 {
+                    label = "0"
+                }
+                Pre_Trace/Point pre_p_1 {
+                    label = "1"
+                }
+                Pre_MM_rendered_plot/Dataset pre_p_2 {
+                    label = "2"
+                }
+                Pre_TracabilityPlot (pre_p_0, pre_p_2) {
+                    label = "3"
+                }
+                Pre_Trace/contains (pre_p_0, pre_p_1) {
+                    label = "4"
+                }
+            }
+            RHS {
+                Post_Trace/Signal post_p_0 {
+                    label = "0"
+                }
+                Post_Trace/Point post_p_1 {
+                    label = "1"
+                }
+                Post_MM_rendered_plot/Dataset post_p_2 {
+                    label = "2"
+                }
+                Post_TracabilityPlot (post_p_0, post_p_2) {
+                    label = "3"
+                }
+                Post_Trace/contains (post_p_0, post_p_1) {
+                    label = "4"
+                }
+                Post_MM_rendered_plot/Datapoint post_p_5 {
+                    label = "5"
+                    value_x = $
+                        Float function value(model : Element, name : String, mapping : Element):
+                            return read_attribute(model, mapping["1"], "x")!
+                        $
+                    value_y = $
+                        Float function value(model : Element, name : String, mapping : Element):
+                            return read_attribute(model, mapping["1"], "y")!
+                        $
+                }
+                Post_MM_rendered_plot/point (post_p_2, post_p_5) {
+                    label = "6"
+                }
+            }
+        }
+    }
+
+    Initial (schedule, render_dataset) {}
+
+    OnSuccess (render_dataset, render_points) {}
+    OnFailure (render_dataset, failure) {}
+
+    OnSuccess (render_points, success) {}
+    OnFailure (render_points, failure) {}
+}