Dim COUNTDOWN As Integer Dim COUNTUP As Integer Dim OXIDIZERON As Integer Dim OXIDIZEROFF As Integer Dim PURGEON As Integer Dim PURGEOFF As Integer Dim ERROR As Integer Dim PURGE As Boolean Dim SequenceCheck As Boolean Dim COUNTDOWNACTIVE As Boolean Private Sub cmdabort_Click() EZX1.DOKstate = 0 EZX1.DOEstate = 0 EZX1.DONstate = 0 EZX1.DOSstate = 0 txtcount.Text = txtcountdown.Text lbltsign.Text = "T minus" tmrhybrid1.Enabled = False txtstatus.Text = "Sequence Aborted" EZX1.UpdateCmd = True End Sub Private Sub cmdconnect_Click() If EZX1.CommPort = 0 Then EZX1.CommPort = 1 txtstatus.Text = "Connected" EZX1.UpdateCmd = True cmdstart.Enabled = True ElseIf EZX1.CommPort = 1 Then EZX1.CommPort = 0 txtstatus.Text = "Disconnected" cmdstart.Enabled = True End If End Sub Private Sub cmdigniter_Click() If EZX1.DOKstate = 0 Then EZX1.DOKstate = 1 txtstatus.Text = "DOK Active" ElseIf EZX1.DOKstate = 1 Then EZX1.DOKstate = 0 txtstatus.Text = "DOK Inactive" End If EZX1.UpdateCmd = True End Sub Private Sub cmdoxidizeroff_Click() If EZX1.DOEstate = 0 Then EZX1.DOEstate = 1 txtstatus.Text = "DOE Active" ElseIf EZX1.DOEstate = 1 Then EZX1.DOEstate = 0 txtstatus.Text = "DOE Inactive" End If EZX1.UpdateCmd = True End Sub Private Sub cmdoxidizeron_Click() If EZX1.DOSstate = 0 Then EZX1.DOSstate = 1 txtstatus.Text = "DOS Active" ElseIf EZX1.DOSstate = 1 Then EZX1.DOSstate = 0 txtstatus.Text = "DOS Inactive" End If EZX1.UpdateCmd = True End Sub Private Sub cmdpurge_Click() If EZX1.DONstate = 0 Then EZX1.DONstate = 1 txtstatus.Text = "DON Active" ElseIf EZX1.DONstate = 1 Then EZX1.DONstate = 0 txtstatus.Text = "DON Inactive" End If EZX1.UpdateCmd = True End Sub Private Sub cmdstart_Click() COUNTDOWN = Val(txtcountdown.Text) COUNTUP = Val(txtignition.Text) COUNTDOWNACTIVE = True OXIDIZERON = Val(txtoxidizeron.Text) OXIDIZEROFF = Val(txtoxidizeroff.Text) PURGEON = Val(txtpurgeon.Text) PURGEOFF = Val(txtpurgeoff.Text) Call SequenceLogicCheck If SequenceCheck = True Then tmrhybrid1.Enabled = True End If End Sub Private Sub SequenceLogicCheck() If COUNTDOWN > 0 Then If OXIDIZERON > 0 Then If OXIDIZEROFF > OXIDIZERON Then If PURGEON > OXIDIZEROFF Then If PURGEOFF > PURGEON Then PURGE = True SequenceCheck = True Else PURGE = False SequenceCheck = True txtpurgeon.Text = "---" txtpurgeoff.Text = "---" End If Else PURGE = False SequenceCheck = True txtpurgeon.Text = "---" txtpurgeoff.Text = "---" End If Else txtstatus.Text = "Oxidizer Off must be > Oxidizer On" SequenceCheck = False End If Else txtstatus.Text = "Oxidizer On must occur at T+1 second or later" SequenceCheck = False End If Else txtstatus.Text = "Countdown must be >= 1 second" SequenceCheck = False End If End Sub Private Sub Command1_Click() If EZX1.Visible = False Then EZX1.Visible = True ElseIf EZX1.Visible = True Then EZX1.Visible = False End If End Sub Private Sub Form_Load() tmrhybrid1.Enabled = False tmrhybrid2.Enabled = False cmdstart.Enabled = False txtcount.Text = txtcountdown.Text frmFlexControl.Show End Sub Private Sub tmrhybrid1_Timer() If COUNTDOWNACTIVE = True Then COUNTDOWN = COUNTDOWN - 1 txtcount.Text = COUNTDOWN lbltsign.Text = "T minus" txtpurgeoff.BackColor = &H80000005 'white txtoxidizeroff.BackColor = &H80000005 'white txtcountdown.BackColor = &HFF& 'red Beep If COUNTDOWN <= 1 Then COUNTDOWNACTIVE = False End If ElseIf COUNTDOWNACTIVE = False Then lbltsign.Text = "T plus" txtcount.Text = COUNTUP If COUNTUP < OXIDIZERON Then EZX1.DOKstate = 1 'Igniter active txtcountdown.BackColor = &H80000005 'white txtignition.BackColor = &HFF& 'red txtignition.ForeColor = &H80000005 txtstatus.Text = "Ignition" ElseIf COUNTUP >= OXIDIZERON And COUNTUP < OXIDIZEROFF Then EZX1.DOKstate = 0 txtignition.BackColor = &H80000005 'white txtignition.ForeColor = &HFF& 'black EZX1.DOSstate = 1 'Oxidizer ON active txtoxidizeron.BackColor = &HFF& 'red txtstatus.Text = "Oxidizer ON" ElseIf COUNTUP >= OXIDIZEROFF And COUNTUP < PURGEON And PURGE = True Then EZX1.DOSstate = 0 txtoxidizeron.BackColor = &H80000005 'white txtoxidizeroff.BackColor = &HFF& 'red EZX1.DOEstate = 1 'Oxidizer OFF is active txtstatus.Text = "Oxidizer OFF " ElseIf COUNTUP >= PURGEON And COUNTUP < PURGEOFF And PURGE = True Then EZX1.DOEstate = 0 EZX1.DONstate = 1 'Purge Active txtoxidizeroff.BackColor = &H80000005 'white txtpurgeon.BackColor = &HFF& 'red txtstatus.Text = "Purge ON" ElseIf COUNTUP >= PURGEOFF And PURGE = True Then EZX1.DOSstate = 0 txtpurgeon.BackColor = &H80000005 'white txtpurgeoff.BackColor = &HFF& 'red txtstatus.Text = " Purge OFF" tmrhybrid1.Enabled = False Else EZX1.DOSstate = 0 EZX1.DOEstate = 1 txtoxidizeron.BackColor = &H80000005 'white txtoxidizeroff.BackColor = &HFF& 'red txtstatus.Text = "Oxidizer OFF" tmrhybrid1.Enabled = False tmrhybrid2.Enabled = True End If EZX1.UpdateCmd = True COUNTUP = COUNTUP + 1 Beep End If End Sub Private Sub tmrhybrid2_Timer() txtoxidizeroff.BackColor = &H80000005 'white EZX1.DOEstate = 0 EZX1.UpdateCmd = True tmrhybrid2.Enabled = False End Sub Private Sub txtcountdown_Change() txtcount.Text = txtcountdown.Text End Sub Private Sub txtpurgeoff_Change() If txtpurgeoff.Text = "0" Then txtpurgeoff.Text = "---" End If End Sub Private Sub txtpurgeon_Change() If txtpurgeon.Text = "0" Then txtpurgeon.Text = "---" End If End Sub