hi to all vb forums member!
im a newbee in vb.net 2010 programming, and i just want to ask some help from you guys,
i had this project sending serial commands via comport when pressing a keyboard key, i viewed many tutorial
already about keyboard events but and i understand it, but when i'm adding it to my code i press the keyboard letter " k"
the forms didn't give me output which is Msgbox ("hello k "). is there anything that i forgot to consider? please help. advance thanks!
my code is below:
Imports System
Imports System.ComponentModel
Imports System.Threading
Imports System.IO.Ports
Public Class Form_main
'Added to prevent threading errors during receiveing of data
Delegate Sub SetTextCallback(ByVal [text] As String)
Private Sub Form_main_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.K Then
MsgBox("hello k")
End If
End Sub
Private Sub Form_main_load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'COM Ports detected on the system will be stored here
Dim myPort As Array
' below code disable the autopilot,direction controller and elevation controller without the connecting to serial first...
PnlELEVATION.Enabled = False
PnlDIRECTION.Enabled = False
GbAUTOPILOT.Enabled = False
'FOR SERIAL COMMUNICATION CODES...............................................................
'When our form loads, auto detect all serial ports
'in the system and populate the cmbPort Combo box.
'------------------------------------------------------
'Get all com ports available
myPort = IO.Ports.SerialPort.GetPortNames()
'Populate the cmbBaud Combo box to common baud rates used
cmbbaud.Items.Add(9600)
cmbbaud.Items.Add(19200)
cmbbaud.Items.Add(38400)
cmbbaud.Items.Add(57600)
cmbbaud.Items.Add(115200)
For i = 0 To UBound(myPort)
cmbport.Items.Add(myPort(i))
Next
'Set cmbPort text to the first COM port detected
cmbport.Text = cmbport.Items.Item(0)
'Set cmbBaud text to the first Baud rate on the list
cmbbaud.Text = cmbbaud.Items.Item(0)
'Initially Disconnect Button is Disabled
Btndisconnect.Enabled = False
End Sub
Private Sub Btnconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnconnect.Click
'Set SerialPort1 to the selected COM port at startup
SerialPort1.PortName = cmbport.Text
'Set Baud rate to the selected value on
SerialPort1.BaudRate = cmbbaud.Text
'Other Serial Port Property
SerialPort1.Parity = IO.Ports.Parity.None
SerialPort1.StopBits = IO.Ports.StopBits.One
SerialPort1.DataBits = 8
'Open our serial port
SerialPort1.Open()
'Disable Connect button
Btnconnect.Enabled = False
'and Enable Disconnect button
Btndisconnect.Enabled = True
'Purpose of this is to secure the serial connection first before controlling the quadcopter.
PnlELEVATION.Enabled = True
PnlDIRECTION.Enabled = True
GbAUTOPILOT.Enabled = True
End Sub
Private Sub Btndisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btndisconnect.Click
'Close our Serial Port
SerialPort1.Close()
'enable connect button
Btnconnect.Enabled = True
'disable disconnect
Btndisconnect.Enabled = False
PnlELEVATION.Enabled = False
PnlDIRECTION.Enabled = False
GbAUTOPILOT.Enabled = False
End Sub
Private Sub cmbport_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
If SerialPort1.IsOpen = False Then
SerialPort1.PortName = cmbport.Text 'pop a message box to user if he is changing ports
Else 'without disconnecting first.
MsgBox("Disconnect first before changing the COM port!!", vbCritical)
End If
End Sub
Private Sub cmbbaud_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbbaud.SelectedIndexChanged
If SerialPort1.IsOpen = False Then
SerialPort1.PortName = cmbport.Text 'pop a message box to user if he is changing ports
Else 'without disconnecting first.
MsgBox("Disconnect first before changing the Baudrate!!", vbCritical)
End If
End Sub
'written down are the codes for serial data out for ELEVATION CONTROL...................
Private Sub BtnElevUP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnElevUP.Click
SerialPort1.Write("A")
BtnElevUP.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnElevDOWN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnElevDOWN.Click
SerialPort1.Write("B")
BtnElevDOWN.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnElevLEFT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnElevLEFT.Click
SerialPort1.Write("C")
BtnElevLEFT.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnElevRIGHT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnElevRIGHT.Click
SerialPort1.Write("D")
BtnElevRIGHT.BackColor = Color.DarkSlateGray
End Sub
' Written down are the serial data out for DIRECTION CONTROL.........................
Private Sub BtnFORWARD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFORWARD.Click
SerialPort1.Write("E")
BtnFORWARD.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnBACKWARD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBACKWARD.Click
SerialPort1.Write("F")
BtnBACKWARD.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnROLLLEFT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnROLLLEFT.Click
SerialPort1.Write("G")
BtnROLLLEFT.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnROLLRIGHT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnROLLRIGHT.Click
SerialPort1.Write("H")
BtnROLLRIGHT.BackColor = Color.DarkSlateGray
End Sub
End Class
im a newbee in vb.net 2010 programming, and i just want to ask some help from you guys,
i had this project sending serial commands via comport when pressing a keyboard key, i viewed many tutorial
already about keyboard events but and i understand it, but when i'm adding it to my code i press the keyboard letter " k"
the forms didn't give me output which is Msgbox ("hello k "). is there anything that i forgot to consider? please help. advance thanks!
my code is below:
Imports System
Imports System.ComponentModel
Imports System.Threading
Imports System.IO.Ports
Public Class Form_main
'Added to prevent threading errors during receiveing of data
Delegate Sub SetTextCallback(ByVal [text] As String)
Private Sub Form_main_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.K Then
MsgBox("hello k")
End If
End Sub
Private Sub Form_main_load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'COM Ports detected on the system will be stored here
Dim myPort As Array
' below code disable the autopilot,direction controller and elevation controller without the connecting to serial first...
PnlELEVATION.Enabled = False
PnlDIRECTION.Enabled = False
GbAUTOPILOT.Enabled = False
'FOR SERIAL COMMUNICATION CODES...............................................................
'When our form loads, auto detect all serial ports
'in the system and populate the cmbPort Combo box.
'------------------------------------------------------
'Get all com ports available
myPort = IO.Ports.SerialPort.GetPortNames()
'Populate the cmbBaud Combo box to common baud rates used
cmbbaud.Items.Add(9600)
cmbbaud.Items.Add(19200)
cmbbaud.Items.Add(38400)
cmbbaud.Items.Add(57600)
cmbbaud.Items.Add(115200)
For i = 0 To UBound(myPort)
cmbport.Items.Add(myPort(i))
Next
'Set cmbPort text to the first COM port detected
cmbport.Text = cmbport.Items.Item(0)
'Set cmbBaud text to the first Baud rate on the list
cmbbaud.Text = cmbbaud.Items.Item(0)
'Initially Disconnect Button is Disabled
Btndisconnect.Enabled = False
End Sub
Private Sub Btnconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnconnect.Click
'Set SerialPort1 to the selected COM port at startup
SerialPort1.PortName = cmbport.Text
'Set Baud rate to the selected value on
SerialPort1.BaudRate = cmbbaud.Text
'Other Serial Port Property
SerialPort1.Parity = IO.Ports.Parity.None
SerialPort1.StopBits = IO.Ports.StopBits.One
SerialPort1.DataBits = 8
'Open our serial port
SerialPort1.Open()
'Disable Connect button
Btnconnect.Enabled = False
'and Enable Disconnect button
Btndisconnect.Enabled = True
'Purpose of this is to secure the serial connection first before controlling the quadcopter.
PnlELEVATION.Enabled = True
PnlDIRECTION.Enabled = True
GbAUTOPILOT.Enabled = True
End Sub
Private Sub Btndisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btndisconnect.Click
'Close our Serial Port
SerialPort1.Close()
'enable connect button
Btnconnect.Enabled = True
'disable disconnect
Btndisconnect.Enabled = False
PnlELEVATION.Enabled = False
PnlDIRECTION.Enabled = False
GbAUTOPILOT.Enabled = False
End Sub
Private Sub cmbport_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
If SerialPort1.IsOpen = False Then
SerialPort1.PortName = cmbport.Text 'pop a message box to user if he is changing ports
Else 'without disconnecting first.
MsgBox("Disconnect first before changing the COM port!!", vbCritical)
End If
End Sub
Private Sub cmbbaud_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbbaud.SelectedIndexChanged
If SerialPort1.IsOpen = False Then
SerialPort1.PortName = cmbport.Text 'pop a message box to user if he is changing ports
Else 'without disconnecting first.
MsgBox("Disconnect first before changing the Baudrate!!", vbCritical)
End If
End Sub
'written down are the codes for serial data out for ELEVATION CONTROL...................
Private Sub BtnElevUP_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnElevUP.Click
SerialPort1.Write("A")
BtnElevUP.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnElevDOWN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnElevDOWN.Click
SerialPort1.Write("B")
BtnElevDOWN.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnElevLEFT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnElevLEFT.Click
SerialPort1.Write("C")
BtnElevLEFT.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnElevRIGHT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnElevRIGHT.Click
SerialPort1.Write("D")
BtnElevRIGHT.BackColor = Color.DarkSlateGray
End Sub
' Written down are the serial data out for DIRECTION CONTROL.........................
Private Sub BtnFORWARD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFORWARD.Click
SerialPort1.Write("E")
BtnFORWARD.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnBACKWARD_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBACKWARD.Click
SerialPort1.Write("F")
BtnBACKWARD.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnROLLLEFT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnROLLLEFT.Click
SerialPort1.Write("G")
BtnROLLLEFT.BackColor = Color.DarkSlateGray
End Sub
Private Sub BtnROLLRIGHT_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnROLLRIGHT.Click
SerialPort1.Write("H")
BtnROLLRIGHT.BackColor = Color.DarkSlateGray
End Sub
End Class