====================================================================================================
== 実行形式ファイル ================================================================================

■ SimpleIo.exe

   SimpleIo.c   を VS2005 を使用して Makefile.Win32 により make した実行形式。
   実行には ../Win32/ の 32bit 対応の TDS.dll が必要。


■ BasicIo.exe

   BasicIo.c    を VS2005 を使用して Makefile.Win32 により make した実行形式。
   実行には ../Win32/ の 32bit 対応の TDS.dll が必要。


■ CallbackIo.exe

   CallbackIo.c を VS2005 を使用して Makefile.Win32 により make した実行形式。
   実行には ../Win32/ の 32bit 対応の TDS.dll が必要。


■ CSIo.exe

   CSIo.cs を VS2005 を使用して Makefile.Win32 により make した実行形式。
   実行には ../Win32/ の 32bit 対応の TDCSS.dll、TDS.dll が必要。


■ VBIo.exe

   VBIo.vb を VS2005 を使用して Makefile.Win32 により make した実行形式。
   実行には ../Win32/ の 32bit 対応の TDVBS.dll、TDS.dll が必要。


■ JVIo.class、JVIo$RecvProcThread.class

   JVIo.java    を JDK 1.7 を使用して Makefile.Win32 により make した実行形式。
   実行には ../TDJVS.jar 及び TDS.dll が必要。
   また、TDJVS.jar は、Java JNA を使用しているので、TDS.pdf 付録Ｄに記す JNA 実行環境を整備する
   必要がある。


■ JavaIo.class、JavaIo$RecvProcThread.class

   JavaIo.java  を JDK 1.7 を使用して Makefile.Win32 により make した実行形式。
   実行には ../TDS.jar が必要。TDS.jar は JNA を使用しないので、実行に TDS.dll は必要ない。

   (注1) TDS.jar は、弊社ＨＰ 及び Vector 様ＨＰからのダウンロード可能製品には含まれておりません。
      TDS.jar のご使用をお考えのお客様は、弊社 (info@trust-design.co.jp) までお問い合わせください。


■ ExTraceAP.exe

   ExTraceAP.c を VS2005 を使用して Makefile.Win32 により make した実行形式。


■ SimpleIo.py、PythonIo.py

   Python 3 によるサンプル
   実行には Python 3 実行環境が必要であり、その環境に合わせた TDS.dll を使用すること。


■ SimpleIo.rb、RubyIo.rb

   Ruby 2 によるサンプル
   実行には Ruby 2 実行環境が必要であり、その環境に合わせた TDS.dll を使用すること。


■ TDSSample1.exe

   ../Sample1/ に格納するサンプル・コードを VS2005 を使用して build した実行形式。
   実行には ../Win32/ の 32bit 対応の TDS.dll が必要。


■ TDSSample2.exe ......... (注意:本サンプル exe は 64bit 対応で build している。)

   ../Sample2/ に格納するサンプル・コードを VS2010 を使用して build した実行形式。
   実行には ../Win64/ の 64bit 対応の TDS.dll が必要。

   (注2) 本サンプル exe は、64bit 対応で Build しています。32bit 対応とする場合は、TDSSample2 の
       プロジェクト設定を変更し、32bit 対応として、再 Build してください。



====================================================================================================
== ソース・コード・ファイル ========================================================================

■ SimpleIo.c

  ・ SECS メッセージをＡＰ内で構築し、単純に S1F1、S1F2 の送受信を繰り返す、最も単純な使用例。



■ BasicIo.c

  ・ SECS メッセージの SECS による Send/Receive 処理を逐次行う、基本的な処理例。

  ・ 内部に定義したマクロ定数の値を変更することにより、以下の項目に関して処理方法を変更できる。
    ・ SECS-1 or HSMS-SS
    ・ 使用する関数の種別 (_TDSCommXxxxx() or _TDSUDrvXxxxx())
    ・ メッセージ定義ファイル使用の有無
    ・ メッセージのリスト表現形式
    ・ メッセージ内各データ項目の取得方法



