Jazz Soft お問い合わせ   JazzSoft@live.com     日本語   英語  日本語  中国語(繁体字)  中国語(簡体字)
工場自動化と歩留り管理ソリューション 
Skip Navigation Linksホーム > 製品一覧 > Swing > サンプル > HSMSクライアント(Visual Basic 6.0)

Dorian.Core が追加されました。Dorian は .NET 6 と 7 に対応するようになりました。

Swing ActiveXコントロール   



プログラミングガイド ~ ミニHSMSクライアントの作成(Visual Basic 6編)

この章ではHSMSのミニクライアントを作成しながらプログラミングについて解説していくことにします。開発する言語はVisual Basicを使用します。


準備

最初にミニホストの時と同じように、新規プロジェクトを作成し、Swing ActiveXコントロールを挿入しておきます。

HSMSクライアントを作ってみよう

  1. ActiveXコントロールを貼り付ける
    SwingHsmsコントロールとSwingSecsIIコントロールをフォームに貼り付けます。今回は説明を簡単にするためにSwingSecsIIコントロールは一個だけ貼り付けます。



  2. サーバと接続してみる
    アプリケーションが起動した直後に接続を有効にするために、FormLoadイベントに以下のように追加してやります。


    '接続する
    .Active = True


  3. 送信の準備
    HSMSのメッセージヘッダはSECS-Iとは異なります。このため、送信する前に専用の送信関数を作成して、若干の修正を加えてやる必要があります。


    Private Sub Send (bDataMessage As Boolean)
      With SwingSecsII1
        If bDataMessage Then
          .SessionID = 0
          .SType = 0
        Else
          .SessionID = &HFFFF
        End If
        .PType = 0
        .EBit = False
        SwingHsms.Send .Msg
      End With
    End Sub


  4. セレクト要求を送信する
    HSMS-SS(HSMSシングルセッション)の場合はクライアント(アクティブエンティティ)側が'Select Request'(セレクト要求)をサーバ(パッシブエンティティ)に送る必要があります。


    '接続に成功したか?
    If .Active Then
      'Select.Req送信
      SwingSecsII1.List = "SelectReq"
      Send False
    End If


  5. HSMSメッセージの受信
    HSMSで定義されているメッセージのタイプは以下のものがあります。


    説明
    0データメッセージ
    1セレクト要求
    2セレクト応答
    3セレクト解除要求
    4セレクト解除応答
    5リンクテスト要求
    6リンクテスト応答
    7リジェクト要求
    9セパレート要求


    Readイベントでは毎回受信したメッセージをチェックしてやる必要があります。


      With SwingSecsII1
        .Msg = pszMsg
        Select Case .SType
        Case 0
          'データメッセージ
        Case 1
          'セレクト要求
        Case 2
          'セレクト応答
        Case 3
          'セレクト解除要求
        Case 4
          'セレクト解除応答
        Case 5
          'リンクテスト要求
        Case 6
          'リンクテスト応答
        Case 7
          'リジェクト要求
        Case 9
          'セパレート要求
        End Select
      End With


  6. リンクテスト応答を返信する
    リンクテスト要求を受信したら、直ちにリンクテスト応答を返さなければなりません。これを送るには以下のように記述します。


    .List = "LinkTestRsp"
    .Reply pszMsg
    .SType = 6
    .Stream = 0
    .Fucntion = 0
    Send False


  7. 実行
    わずか100行足らずという簡単さでHSMSクライアントの作成は完了です。お客様向けに出荷するシステムに仕上げるにはこのサンプルプログラムに機能を追加していけばいいでしょう。同じようなプログラムを一から作成することを考えると、信じられないほど簡単に作成できることが分かっていただけたと思います。


    Option Explicit

    Private Sub Send (bDataMessage As Boolean)
      With SwingSecsII1
        If bDataMessage Then
          .SessionID = 0
          .SType = 0
        Else
          .SessionID = &HFFFF
        End If
        .PType = 0
        .EBit = False
        SwingHsms1.Send .Msg
      End With
    End Sub

    Private Sub Command1_Click(Index As Integer)
      With SwingHsms1
        Select Case Index
        Case 0
          'Connect
          .Active = True
          If .Active Then
            SwingSecsII1.List = "SelectReq"
            Send False
          End If
        Case 1
          'Disconnect
          .Active = False
        Case 2
          'Link test
          SwingSecsII1.List = "LinkTestReq"
          Send False
        Case 3
          'S1F1
          SwingSecsII1.List = "s1f1w"
          Send True
        Case 4
          'S1F13
          SwingSecsII1.List = "s1f13w{}"
          Send True
        End Select
      End With
    End Sub

    Private Sub Form_Load()
      Command1_Click 0
    End Sub

    Private Sub SwingHsms1_Read (ByVal pszIPAddress As String, ByVal lPortNumber As Long, ByVal pszMsg As String)
      With SwingSecsII1
        .Msg = pszMsg
        Select Case .SType
        Case 0
          'Data message
          If (.Fucntion Mod 2) = 1 And .WBit Then
            'Send default reply message
            .List = "<b 0>"
            .Reply pszMsg
            Send True
          End If
        Case 1
          'Select.Req
          .List = "SelectRsp"
          .Reply pszMsg
          .SType = 2
          .Stream = 0
          .Fucntion = 0
          Send False
        Case 2
          'Select.Rsp
        Case 3
          'Deselect.Req
          .List = "DeselectRsp"
          .Reply pszMsg
          .SType = 4
          .Stream = 0
          .Fucntion = 0
          Send False
        Case 4
          'Deselect.Rsp
        Case 5
          'LinkTest.Req
          .List = "LinkTestRsp"
          .Reply pszMsg
          .SType = 6
          .Stream = 0
          .Fucntion = 0
          Send False
        Case 6
          'LinkTest.Rsp
        Case 7
          'Reject.Req
        Case 9
          'Separate.Req
        End Select
      End With
    End Sub


お問い合わせ   JazzSoft@live.com
  Copyright © 1997 - 2024 Jazz Soft, Inc.