====================================================================================================
== Release Note (tdlSSimE) =========================================================================

[] V19.070 : 2019/07/05

  1. First release of Program in English and English Documentation.



[] V19.100 : 2019/10/25

  1. LSH (Local String Header) can be specified in Multi Byte Text String item in SML format message
    definition file.
    Specify 'M99' (99:LSH value) as the mnemonic when specifying Multi Byte Text String (022).

  2. DEVID=0 can be specified for script execution.

  3. Revised to display section name used at start of simulation when section name is not specified.

  4. Solved the problem that display of message definition file to be used remains as an input value
    if it ends abnormally at simulation start.

  5. Solved the problem that the sequence display section was not positioned at the beginning of the
    program line indicating the selected sequence when the program was started.

  6. Solves the problem that the simulation may stop abnormally when simulation is stopped due to
    incomplete simulation or when simulation is terminated.

  7. Corresponding to the change of magnified display on Windows (Control Panel -- 100, 125, 150%
    specified on display).
    This solved the disorder of the variable display pane.



[] V20.040 : 2020/04/17

  1. With the revision accompanying the update of TDS, connection and disconnection performance of
    HSMS-SS and HSMS-GS was improved.

  2. Solved the problem that connection/disconnection of new connection was reported for existing
    connection when there was a new connection when existing connection was prioritized during 
    Passive operation in HSHS connection, and existing connection was also disconnected.

  3. The following revisions have been made to the processing device selection combo box.
    a. Solved the problem that selected device was reselected due to Select and Deselect request
      processing from connection destination when connecting to HSMS-GS.
    b. Solved the problem that display of '*' was not updated even if Select status of selected
      device changed when HSMS-GS was connected.



[] V20.090 : 2020/09/01

  1. When [Message] is not specified at [Start], the one specified in .ini file is displayed as the
    [Message] definition file.  Solved the problem that the message definition file storage folder
    is different from the .ini file storage folder, but the display is incorrect when the first few
    characters of the folder name are common.

  2. Solved the problem that transaction ID value displayed in the SECS header in log display pane
    was incorrect when SourceID was >0.
 
  3. By setting (DEVMODE&0x4000)!=0 in .ini, it became possible to reset LinkTest transmission timer
    during HSMS communication by receiving a data message from connection partner.
    As a result, with this setting, LinkTest will not be issued while application messages are being
    exchanged. 



[] V21.010 : 2021/01/15
[] V21.011 : 2021/02/25

  1. It is now possible to change some of the SECSMODE and DEVMODE of .ini in use while simulator is
    running.  As a result, the following changes can be made, for example, as well as the T3TO
    value, trace output level, etc. that can be changed during execution.
    a. Connection priority when accepting TCP/IP connection on HSMS Passive side
    b. Opinion of the 15th bit of SessionID at the time of HSMS
    c. Waiting time from disconnection detection to connection execution during HSMS operation
    d. Block number for Single Block when connecting to SECS-1
    e. Whether S9F9 automatic transmission can be executed when T3TO occurs
    f. Whether automatic disconnection is possible when T6TO occurs
    For details, refer to Section 2.1 (1)(d) of TDS.pdf.

  2. Added a function to set the length Byte size (1,2,3) of each data item, which is normally
    automatically determined, to the specified length (2,3) in the data part of the SECS Message to
    be sent.
    When Length Byte Size is specified, if the specified value can store the total number of bytes
    of the data item, that size is always used.  However, if it cannot be stored, it should be a
    size that can be stored.

  3. By specifying (TRCTTYPE&0x1000) in the .ini file, it is possible to additionally display
    output of hexadecimal code of the byte data of related SECS-II Message to the LIST format
    output to communication trace.
    This facilitates detailed confirmation of the SECS-II Message data structure.

  4. It is possible to display the extended communication trace in another window.
    This makes it possible to check the exchanges related to LinkTest when connecting to HSMS and
    the transmission and reception of communication control codes when connecting to SECS-1 in real
    time on window, which could only be confirmed by referring to the communication trace file in
    the past.
    In addition, only SECS message header is displayed in conventional communication trace window
    to monitor only the communication transition, and at the same time, the SECS message details
    are displayed in extended communication trace window so that the message details can be
    confirmed as needed.
    By specifying .ini, the extended communication trace window can also display hexadecimal
    numbers related to the LIST format display in previous section, which makes it easier to
    analyze the SECS-II message contents.

  5. (V21.011)
    Solved the problem that the time recorded in communication trace file was replaced with the one
    in previous line.



