====================================================================================================
== Introduction (TDSE) =============================================================================

[] Introductions of "Trust Design Simple SECS Communication Library" Package

  + This is a package consisting of libraries etc for communication by SECS protocol.
  + This package conrrespond to SECS-1 (RS232C connection), HSMS-SS, HSMS-GS (TCP/IP connection).
  + You can construct and analyze any SECS-2 message.
  + Supported platforms are Windows OS (Winsock V2), Linux (CentOS, Fedora, Ubuntu, Vine, Debian,
    OpenSUSE, Redhat etc), FreeBSD, MacOS X, Solaris 11 (x86), HP-UX 11 and so on.
  + Libraries can be called from C, C++, C#, VB, and Java.
  + Libraries are provided as DLLs and shared libraries, so Ruby, Python, PHP etc. can also be used.

  + There are two types of TDS for Java.  In the case of using only Java function, TDS function
    can be executed not only on PCs such as Windows and Linux using Intel processor but also on
    different processors and OS as long as the Java execution environment operates.
    In this case, AP can be developed not only by Java but also by C and C++ using JNI (Java Native
    Interface) supported by Java development environment.

  + Supports both host side and equipment side (passive side and active side).
  + You can construct and analyze SECS-2 messages using message definition files in SML format.
    It also has an automatic response function for incoming messages using same file.
    Of course, you can construct and analyze SECS-2 messages without using a message definition
    file.
  + In message definition, item data stored separately in a file can be specified.
    Also, variable-length items can be specified.

  + It is also possible to define multi-level, multi-number indefinite number list in construction
    of sent message using message definition and analysis of received message. The application can
    determine number of lists at runtime and set each item value in list. When receiving a message
    including an undefined number list, it is possible to expand message with number of lists fixed
    by reception and to refer to field value.

  + One application can communicate with up to 64 partners.
  + It has communication log output compatible with SML format and user-selectable log output
    function.
  + Communication logs can be received and processed by user functions, and can be received and
    processed by TCP/IP communication with an AP that user operates separately. This enables remote
    monitoring of SECS communication status in real time.

  + It conforms to the following SEMI standards.
    - E4    : SECS-I ..... Message transfer (RS232C connection)
    - E5    : SECS-II .... SECS Message contents
    - E37   : HSMS ....... High-Speed SECS message service (HSMS) generic service (TCP/IP)
    - E37.1 : HSMS-SS .... High-speed SECS message service single session mode (HSMS-SS)
    - E37.2 : HSMS-GS .... High-speed SECS message service general session (HSMS-GS)
  + The "E5-0600" compliant message definition defined by the SEMI standard is attached as a sample.
  + For details, please refer to the document (TDSE.pdf) bundled with the product.

  + You can use SECS/HSMS simulator (Trust Design simple SECS/HSMS Simulator (Simplified Version))
    as an inspection application to simulate communication processing (host side, equipment side) by
    SECS-1 and HSMS-SS, HSMS-GS is released.
    For more information, please visit our home page.

  + You can use SECS/HSMS protocol converter program (Trust Design Simple SECS/HSMS Protocol
    converter) is released.
    For more information, please visit our home page.

  + For monitoring communications by SECS (HSMS), our network communications monitor (Trust Design
    Simple) Network Communication Monitor) is available.
    For more information, please visit our home page.

  + For monitoring communications by SECS-1 protocol using RS232C Serial Port, our serial
    communication monitor (Trust Design Simple Serial Port Communication Monitor) is available.
    For more information, please visit our home page.



[] How to install

  + Extract the archive file of this package (TDS.zip or TDS.YY.MMN.zip (YY.MMN is version number)
    etc.) to any folder.

  + This package does not use registry.

  + Depending on application type (32bit/64bit) to be applied, use .dll, .lib, etc. that exist in
    the folder such as Win32 or Win64 as appropriate.



