<style type="text/css">
.highlight .hll
.highlight
.highlight .c
/* Comment */
.highlight .err
/* Error */
.highlight .k
/* Keyword */
.highlight .o
/* Operator */
.highlight .cm
/* Comment.Multiline */
.highlight .cp
/* Comment.Preproc */
.highlight .c1
/* Comment.Single */
.highlight .cs
/* Comment.Special */
.highlight .gd
/* Generic.Deleted */
.highlight .ge
/* Generic.Emph */
.highlight .gr
/* Generic.Error */
.highlight .gh
/* Generic.Heading */
.highlight .gi
/* Generic.Inserted */
.highlight .go
/* Generic.Output */
.highlight .gp
/* Generic.Prompt */
.highlight .gs
/* Generic.Strong */
.highlight .gu
/* Generic.Subheading */
.highlight .gt
/* Generic.Traceback */
.highlight .kc
/* Keyword.Constant */
.highlight .kd
/* Keyword.Declaration */
.highlight .kn
/* Keyword.Namespace */
.highlight .kp
/* Keyword.Pseudo */
.highlight .kr
/* Keyword.Reserved */
.highlight .kt
/* Keyword.Type */
.highlight .m
/* Literal.Number */
.highlight .s
/* Literal.String */
.highlight .na
/* Name.Attribute */
.highlight .nb
/* Name.Builtin */
.highlight .nc
/* Name.Class */
.highlight .no
/* Name.Constant */
.highlight .nd
/* Name.Decorator */
.highlight .ni
/* Name.Entity */
.highlight .ne
/* Name.Exception */
.highlight .nf
/* Name.Function */
.highlight .nl
/* Name.Label */
.highlight .nn
/* Name.Namespace */
.highlight .nt
/* Name.Tag */
.highlight .nv
/* Name.Variable */
.highlight .ow
/* Operator.Word */
.highlight .w
/* Text.Whitespace */
.highlight .mf
/* Literal.Number.Float */
.highlight .mh
/* Literal.Number.Hex */
.highlight .mi
/* Literal.Number.Integer */
.highlight .mo
/* Literal.Number.Oct */
.highlight .sb
/* Literal.String.Backtick */
.highlight .sc
/* Literal.String.Char */
.highlight .sd
/* Literal.String.Doc */
.highlight .s2
/* Literal.String.Double */
.highlight .se
/* Literal.String.Escape */
.highlight .sh
/* Literal.String.Heredoc */
.highlight .si
/* Literal.String.Interpol */
.highlight .sx
/* Literal.String.Other */
.highlight .sr
/* Literal.String.Regex */
.highlight .s1
/* Literal.String.Single */
.highlight .ss
/* Literal.String.Symbol */
.highlight .bp
/* Name.Builtin.Pseudo */
.highlight .vc
/* Name.Variable.Class */
.highlight .vg
/* Name.Variable.Global */
.highlight .vi
/* Name.Variable.Instance */
.highlight .il
/* Literal.Number.Integer.Long */
</style>
# Definition of the suite test.
suite test
edit ECF_INCLUDE "$HOME/course"
edit ECF_HOME "$HOME/course"
family f1
edit SLEEP 20
task t1
meter progress 1 100 90
task t2
trigger t1 eq complete
event a
event b
task t3
trigger t2:a
task t4
trigger t2 eq complete
complete t2:b
task t5
trigger t1:progress ge 30
task t6
trigger t1:progress ge 60
task t7
trigger t1:progress ge 90
endfamily
endsuite
In python this would be:
#!/usr/bin/env python2.5
import os
import ecflow
def create_family_f1():
f1 = ecflow.Family("f1")
f1.add_variable("SLEEP",20)
t1 = f1.add_task("t1")
t1.add_meter("progress",1,100,90)
t2 = f1.add_task("t2")
t2.add_trigger("t1 eq complete")
t2.add_event("a")
t2.add_event("b")
t3 = f1.add_task("t3")
t3.add_trigger("t2:a")
t4 = f1.add_task("t4")
t4.add_trigger("t2 eq complete")
t4.add_complete("t2:b")
t5 = f1.add_task("t5")
t5.add_trigger("t1:progress ge 30")
t6 = f1.add_task("t6")
t6.add_trigger("t1:progress ge 60")
t7 = f1.add_task("t7")
t7.add_trigger("t1:progress ge 90")
return f1
defs = ecflow.Defs()
suite = defs.add_suite("test")
suite.add_variable("ECF_INCLUDE",os.getenv("HOME") + "/course")
suite.add_variable("ECF_HOME ",os.getenv("HOME") + "/course")
suite.add_family( create_family_f1() )
%include <head.h>
echo "I will now sleep for %SLEEP% seconds"
sleep %SLEEP%
n=1
while [[ $n -le 100 ]] # Loop 100 times
do
sleep 1 # Wait a short time
ecflow_client --meter progress $n # Notify ecFlow
(( n = $n + 1 ))
done
%include <tail.h>
What to do:
- Edit the definition file or python to add the modifications.
- Edit t1.ecf to call ecflow_client –meter
- Copy t4.ecf to t5.ecf, t6.ecf and t7.ecf
- Load the definition again.
- Observe the tasks in ecflowview.
- See the triggers by selecting progress and clicking on the Triggers icon.
- Move the mouse pointer over
then with the right mouse button, choose Edit...
- Modify the value of the meter and click on the Apply icon