■ CallbackIo.c

  ・ SECS メッセージの Receive 処理を Callback 関数内で行い、１次メッセージの受信時は、対応する
     ２次メッセージの送出もその時点で行う通常の処理に近い処理例。

  ・ 内部に定義したマクロ定数の値を変更することにより、以下の項目に関して処理方法を変更できる。
    ・ SECS-1 or HSMS-SS
    ・ 使用する関数の種別 (_TDSCommXxxxx() or _TDSUDrvXxxxx())
    ・ メッセージ定義ファイル使用、及び２次メッセージ自動応答の有無
    ・ メッセージのリスト表現形式
    ・ メッセージ内各データ項目の取得方法
    ・ ユーザ関数による通信トレース出力の有無

  ・ 通信トレースをユーザ関数内で行う例示もする。
     指定により、メッセージ定義ファイルを使用し、定義ファイルを利用した自動応答機能を使用する。

  ・ トレース・メッセージ内に定義ファイルにて規定する項目名等の情報を出力する。

  ・ 要求コードにより、一定間隔（100ms）での連続送信（受信）処理を CNTL-C 入力まで継続実行する。



■ SubFunctions.h

  ・ BasicIo.c、CallbackIo.c から Call される関数の実体を格納したソース・コード・ファイル。
     各ソース・コード・ファイルでは、#include することにより、自分の中に取り込む。



■ CSIo.cs

  ・ BaseicIo.c の C# 版。内部に定義した変数を変更することにより、Callback 処理も可能。

  ・ 本サンプルの起動には、.Net Framework 2.0 が必要。
  ・ 本サンプルは、Windows 版のみ使用可能

  ・ 内部に定義した定数の値を変更することにより、以下の項目に関して処理方法を変更できる。
    ・ SECS-1 or HSMS-SS
    ・ 使用する関数の種別 (_CommXxxxx() or _UDrvXxxxx())
    ・ Callback 関数使用の有無
    ・ メッセージ定義ファイル使用、及び２次メッセージ自動応答の有無
    ・ メッセージのリスト表現形式
    ・ メッセージ内各データ項目の取得方法



■ VBIo.vb

  ・ BaseicIo.c の Visual Basic 版。内部に定義した変数を変更することにより、Callback 処理も可能。

  ・ 本サンプルの起動には、.Net Framework 2.0 が必要。
  ・ 本サンプルは、Windows 版のみ使用可能

  ・ 内部に定義した定数の値を変更することにより、以下の項目に関して処理方法を変更できる。
    ・ SECS-1 or HSMS-SS
    ・ 使用する関数の種別 (_TDSCommXxxxx() or _TDSUDrvXxxxx())
    ・ Callback 関数使用の有無
    ・ メッセージ定義ファイル使用、及び２次メッセージ自動応答の有無
    ・ メッセージのリスト表現形式
    ・ メッセージ内各データ項目の取得方法



■ JVIo.java

  ・ BaseicIo.c の Java 版。内部に定義した変数を変更することにより、Callback 処理も可能。

  ・ 本サンプルの Build 及び起動には、以下が必要
    ・ JavaVM 1.7 以降
    ・ JDK    1.7 以降
    ・ JNA    4.1 以降

  ・ 内部に定義したマクロ定数の値を変更することにより、以下の項目に関して処理方法を変更できる。
    ・ SECS-1 or HSMS-SS
    ・ 使用する関数の種別 (_TDJVSCommXxxxx() or _TDJVSUDrvXxxxx())
    ・ Callback 関数使用の有無
    ・ メッセージ定義ファイル使用、及び２次メッセージ自動応答の有無
    ・ メッセージのリスト表現形式
    ・ メッセージ内各データ項目の取得方法

  (注) 開発、実行環境の設定に関しては、プログラマーズ・マニュアル (TDS.pdf) 付録Ｄ を参照すること。



