' ############################################################################################################################################################
'''
''' Wird beim Drücken des Trennen Knopfes ausgeführt
'''
'''
'''
''' Schliesst den aktiven COMPORT
Private Sub cmdTrennen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTrennen.Click
Try
cp.DiscardInBuffer()
cp.DiscardOutBuffer()
cp.Close() <----------------------------------------------------------- Programm stürzt an dieser Stelle ab
Me.lblStatus.Text = "Verbindung geschlossen"
Me.cmdTrennen.Enabled = False
Me.cmdVerbinden.Enabled = True
frm_ManuelleSteuerung.picManuelleSteuerung.Enabled = False
cp = Nothing
Catch ex As Exception
MsgBox(ex.ToString)
Me.lblStatus.Text = "Fehler beim Schliessen des Ports"
End Try
End Sub
' ############################################################################################################################################################
' Hier wird die Form geschlossen
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Try
cp.DiscardOutBuffer()
cp.DiscardInBuffer()
cp.Close()
Catch ex As Exception
MsgBox(ex.ToString)
Finally
saveEigeneEinstellungen()
End Try
cp = Nothing
End Sub
' ##################################################################################################################################################################################
' Die Funktion wird bei jedem Datenempfang ausgeführt
Private Sub cp_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles cp.DataReceived
' Schreibt anhand des erhaltenen Funktionscodes an die entsprechende Eigenschaft den Übergebenen Wert
'setValues(&H30, cp.BytesToRead)
' Schreibt die Vorgehaltenen Bytes im Puffer für die spätere Anzeige im Form
' in die Globale Variable
intTxBytesToWrite = cp.BytesToWrite
intRxBytesToRead = cp.BytesToRead
If cp.ReadChar = 2 Then
Try
strString = ""
Dim i As Integer = 0
Do
intChar(i) = cp.ReadByte
i += 1
Loop While ((intChar(i - 1) <> 3) And (i < 30))
Dim temp(3) As Byte
newFrame.bytFC = intChar(0)
temp(0) = intChar(4)
temp(1) = intChar(3)
temp(2) = intChar(2)
temp(3) = intChar(1)
newFrame.sngValue = System.BitConverter.ToSingle(temp, 0)
strString += "FC:(" & Hex(intChar(0)) & ")" & "Value : (" & CStr(newFrame.sngValue) & ")" & vbCrLf
' Schreibt anhand des erhaltenen Funktionscodes an die entsprechende Eigenschaft den Übergebenen Wert
setValues(intChar(0), newFrame.sngValue)
Me.Invoke(Aktualisieren)
Catch ex As System.IndexOutOfRangeException
cp.DiscardInBuffer()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End If
End Sub