DLLファイルを使用したサンプルプログラム
|
|
|
Microsoft Visual Studio 2010 Visual Basic で作成
したLAN接続で、ソケット通信を行うためのDLLファイルを使用したサンプルソースファイルを用意しております。
DLLファイルを使用する際の参考にしてください。
※内容は予告なく変更される場合がございます |
|
DLLファイルのクラス、メソッドについて
■ Public Function SendCmd(ByVal Cmd As String, ByVal reqStatus As Boolean,
ByVal sendIP As String, ByVal numSetPort As Integer) As String関数
クラス名: Communication
引数:
Cmd: String型。送信文字列(コマンド)を格納する。
reqStatus: Boolean型。送信のみの場合「False」、送受信の場合「True」を指定。
sendIP: String型。LAN接続するIPアドレスを格納する。
numSetPort: Integer型。ポート番号を格納する。
関数の戻り値:
SendCmd: String型。受信データを返す。
機能:LEDN41-LANにデータを送信する準備を行う。
|
■ Private Function SendTcpClient(ByVal SendIP As IPEndPoint, ByVal byteSend
As Byte(), ByVal reqStatus As Boolean) As Byte()
クラス名: Communication
引数:
SendIP: IPEndPoint型。IPアドレスとポート番号を格納する。
byteSend: Byte配列型。送信データを格納する。
reqStatus: Boolean型。送信のみの場合「False」、送受信の場合「True」を指定。
関数の戻り値:
SendTcpClient: Byte配列型。受信データを返す。
機能: LAN接続でソケット通信を行う。送信後、受信する。
|
サンプルプログラム
■ 接続IP、Port
接続するLEDN41-LANのIPアドレスとポートを入力します。この例では、192.168.1.199と10001を記入しています。ご使用の環境に合わせて設定してください。
|
|
|
■ 表示
LEDN41-LANに表示する数値、-、半角スペースを入力し、表示ボタンをクリックするとLEDN41-LANに入力した値が表示されます。
|
|
■ 送信/受信
「送信コマンド」のテキストボックスにコマンドを手入力し、送信ボタンをクリックすることで各種設定が行えます。また、受信データがある場合には「受信ステータス」のテキストボックスにステータスが返ってきます。
|
|
|
|
■ サンプルソース
|
Imports System.Net
Imports System.Net.Sockets
Imports System.Text.Encoding
Imports System.Text
Imports System.Threading
Public Class FrmMain
' DLLのクラスをインスタンス化
Public Cmm As New LEDN41_CL.Communication
' LEDN41からの文字列を格納する変数
Dim ReceiveCommand As String = ""
Private Sub SendDispBtn_Click(sender As System.Object, e As System.EventArgs) Handles SendDispBtn.Click
' DLLのソケット送受信関数を呼ぶ
ReceiveCommand = Cmm.SendCmd("D" + TextBox1.Text, True, txtSetIP.Text, NudSetPort.Value)
err_msg() 'エラーメッセージ処理
End Sub
Private Sub TakeBtn_Click(sender As System.Object, e As System.EventArgs) Handles TakeBtn.Click
Dim i As Integer = 0
Dim n As Integer = 0
Dim last_dsp() As String
Dim txt As String = ""
' メインフレームをディスエーブル
frmMainEnableDisable(False)
' DLLのソケット送受信関数を呼ぶ
ReceiveCommand = Cmm.SendCmd("LD", True, txtSetIP.Text, NudSetPort.Value)
' メインフレームをイネーブル
frmMainEnableDisable(True)
'LDコマンドが成功すると、LDnnnn&で文字列が返ってくるので、&とLDを削除してテキストボックスに表示させる
'受け取った文字列を配列に&を探し、格納、格納した配列から&を削除する
last_dsp = ReceiveCommand.Split("&"c)
'受け取った文字列にエラーがないか探す
For Each Str As String In last_dsp
If Str.Contains("LD") Then
txt = Str
ElseIf Str.Contains("^") Then
MsgBox("オーバーフローエラー")
Exit Sub
ElseIf Str.Contains("?") Then
MsgBox("パラメータエラー")
Exit Sub
End If
Next
'文字列からLDを消し、テキストボックスに表示
LastDispValue.Text = txt.Replace("LD", "")
End Sub
Private Sub btnSend_Click(sender As System.Object, e As System.EventArgs) Handles btnSend.Click
' メインフレームをディスエーブル
frmMainEnableDisable(False)
' DLLのソケット送受信関数を呼ぶ
TxtBxReceive.Text = Cmm.SendCmd(TxtBxSendCom.Text, True, txtSetIP.Text, NudSetPort.Value)
' メインフレームをイネーブル
frmMainEnableDisable(True)
End Sub
Private Sub err_msg()
Dim msg(1) As String
For i = 1 To ReceiveCommand.Length
If Mid(ReceiveCommand, i, 1) = "^" Then
msg(0) = "オーバーフローエラー" + vbCrLf
ElseIf Mid(ReceiveCommand, i, 1) = "?" Then
msg(1) = "パラメータエラー" + vbCrLf
End If
Next
If msg(0) <> "" Or msg(1) <> "" Then
MsgBox(msg(0) + msg(1))
End If
End Sub
' 主に受信処理時にボタンなどをクリックできないようにディスエーブルする
Private Sub frmMainEnableDisable(ByVal flag As Boolean)
If flag Then
Me.Enabled = True
Else
Me.Enabled = False
End If
End Sub
' プログラムの終了
Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click
End
End Sub
End Class
|
|
対応OS :
Windows7 32bit版、64bit版、Windows8 32bit版、64bit版
Windows8.1 32bit版、64bit版、Windows10 32bit版、64bit版
製品LEDN41-LANご紹介のページはこちらです。
|
|
Last Update :
2023/03/07
LEDディスプレイ、LED表示機、カウントアップ、カウントダウン
|