Public Class TemperatureCalculation Dim sgl_eMm As Single Dim sgl_Bee As Single Dim str_Dummy As String Dim str_CurrentDirectory As String Dim strFileandPathName As String Dim strFolderName As String = "Initialization_Data" Dim strInitFileName As String = "ParameterList_13406.txt" Dim strFileText As String Dim i_DoFlagVorlauf As Integer = 0 Dim i_DoFlagSpreizung As Integer = 0 Public Sub New() ' This call is required by the designer. Call InitializeComponent() ' Add any initialization after the InitializeComponent() call. 'Me.Text &= " Version 12a07a" ' Start 'Me.Text &= " Version 12a08a" ' general improvements 'Me.Text &= " Version 13405a" ' added function for external temperature correction 'Me.Text &= " Version 13406a" ' fetch initial Info from file >ParameterList_13406.txt< in folder >Initialization< 'Me.Text &= " Version 13407a" ' removed error in >SingleFctn_PolyTreCorrectedTemperature< 'Me.Text &= " Version 13424a" ' changed >Dim strFolderName As String = "Initialization" to "Initialization_Data"< 'Me.Text &= " Version 13524b" ' added *.TextChanged 'Me.Text &= " Version 13525a" ' correction to >added *.TextChanged< 'Me.Text &= " Version 13414b" ' (?) 'Me.Text &= " Version 14401a" ' Switch to Visual Studio Express 2013 Me.Text &= " Version 14429a" ' deleting all >My.Application.DoEvents()< str_CurrentDirectory = "C:\MowastEngineering\TECS_Data" ' 20.03.2013 strFileandPathName = str_CurrentDirectory & "\" & strFolderName & "\" & strInitFileName Try strFileText = My.Computer.FileSystem.ReadAllText(strFileandPathName) Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try txt_XoneT.Text = strfctn_SelectStringPortion(strFileText, "txt_XoneT.Text") txt_XtwoT.Text = strfctn_SelectStringPortion(strFileText, "txt_XtwoT.Text") txt_YoneVorlauf.Text = strfctn_SelectStringPortion(strFileText, "txt_YoneVorlauf.Text") txt_YtwoVorlauf.Text = strfctn_SelectStringPortion(strFileText, "txt_YtwoVorlauf.Text") txt_YOneSpreizung.Text = strfctn_SelectStringPortion(strFileText, "txt_YOneSpreizung.Text") txt_YTwoSpreizung.Text = strfctn_SelectStringPortion(strFileText, "txt_YTwoSpreizung.Text") txt_ExtTempr.Text = strfctn_SelectStringPortion(strFileText, "txt_ExtTempr.Text") 'str_Dummy = strfctn_FillPanel() ' My.Application.DoEvents() '14429 End Sub ' ************************************************************************************************** Private Function strfctn_SelectStringPortion(ByVal str_SourceText As String, ByVal str_Parameter As String) As String Dim i_StringPositionZero As Integer Dim i_StringPositionOne As Integer Dim i_StringPositionTwo As Integer i_StringPositionZero = InStr(1, str_SourceText, str_Parameter) i_StringPositionOne = InStr(i_StringPositionZero, str_SourceText, """") i_StringPositionTwo = InStr((i_StringPositionOne + 1), str_SourceText, """") strfctn_SelectStringPortion = Mid(str_SourceText, (i_StringPositionOne + 1), (i_StringPositionTwo - i_StringPositionOne - 1)) End Function ' ************************************************************************************************** 'Private Function strfctn_FillPanel() As String ' 'str_Dummy = strfctn_MandB(CDec(txt_XoneT.Text), CDec(txt_XtwoT.Text), CDec(txt_YoneVorlauf.Text), CDec(txt_YtwoVorlauf.Text)) ' 'txt_MVorlauf.Text = sgl_eMm.ToString ' 'txt_BVorlauf.Text = sgl_Bee.ToString ' 'str_Dummy = strfctn_MandB(CDec(txt_XoneT.Text), CDec(txt_XtwoT.Text), CDec(txt_YOneSpreizung.Text), CDec(txt_YTwoSpreizung.Text)) ' 'txt_MSpreizung.Text = sgl_eMm.ToString ' 'txt_BSpreizung.Text = sgl_Bee.ToString ' strfctn_FillPanel = "Panel is Filled" 'End Function ' ************************************************************************************************** ' Y = eMm * X + Bee given coordinate pairs (x1, y1) and (x2, y2) ' ************************************************************************************************** Public Function strfctn_MandB(ByVal sgl_X1 As Single, ByVal sgl_X2 As Single, _ ByVal sgl_Y1 As Single, ByVal sgl_Y2 As Single) As String Dim sgl_Delta As Single ' Y = M*X + B sgl_Delta = (sgl_X1 - sgl_X2) sgl_eMm = (sgl_Y1 - sgl_Y2) / sgl_Delta sgl_Bee = (sgl_X1 * sgl_Y2 - sgl_X2 * sgl_Y1) / sgl_Delta strfctn_MandB = "Done" End Function ' ************************************************************************************************** ' ************************************************************************************************** Public Function SingleFctn_VorlaufValue(ByVal sgl_ExtTempr As Single) As Single SingleFctn_VorlaufValue = CDec(txt_MVorlauf.Text) * sgl_ExtTempr + CDec(txt_BVorlauf.Text) End Function ' ************************************************************************************************** ' ************************************************************************************************** Public Function SingleFctn_SpreizungValue(ByVal sgl_ExtTempr As Single) As Single SingleFctn_SpreizungValue = CDec(txt_MSpreizung.Text) * sgl_ExtTempr + CDec(txt_BSpreizung.Text) End Function ' ************************************************************************************************** ' ************************************************************************************************** Private Sub btn_Calculate_Click(sender As System.Object, e As System.EventArgs) Handles btn_Calculate.Click 'str_Dummy = strfctn_FillPanel() txt_SupplyTempr.Text = Format(SingleFctn_VorlaufValue(CDec(txt_ExtTempr.Text)), "0.0").ToString txt_TemprDelta.Text = Format(SingleFctn_SpreizungValue(CDec(txt_ExtTempr.Text)), "0.0").ToString txt_LinCorrTempr.Text = SingleFctn_LinearCorrectedTemperature(CDec(txt_ExtTempr.Text)) txt_Poly2CorrTempr.Text = SingleFctn_PolyTwoCorrectedTemperature(CDec(txt_ExtTempr.Text)) txt_Poly3CorrTempr.Text = SingleFctn_PolyTreCorrectedTemperature(CDec(txt_ExtTempr.Text)) ' My.Application.DoEvents() '14429 End Sub ' ************************************************************************************************** Private Sub txt_ExtTempr_TextChanged(sender As Object, e As System.EventArgs) Handles txt_ExtTempr.TextChanged Dim i_DummyPosition As Integer i_DummyPosition = InStr(txt_ExtTempr.Text, ".") If i_DummyPosition = 0 Then Else MessageBox.Show("Bitte nur Komma verwenden !!", "Warnung") End If End Sub ' ************************************************************************************************** ' ************************************************************************************************** Public Function SingleFctn_LinearCorrectedTemperature(ByVal sgl_ExtTempr As Single) As Single SingleFctn_LinearCorrectedTemperature = 1.13 * sgl_ExtTempr + 0.05 End Function ' ************************************************************************************************** ' y = -0.0402x^2 + 1.2817x + 0.9845 ' ************************************************************************************************** Public Function SingleFctn_PolyTwoCorrectedTemperature(ByVal sgl_ExtTempr As Single) As Single SingleFctn_PolyTwoCorrectedTemperature = (-0.0402 * sgl_ExtTempr ^ 2) + (1.2817 * sgl_ExtTempr) + 0.9845 End Function ' ************************************************************************************************** ' y = 0.0016x^3 - 0.0464x^2 + 1.1914x + 1.0623 ' ************************************************************************************************** Public Function SingleFctn_PolyTreCorrectedTemperature(ByVal sgl_ExtTempr As Single) As Single 'SingleFctn_PolyTreCorrectedTemperature = (-0.0016 * sgl_ExtTempr ^ 3) + (-0.0464 * sgl_ExtTempr ^ 2) + (1.1914 * sgl_ExtTempr) + 1.0623 SingleFctn_PolyTreCorrectedTemperature = (0.0016 * sgl_ExtTempr ^ 3) + (-0.0464 * sgl_ExtTempr ^ 2) + (1.1914 * sgl_ExtTempr) + 1.0623 End Function ' ************************************************************************************************** ' ************************************************************************************************** Private Sub txt_YOneSpreizung_TextChanged(sender As Object, e As System.EventArgs) Handles txt_YOneSpreizung.TextChanged Dim str_Xxxxx As String Dim i_DummyPosition As Integer i_DummyPosition = InStr(txt_YOneSpreizung.Text, ".") If i_DummyPosition = 0 Then i_DoFlagSpreizung += 1 str_Xxxxx = strfctn_SpreizungConstantsCalculation() Else MessageBox.Show("Bitte nur Komma verwenden !!", "Warnung") End If End Sub ' ************************************************************************************************** ' ************************************************************************************************** Private Sub txt_YtwoSpreizung_TextChanged(sender As Object, e As System.EventArgs) Handles txt_YTwoSpreizung.TextChanged Dim str_Yyyyy As String Dim i_DummyPosition As Integer i_DummyPosition = InStr(txt_YTwoSpreizung.Text, ".") If i_DummyPosition = 0 Then i_DoFlagSpreizung += 1 str_Yyyyy = strfctn_SpreizungConstantsCalculation() Else MessageBox.Show("Bitte nur Komma verwenden !!", "Warnung") End If End Sub ' ************************************************************************************************** ' ************************************************************************************************** Private Function strfctn_SpreizungConstantsCalculation() As String If i_DoFlagSpreizung >= 2 Then i_DoFlagSpreizung = 2 ' prevents Overflow of i_DoFlag Try str_Dummy = strfctn_MandB(CDec(txt_XoneT.Text), CDec(txt_XtwoT.Text), CDec(txt_YOneSpreizung.Text), CDec(txt_YTwoSpreizung.Text)) txt_MSpreizung.Text = sgl_eMm.ToString txt_BSpreizung.Text = sgl_Bee.ToString Catch ex As Exception MessageBox.Show(ex.Message, "Warning") End Try strfctn_SpreizungConstantsCalculation = strfctn_StoreNewValues("txt_YOneSpreizung.Text", txt_YOneSpreizung.Text, "txt_YTwoSpreizung.Text", txt_YTwoSpreizung.Text) Else End If strfctn_SpreizungConstantsCalculation = "Done" End Function ' ************************************************************************************************** ' ************************************************************************************************** Private Sub txt_YoneVorlauf_TextChanged(sender As Object, e As System.EventArgs) Handles txt_YoneVorlauf.TextChanged Dim str_Xxxxx As String Dim i_DummyPosition As Integer i_DummyPosition = InStr(txt_YoneVorlauf.Text, ".") If i_DummyPosition = 0 Then i_DoFlagVorlauf += 1 str_Xxxxx = strfctn_VorlaufConstantsCalculation() Else MessageBox.Show("Bitte nur Komma verwenden !!", "Warnung") End If End Sub ' ************************************************************************************************** ' ************************************************************************************************** Private Sub txt_YtwoVorlauf_TextChanged(sender As Object, e As System.EventArgs) Handles txt_YtwoVorlauf.TextChanged Dim str_Yyyyy As String Dim i_DummyPosition As Integer i_DummyPosition = InStr(txt_YtwoVorlauf.Text, ".") If i_DummyPosition = 0 Then i_DoFlagVorlauf += 1 str_Yyyyy = strfctn_VorlaufConstantsCalculation() Else MessageBox.Show("Bitte nur Komma verwenden !!", "Warnung") End If End Sub ' ************************************************************************************************** ' ************************************************************************************************** Private Function strfctn_VorlaufConstantsCalculation() As String If i_DoFlagVorlauf >= 2 Then i_DoFlagVorlauf = 2 ' prevents Overflow of i_DoFlag Try str_Dummy = strfctn_MandB(CDec(txt_XoneT.Text), CDec(txt_XtwoT.Text), CDec(txt_YoneVorlauf.Text), CDec(txt_YtwoVorlauf.Text)) txt_MVorlauf.Text = sgl_eMm.ToString txt_BVorlauf.Text = sgl_Bee.ToString Catch ex As Exception MessageBox.Show(ex.Message, "Warning") End Try strfctn_VorlaufConstantsCalculation = strfctn_StoreNewValues("txt_YoneVorlauf.Text", txt_YoneVorlauf.Text, "txt_YtwoVorlauf.Text", txt_YtwoVorlauf.Text) Else End If strfctn_VorlaufConstantsCalculation = "Done" End Function ' ************************************************************************************************** ' ************************************************************************************************** Private Function strfctn_StoreNewValues(ByVal str_KeywordsOne As String, ByVal str_ValueOne As String, _ ByVal str_KeywordsTwo As String, ByVal str_ValueTwo As String) Dim str_DummyBeginning As String Dim str_DummyEnding As String Dim str_BothPartsOne As String Dim str_BothPartsTwo As String Dim i_StringPositionZero As Integer Dim i_StringPositionOne As Integer Dim i_StringPositionTwo As Integer Try strFileText = My.Computer.FileSystem.ReadAllText(strFileandPathName) Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try i_StringPositionZero = InStr(1, strFileText, str_KeywordsOne) i_StringPositionOne = InStr(i_StringPositionZero, strFileText, """") i_StringPositionTwo = InStr((i_StringPositionOne + 1), strFileText, """") str_DummyBeginning = Mid(strFileText, 1, (i_StringPositionOne)) str_DummyEnding = Mid(strFileText, (i_StringPositionTwo)) str_BothPartsOne = str_DummyBeginning & str_ValueOne & str_DummyEnding If str_BothPartsOne = strFileText Then ' There is no need to restore that data Else Try My.Computer.FileSystem.WriteAllText(strFileandPathName, str_BothPartsOne, False) Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End If ' My.Application.DoEvents() '14429 i_StringPositionZero = InStr(1, str_BothPartsOne, str_KeywordsTwo) i_StringPositionOne = InStr(i_StringPositionZero, str_BothPartsOne, """") i_StringPositionTwo = InStr((i_StringPositionOne + 1), str_BothPartsOne, """") str_DummyBeginning = Mid(str_BothPartsOne, 1, (i_StringPositionOne)) str_DummyEnding = Mid(str_BothPartsOne, (i_StringPositionTwo)) str_BothPartsTwo = str_DummyBeginning & str_ValueTwo & str_DummyEnding If str_BothPartsTwo = str_BothPartsOne Then ' There is no need to restore that data Else Try My.Computer.FileSystem.WriteAllText(strFileandPathName, str_BothPartsTwo, False) Catch ex As Exception MessageBox.Show(ex.Message, My.Application.Info.Title, _ MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End If ' My.Application.DoEvents() '14429 strfctn_StoreNewValues = "Basta" End Function ' ************************************************************************************************** ' ************************************************************************************************** End Class