@@ -15,7 +15,9 @@ public partial class Rhs2116StimulusSequenceDialog : GenericStimulusSequenceDial
1515 const double SamplePeriodMilliSeconds = 1e3 / Rhs2116 . SampleFrequencyHz ;
1616 const int NumberOfChannels = 32 ;
1717
18- internal Rhs2116StimulusSequencePair Sequence { get ; set ; }
18+ internal Rhs2116StimulusSequencePair Sequence { get => Trigger . StimulusSequence ; }
19+
20+ internal ConfigureRhs2116Trigger Trigger { get ; set ; }
1921
2022 readonly Rhs2116StimulusSequencePair SequenceCopy = new ( ) ;
2123
@@ -35,19 +37,18 @@ public partial class Rhs2116StimulusSequenceDialog : GenericStimulusSequenceDial
3537 /// Opens a dialog allowing for easy changing of stimulus sequence parameters, with
3638 /// visual feedback on what the resulting stimulus sequence looks like.
3739 /// </summary>
38- /// <param name="sequence">Stimulus sequence containing 32 channels of stimuli.</param>
39- /// <param name="probeGroup">Probe group containing ProbeInterface specifications for 32 contacts.</param>
40- public Rhs2116StimulusSequenceDialog ( Rhs2116StimulusSequencePair sequence , Rhs2116ProbeGroup probeGroup )
40+ /// <param name="rhs2116Trigger">Existing <see cref="ConfigureRhs2116Trigger"/> object.</param>
41+ public Rhs2116StimulusSequenceDialog ( ConfigureRhs2116Trigger rhs2116Trigger )
4142 : base ( NumberOfChannels , true , true )
4243 {
43- if ( probeGroup . NumberOfContacts != NumberOfChannels )
44+ if ( rhs2116Trigger . ProbeGroup . NumberOfContacts != NumberOfChannels )
4445 {
45- throw new ArgumentException ( $ "Probe group is not valid: { NumberOfChannels } channels were expected, there are { probeGroup . NumberOfContacts } instead.") ;
46+ throw new ArgumentException ( $ "Probe group is not valid: { NumberOfChannels } channels were expected, there are { rhs2116Trigger . ProbeGroup . NumberOfContacts } instead.") ;
4647 }
4748
4849 InitializeComponent ( ) ;
4950
50- Sequence = new Rhs2116StimulusSequencePair ( sequence ) ;
51+ Trigger = new ( rhs2116Trigger ) ;
5152
5253 dataGridViewStimulusTable . DataBindingComplete += DataBindingComplete ;
5354 SetTableDataSource ( ) ;
@@ -63,7 +64,7 @@ public Rhs2116StimulusSequenceDialog(Rhs2116StimulusSequencePair sequence, Rhs21
6364
6465 StepSize = Sequence . CurrentStepSize ;
6566
66- ChannelDialog = new ( probeGroup ) ;
67+ ChannelDialog = new ( rhs2116Trigger . ProbeGroup ) ;
6768
6869 ChannelDialog . SetChildFormProperties ( this ) . AddDialogToPanel ( panelProbe ) ;
6970 this . AddMenuItemsFromDialogToFileOption ( ChannelDialog , "Channel Configuration" ) ;
@@ -278,11 +279,6 @@ internal override PointPairList[] CreateStimulusWaveforms()
278279
279280 internal override void SetStatusValidity ( )
280281 {
281- if ( Sequence == null )
282- {
283- return ;
284- }
285-
286282 if ( Sequence . Valid && Sequence . FitsInHardware )
287283 {
288284 toolStripStatusIsValid . Image = Properties . Resources . StatusReadyImage ;
@@ -919,16 +915,16 @@ internal override void SerializeStimulusSequence(string fileName)
919915
920916 internal override bool IsSequenceValid ( )
921917 {
922- return Sequence . Valid ;
918+ return Sequence . Valid && Sequence . FitsInHardware ;
923919 }
924920
925921 internal override void DeserializeStimulusSequence ( string fileName )
926922 {
927- var sequence = DesignHelper . DeserializeString < Rhs2116StimulusSequencePair > ( File . ReadAllText ( fileName ) ) ;
923+ var newSequence = DesignHelper . DeserializeString < Rhs2116StimulusSequencePair > ( File . ReadAllText ( fileName ) ) ;
928924
929- if ( sequence != null && sequence . Stimuli . Length == 32 )
925+ if ( newSequence != null && newSequence . Stimuli . Length == 32 )
930926 {
931- if ( sequence == new Rhs2116StimulusSequencePair ( ) )
927+ if ( newSequence == new Rhs2116StimulusSequencePair ( ) )
932928 {
933929 var result = MessageBox . Show ( "The stimulus sequence loaded does not have any configuration settings applied. " +
934930 "This could be because the file did not have the correct format. If this sequence is loaded, it will clear out " +
@@ -940,15 +936,15 @@ internal override void DeserializeStimulusSequence(string fileName)
940936 }
941937 }
942938
943- Sequence = sequence ;
939+ Trigger . StimulusSequence = newSequence ;
944940
945- for ( int i = 0 ; i < Sequence . Stimuli . Length ; i ++ )
941+ for ( int i = 0 ; i < newSequence . Stimuli . Length ; i ++ )
946942 {
947- RequestedAnodicAmplitudeuA [ i ] = Sequence . Stimuli [ i ] . AnodicAmplitudeSteps * Sequence . CurrentStepSizeuA ;
948- RequestedCathodicAmplitudeuA [ i ] = Sequence . Stimuli [ i ] . CathodicAmplitudeSteps * Sequence . CurrentStepSizeuA ;
943+ RequestedAnodicAmplitudeuA [ i ] = newSequence . Stimuli [ i ] . AnodicAmplitudeSteps * newSequence . CurrentStepSizeuA ;
944+ RequestedCathodicAmplitudeuA [ i ] = newSequence . Stimuli [ i ] . CathodicAmplitudeSteps * newSequence . CurrentStepSizeuA ;
949945 }
950946
951- if ( ! Sequence . Valid )
947+ if ( ! newSequence . Valid )
952948 {
953949 MessageBox . Show ( "Warning: Invalid stimuli found in the recently opened file. Check all values to ensure they are what is expected." ,
954950 "Invalid Stimuli" , MessageBoxButtons . OK , MessageBoxIcon . Error ) ;
@@ -962,10 +958,7 @@ internal override void DeserializeStimulusSequence(string fileName)
962958
963959 internal override void SetTableDataSource ( )
964960 {
965- if ( Sequence == null )
966- return ;
967-
968- dataGridViewStimulusTable . DataSource = Sequence . Stimuli ;
961+ dataGridViewStimulusTable . DataSource = Trigger ? . StimulusSequence . Stimuli ;
969962 }
970963
971964 private void DataBindingComplete ( object sender , DataGridViewBindingCompleteEventArgs e )
0 commit comments