From 7b6118a3fa7a39c5572e09a576ebcb37824d57ee Mon Sep 17 00:00:00 2001 From: cjsha Date: Fri, 18 Oct 2024 00:37:35 -0400 Subject: [PATCH 1/3] Add content on why port status is helpful --- template/partials/hardware/portStatus.tmpl.partial | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/template/partials/hardware/portStatus.tmpl.partial b/template/partials/hardware/portStatus.tmpl.partial index 6fd23ff..254af36 100644 --- a/template/partials/hardware/portStatus.tmpl.partial +++ b/template/partials/hardware/portStatus.tmpl.partial @@ -1,5 +1,5 @@

- The following excerpt from the {{{hardware}}} example workflow demonstrates port status functionality and saves timestamped port status data. + The {{{hardware}}} reports when a port connection enters or leaves an aberrant state. This is helpful for diagnostic purposes - knowing the time and and type of a communication failure can facilitate tracking down its cause. The following excerpt from the {{{hardware}}} example workflow demonstrates port status functionality and saves timestamped port status data.

@@ -7,7 +7,7 @@

- The {{{hardware}}} reports when a port connection enters or leaves an aberrant state via the PortStatus operator, which generates a sequence of PortStatusFrames. Events that cause the PortStatus to emit a PortStatusFrame include the SERDES losing or gaining lock, SERDES failing or passing parity check, or the PortStatusCode changing value. The DeviceName is set to "{{{hardwareOperator}}}/PortController". This links the PortStatus operator to the corresponding configuration operator. + Port status data is produced in Bonsai by the PortStatus operator which generates a sequence of PortStatusFrames. PortStatus emits a PortStatusFrame when the SERDES loses or gains lock, the SERDES fails or passes parity check, or the PortStatusCode changes value. The DeviceName is set to "{{{hardwareOperator}}}/PortController". This links the PortStatus operator to the corresponding configuration operator.

From 1d5011e64fcb17ea0de1846352b8a822f7b35aa2 Mon Sep 17 00:00:00 2001 From: cjsha Date: Mon, 28 Oct 2024 19:21:02 -0400 Subject: [PATCH 2/3] Address Jon's feedback --- .../partials/hardware/portStatus.tmpl.partial | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/template/partials/hardware/portStatus.tmpl.partial b/template/partials/hardware/portStatus.tmpl.partial index 254af36..1eb4b9d 100644 --- a/template/partials/hardware/portStatus.tmpl.partial +++ b/template/partials/hardware/portStatus.tmpl.partial @@ -1,5 +1,9 @@

- The {{{hardware}}} reports when a port connection enters or leaves an aberrant state. This is helpful for diagnostic purposes - knowing the time and and type of a communication failure can facilitate tracking down its cause. The following excerpt from the {{{hardware}}} example workflow demonstrates port status functionality and saves timestamped port status data. + The Onix system reports when a port connection enters or leaves an aberrant state. Such aberrant states include loss + of communication lock, detection of parity or CRC error, reception of a badly formatted packet, etc.. Knowing the time + and type of a communication failure is a good first step to track down its cause. The following excerpt from the + {{{hardware}}} example + workflow demonstrates port status functionality and saves timestamped port status data.

@@ -7,14 +11,27 @@

- Port status data is produced in Bonsai by the PortStatus operator which generates a sequence of PortStatusFrames. PortStatus emits a PortStatusFrame when the SERDES loses or gains lock, the SERDES fails or passes parity check, or the PortStatusCode changes value. The DeviceName is set to "{{{hardwareOperator}}}/PortController". This links the PortStatus operator to the corresponding configuration operator. + Headstage port status data is produced in Bonsai by the PortStatus operator which generates a sequence of PortStatusFrames. PortStatus emits a + PortStatusFrame whenever PortStatusCode changes value. PortStatus's + DeviceName property is set to "{{{hardwareOperator}}}/PortController". This links the + PortStatus operator to the breakout board's port controller.

- The TimeStamp operator generates a sequence of timestamped items from its input sequence. The CsvWriter operator writes Timestamp as well as Clock, StatusCode, SerdesLocked, and SerdesPass members from PortStatusFrame to a file with the following name format: port-status_<timestamp>.csv. + The TimeStamp operator + generates a sequence of timestamped items from its input sequence. The CsvWriter operator writes Timestamp as + well as Clock, StatusCode, SerdesLocked, and SerdesPass members + from PortStatusFrame to a file with the following name format: + port-status_<timestamp>.csv.

NOTE
-

The PortStatus datastream is always enabled. {{{configureHardwareOperator}}} has no Enable property for the PortStatus operator like other Data I/O operators that can be used with the {{{hardware}}}.

+

The PortStatus datastream is always enabled. {{{configureHardwareOperator}}} has no + Enable property for the PortStatus operator like other Data I/O operators that can be used + with the {{{hardware}}}.

\ No newline at end of file From 71ba20e8c7203fa3c0fe688cb08d841e4e119ec9 Mon Sep 17 00:00:00 2001 From: cjsha Date: Tue, 29 Oct 2024 10:21:23 -0400 Subject: [PATCH 3/3] Address jon's feedback - minor edits --- template/partials/hardware/portStatus.tmpl.partial | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/template/partials/hardware/portStatus.tmpl.partial b/template/partials/hardware/portStatus.tmpl.partial index 1eb4b9d..62fba27 100644 --- a/template/partials/hardware/portStatus.tmpl.partial +++ b/template/partials/hardware/portStatus.tmpl.partial @@ -1,5 +1,5 @@

- The Onix system reports when a port connection enters or leaves an aberrant state. Such aberrant states include loss + The Onix system reports when a headstage port connection enters or leaves an aberrant state. Such aberrant states include loss of communication lock, detection of parity or CRC error, reception of a badly formatted packet, etc.. Knowing the time and type of a communication failure is a good first step to track down its cause. The following excerpt from the {{{hardware}}} example @@ -22,11 +22,10 @@

The TimeStamp operator - generates a sequence of timestamped items from its input sequence. The CsvWriter operator writes Timestamp as - well as Clock, StatusCode, SerdesLocked, and SerdesPass members - from PortStatusFrame to a file with the following name format: - port-status_<timestamp>.csv. + well as Clock and StatusCode members from PortStatusFrame to a file with the + following name format: port-status_<timestamp>.csv.