DLLファイルを使用したサンプルプログラム

            

ホーム > 表示機・ディスプレイ > LEDN41-LAN > LEDN41_UTL 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 : 2017/05/17

 

LEDディスプレイ、LED表示機、カウントアップ、カウントダウン