[] How to uninstall

  + Please delete the folder where you installed this package.



[] Required development environment for Windows 32bit application

  + Microsoft Visual Studio 2005 ... Support will end at the end of 2019
  + Microsoft Visual Studio 2008 ... Support will end at the end of 2019
  + Microsoft Visual Studio 2010
  + Microsoft Visual Studio 2012
  + Microsoft Visual Studio 2013
  + Microsoft Visual Studio 2015
  + Microsoft Visual Studio 2017
  + Microsoft Visual Studio 2019

  For 32bit applications on Windows-based operating systems (32bit and 64bit), use .lib and .dll
  existing under Win32 directory.

  For development on command prompt, set up a 32bit development environment using
  "VC/vcvarsall.bat x86" or "VC/bin/vcvars32.bat" in the directory where Visual Studio is installed.

  In order to execute code developed by C# and VB, ".Net Framework 2.0" or later is required.
  When developing with C# and VB, specify "platform=x86" option at build time.



[] Required development environment for Windows 64bit application

  + Microsoft Visual Studio 2010
  + Microsoft Visual Studio 2012
  + Microsoft Visual Studio 2013
  + Microsoft Visual Studio 2015
  + Microsoft Visual Studio 2017
  + Microsoft Visual Studio 2019

  For 64bit applications on Windows-based operating systems, use .lib and .dll existing under the
  Win64 directory.

  For development on command prompt, set up a 64bit development environment using
  "VC/vcvarsall.bat x64" or "VC/bin/amd64/vcvars64.bat" in the directory where Visual Studio is
  installed.

  In order to execute code developed by C# and VB, ".Net Framework 2.0" or later is required.
  When developing with C# and VB, specify "platform=x64" option at build time.



[] Required development environment for Linux

  + gmake, gcc development environment

  For 32bit applications, use the library under directory Linux32 and specify "-m32" option
  at compilation.

  For 64bit applications, use the library under directory Linux64 and specify "-m64" option
  at compilation.



[] Required development environment for FreeBSD

  + gmake, clang development environment

  For 32bit applications, use the library under directory FreeBSD32 and specify "-m32" option
  at compilation.

  For 64bit applications, use the library under directory FreeBSD64 and specify "-m64" option
  at compilation.



[] Required development environment for MacOS X

  + gmake, clang development environment

  For 32bit applications, use the library under directory MacOS32 and specify "-m32" option
  at compilation.

  For 64bit applications, use the library under directory MacOS64 and specify "-m64" option
  at compilation.



[] Required development environment for Solaris 11 (x86)

  + gmake, gcc development environment

  For 32bit applications, use the library under directory SunOS32 and specify "-m32" option
  at compilation.

  For 64bit applications, use the library under directory SunOS64 and specify "-m64" option
  at compilation.



[] Required development environment for HP-UX 11

  + HP-C/ANSI-C development environment

  For 32bit applications, use the library under directory HP-UX32 and specify "+DD32" option
  at compilation.

  For 64bit applications, use the library under directory HP-UX64 and specify "+DD64" option
  at compilation.



[] Required development environment and execution environment for Java

  + There are two Java versions.
    1. One that can execute full functionality of TDS.dll using JNA ............... TDJVS.jar
    2. One that can execute only in Java execution environment without using JNA .. TDSJava.jar

  + Development and execution environment related to 1. above
    - JavaVM 1.7 or later
    - JDK    1.7 or later
    - JNA    4.1 or later

    (Note 1)
    Be aware of JNA architecture (32bit or 64bit) and shared library (TDS.dll, libTDS.so,
    libTDS.dylib, libTDS.sl) architecture (32bit or 64bit) to be used, must be compatible.

  + Development and execution environment related to 2. above
    - JavaVM 1.7 or later
    - JDK    1.7 or later

    (Note 2)
    TDSJava.jar has limited functionality in comparison with TDJVS.jar (TDS.dll).
    For details, refer to TDSE.pdf Appendix E.
    Note that TDSJava.jar is not included in downloadable product file from our website.
    If you are considering using TDSJava.jar, please contact us (info@trust-design.co.jp).

    (Note 3)
    TDSJava.jar does not execute TDS functions using TDS.dll, libTDS.so, etc. using JNA, but
    TDSJava.jar executes TDS functions using Native Java Call. Therefore, there is a possibility
    that the TDS function can be executed not only on PCs such as Windows and Linux using Intel
    processors but also on different processors and OSs as long as the Java execution environment
    operates.
    In this case, AP development can be done not only in Java, but also in C and C++ using JNI
    (Java Native Interface) supported by the Java development environment.
    


