前提・実現したいこと
カメラを2つ用いてある対象物との距離を測定したいです。
Labviewを用いて作っていますが、追加のモジュールを用意していないのでTCP通信、あるいはほかの方法でLabview側に画像を送信してLabview内で距離測定の処理を行いたいです。
また、Labview以外(C++,C#等)でカメラを二台用いて距離計測出来るのであればそちらのほうもご教授お願いしたいです。
発生している問題・エラーメッセージ
VBとLabview間で、文字列の送受信を行うプログラムは出来たのですが、画像をLabview側に送る方法が分からないです。
また、Labviewへ受信した後、どのように処理をすれば距離計測ができるのか調べたのですがいまいち理解できませんでした。
該当のソースコード
VB
1送信側プログラム 2 3Public Class Form1 4 5 Private ns As System.Net.Sockets.NetworkStream 6 7 8 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 9 10 Try 11 Dim tcp As New System.Net.Sockets.TcpClient("localhost", 6200) 12 ns = TCP.GetStream() 13 ns.ReadTimeout = 10000 14 ns.WriteTimeout = 10000 15 MessageBox.Show("接続成功") 16 Catch ex As Exception 17 MessageBox.Show("接続失敗") 18 End Try 19 20 End Sub 21 22 23 Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click 24 25 'サーバーにデータを送信する 26 '文字列をByte型配列に変換 27 28 Dim enc As System.Text.Encoding = System.Text.Encoding.UTF8 29 Dim sendBytes As Byte() = enc.GetBytes(TextBox1.Text & vbCrLf) 30 'データを送信する 31 ns.Write(sendBytes, 0, sendBytes.Length) 32 33 'サーバーから送られたデータを受信する 34 Dim ms As New System.IO.MemoryStream() 35 Dim resBytes As Byte() = New Byte(255) {} 36 Dim resSize As Integer = 0 37 Do 38 'データの一部を受信する 39 resSize = ns.Read(resBytes, 0, resBytes.Length) 40 'Readが0を返した時はサーバーが切断したと判断 41 If resSize = 0 Then 42 Console.WriteLine("サーバーが切断しました。") 43 Exit Do 44 End If 45 '受信したデータを蓄積する 46 ms.Write(resBytes, 0, resSize) 47 'まだ読み取れるデータがあるか、データの最後が\nでない時は、 48 ' 受信を続ける 49 Loop While ns.DataAvailable OrElse _ 50 resBytes(resSize - 1) <> AscW(ControlChars.Lf) 51 '受信したデータを文字列に変換 52 Dim resMsg As String = enc.GetString(ms.GetBuffer(), 0, CInt(ms.Length)) 53 ms.Close() 54 '末尾の\nを削除 55 resMsg = resMsg.TrimEnd(ControlChars.Lf) 56 57 TextBox2.Text = resMsg 58 59 '閉じる 60 'ns.Close() 61 62 End Sub 63 64 Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 65 66 End Sub 67 68 69 Private Sub Form1_MaximumSizeChanged(sender As Object, e As System.EventArgs) Handles Me.MaximumSizeChanged 70 71 End Sub 72End Class 73
補足情報(FW/ツールのバージョンなど)
![(Labview(受信側)のブロックダイアグラム.png)
プログラミング初心者のため、読みづらいコード、意味不明なところが多々ございますが、ご教授のほうよろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/12 02:51
2018/11/12 03:24
2018/11/12 09:04
2018/11/13 01:14
2018/11/13 14:30