Imports System.IO.Ports Imports System Imports System.Math Public Class Form1 Dim WithEvents myComPort As New IO.Ports.SerialPort Dim ForwardPower As String Dim ReflectedPower As String Dim ReturnLoss As String Dim Swr As String Dim x As String 'dummy variable Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Loads On Start Up 'Searches for COM Ports And Adds them to ComboBox For i As Integer = 0 To My.Computer.Ports.SerialPortNames.Count - 1 cbbComPorts.Items.Add(My.Computer.Ports.SerialPortNames(i)) Next End Sub Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label5.Click End Sub Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click 'Open and configure Port If myComPort.IsOpen Then myComPort.Close() End If With myComPort .ReadTimeout = 3000 .PortName = cbbComPorts.Text() .BaudRate = 9600 ' fixed by the Elecraft software .Parity = Parity.None .StopBits = StopBits.One .Handshake = Handshake.None .DataBits = 8 End With 'Open Port myComPort.Open() End Sub Private Sub btnMeasure_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMeasure.Click If myComPort.IsOpen Then 'Forward Power x = myComPort.ReadExisting 'empty comport buffer myComPort.Write("F") System.Threading.Thread.Sleep(100) 'wait for a response ForwardPower = myComPort.ReadExisting ForwardPower = ForwardPower.Substring(1, 4) ' calibrate here (Now just a trial) ForwardPower = ForwardPower + 1 'add 1 watt txtbPf.Text = ForwardPower 'Reflected Power x = myComPort.ReadExisting 'empty comport buffer myComPort.Write("R") System.Threading.Thread.Sleep(100) 'wait for a response ReflectedPower = myComPort.ReadExisting ReflectedPower = ReflectedPower.Substring(1, 4) txtbPr.Text = ReflectedPower 'SWR/Return Loss calculation Swr = (1 + Math.Sqrt(ReflectedPower) / Math.Sqrt(ForwardPower)) / (1 - Math.Sqrt(ReflectedPower) / Math.Sqrt(ForwardPower)) txtbSwr.Text = Swr ReturnLoss = (Swr - 1) / (Swr + 1) ReturnLoss = -20.0 * Math.Log10(ReturnLoss) txtbRl.Text = ReturnLoss Else MsgBox(" Please Open a ComPort") End If End Sub Private Sub btnToggleLeds_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToggleLeds.Click If myComPort.IsOpen Then myComPort.Write("L") Else MsgBox(" Please Open a Comport") End If End Sub Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged If myComPort.IsOpen Then Select Case ComboBox1.SelectedItem Case "B: Forward Power Bar Graph" x = myComPort.ReadExisting myComPort.Write("B") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "C: Reverse Power Bar Graph" x = myComPort.ReadExisting myComPort.Write("C") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "D: SWR Bar Graph" x = myComPort.ReadExisting myComPort.Write("D") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "F: Forward Power" x = myComPort.ReadExisting myComPort.Write("F") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "L: Toggle LED's ON/OFF" x = myComPort.ReadExisting myComPort.Write("L") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "M: Toggle Average/PEP LED's" x = myComPort.ReadExisting myComPort.Write("M") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "N : Toggle Serial Data,Average/PEP" x = myComPort.ReadExisting myComPort.Write("N") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "P: Toggle LED Bar Graph" x = myComPort.ReadExisting myComPort.Write("P") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "R: Reverse Power" x = myComPort.ReadExisting myComPort.Write("R") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "S: SWR" x = myComPort.ReadExisting myComPort.Write("S") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "U: Request EEPROM Settings" x = myComPort.ReadExisting myComPort.Write("U") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "V: FirmWare Version" x = myComPort.ReadExisting myComPort.Write("V") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "W: Write To EEPROM" x = myComPort.ReadExisting myComPort.Write("W") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "X: Request Current User Settings in RAM" myComPort.Write("X") x = myComPort.ReadExisting System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting Case "Z: Streaming" x = myComPort.ReadExisting myComPort.Write("Z") System.Threading.Thread.Sleep(100) rtbCommandResponse.Text = myComPort.ReadExisting End Select Else MsgBox(" Please Open ComPort") End If End Sub Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click myComPort.Close() Me.Close() End Sub End Class