laatzen/Pruef2000/source/modPruefung.bas
2021-10-01 11:11:04 +02:00

93 lines
3.1 KiB
QBasic

Attribute VB_Name = "modPruefung"
Option Explicit
Public Sub PrintStatusOnForm(myForm As Form, strText As String)
On Error GoTo Errorhandler
Debug.Print strText
myForm.PrintStatus strText
Exit Sub
Errorhandler:
Debug.Print Err.Description
End Sub
Public Sub AlleBehaelterLeeren(myForm As Form, m_SPS As CSPS, m_Waage As CWaage, Optional BehaelterVorher As CBehaelter)
Dim i As Integer
On Error GoTo Errorhandler
Dim bytealleAblassen As Byte
Dim BehaelterTemp As CBehaelter
If Not g_ohneSPS Then
PrintStatusOnForm myForm, "alle Behälter ganz leeren."
' bytealleAblassen bestimmen um alle Behälter leeren
For i = 1 To 4
Set BehaelterTemp = New CBehaelter
If BehaelterTemp.LoadFromIni(i) Then
bytealleAblassen = bytealleAblassen Or BehaelterTemp.m_AblassAnwahl
End If
Next
' alle Behälter nacheinander
For i = 1 To 4
If g_App.Settings.GetBehaelterAlleinLeeren(i) = True Then
' Hier soll nur ein Behälter zur selben Zeit geleert werden
' der andere soll warten
If BehaelterTemp.LoadFromIni(i) Then
m_SPS.setBehaelter BehaelterTemp.m_BehaelterAnwahl
m_SPS.WassserAblassen BehaelterTemp.m_AblassAnwahl
PrintStatusOnForm myForm, "Wasser Ablassen aus Behälter " & BehaelterTemp.m_OVolumen & " l"
End If
Else
' alle Behälter gleichzeitig leeren
m_SPS.WassserAblassen bytealleAblassen
PrintStatusOnForm myForm, "Wasser Ablassen aus allen Behältern."
End If
PrintStatusOnForm myForm, " Wartezeit auf Ventile: 15s"
Sleep 16000, True
Set BehaelterTemp = New CBehaelter
If BehaelterTemp.LoadFromIni(i) Then
' es gibt diesen Behälter
m_Waage.Initialize (i)
If m_Waage.m_Waagenart <> WAAGENART_FUELLSTAND Then
If BehaelterTemp.m_WaageAnwahl > 0 Then
m_Waage.Anwahl BehaelterTemp.m_WaageAnwahl
PrintStatusOnForm myForm, "Anwahl Waage " & BehaelterTemp.m_WaageAnwahl
End If
PrintStatusOnForm myForm, "Warte bis " & BehaelterTemp.m_OVolumen & " l-Behälter ganz leer ist..."
BehaelterTemp.WarteBisLeer
End If
End If
Next
' Behälter leeren beenden, Pumpe aus oder Ventil zu
m_SPS.WassserAblassen 0
If Not BehaelterVorher Is Nothing Then
m_SPS.setBehaelter BehaelterVorher.m_BehaelterAnwahl
PrintStatusOnForm myForm, "Behälter " & BehaelterVorher.m_OVolumen & "l ist wieder angewählt."
End If
End If
Exit Sub
Errorhandler:
ErrorMsg "Fehler " & Err.Number & " in Funktion 'alleBehaelterLeeren': " & Err.Description
Exit Sub
Resume
Exit Sub
Resume Next
End Sub