[] V21.060 : 2021/06/15
[] V21.061 : 2021/07/23
[] V21.062 : 2021/08/17

  1. Added function to pause following to the menu to improve simulator operation speed.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    By specifying this function, it is possible to greatly improve the execution speed during script
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    processing.
    ~~~~~~~~~~~
    a. Communication trace, processing trace file output
    b. Real-time display of script execution

  2. Hexadecimal display related to list format display in communication trace display can be added
    to the end of each line.

  3. [->] button is provided in the main operation unit to facilitate positioning to last line of
    trace display.
    In addition, [Last line display] has been newly added to menu to facilitate execution of above
    processing.
  4. In the extended communication trace display dialog, [ViewLastLine] is newly added to menu to
    facilitate display of ast line of the communication trace window.

  5. Changed to be able to put a specification that can not put a space before and after the operator
    (assignment, operation, comparison) in the script statement.
    This change improves the visibility of script statements. 
  6. In the RELEASE statement of the script, multiple SF-Codes can be released in one line.

  7. Solved the problem that control block hierarchy was not evaluated correctly when there was a
    transition by CONTINUE, BREAK and GOTO from the IF block and WHILE block when executing the
    script.
    However, the upward 'GOTO' cannot cross the hierarchy of if block and while block.

  8. The sample script file has been revised along with revision of above script function.


  (V21.061)

  9. Both 32bit AP and 64-bit AP are available.

  10. Added == as an assignment operator in the script set statement.
    When == is used for assignment to a character string variable, right side of == can be directly
    assigned to left side character string variable, and a simple copy of character string variable
    is possible. 

  11. It is now possible to add prefix unary operator "-" to numeric variables (integers, real
    numbers) in assignment operations and comparison operations.


  (V21.062)

  12. When a relative path name is specified in the .dat file when @file is used in the set statement
    of the script, it is clarified that the location is relative to the directory where the script
    file (.ssl file) exists.

  13. The hexadecimal display of related SECS Message data area can be additionally displayed on
    right side of SML List format display of SECS Message.

  14. Each sample file is stored in Sample0/, and each .exe of Win32/ and Win64/ shows a sample that
    uses the file of ../Sample0/.

  15. Each sample file has been revised in relation to the above.



[] V23.040 : 2023/04/25
   V23.041 : 2023/06/15

  1. Added a tabulation function for statistical information (number of sent/received, number of
    abnormal replies, transaction time, etc.) related to sending/receiving of SECS messages for
    each SF-Code.
    The acquired statistical information can be displayed on the screen and output to a
    communication trace file from the newly added [Statistic Information] in the menu.
    (Note 0) To enable this feature, set STATISINFO to 1 in your configuration file (.ini).

  2. When the sent/received SECS message is a character string item (A,J,M(K)), it is now possible
    to include non-display bytes in the character string by writing \377 Escape code.
    This applies to both character string specification in the message definition file and input
    on the communication message edit screen.

    \377 Escape is performed by specifying 1Byte with a 3-digit octal number following \.
    (Example) "12\00345\00678" means an 8-byte character string of 0x31,0x32,0x03,0x34,0x35,0x06
       ,0x07,0x08 in hexadecimal.
    (Note 1) \001 to \376 can be specified, and \000 and \377 cannot be specified.
    (Note 2) tdlSSim converts multi-character items (M(K)items) to character code described in
       message definition when sending specified character string. Next, perform specified \377
       Escape conversion for all string items and send.  Pre-conversion character strings are
       assumed to be written in local system's character code (Shift-JIS on Windows).
       Regarding character string items of received SECS message, first convert specified
       character code to character code of local system for multi-byte character items. Next, 
       ASC item (A) and the JIS-8 item (J) are converted to replace non-printing bytes with 
       \377 format and displayed.

  3. Fixed the problem that there is a timing when the connection status cannot be obtained
    correctly in the HSMS connection.



