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

■ SimpleIo.c

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



■ BasicIo.c

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

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



■ CallbackIo.c

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

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

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

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

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



■ SubFunctions.h

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



■ CSIo.cs

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

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



■ VBIo.vb

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

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



■ JVIo.java

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

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

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



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

  ・ 上記６つのプログラム（SimpleIo、BasicIo、CallbackIo、CSIo、VBIo、JVIo）を作成する makefile
    （注) CSIo、VBIo は Windows 版のみ Make 対象となる。

  ・ 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 メッセージの最大長は 20000Bytes としており、もっと大きなメッセージを使用する場合は、本設
     定ファイルの先頭に記述したコメントを参考として、パラメータ値を変更する必要がある。
  ・ 本ライブラリが行うログ出力に関しては以下の設定となっている。
    ・ 通信トレースを本ライブラリの書式のリスト形式で出力する。１６進数表示は行わない。
    ・ 処理トレース、ユーザ I/F 関数トレースは行わない。通信トレースは、ファイルにのみ出力。
    ・ トレース・ファイルは 5MB を超えると切り替える。
  ・ 設定値の詳細は、プログラマーズ・マニュアル（TDS.pdf）を参照すること。



■ Sample.sml

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



■ SemiStandard.sml

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



(注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) 本ライブラリ・パッケージは以下の開発環境に対応する。
     （付属するプロジェクト・ファイルは 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 13.0)  ... (32bit, 64bit)
    ・ Oracle ..... JDK 1.6 以降

  (注2) 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
    HP-UX   : make -f Makefile.HP-UX32      もしくは   make -f Makefile.HP-UX64
              ~~~~~~~~~~~~~~~~~~~~~~~~~~               ~~~~~~~~~~~~~~~~~~~~~~~~~~

  (注1) 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) HP-UX   の場合、libTDS.sl    を SHLIB_PATH         に含めること。

  (注6) Java サンプルの実行の場合 TDS.jar、jna-4.1.0.jar (以降) を CLASSPATH に含めること。

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