■ JavaIo.java

  ・ JVIo.c を TDJVS.jar ではなく JNA (及び TDS.dll) を使用しない TDS.jar を使用する API に変更
     したもの。

  ・ 本サンプルの Build 及び起動には、以下が必要
    ・ JavaVM 1.7 以降
    ・ JDK    1.7 以降

  ・ 内部に定義した定数の値を変更することにより、以下の項目に関して処理方法を変更できる。
    ・ SECS-1 or HSMS-SS
    ・ 使用する関数の種別 (_TDSCommXxxxx() or _TDSUDrvXxxxx())
    ・ Callback 関数使用の有無
    ・ メッセージ定義ファイル使用、及び２次メッセージ自動応答の有無
    ・ メッセージのリスト表現形式
    ・ メッセージ内各データ項目の取得方法

  (注1) 開発、実行環境の設定に関しては、プログラマーズ・マニュアル (TDS.pdf) 付録Ｅ を参照する
        こと。

  (注2) 添付の Makefile は、all エントリに JavaIo.java の make を含みません。JavaIo.java を
        Make するには、Makefile の all エントリに JavaIo.java ($(PD)) に関する記述を追加するか、
        JavaIo.class エントリを起動してください。

  (注3) 弊社ＨＰ、及びベクター様からダウンロードする製品ファイルには、本サンプルを動作させる
        ための TDS.jar を含みません。TDS.jar に関しては弊社 (info@trust-design.co.jp) まで、
        お問い合わせください。



■ ExTraceAP.c

  ・ TDS からの TCP/IP 接続による通信トレース出力を受け取る外部通信トレース処理ＡＰのサンプル。

  ・ 本サンプルを使用するには .ini ファイルの以下のパラメータを設定すること。
    ・ TRCTHOST : 本ＡＰを動作させるホスト名称 もしくは IP-Address
                  TDS を使用する AP と同一ＰＣ内で動作させる場合は "127.0.0.1" を指定する。
    ・ TRCTPORT : 本ＡＰが使用する TCP/IP Port#
                  本ＡＰの起動時に TCP/IP Port# を指定しない場合は 6000 を指定する。



■ SimpleIo.py
■ PythonIo.py

  ・ Python 3 によるサンプル



■ SimpleIo.rb
■ RubyIo.rb

  ・ Ruby 2 によるサンプル



====================================================================================================
== サンプル・プログラム を Build し、実行するためのファイル ========================================

■ Makefile.Win32    、Makefile.Win64  
   Makefile.Linux32  、Makefile.Linux64
   Makefile.FreeBSD32、Makefile.FreeBSD64
   Makefile.MacOS32  、Makefile.MacOS64
   Makefile.SunOS32  、Makefile.SunOS64
   Makefile.HP-UX32  、Makefile.HP-UX64

  ・ 上記８つのプログラム（SimpleIo、BasicIo、CallbackIo、CSIo、VBIo、JVIo、JavaIo、ExTraceAP）
     を作成する makefile
     (注1) CSIo、VBIo は Windows 版のみ Make 対象となる。
     (注2) JavaIo は、all: エントリに含んでいない。

  ・ Make の必要のない AP は all: エントリから削除すること。

  ・ 32bit アプリケーション対応とする場合は、Makefile.*32 を参照使用すること。
  ・ 64bit アプリケーション対応とする場合は、Makefile.*64 を参照使用すること。

  ・ 採用するアーキテクチャ (32bit or 64bit) に応じて、.lib、.dll 等、../Win32、../Win64、
     ../Linux32、../Linux64 等に存在する適切なものを採用すること。



