root/trunk/tools/cc3_image_viewer/Form1.vb

Revision 496, 9.0 KB (checked in by anthony_rowe, 3 years ago)

Frame Grabber GUI update

  • Property svn:executable set to *
Line 
1Public Class Form1
2    Dim WithEvents serialPort As New IO.Ports.SerialPort
3    Public jpeg_grab As Byte
4    Public myStr As String
5
6
7
8
9
10
11    Private Sub Form1_Load( _
12       ByVal sender As System.Object, _
13       ByVal e As System.EventArgs) _
14       Handles MyBase.Load
15
16
17        For i As Integer = 0 To _
18           My.Computer.Ports.SerialPortNames.Count - 1
19            cbbCOMPorts.Items.Add( _
20               My.Computer.Ports.SerialPortNames(i))
21        Next
22        cbbCOMPorts.SelectedIndex = 0
23        baudBox.Items.Add("115200")
24        baudBox.Items.Add("57600")
25        baudBox.Items.Add("38400")
26        baudBox.Items.Add("28800")
27        baudBox.Items.Add("14400")
28        baudBox.Items.Add("9600")
29        baudBox.Items.Add("4800")
30        baudBox.Items.Add("2400")
31        baudBox.Items.Add("1200")
32        baudBox.SelectedIndex = 0
33        btnDisconnect.Enabled = False
34        jpeg_grab = 0
35    End Sub
36
37    Private Sub DataReceived( _
38       ByVal sender As Object, _
39       ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
40           Handles serialPort.DataReceived
41
42        If (jpeg_grab = 0) Then
43            txtDataReceived.Invoke(New _
44              myDelegate(AddressOf updateTextBox), _
45             New Object() {})
46        End If
47
48    End Sub
49
50
51    Public Delegate Sub myDelegate()
52    Public Sub updateTextBox()
53        With txtDataReceived
54            .Font = New Font("Courier", 9.0!, FontStyle.Bold)
55            .SelectionColor = Color.Red
56            .AppendText(serialPort.ReadExisting)
57            .ScrollToCaret()
58        End With
59    End Sub
60
61   
62
63    Private Sub StreamStop()
64        Try
65            Timer1.Stop()
66            serialPort.DiscardInBuffer()
67            serialPort.DiscardOutBuffer()
68            jpeg_grab = 0
69        Catch ex As Exception
70
71        End Try
72    End Sub
73
74
75
76    Private Sub grab_jpeg()
77        Try
78            Dim i As Integer
79            Dim buf() As Byte
80
81
82            jpeg_grab = 1
83            serialPort.DiscardInBuffer()
84            serialPort.Write("SJ" & vbCr)
85
86            serialPort.ReadTo("ACK" & vbCr)
87
88            myStr = serialPort.ReadTo("JPG_END" & vbCr & ":")
89
90            ReDim buf(myStr.Length())
91
92            For i = 0 To myStr.Length() - 1
93                buf(i) = CByte(Asc(myStr(i)))
94            Next
95
96            My.Computer.FileSystem.WriteAllBytes("test.jpg", buf, False)
97
98            jpeg_grab = 0
99
100            PictureBox1.ImageLocation = "test.jpg"
101            PictureBox1.Refresh()
102
103        Catch ex As Exception
104            MsgBox("Frame Grab Comm. Error")
105            StreamStop()
106        End Try
107    End Sub
108
109
110
111    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
112        If jpeg_grab = 1 Then
113            StreamStop()
114            MsgBox("Refresh Interval Too Short!")
115            Return
116        End If
117        grab_jpeg()
118
119    End Sub
120
121
122   
123
124
125    Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click
126
127        If serialPort.IsOpen Then
128            serialPort.Close()
129        End If
130        Try
131
132            With serialPort
133                .PortName = cbbCOMPorts.Text
134                .BaudRate = Val(baudBox.SelectedItem().ToString())
135                .Parity = IO.Ports.Parity.None
136                .DataBits = 8
137                .StopBits = IO.Ports.StopBits.One
138                .ReadTimeout = Val(serialTOBox.Text())
139                '.Encoding = System.Text.Encoding.Unicode
140                .Encoding = System.Text.Encoding.Default
141
142
143            End With
144            serialPort.Open()
145            serialPort.DiscardInBuffer()
146            serialPort.DiscardOutBuffer()
147
148            lblMessage.Text = cbbCOMPorts.Text & " connected."
149            btnConnect.Enabled = False
150            btnDisconnect.Enabled = True
151            grabButton.Enabled = True
152            btnSend.Enabled = True
153            stopButton.Enabled = True
154            configPanel.Enabled = True
155            ServoPanel.Enabled = True
156            txtDataToSend.Focus()
157
158        Catch ex As Exception
159            MsgBox("Communication Error")
160            StreamStop()
161        End Try
162    End Sub
163
164    Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click
165        Try
166            serialPort.Close()
167            lblMessage.Text = serialPort.PortName & " disconnected."
168            btnConnect.Enabled = True
169            btnDisconnect.Enabled = False
170            grabButton.Enabled = False
171            btnSend.Enabled = False
172            stopButton.Enabled = False
173            configPanel.Enabled = False
174            ServoPanel.Enabled = False
175        Catch ex As Exception
176            MsgBox("Communication Error")
177            StreamStop()
178        End Try
179    End Sub
180
181    Private Sub grabButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles grabButton.Click
182        serialPort.ReadTimeout = Val(serialTOBox.Text())
183        If stop_box1.Checked() = True Then
184            Timer1.Interval = Val(timerTimeout.Text())
185            Timer1.Start()
186        End If
187
188        grab_jpeg()
189    End Sub
190
191    Private Sub stopButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles stopButton.Click
192        Timer1.Stop()
193    End Sub
194
195   
196    Private Sub CIFradio_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CIFradio.CheckedChanged
197        PictureBox1.Height = 288
198        PictureBox1.Width = 352
199
200    End Sub
201
202    Private Sub QCIFradio_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QCIFradio.CheckedChanged
203        PictureBox1.Height = 144
204        PictureBox1.Width = 176
205
206    End Sub
207
208
209 
210 
211    Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
212        Try
213            serialPort.Write(txtDataToSend.Text & vbCr)
214            With txtDataReceived
215                .SelectionColor = Color.Black
216                .AppendText(txtDataToSend.Text & vbCr)
217                .ScrollToCaret()
218            End With
219            txtDataToSend.Text = String.Empty
220        Catch ex As Exception
221            MsgBox("Communication Error")
222            StreamStop()
223        End Try
224    End Sub
225
226 
227   
228   
229    Private Sub vwSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles vwSet.Click
230        serialPort.Write("VW " & X0_textbox.Text & " " & Y0_textbox.Text & " " & X1_textbox.Text & " " & Y1_textbox.Text & vbCr)
231    End Sub
232
233   
234    Private Sub HiResRadio_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HiResRadio.CheckedChanged
235        serialPort.Write("HR 1" & vbCr)
236    End Sub
237
238    Private Sub loResRadio_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles loResRadio.CheckedChanged
239        If (configPanel.Enabled = True) Then
240            serialPort.Write("HR 0" & vbCr)
241        End If
242
243    End Sub
244
245    Private Sub RGBRadio_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RGBRadio.CheckedChanged
246        If (configPanel.Enabled = True) Then
247            serialPort.Write("CR 18 44" & vbCr)
248        End If
249    End Sub
250
251    Private Sub YCrCbButton_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles YCrCbButton.CheckedChanged
252        If (configPanel.Enabled = True) Then
253            serialPort.Write("CR 18 36" & vbCr)
254        End If
255
256    End Sub
257
258    Private Sub dsSetButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dsSetButton.Click
259        If (configPanel.Enabled = True) Then
260            serialPort.Write("DS " & dsX.Value & " " & dsY.Value & vbCr)
261        End If
262
263    End Sub
264
265    Private Sub TrackBar1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll
266        servo0_textbox.Clear()
267        servo0_textbox.AppendText(TrackBar1.Value)
268        serialPort.Write("SV 0 " & servo0_textbox.Text & vbCr)
269    End Sub
270
271    Private Sub TrackBar2_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar2.Scroll
272        servo1_textbox.Clear()
273        servo1_textbox.AppendText(TrackBar2.Value)
274        serialPort.Write("SV 1 " & servo1_textbox.Text & vbCr)
275    End Sub
276
277    Private Sub TrackBar3_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar3.Scroll
278        servo2_textbox.Clear()
279        servo2_textbox.AppendText(TrackBar3.Value)
280        serialPort.Write("SV 2 " & servo2_textbox.Text & vbCr)
281    End Sub
282
283    Private Sub TrackBar4_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TrackBar4.Scroll
284        servo3_textbox.Clear()
285        servo3_textbox.AppendText(TrackBar4.Value)
286        serialPort.Write("SV 3 " & servo3_textbox.Text & vbCr)
287    End Sub
288End Class
Note: See TracBrowser for help on using the browser.