1

Basically, I'm given a task to continue from the previous student. I have several sensors that will detect the Temperature, Humidity and Luminosity of the lab. These data from sensors will need to transmit to the Coordinator. I'm able to debug the program but unable to achieve the result as shown in GUI. The reading values are not able to transmit. Below is the code given by the previous student which they are able to achieve it.

What could be the problem?? I suspect that it could be the Serial Port Problem.

Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.Windows.Forms.DataGridView

Public Class frmGUI

Dim FromSerialPort
Dim dSet As New DataSet
Dim COORDINATOR0 = 0
Dim strData(0 To 1)
Dim data As String
Dim count As Integer = 0
Dim number As Integer
Dim data2 As String
Dim x As Integer = 0

Dim txt1 As Integer = 0
Dim txt2 As Integer = 0
Dim txt3 As Integer = 0
Dim txt4 As Integer = 0

Dim hour As String = 0
Dim min As String = 0
Dim sec As String = 0
Dim hour2 As String = 0
Dim min2 As String = 0
Dim sec2 As String = 0

Dim LumVal1 As Integer

Delegate Sub SetTextCallback(ByVal [text] As String)

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    If SerialPort1.IsOpen Then
        SerialPort1.Close()
    End If

    System.Diagnostics.Process.Start(My.Application.Info.DirectoryPath & "\Welcome.vbs")

    strData(0) = "ZED02"

    TSSL1.Text = Format(Now, "Short Date")
    TSSL2.Text = "Welcome"
    TSSL3.Text = Format(Now, "Long Time")

    PictureBox1.Image = System.Drawing.Bitmap.FromFile( _
  My.Application.Info.DirectoryPath & "\Capture.PNG")

    txtCOM.Focus()


End Sub

Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click

    Dim intResponse As Integer
    intResponse = MsgBox(" Are u sure u want to QUIT ??!!", vbYesNo + vbExclamation, "Quit")
    If intResponse = vbYes Then
        End

    End If

End Sub


Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles myTimer.Tick

    TSSL3.Text = Format(Now, "Long Time")


End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles myTimer.Tick

    If count = 1 Then
        sec = sec + 1
        If sec = 10 Then
            sec = 0
            sec2 = sec2 + 1
            If sec2 = 6 Then
                sec2 = 0
                min = min + 1
                If min = 10 Then
                    min = 0
                    min2 = min2 + 1
                    If min2 = 6 Then
                        min2 = 0
                        hour = hour + 1
                        If hour = 10 Then
                            hour = 0
                            hour2 = 1
                            If hour = 4 And hour2 = 2 Then
                                hour = 0
                                hour2 = 0
                            End If
                        End If
                    End If
                End If
            End If
        End If
        TSSL2.Text = ("Connected : " + hour2 + hour + ":" + min2 + min + ":" + sec2 + sec)
    End If

End Sub

Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click


    If txtCOM.Text = "" Then
        'MsgBox("Please enter a COM port value", vbOKOnly & vbExclamation, "Error")
        txtCOM.Text = "34"
    Else
        count = count + 1

    End If
    If (count = 1) Then

        System.Diagnostics.Process.Start(My.Application.Info.DirectoryPath & "\Connected.vbs")

        txtCOM.Enabled = False

        If SerialPort1.IsOpen Then
            SerialPort1.Close()
        End If

        SerialPort1.PortName = "COM" & txtCOM.Text ' for the coordinator
        SerialPort1.BaudRate = 38400
        SerialPort1.Parity = System.IO.Ports.Parity.None
        SerialPort1.DataBits = 8
        SerialPort1.StopBits = System.IO.Ports.StopBits.One
        SerialPort1.RtsEnable = True
        SerialPort1.Open()


        hour = 0
        min = 0
        sec = 0

        hour2 = 0
        min2 = 0
        sec2 = 0

        lbl1.Text = " Reading Data . . ."
        TextBox5.Text &= "Connected at: " + Format(Now, "Short Time") + vbNewLine + vbNewLine
        btnConnect.Text = "Disconnect"
    End If

    If count = 2 Then

        System.Diagnostics.Process.Start(My.Application.Info.DirectoryPath & "\Disconnected.vbs")

        txtCOM.Enabled = True

        count = 0

        btnConnect.Text = " Connect "
        SerialPort1.Close()             'Close our Serial Port

        lbl1.Text = " Not Connected "
        TSSL2.Text = "Disconnected"

        TextBox5.Text &= "Disconnected at: " + Format(Now, "Short Time") + vbNewLine + vbNewLine

    End If


End Sub