■ Sample.ini

  ・ 本ライブラリの設定ファイルの例であり、本サンプル・プログラムが使用する。
  ・ [DEFAULT] セクションに、ホスト側、設備側共通の項目を設定した上で、[HOST] セクションにホスト
     側固有の設定を行い、[EQUIP] セクションに設備側固有の設定を行う。
  ・ HSMS 接続により、デバイスＩＤ = 0x20 の設備とホストが、１つのＰＣ内で折り返し試験を行う場合
     を想定した設定。
  ・ SECS メッセージの最大長は 100000Bytes としており、もっと大きなメッセージを使用する場合は、
     本設定ファイルの先頭に記述したコメントを参考として、パラメータ値を変更する必要がある。
  ・ 本ライブラリが行うログ出力に関しては以下の設定となっている。
    ・ 通信トレースを本ライブラリの書式のリスト形式で出力する。１６進数表示は行わない。
    ・ 処理トレース、ユーザ I/F 関数トレースは行わない。通信トレースは、ファイルにのみ出力。
    ・ トレース・ファイルは 5MB を超えると切り替える。
  ・ 設定値の詳細は、プログラマーズ・マニュアル（TDS.pdf）を参照すること。



■ Sample.sml

  ・ 本サンプル・コードが使用する SECS メッセージを SML 形式で定義したファイル。
  ・ メッセージ定義ファイルは、必ずしも必要な訳ではない。
  ・ 本ライブラリでは、メッセージ定義を行わなくても SECS メッセージを構築する事が可能。
  ・ メッセージ定義を使用する場合は、項目名を使用してメッセージを構成する各項目値の参照、設定を行
     う事ができる。また、２次メッセージの自動応答（自動メッセージ選択）を行うことができる。
  ・ 本サンプルでは、本メッセージ定義ファイルを使用して SECS メッセージを構築する場合、使用せずに
     構築する場合の両方を例示する。
  ・ メッセージ定義ファイルの構成に関する詳細は、プログラマーズ・マニュアル（TDS.pdf）を参照する事。



■ SemiStandard.sml

  ・ SEMI 標準にて定義された "E5-0600" に準拠したメッセージを SML 形式で定義したファイル。
  ・ このままの形態でも使用可能ではあるが、多分適用するシステムに合わせて、各メッセージの構造を
     変更する必要があると思う。



■ setup32.bat
■ setup64.bat

  ・ Windows における makefile を使用したプログラムの Build 環境 及び Java 実行環境を整えるための
     バッチ・コマンド例



(注1) 各サンプル・プログラム 及び Makefile の行末は、"LF" コードのみ。従って、Windows の Notepad
    では、正しく参照することができない。改行コードが "LF" のみであるファイルに対応したテキスト・
    エディタを使用して、参照すること。
    設定ファイル等は、Notepad でも参照可能。

(注2) 各サンプル・プログラム等の TAB Stop 位置は８桁毎となっているので、使用するテキスト・エディタ
    の設定をそのようにすること。
    ただし、Sample1、Sample2 内の各ソース・コードは、Visual Studio 標準の４桁毎となっている。



====================================================================================================
== サンプル・プログラムの作成方法 ==================================================================

■ Windows における makefile を使用したプログラムの Build

  ・ cmd.exe を起動し、その中で作業を行う。

  ・ Microsoft Visual Studio のコンパイラ等の開発環境が使用できるようにするため、Visual Studio が
     用意する以下のバッチ・ファイルを起動し、開発環境を整える。

    ・ 32bit アプリケーションとする場合
       [Visual Studio をインストールしたディレクトリ]\VC\vcvarsall.bat x86

    ・ 64bit アプリケーションとする場合
       [Visual Studio をインストールしたディレクトリ]\VC\vcvarsall.bat x64

  ・ 32bit 環境の場合は、Makefile.Win32、64bit 環境の場合は、Makefile.Win64 を使用する。

  ・ 以下のコマンドで Build を行う。
    ・ nmake -f Makefile.Win32   もしくは   nmake -f Makefile.Win64
       ~~~~~~~~~~~~~~~~~~~~~~~              ~~~~~~~~~~~~~~~~~~~~~~~

  (注1) 環境を整えるための実行コマンドに関しては "setup.bat" を参照し、setup.bat を適切に変更して使用
      することも可。

  (注2) 本ライブラリ・パッケージは以下の開発環境に対応する。
     （付属するプロジェクト・ファイルは VS2005 のものなので、それ以降のバージョンの VS を使用する
      場合は、VS のプロジェクト・ファイルの変換機能を用いて（あるいは自動変換で）使用する VS の
      バージョンに変換する必要がある。）
    ・ Microsoft .. Visual Studio 2005  (Microsoft Visual Studio 8)  ...... (32bit)
    ・ Microsoft .. Visual Studio 2008  (Microsoft Visual Studio 9.0)  .... (32bit)
    ・ Microsoft .. Visual Studio 2010  (Microsoft Visual Studio 10.0)  ... (32bit, 64bit)
    ・ Microsoft .. Visual Studio 2012  (Microsoft Visual Studio 11.0)  ... (32bit, 64bit)
    ・ Microsoft .. Visual Studio 2013  (Microsoft Visual Studio 12.0)  ... (32bit, 64bit)
    ・ Microsoft .. Visual Studio 2015  (Microsoft Visual Studio 14.0)  ... (32bit, 64bit)
    ・ Microsoft .. Visual Studio 2017  (Microsoft Visual Studio 15.0)  ... (32bit, 64bit)
    ・ Oracle ..... JDK 1.7 以降

  (注3) JVIo.java   の Build の場合 TDJVS.jar を CLASSPATH に含めること。
        JavaIo.java の Build の場合 TDS.jar   を CLASSPATH に含めること。