[] V23.060 : 2023/06/15
   V23.061 : 2023/06/15

  1. In HSMS connection, It is now possible to specify Status (F-Code) when Reject is selected
    when sending a secondary message interactively.
  2. In HSMS connection, it is now possible to send control message (Select.req, Select.res,
    Deselect.req, Deselect.res, LinkTest.req, LinkTest.res, Reject) asynchronously as an abnormal
    communication test.
    SessionID, TransactionID, Status (F-Code) can be specified when sending a Response Message.
  3. In HSMS connection, It is now possible to suppress the transmission of control response
    messages (Select.res, Deselect.res, LinkTest.res) as abnormal communication tests.

  4. A new "TRACE" statement has been added to the script, making it possible to specify ON/PFF
    for the display of script execution lines in the script display pane and ON/OFF for display
    in the trace output pane.
  5. Some improvements have been made regarding the handling of !ER in script execution.
  6. Revised the problem that the wait statement that does not specify the TO value in script
    execution does not terminate when an error occurs.



[] V23.062 : 2023/09/01

  1. Solved the problem that character string items were not correctly compared and the correct
    secondary message could not be sent when searching for received primary message when setting
    comparison item value for character string item in message definition.



[] V23.063 : 2023/11/01

  1. The following revisions have been made to the BLOCK number part of communi cation trace output
    header Hexa display of sent messages when connected to SECS-1.
    Originally, a BLOCK number is not assigned to one SECS-2 message, but to each of multiple
    communication BLOCKs that make up one SECS-2 message using RS232C communication, so it becomes
    undefined in communication trace display. In order to output this as same value as when
    received, the final divided block number is calculated before transmission and displayed
    together with the E-Bit.
  2. The same revisions as above have been made to communication trace output section on screen.



[] V24.040 : 2024/04/15

  1. Solved the problem where primary message sent using the Send statement when executing a script
    was sent with W-bit ON even though W-bit OFF was specified in the message definition file.

  2. During HSMS communication, messages can be sent and received by setting the most significant
    bit of SystemByte in the communication message header to =1 (that is, if SystemByte is treated
    as a 32-bit signed integer, it will be a negative value).

  3. We reviewed the relationship between 'reserve', 'release' and 'wait' statements during script
    execution, and revised the writing method to make it easier.
    Due to this revision, it may be necessary to revise existing scripts, so please note the
    following revision points and revise as necessary.
    For details, please refer to explanation of each script line in tdlSSimE.pdf and SampleE.ssl.

    a. 'release' statement
      a. Write 'release' only when canceling the receiving of the SF-Code that was declared to be
       waiting for receiving in the script using 'reserve' (from now on, the script will not
       perform any processing related to specified SF-Code).
       --> If 'release' statement is used to release the received SF-Code in code that receives
         same SF-Code continuously, such as within a while Loop, delete that 'release' statement.

    b. 'reserve' statement
      + Basically, you only need to declare the SF-Code to be received in the script once using
       the 'reserve' statement.
       However, in order to include SF-Code that has been removed from the processing target using
       'release' statement, it must be declared again using 'reserve' statement.
       --> If 'reserve' statement is executed each time same SF-Code is received in a code that
         continuously receives the same SF-Code within a 'while' Loop, etc., please delete that
         'reserve' statement.
         When using 'reserve' statement to correspond to the description in "b." below, be sure to
         write 'reserve' statement after receiving-related processing such as 'receive' and 'send'
         statements has been completed.

      + If it (*1) takes long time to execute next 'wait' statement after message received process
       using 'wait' statement is completed (*2), next message receiving process will be delayed
       during that time. (It will be delayed regardless of whether the message is targeted for
       script processing or not.)
       (*1) when you have to do a lot of script processing or do esleepf, etc.
       (*2) Analysis of received messages, saving special variables, sending secondary messages,
          etc.

         By re-registering the SF-Code of a received message that has completed receiving process
       with 'reserve' statement, it is possible to instruct new messages to be received in
       background from
       that point on. This instruction allows messages that are not subject to script processing
       to be automatically processed until the next 'wait' is executed.
       When a message to be processed by the script is received, all receiving process is stopped
       until script starts receiving process using 'wait' statement.
       It is not always necessary to re-register the received SF-Code using 'reserve'. 