[] Contact information

   Company name : Trust Design Limited Liability Company
   e-Mail       : info@trust-design.co.jp
   URL          : http://www.trust-design.co.jp/



====================================================================================================
== Matters to keep in mind =========================================================================

[] Notes on using this library package

  + This package, which can be downloaded from our HP, is for Windows OS (32/64bit).
    For UNIX-based operating systems (Linux, FreeBSD, MacOS X, Solaris 11, HP-UX), please contact
    us at "info@trust-design.co.jp" via e-mail.

  + Please read and agree to "License conditions, etc." at bottom of this document before using this
    package.

  + If you wish to obtain a license key code for this package, please contact us at
    "info@trust-design.co.jp" by e-mail, specifying following contents.
    Issuing a license key code is free.

    - The title should be "SECS/HSMS communication package license request".
    - Please describe following contents in text.
      * English name of organization name (company name and department name)
      * Person in charge name
      * Contact information (address, phone number, e-mail address)
      * Operating platform  (Windows/Linux/FreeBSD/MacOS X/Solaris 11/HP-UX)
      * Number of licenses required
        The number of licenses to be issued per request is limited to 10 at maximum.
        If you need more licenses, please contact us.
        Note that a different license is required for each PC you are using.
    - If possible, please describe following contents for your reference.
      * Purpose of use (factory line / facility test / R&D / other)
      * Communication formiSECS-1/HSMS-SS/HSMS-GS)
      * Target equipment type

  + When using this package for trial, add following license key descriptions on our website to 
    configuration file (.ini).

    LICENSENAME = "Default Co.,Ltd."
    LICENSECODE = "Default"
    LICENSESER  = "1"
    LICENSEDATE = "20111001"
    LICENSEKEY  = "FVZM3-T72IB-76OWG-P7KWM-TMBF2-4ZXBW"

   (Note 1) The values of LICENSEDATE and LICENSEKEY of the license key for trial use change
      regularly. Please check our HP "http://www.trust-design.co.jp" for latest license key for
      trial use.

   (Note 2) ---------------------------------------------------------------------------------------+
    | This package uses following ports of UDP/IP for license management.                          |
    | Also use following class D address as UDP/Multicast address. Please set not to block these   |
    | by firewall etc. of your computer.                                                           |
    |  - 36274/udp                                                                                 |
    |  - 239.254.200.74                                                                            |
    | However, including Internet connection environment, it can be used even when network         |
    | connection can not be made and NIC does not exist, there are no functional restrictions on   |
    | usage as compared with internet connection environment.                                      |
    +----------------------------------------------------------------------------------------------+


  + Please refer to "TDSE.pdf" for details on how to use this package.

  + The usage examples are stored in Sample0, Sample1, and Sample2 folders.
    Refer to ReadmeE.txt in Sample0, Sample1, Sample2 folder and comments at top of each source code
    file for details of each sample.
    Sample0 and Sample1 are Build samples for VS2010/32bit, Sample2 are Build samples for VS2010/64
    bit. Of course, you can make other versions of Visual Studio and 32bit/64bit Build by changing
    Makefile and project settings respectively.

  + Sample0 shows how to build AP with nmake using Makefile.
  + Sample1 and Sample2 show how to build an AP using IDE of VS2010 respectively.
  + SampleX shows a sample of how to build using VS2017 IDE instead of AP Build with nmake using
    Makefile in Sample0.


  + [Important 1]
    This package uses a configuration file (.ini file).
    You can copy and use "SampleE.ini" in Sample0 folder, but please pay attention to following
    parameters, depending on your usage conditions. Please refer to Programmer's Manual (TDSE.pdf)
    for details.

     SECSMODE           // SECS communication paramesters
     DEVMODE            // Device control mode
     DEVID              // Connected device ID
     XMSGSIZE           // Maximum SECS message byte length
     INTER0             // Communication control unit processing interval
     INTER2             // Serial communication receiving interval
     SDEVICE            // SECS-1 Serial connection device name
     HOST               // HSMS TCP/IP Destination host name or IP address
     PORT               // HSMS TCP/IP Connection port number
     TRCTTYPE           // Communication message output format to communication trace
     LINKINT            // Link Test interval
     MDMSSG             // Message definition file path in SML format
     MDMXITEM           // Maximum number of total data items used in each message
     MDMXMSSG           // Maximum number of messages to define
     MDMXMITEM          // Maximum number of total items used in each message
     MDMXPOOL           // Message definition Setting data storage area size


  + [Important 2]
    This package uses following ports of UDP/IP for license management.
    Also use following class D address as UDP/Multicast address. Please set not to block these by
    firewall etc. of your computer.
     - 36274/udp
     - 239.254.200.74
    However, including Internet connection environment, it can be used even when network connection
    can not be made and NIC does not exist, there are no functional restrictions on usage as
    compared with internet connection environment.


  + The latest version of this program is released by our website.
    Please check our website "http://www.trust-design.co.jp/" one after another.