■ UNIX 系ＯＳにおけるプログラムの Build

  ・ 32bit、64bit のそれぞれの開発環境に応じて、Makefile.*32 もしくは Makefile.*64 を使用し、以下
    のコマンドを実行する。

    Linux   : make -f Makefile.Linux32      もしくは   make -f Makefile.Linux64
    FreeBSD : make -f Makefile.FreeBSD32    もしくは   make -f Makefile.FreeBSD64
    MacOS X : make -f Makefile.MacOS32      もしくは   make -f Makefile.MacOS64
    Solaris : make -f Makefile.SunOS32      もしくは   make -f Makefile.SunOS64
    HP-UX   : make -f Makefile.HP-UX32      もしくは   make -f Makefile.HP-UX64
              ~~~~~~~~~~~~~~~~~~~~~~~~~~               ~~~~~~~~~~~~~~~~~~~~~~~~~~

  (注1) JVIo.java   の Build の場合 TDJVS.jar を CLASSPATH に含めること。
        JavaIo.java の Build の場合 TDS.jar   を CLASSPATH に含めること。

  (注2) make に失敗する場合、Makefile.Linux 等を適宜修正すること。



====================================================================================================
== サンプル・プログラムの起動方法、操作方法 ========================================================


■ 各サンプル・プログラムの起動方法、操作方法等は、各ソース・コードのヘッダ部を参照すること。

  (注1) Windows の場合、TDS.dll      を 実行可能な PATH    に配置すること。
  (注2) Linux   の場合、libTDS.so    を LD_LIBRARY_PATH    に含めること。
  (注3) FreeBSD の場合、libTDS.so    を LD_LIBRARY_PATH もしくは LD_32_LIBRARY_PATH に含めること。
  (注4) MacOS X の場合、libTDS.dylib を DYLD_LIBRARY_PATH  に含めること。
  (注5) Solaris の場合、libTDS.so    を LD_LIBRARY_PATH    に含めること。
  (注6) HP-UX   の場合、libTDS.sl    を SHLIB_PATH         に含めること。

  (注7) JVIo.java   サンプルの実行の場合 TDJVS.jar、jna.jar (以降) を CLASSPATH に含めること。
        JavaIo.java サンプルの実行の場合 TDS.jar を CLASSPATH に含めること。

  (注8) Windows において、CSIo.exe、VBIo.exe を起動する場合、それぞれ TDCSS.dll、TDVBS.dll を
     (注1) に示すのと同様の PATH が示すフォルダに配置すること。

  (注9) 本サンプルは、その性格上（なるべくシンプルに TDS 使用方法ご理解いただくため）例外処理等に
     関しては十分ではありません。ご使用になる場合のコード化にあたっては、TDS ご利用環境、ご利用形
     態等に応じて、十分な例外処理等をコード化してください。