[] V24.041 : 2024/04/30

  1.  By specifying boot option "+A" when tdlSSim is started, it is automatically started after
     startup, and in the case of HSMS, it is possible to automatically perform CONNECT and SELECT
     processing.
     By specifying the program name of sequence program as a parameter of the option, it is
     possible to automatically execute the script after confirming the connection.
     For details, refer to tdlSSimE.pdf "2. (1) Start-up".



[] V24.042 : 2024/05/23

  1. Currently, in trace output when (TRCTTYPE&0x80)!=0 is specified in .ini, message names and item
    names are not displayed for messages whose message direction in the message definition does not
    match.  In this revision, even if the direction is different, if message structure and item
    values match the settings, message name and item name will be displayed.

  2. The following functions have been newly added to generate abnormal blocks during block transfer
    in SECS-1 connections and verify the operation of the receiving side.
    a. It is now possible to specify P-Type Code and S-Type Code values in [Message for sending]
      dialog during a communication test, and following abnormal states can be set for the sent SECS
      message.
      + Block number error
      + CheckSum error
       For details, refer to tdlSSimE.pdf "2. (2)(a-4) [Comm. Test] (Note 10)".

  3. Fixed the following issues.

    a. Solved the problem that tdlSSim would terminate abnormally if the length of string item in
      the SECS message exceeded a certain number when displaying string item on one line by setting
      (TRCTTYPE&0x04)==0 in .ini.

    b. After V23.060, the string variable value obtained in the Receive statement during script
      processing is missing the last 1 byte of the string set in the SECS message. 

    c. When specifying a SECS Message item value in a data file, if data acquisition fails because
      the specified file does not exist, the message item itself is not currently added to the SECS
      Message.  As a result, the message structure itself changes from the specified message
      structure.  In order to avoid this and maintain the specified message structure, it has been
      revised to register items with the number of data elements = 0.

    d. When editing the file name of an item that specifies a message item as a file on the send
      message item editing screen, the file name may not be set correctly and the message item may
      not be expanded correctly.
      This problem occurs when the item size is 2 or more (I2, I4, I8, U2, U4, U8, F4, F8).



[] V24.060 : 2024/06/20

  1. The method of recovery when a communication error occurs during SECS-1 communication has been
     reviewed and improved.
     As a result, the meanings of the (SECSMODE&0x60000000) and (DEVMODE&0x0800) bits in .ini file
     have changed. If you have specified these bits, you must check them.

  2. The parameter setting method for [Message for sending] in [Communication test mode] when
    connected to SECS-1 has been simplified to make it easier to understand.
    And test items have been expanded.

  3. When displaying communication traces, even if the sent message is not intended for my system,
    and the received message is not intended for peer system, if there is a message definition that
    matches SF-Code, message structure, and item values in the message definition file, the message
    name and item names will be displayed.

  4. The "Communication Statistics List" output to communication trace file can now be displayed
    in  "Extended Communication Trace Window."

  5. SampleE.ssl has been revised.

