root/trunk/tools/cc3_image_viewer/Form1.vb

Revision 496, 9.0 kB (checked in by anthony_rowe, 2 years ago)

Frame Grabber GUI update

  • Property svn:executable set to *
Line 
1 Public 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
288 End Class
Note: See TracBrowser for help on using the browser.