Private Sub ReceivedText(ByVal [text] As String)


    If Me.TextBox5.InvokeRequired Then
        Dim x As New SetTextCallback(AddressOf ReceivedText)
        Me.Invoke(x, New Object() {(text)})
    Else

        data &= [text]

        If InStr(data, "Data not received") Then
            data = ""
            TextBox5.Text = "Data lost" + vbNewLine
        End If

        If InStr(data, "Lab Location: S.429") Then
            If InStr(data, "TemperatureValue:") Then
                If InStr(data, "Humidityvalue:") Then
                    If InStr(data, "LuminosityValue:") Then
                        txt1 = 1

                        txt2 = 0
                        txt3 = 0
                        txt4 = 0

                        data2 = data
                    End If
                End If
            End If
        End If

        If InStr(data, "Lab Location: S.434") Then
            If InStr(data, "Temperaturevalue:") Then
                If InStr(data, "HumidityValue:") Then
                    If InStr(data, "LuminosityValue:") Then
                        txt2 = 1

                        txt1 = 0
                        txt3 = 0
                        txt4 = 0

                        data2 = data
                    End If
                End If
            End If
        End If

        If InStr(data, "Lab Location: S.439") Then
            If InStr(data, "TemperatureValue:") Then
                If InStr(data, "HumidityValue:") Then
                    If InStr(data, "LuminosityValue:") Then
                        txt3 = 1

                        txt1 = 0
                        txt2 = 0
                        txt4 = 0

                        data2 = data
                    End If
                End If
            End If
        End If

        If InStr(data, "Lab Location: S.449") Then
            If InStr(data, "TemperatureValue:") Then
                If InStr(data, "HumidityValue:") Then
                    If InStr(data, "LuminosityValue:") Then
                        txt4 = 1

                        txt1 = 0
                        txt2 = 0
                        txt3 = 0

                        data2 = data
                    End If
                End If
            End If
        End If

        If txt1 = 1 Then
            TextBox1.Text &= data2
            TextBox5.Text &= "Data received from S.429 at: " + Format(Now, "Short Time") + vbNewLine + vbNewLine
            System.Diagnostics.Process.Start(My.Application.Info.DirectoryPath & "\data429.vbs")
            txt1 = txt1 + 1

            If txt1 = 2 Then
                txt1 = 0
                data = ""
            End If
        End If


        If txt2 = 1 Then
            TextBox2.Text &= data2
            TextBox5.Text &= "Data received from S.434 at: " + Format(Now, "Short Time") + vbNewLine + vbNewLine
            System.Diagnostics.Process.Start(My.Application.Info.DirectoryPath & "\data434.vbs")
            txt2 = txt2 + 1

            If txt2 = 2 Then
                txt2 = 0
                data = ""
            End If
        End If



        If txt3 = 1 Then
            TextBox3.Text &= data2
            TextBox5.Text &= "Data received from S.439 at: " + Format(Now, "Short Time") + vbNewLine + vbNewLine
            System.Diagnostics.Process.Start(My.Application.Info.DirectoryPath & "\data439.vbs")
            txt3 = txt3 + 1

            If txt3 = 2 Then
                txt3 = 0
                data = ""
            End If
        End If

        If txt4 = 1 Then
            TextBox4.Text &= data2
            TextBox5.Text &= "Data received from S.449 at: " + Format(Now, "Short Time") + vbNewLine + vbNewLine
            System.Diagnostics.Process.Start(My.Application.Info.DirectoryPath & "\data449.vbs")
            txt4 = txt4 + 1

            If txt4 = 2 Then
                txt4 = 0
                data = ""
            End If
        End If

    End If

End Sub

Private Sub TextBox1ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    TextBox1.Clear()
End Sub

Private Sub TextBox2ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    TextBox2.Clear()
End Sub

Private Sub TextBox3ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    TextBox3.Clear()
End Sub

Private Sub TextBox4ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    TextBox4.Clear()
End Sub

Private Sub TextBox5ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    TextBox5.Clear()
End Sub

Private Sub AllToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    TextBox1.Clear()
    TextBox2.Clear()
    TextBox3.Clear()
    TextBox4.Clear()
    TextBox5.Clear()
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    TextBox1.Select(TextBox1.Text.Length, 0)
    TextBox1.ScrollToCaret()
End Sub

Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
    TextBox2.Select(TextBox2.Text.Length, 0)
    TextBox2.ScrollToCaret()
End Sub

Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
    TextBox3.Select(TextBox3.Text.Length, 0)
    TextBox3.ScrollToCaret()
End Sub

Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged
    TextBox4.Select(TextBox4.Text.Length, 0)
    TextBox4.ScrollToCaret()
End Sub

Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged
    TextBox5.Select(TextBox5.Text.Length, 0)
    TextBox5.ScrollToCaret()
End Sub

Private Sub S429ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles S429ToolStripMenuItem.Click
    TextBox1.Clear()
End Sub

Private Sub SToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SToolStripMenuItem.Click
    TextBox2.Clear()
End Sub

Private Sub S439ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles S439ToolStripMenuItem.Click
    TextBox3.Clear()
End Sub

Private Sub S449ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles S449ToolStripMenuItem.Click
    TextBox4.Clear()
End Sub

Private Sub BackLogToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BackLogToolStripMenuItem.Click
    TextBox5.Clear()
End Sub

Private Sub AllToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AllToolStripMenuItem1.Click
    TextBox1.Clear()
    TextBox2.Clear()
    TextBox3.Clear()
    TextBox4.Clear()
    TextBox5.Clear()
End Sub

Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
    MsgBox(" NYP SMART LAB " + vbNewLine + " By: Daniel and Mikaris ", vbQuestion, " About ")
End Sub

Private Sub HowToReadValuesToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HowToReadValuesToolStripMenuItem.Click
    MsgBox("Temperature value < 26*C = Aircon is on" + vbNewLine + "Luminosity value > 1 = Lights are on" + vbNewLine, vbQuestion, "How to read values")
End Sub
End Class
MPelletier
  • 16,256
  • 15
  • 86
  • 137
ElaineLMQ
  • 11
  • 1

0 Answers0