Skip to content

Commit cc10e72

Browse files
committed
Add 4th exercise workflow and images
1 parent 235f0f0 commit cc10e72

5 files changed

Lines changed: 271 additions & 6 deletions

tutorials/hobgoblin-reaction.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -132,9 +132,9 @@ In order to translate our simple reaction time task in the previous exercises in
132132
:::
133133

134134
- Select the [`Timer`] operator and set its `DueTime` property to 3 second.
135-
- Click and drag to select both the [`CreateMessage`]([`DigitalOutputSetPayload`]) and `Hobgoblin Commands` operators.
135+
- Click and drag to select both the [`CreateMessage`] ([`DigitalOutputSetPayload`]) and `Hobgoblin Commands` operators.
136136
- Right-click, select `Group` > `Sink (Reactive)`. Set the `Name` property to `StimOn`.
137-
- Click and drag to select both the [`CreateMessage`]([`DigitalOutputClearPayload`]) and `Hobgoblin Commands` operators.
137+
- Click and drag to select both the [`CreateMessage`] ([`DigitalOutputClearPayload`]) and `Hobgoblin Commands` operators.
138138
- Right-click, select `Group` > `Sink (Reactive)`. Set the `Name` property to `StimOff`.
139139

140140
> [!Note]
@@ -165,18 +165,18 @@ In order to translate our simple reaction time task in the previous exercises in
165165
[`DeviceDataWriter`]: xref:Harp.Hobgoblin.DeviceDataWriter
166166
[`DigitalOutputSet`]: xref:Harp.Hobgoblin.DigitalOutputSet
167167
[`DigitalOutputClear`]: xref:Harp.Hobgoblin.DigitalOutputClear
168-
[`DigitalOutputClearPayload`]: xref:Harp.Hobgoblin.CreateDigitalOutputSetPayload
169-
[`DigitalOutputSetPayload`]: xref:Harp.Hobgoblin.CreateDigitalOutputClearPayload
168+
[`DigitalOutputSetPayload`]: xref:Harp.Hobgoblin.CreateDigitalOutputSetPayload
169+
[`DigitalOutputClearPayload`]: xref:Harp.Hobgoblin.CreateDigitalOutputClearPayload
170170
<!-- [`KeyDown`]: xref:Bonsai.Windows.Input.KeyDown -->
171171
<!-- [`Merge`]: xref:Bonsai.Reactive.Merge -->
172172
[`MulticastSubject`]: xref:Bonsai.Expressions.MulticastSubject
173173
[`Parse`]: xref:Harp.Hobgoblin.Parse
174174
[`PublishSubject`]: xref:Bonsai.Reactive.PublishSubject
175175
[`Repeat`]: xref:Bonsai.Reactive.Repeat
176-
[`SelectMany`]: xref: Bonsai.Reactive.SelectMany
176+
[`SelectMany`]: xref:Bonsai.Reactive.SelectMany
177177
[`Sink`]: xref:Bonsai.Reactive.Sink
178178
[`SubscribeSubject`]: xref:Bonsai.Expressions.SubscribeSubject
179-
[`Take`]: Bonsai.Reactive.Take
179+
[`Take`]: xref:Bonsai.Reactive.Take
180180
[`Timer`]: xref:Bonsai.Reactive.Timer
181181
<!-- [`TimestampedAnalogData`]: xref:Harp.Hobgoblin.TimestampedAnalogData -->
182182
[`TimestampedDigitalOutputSet`]: xref:Harp.Hobgoblin.TimestampedDigitalOutputSet
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<WorkflowBuilder Version="2.8.5"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:p1="clr-namespace:Harp.Hobgoblin;assembly=Harp.Hobgoblin"
5+
xmlns:harp="clr-namespace:Bonsai.Harp;assembly=Bonsai.Harp"
6+
xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core"
7+
xmlns="https://bonsai-rx.org/2018/workflow">
8+
<Workflow>
9+
<Nodes>
10+
<Expression xsi:type="SubscribeSubject">
11+
<Name>Hobgoblin Events</Name>
12+
</Expression>
13+
<Expression xsi:type="p1:Parse">
14+
<harp:Register xsi:type="p1:TimestampedDigitalInputState" />
15+
</Expression>
16+
<Expression xsi:type="Combinator">
17+
<Combinator xsi:type="rx:Take">
18+
<rx:Count>1</rx:Count>
19+
</Combinator>
20+
</Expression>
21+
<Expression xsi:type="WorkflowOutput" />
22+
</Nodes>
23+
<Edges>
24+
<Edge From="0" To="1" Label="Source1" />
25+
<Edge From="1" To="2" Label="Source1" />
26+
<Edge From="2" To="3" Label="Source1" />
27+
</Edges>
28+
</Workflow>
29+
</WorkflowBuilder>
Lines changed: 76 additions & 0 deletions
Loading
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<WorkflowBuilder Version="2.8.5"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:rx="clr-namespace:Bonsai.Reactive;assembly=Bonsai.Core"
5+
xmlns:p1="clr-namespace:Harp.Hobgoblin;assembly=Harp.Hobgoblin"
6+
xmlns:harp="clr-namespace:Bonsai.Harp;assembly=Bonsai.Harp"
7+
xmlns="https://bonsai-rx.org/2018/workflow">
8+
<Workflow>
9+
<Nodes>
10+
<Expression xsi:type="Combinator">
11+
<Combinator xsi:type="rx:Timer">
12+
<rx:DueTime>PT3S</rx:DueTime>
13+
<rx:Period>PT0S</rx:Period>
14+
</Combinator>
15+
</Expression>
16+
<Expression xsi:type="rx:Sink">
17+
<Name>StimOn</Name>
18+
<Workflow>
19+
<Nodes>
20+
<Expression xsi:type="WorkflowInput">
21+
<Name>Source1</Name>
22+
</Expression>
23+
<Expression xsi:type="p1:CreateMessage">
24+
<harp:MessageType>Write</harp:MessageType>
25+
<harp:Payload xsi:type="p1:CreateDigitalOutputSetPayload">
26+
<p1:DigitalOutputSet>GP15</p1:DigitalOutputSet>
27+
</harp:Payload>
28+
</Expression>
29+
<Expression xsi:type="MulticastSubject">
30+
<Name>Hobgoblin Commands</Name>
31+
</Expression>
32+
<Expression xsi:type="WorkflowOutput" />
33+
</Nodes>
34+
<Edges>
35+
<Edge From="0" To="1" Label="Source1" />
36+
<Edge From="1" To="2" Label="Source1" />
37+
<Edge From="2" To="3" Label="Source1" />
38+
</Edges>
39+
</Workflow>
40+
</Expression>
41+
<Expression xsi:type="rx:SelectMany">
42+
<Name>Response</Name>
43+
<Workflow>
44+
<Nodes>
45+
<Expression xsi:type="WorkflowInput">
46+
<Name>Source1</Name>
47+
</Expression>
48+
<Expression xsi:type="WorkflowOutput" />
49+
</Nodes>
50+
<Edges>
51+
<Edge From="0" To="1" Label="Source1" />
52+
</Edges>
53+
</Workflow>
54+
</Expression>
55+
<Expression xsi:type="rx:Sink">
56+
<Name>StimOff</Name>
57+
<Workflow>
58+
<Nodes>
59+
<Expression xsi:type="WorkflowInput">
60+
<Name>Source1</Name>
61+
</Expression>
62+
<Expression xsi:type="p1:CreateMessage">
63+
<harp:MessageType>Write</harp:MessageType>
64+
<harp:Payload xsi:type="p1:CreateDigitalOutputClearPayload">
65+
<p1:DigitalOutputClear>GP15</p1:DigitalOutputClear>
66+
</harp:Payload>
67+
</Expression>
68+
<Expression xsi:type="MulticastSubject">
69+
<Name>Hobgoblin Commands</Name>
70+
</Expression>
71+
<Expression xsi:type="WorkflowOutput" />
72+
</Nodes>
73+
<Edges>
74+
<Edge From="0" To="1" Label="Source1" />
75+
<Edge From="1" To="2" Label="Source1" />
76+
<Edge From="2" To="3" Label="Source1" />
77+
</Edges>
78+
</Workflow>
79+
</Expression>
80+
<Expression xsi:type="Combinator">
81+
<Combinator xsi:type="rx:Repeat" />
82+
</Expression>
83+
</Nodes>
84+
<Edges>
85+
<Edge From="0" To="1" Label="Source1" />
86+
<Edge From="1" To="2" Label="Source1" />
87+
<Edge From="2" To="3" Label="Source1" />
88+
<Edge From="3" To="4" Label="Source1" />
89+
</Edges>
90+
</Workflow>
91+
</WorkflowBuilder>

0 commit comments

Comments
 (0)