From efe79b9fd58bf997fcabdcc56a1c2a248c353db4 Mon Sep 17 00:00:00 2001 From: cjsha Date: Tue, 29 Oct 2024 17:01:34 -0400 Subject: [PATCH 1/3] Motivate heartbeat functionality in breakout --- articles/hardware/breakout/heartbeat.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/articles/hardware/breakout/heartbeat.md b/articles/hardware/breakout/heartbeat.md index c52fe11..d19c438 100644 --- a/articles/hardware/breakout/heartbeat.md +++ b/articles/hardware/breakout/heartbeat.md @@ -5,20 +5,20 @@ hardware: true device: heartbeat --- -The following excerpt from the Breakout Board [example workflow](xref:breakout_workflow) -demonstrates heartbeat functionality. +The breakout board provides a heartbeat function that prevents the breakout board from blocking. It must be enabled so +that the software doesn't wait forever to receive data if the hardware isn't transmitting data (i.e. if no data sources +are enabled). In practice, you can ignore the Heartbeat functionality after confirming it's enabled. The following excerpt +from the Breakout Board [example workflow](xref:breakout_workflow) demonstrates how to observe the heartbeat functionality. ::: workflow ![/workflows/hardware/breakout/heartbeat.bonsai workflow](../../../workflows/hardware/breakout/heartbeat.bonsai) ::: The operator generates a sequence of -s. `HeartbeatData` emits `HeartbeatDataFrame`s at a regular -interval defined during using the -'s `Heartbeat BeatsPerSecond` property (in our case 10 -Hz). In the Breakout Board example workflow, the `HeartbeatData`'s `DeviceName` property is set to -"BreakoutBoard/Heartbeat". This links the `HeartbeatData` operator to the corresponding -configuration operator. The -[MemberSelector](https://bonsai-rx.org/docs/api/Bonsai.Expressions.MemberSelectorBuilder.html) -operator selects the `Clock` member from the `HeartbeatDataFrame` so the user can visualize `Clock` -data from the `HeartbeatDataFrame`. \ No newline at end of file +[HeartbeatDataFrames](xref:OpenEphys.Onix1.HeartbeatDataFrame). `HeartbeatData` emits `HeartbeatDataFrames` at a regular +interval defined during using the 's +`Heartbeat BeatsPerSecond` property (in our case 10 Hz). The `HeartbeatData`'s `DeviceName` property is set to +"BreakoutBoard/Heartbeat". This links the `HeartbeatData` operator to the corresponding configuration operator. The +[MemberSelector](https://bonsai-rx.org/docs/api/Bonsai.Expressions.MemberSelectorBuilder.html) operator selects the +`Clock` member from the `HeartbeatDataFrame` so the user can visualize the number of clock cycles that have passed for +a given heartbeat pulse if they double-click the `Clock` node. \ No newline at end of file From c2b68c8aee6121968d0e4f865ea0fa9641338758 Mon Sep 17 00:00:00 2001 From: jonnew Date: Tue, 29 Oct 2024 18:08:34 -0400 Subject: [PATCH 2/3] Minor edits to breakout board heartbeat explanation --- articles/hardware/breakout/heartbeat.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/articles/hardware/breakout/heartbeat.md b/articles/hardware/breakout/heartbeat.md index d19c438..5145507 100644 --- a/articles/hardware/breakout/heartbeat.md +++ b/articles/hardware/breakout/heartbeat.md @@ -5,10 +5,12 @@ hardware: true device: heartbeat --- -The breakout board provides a heartbeat function that prevents the breakout board from blocking. It must be enabled so -that the software doesn't wait forever to receive data if the hardware isn't transmitting data (i.e. if no data sources -are enabled). In practice, you can ignore the Heartbeat functionality after confirming it's enabled. The following excerpt -from the Breakout Board [example workflow](xref:breakout_workflow) demonstrates how to observe the heartbeat functionality. +ONIX has a single special devce, called a heartbeat, that produces data at regular intervals and is always enabled. +When data is read from the hardware by software, the reading thread will block until enough data has been produced +by the hardware. If no devices are enabled, the sofware would block forever. The heartbeat prevents this from happening +since it is always enabled and always producing data. In practice, you can ignore the Heartbeat functionality. The +following excerpt from the Breakout Board [example workflow](xref:breakout_workflow) demonstrates how to observe the +heartbeat functionality. ::: workflow ![/workflows/hardware/breakout/heartbeat.bonsai workflow](../../../workflows/hardware/breakout/heartbeat.bonsai) @@ -21,4 +23,4 @@ interval defined during using the Date: Wed, 30 Oct 2024 15:42:16 -0400 Subject: [PATCH 3/3] Minor typo edits --- articles/hardware/breakout/heartbeat.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/articles/hardware/breakout/heartbeat.md b/articles/hardware/breakout/heartbeat.md index 5145507..cc7b860 100644 --- a/articles/hardware/breakout/heartbeat.md +++ b/articles/hardware/breakout/heartbeat.md @@ -5,12 +5,12 @@ hardware: true device: heartbeat --- -ONIX has a single special devce, called a heartbeat, that produces data at regular intervals and is always enabled. -When data is read from the hardware by software, the reading thread will block until enough data has been produced -by the hardware. If no devices are enabled, the sofware would block forever. The heartbeat prevents this from happening -since it is always enabled and always producing data. In practice, you can ignore the Heartbeat functionality. The -following excerpt from the Breakout Board [example workflow](xref:breakout_workflow) demonstrates how to observe the -heartbeat functionality. +ONIX has a single special device, called a heartbeat, that produces data at regular intervals and is always enabled. +When data is read from the hardware by software, the reading thread will block until enough data has been produced by +the hardware. If no devices are enabled, the software would block forever. The heartbeat prevents this from happening +since it is always enabled and always producing data. In practice, you can ignore the heartbeat functionality. In any +case, the following excerpt from the Breakout Board [example workflow](xref:breakout_workflow) demonstrates how to +observe the heartbeat. ::: workflow ![/workflows/hardware/breakout/heartbeat.bonsai workflow](../../../workflows/hardware/breakout/heartbeat.bonsai)