====================================================================================================
== License conditions, etc. ========================================================================

[] Copyright etc

  The copyright for original code of "Trust Design Simple SECS Communication Library" package
  (hereinafter referred to as "TDS") is owned by "Trust Design Limited Liability Company"
  (hereinafter referred to as "TDL").

  + Please refrain from modification, repair or reverse engineering of TDS.
  + The customer can not distribute software itself (a package that provides functions of TDS
    itself, etc.) to a third party without our consent, regardless of whether it is for a fee or for
    free.
  + When distributing applications etc. using TDS created by customer, clearly indicate that
    following software is used.
    - Name of this software             : "Trust Design Simple SECS Communication Library"
    - Copyright holder of this software : "Trust Design Limited Liability Company"



[] Usage restriction

  TDS can be used free of charge by anyone.

  If it is used continuously for more than a certain period of time, it is necessary to contact us
  by e-mail in prescribed format (described above) and receive a license key code.

  + Issuing a license key code is free.
  + A license key code is required for each computer you use.
  + If you run TDS with a regular license key code issued for each customer, there is no limit on
    the execution time. In addition, there is no expiration date limit for the regular license key
    code.

  In addition, registration of customer information is necessary to issue license key code. The
  customer information registered upon issuance of the license key code will be used to manage the
  installation status of TDS.



[] Disclaimer

  If any failure or damage is caused by use of TDS, we not assume any responsibility regardless
  of the size of failure or damage, even if it is caused by a defect contained in TDS.
  We do not guarantee that TDS will always operate correctly in the environment where you use TDS.



[] Support

  Support for this software is provided by e-mail only.
  We will respond to your inquiry via e-mail as much as possible, but we can not make any warranty,
  including presence or absence of a reply, and the time until response.
  In addition, we may provide support for TDS for a fee upon agreement with you.
  If a defect related to TDS is found, we may clarify the cause, respond to the cause, or release
  a new version. We can not make a promise.

  TDS may be revised or updated without prior notice for the purpose of improving its performance.
  For latest version, please refer to our website (http://www.trust-design.co.jp/).

