====================================================================================================
== Release Note (tdlSSim) ==========================================================================

■ Please refer to ReleaseE.txt if you want to refer to the contents of this file in English.


■ V12.121 : 2012/12/12

  ・ 新規公開



■ V12.122 : 2013/11/10

  ・ 内部管理上の問題に関する改修。機能での変更はない。



■ V14.040 : 2014/04/25

  ・ 通信試験用として SECS ヘッダ値の指定機能 及び HSMS の場合 TCP/IP パケット分割送信機能を追加

  ・ 有効でないメッセージ定義ファイルを指定しているにも関わらず、通信トレースにメッセージ名称、
     メッセージ項目名称を表示する旨の指示を行っている場合の問題を回避。

  ・ 処理中にシステム時刻が大きく変化した場合のタイムアウト処理に対応。

  ・ 送信メッセージの各数値項目値を変更する場合、"0x" を接頭句として付与することにより、16進数で
     の指定を可能とした。



■ V15.041 : 2015/04/25

  ・ メッセージ定義ファイルとして NSG/TS300 の .csv 形式ファイルを指定可能とした。

  ・ 使用するセクションをキー入力ではなく、指定 .ini ファイル内のセクションからの選択に変更。

  ・ 使用メッセージ定義ファイルを指定しない場合に、[Start] 後、.ini ファイルから取得した現在使用
     しているメッセージ定義ファイルの情報を表示する。

  ・ ウインドのリサイズに対するサイズ追随ペインを変更
    ・ 横方向は、左右均割合でサイズ変更
    ・ 縦方向は、上部表示ペインのサイズを変更

  ・ if、while に対応する endif、endwhile 等が見つからない場合、トレース表示ペインにエラーを表示。
     また、実行中エラー発生時、１秒間実行を停止し、エラー発生を発見しやすくした。

  ・ スクリプトの各キーコードの後ろに ';' が付属していても無視する。

  ・ 特殊変数として以下を追加
    ・ !TM、!YY、!MD、!DD、!HH、!MM、!SS : 現在時刻に関する各種値
    ・ !TS : スクリプト実行遅延時間

  ・ 処理終了時の待ち時間を短縮



■ V15.050 : 2015/05/08

  ・ １次メッセージと２次メッセージのトレース出力が、逆転する現象を回避。

  ・ .ini ファイルの DEVID 行に、複数の DeviceID を指定可能とした。

  ・ ウインド上でのメッセージ項目値の表示、編集において I8、U8 項目値が、正しく処理されない問題を
     改修。

  ・ send 文において、receive 文と同様 "ITEM;6=1,2,3" といった、項目のデータ数が複数の項目に対して、
     一部の項目値のみを設定する事を可能とした。

  ・ メッセージ定義ファイルが未指定の場合、[Start] 後に、.ini ファイルから取得した現在使用している
     メッセージ定義ファイルの情報が、セクション指定をしない場合に表示されない現象を回避



■ V15.080 : 2015/08/01

  ・ 通信トレース出力において、マルチバイト文字列（"K" 指定）が正しく表現されない問題を修正。

  ・ メッセージ定義におけるマルチバイト文字列（"K" 指定）が正しいバイト数を生成しない問題を修正。

  ・ メッセージ構造表示領域での "JIS8 文字" 及び "マルチバイト文字" 表示の識別文字が逆転していた
     ので、それぞれ "J"、"K" に訂正。

  ・ メッセージ定義における２次メッセージの自動選択機能において、メッセージ方向を両方向とした１次
     メッセージ定義の下方に定義した２次メッセージを正しく選択をしない問題を修正。



■ V15.110 : 2015/11/13

  ・ ライセンス管理の誤り（ファイアーウォール等によりライセンス管理情報がブロックされたと誤検出し
     てしまう場合がある）を改訂。



■ V16.010 : 2016/01/08

  ・ 設定ファイル（.ini）における共通項目に関するセクションとして、従来の [DEFAULT] に加えて
     [SECSCOMMON] を追加。従って、各接続条件において共通なパラメータは、[DEFAULT] もしくは
     [SECSCOMMON] セクションで定義することが可能。
     従来 [SECSCOMMON] セクションを定義し、使用している場合は、申し訳ありませんが、他のセクション
     名に変更する等の対応が必要になります。

  ・ 設定ファイル（.ini）から取得した設定値を、初期化時 及び 再読込時に通信トレース・ファイルに
     出力する。

  ・ ライセンス管理において、他ＰＣでの同一ライセンス・キーコードのチェックを、ライセンス・キー
     コード発行日から６ヶ月が経過した後実行していたが、ライセンス・キーコード発行日から実行する
     ように変更。



■ V16.011 : 2016/01/15

  ・ 設定ファイル（.ini ファイル）を評価する際、DEVID の指定を [DEFAULT] セクション以外で複数指定
     した場合等に異常終了する等の場合がある問題を修正。



■ V16.012 : 2016/02/20

  ・ トレース・ファイルをサイズ超過で切り替える場合、1000 以上の通番が付いたファイルの次のファイル
     が、正しい通番にならない問題を修正。

  ・ トレース・ファイルとして、日付をファイル先頭に付与した形式を指定した場合で、ファイル・サイズ
     超過でのファイル切り替え指定を行った場合、正しい通番が付与されない場合がある問題を修正。

  ・ 古トレース・ファイル削除機能において、正しく削除できない場合（日付指定の無いトレース・ファイ
     ル、日付フォルダを使用したトレース・ファイル）を解決。

  ・ 起動時点が、設定ファイル（.ini）の TRCDELTIME 以降である場合、翌日の TRCDELTIME になるまで
     古トレース・ファイル削除機能を実行しなかったのを、TRCDELDAY として負値を設定した場合は、起動
     時点で常に１回同起動を実行するように機能追加。



■ V16.040 : 2016/04/05

  ・ HSMS-GS に対応。
     HSMS-GS 設定に関しては、弊社 Simple SECS/HSMS 通信パッケージ（Trust Design Simple SECS
     Communication Library）に付属のドキュメント (TDS.pdf) をご参照ください。

  ・ １次メッセージ送信時のデバイスＩＤを指定可能とした。

  ・ スクリプト実行時の１次メッセージ送信デバイスＩＤを指定するために、特殊変数 "!DX" を新設し、
     変数値表示領域に "!DX" の表示を追加。

  ・ 実行ウインドの最小サイズを変更し、以前よりも小さいサイズのウインドでの動作を可能とした。

  ・ [ヘルプ] メニュに [エラーコードリストの表示] を追加し、エラーコードの一覧表示を行う。



■ V16.060 : 2016/06/10

  ・ メッセージ定義ファイルでの２次メッセージ定義におけるメッセージ属性に 'D' を追加し、デフォルト
     の２次メッセージである事を宣言可能とした。これにより、受信１次メッセージの構造が一致しないこと
     により、該当１次メッセージが見つからない場合も、SF-Code のみが該当する場合の２次メッセージを特
     定する事を可能とした。

  ・ 画面への通信トレースにおける制御メッセージに関する行頭記号を '<' から '@' に変更



■ V17.030 : 2017/03/01

  ・ SECS-1 通信時の「通信試験」時に、[Sending size] の指定を可能とし、マルチ・ブロック送信時の各
     送信ブロックのバイト長を指定可能とした。

  ・ スクリプト処理において、同一 SF-Code を連続して処理する場合、Muliti Open Transaction が発生す
     る場合等で、release 文と引き続く reserve 文との処理間隔において、連続して発生（受信）した
     SF-Code をスクリプトで処理できず、自動返信機能により２次メッセージが自動返信されてしまうケース
     が発生することを抑止するため、このようなケースにおいては release 文を使用せず（記述しないで）
     引き続く reserve 文により、release 文処理を実行することとした。



■ V17.030b: 2017/03/01

  ・ SemiStandard.sml を改訂



■ V18.011 : 2018/01/13

  ・ Windows 版での SECS-1 (RS232C) 接続において、115200 を超え定義の無い BPS (例えば 230400 等)
     をサポートした。

  ・ HSMS Active 接続の場合に、一旦切断を検知してから再接続処理を実行するまでの時間を、即時もし
     くは、即時もしくは、T5 時間経過後のどちらかを (SECSMODE&0x00010000) で選択可能とした。

  ・ SML 形式メッセージ定義ファイルのメッセージ定義行で flag として 'H'、'E' のどちらも指定しない
     ケースにおいて、'D' のみを指定（即ち "D" もしくは "WD"）した場合に、メッセージ自体が有効にな
     らず、'D' 指定も有効にならない問題を解決。



■ V18.020 : 2018/02/10

  ・ SECS メッセージの構築処理において、メッセージ定義ファイルで定義するメッセージの不定個数リスト
     内に @TIME 項目が存在した場合、その項目が現在時刻に変換されない問題を解決。

  ・ SML 形式ファイルにおける L[0|n] 形式をサポートした。
     これにより、LIST 項目に単一項目だけでなく、0個もしくは n個の異なるデータ項目を指定可能とした。

  ・ 上記 L[0|n] のサポートにより、SML 形式メッセージ定義ファイルのサンプル "SemiStandard.sml" を
     一部改訂。



■ V18.031 : 2018/03/23

  ・ SECS-1 接続時に受信エラーが発生した場合に異常終了する場合がある問題を改訂

  ・ 通信トレース出力の受送信マーク 受信 "<"、送信 ">" を逆にした。
     即ち、受信 ">"、送信 "<" とし、直感性を向上した。



■ V18.032 : 2018/03/28

  ・ 英語版を "tdlSSimE.exe" としてリリースした。



■ V18.041 : 2018/04/23

  ・ 指定の .ini ファイル等のパス名称が長い (概ね 120バイト超) 場合に、バッファオーバーランが発生
     し、動作が不定あるいは不安定になる場合がある問題を改訂。

  ・ スクリプト実行時に、論理積 (&) 演算がうまく動作しない場合がある問題を改訂。



■ V18.050 : 2018/05/28

  ・ DeviceID として 0x0000 を使用する場合に、.ini ファイルの DEVID の先頭として指定しなければいけ
     ないという制限を撤廃し、DEVID のどの位置にでも指定できるようにした。これにより、通信トレース
     ファイルの名称等の識別が、"0000" でないものも使用できるようになり、柔軟性を向上させた。

  ・ HSMS Active 接続時に発行する Select.Request に対する Passive 側からの Select.Responce の応答
     がとても速い場合に、Select 状態に移行せず T7TO を発生してしまう場合がある現象を回避。



■ V18.070 : 2018/07/01

  ・ SECS-1 接続時における以下の問題を解決。
    ・ .ini に T1=0 として指定されていると、通信エラーが発生した場合でのエラーの後処理時に、永久に
       待ち状態となってしまう。
    ・ 通信トレース出力において、メッセージ定義を使用したメッセージ名称、項目名称の表示を指示して
       いるにも関わらず、送信メッセージの表示に、メッセージ名称、項目名称が表示されない。
    ・ 通信トレース出力では、送信時のトレースを送信前に出力するため、BLOCK に関する表示は常に =0
       で表示していたが、送信データ長から BLOCK 値を計算して、送信するであろう最終 BLOCK の値を
       出力するように変更。

  ・ SECS-1 接続時における MULTI BLOCK メッセージの受信処理での以下の状態を .ini での SECSMODE の
     指定により、制御可能とした。(詳細は TDS.pdf を参照)
    ・ MULTI BLOCK メッセージ受信途中で、送信要求を受け付けた場合、タイミングによっては、その送信
       要求を優先して送信処理に入るが、このような場合でのデフォルト動作を、送信処理を MULTI BLOCK
       メッセージ受信での最終 BLOCK の受信後に開始するように変更し、(SECSMODE&0x10000000)!=0 の指
       定により、従来通りの動作をするように改訂。
    ・ 先頭 BLOCK の BLOCK 番号が任意のものであっても受信を許可するモード ((SECSMODE&0x200000000)
       !=0) を追加。
    ・ 受信した BLOCK 番号値が、受信を期待している番号と異なっている場合に、NAK 応答をして、送信
       側に再送を促すモード ((SECSMODE&0x400000000)!=0) を追加。



■ V19.020 : 2019/02/01

  ・ .ini ファイルにおける DEVMODE の指定が (DEVMODE&0x01)==0 であり、送受信時に DeviceID のチェッ
     クを行う設定の場合に、メッセージ送信時に画面上の [DeviceID] 欄に、処理対象以外の DeviceID を
     指定すると、正しく処理できない（異常な SECS メッセージを送信処理する。不明なエラーになる等）
     問題を解決し、正しく "DeviceID 異常" とするように改訂。

  ・ SECS-1 接続の場合の接続状態表示の文言を改訂。



■ V19.070 : 2019/07/05

  ・ 設定ファイルにおける以下のビットの扱いを、以前からの予告の通り廃止した。
    ・ (DEVMODE&0x000008) : HSMS Select,Deselect,LinkTest Request での W-bit の扱い
                            (SECSMODE&0x000800) に移行
    ・ (DEVMODE&0x010000) : HSMS Select,Deselect,Separate Request でのセッションID (デバイスID) の
                            扱い
                            (SECSMODE&0x000400) に移行
     [注意]
     現在、これらのビットの設定により TDS の動作設定をされている場合は、移行先のビットでの設定に
     変更し、これらのビット値を =0 とする必要があります。

  ・ 英語標記プログラム 及び 英語ドキュメントの追加



■ V19.100 : 2019/10/25

  ・ SML 形式のメッセージ定義ファイルにおける Multi Byte Text String 項目における LSH (Local String
     Header) の指定を可能とした。
     Multi Byte Text String (022) の指定時のニモニックとして 'M99' (99:LSH の値) を指定する。

  ・ スクリプト実行において DEVID=0 の指定を可能とした。 

  ・ セクション名を無指定とした場合、シミュレーション開始に伴い使用するセクション名を表示するように
     改訂。

  ・ 開始時に異常終了した場合に、使用するメッセージ定義ファイルの表示が入力値として残ったままとなっ
     てしまう問題を解決。

  ・ プログラム起動時に、シーケンス表示部の表示が、既選択のシーケンスを示す program 行の先頭に位置
     付かない問題を解決。

  ・ シミュレーション終了時 及び ライセンス指定の不備によりシミュレーション動作停止する時に異常停止
     する場合がある問題を解決。

  ・ Windows での拡大表示（コントロールパネル -- ディスプレイ での 100、125、150% 指定）の変化に対
     応した。これにより変数表示ペインの乱れを解消した。



■ V20.040 : 2020/04/17

  ・ TDS の更新に伴う改訂で、HSMS-SS、HSMS-GS における接続、切断性能の向上を図った。

  ・ HSHS 接続における Passive 動作時において、既存接続を優先する場合に、新規接続があった時に、
     既存接続に対して新規接続の接続/切断が報告され、既存接続も切断されてしまう問題を解決。

  ・ 処理対象デバイス選択コンボ・ボックスに関して以下の改定を行った。
    ・ HSMS-GS 接続時において、接続先からの Select、Deselect 要求処理により選択デバイスが再選択され
       てしまう問題を解決。
    ・ HSMS-GS 接続時において、既選択デバイスの Select 状態に変化があっても '*' 表示の更新がなされ
       ない問題を解決。



■ V20.090 : 2020/09/01

  ・ [Start] 時に [メッセージ] 未指定の場合には [メッセージ] 定義ファイルとして、指定 .ini ファイル
     に指定されたものを表示するが、メッセージ定義ファイルの格納フォルダが .ini ファイル格納フォルダ
     とは異なるものの、フォルダ名の最初から数文字が共通である場合の表示が誤っている問題を解決。

  ・ ログ表示ペインへの SECS ヘッダ表示中のトランザクションID値が、ソースIDが >0 の場合の表示値が正
     しくない不具合を解決。

  ・ .ini において (DEVMODE&0x4000)!=0 とすることにより、HSMS 通信時の LinkTest の送信タイマーを、
     接続相手からのデータ・メッセージ受信によりリセットする事を可能とした。これにより、この設定を
     行うとアプリケーションのメッセージ交換がされている間は LinkTest を発行しなくなる。



■ V21.010 : 2021/01/15
■ V21.011 : 2021/02/25

  ・ シミュレータ動作中に、使用中の .ini の SECSMODE、DEVMODE の一部を変更可能とした。
     これにより、現在実行中変更が可能な T3TO 値、トレース出力レベル等と同様、例えば以下の変更が可能
     となる。
     ・ HSMS Passive 側の TCP/IP 接続受け入れ時の接続優先順位
     ・ HSMS 時における SessionID の第15bitの意味
     ・ HSMS 動作時の切断検知から接続実行までの待ち時間
     ・ SECS-1 接続時の Single Block の場合のブロック番号
     ・ T3TO 発生時の S9F9 自動送信の実行可否
     ・ T6TO 発生時の自動切断の可否
     詳細は TDS.pdf 第２.１節 (1)(d) を参照すること。

  ・ 送信する SECS Message のデータ部に通常は自動的に決定する各データ項目の Length Byte size (1〜3)
     を指定長 (2〜3) とする機能を追加。
     Length Byte Size を指定した場合、その指定値でデータ項目の総バイト数を格納できる場合は、常に
     そのサイズとする。ただし格納できない場合は、格納できるサイズとする。

  ・ .ini ファイルでの (TRCTTYPE&0x1000) の指定により、通信トレースへの LIST 形式出力に、関連する
     SECS-II Message のバイトデータの 16進数コードの出力を付加表示する事を可能とした。
     これにより、SECS-II メッセージデータ構造の詳細確認、解析が容易になる。

  ・ 拡張通信トレースを別ウインドに表示する事を可能とした。
     これにより、従来は通信トレースファイルを参照することでしか確認できなかった HSMS 接続時の
     LinkTest に関するやりとりや、SECS-1 接続時の通信制御コードの送受信もウインド上でリアルタイムに
     確認可能となった。
     また、従来の通信トレース表示には SECS メッセージヘッダのみを表示して通信の推移のみを監視し、
     同時に拡張通信トレースウインドに SECS メッセージの詳細を表示し必要に応じてメッセージの詳細を
     確認する、といった使い方も可能。
     拡張通信トレースウインドには、.ini の指定により、前項の LIST 形式表示に関連する 16進数表示を
     行う事もできるので、SECS-II メッセージ内容の解析が容易になる。

  ・(V21.011)
    通信トレース・ファイルに記録される時刻が、前行のものに置き換わりズレてしまう問題を解決。



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


  ・ シュミレータ動作速度の向上のため、以下を一時停止する機能をメニューに追加した。
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     この機能を指定することにより、スクリプト処理時の実行速度を大幅に改善する事が可能。
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ・ 通信トレース、処理トレースのファイル出力
    ・ スクリプト実行のリアルタイム表示

  ・ 通信トレース表示におけるリスト形式表示に関連する１６進数表示を、各行後部に付加することを可能
     とした。

  ・ メイン操作部に [->] ボタンを設け、トレース表示最終行への位置づけを容易に行えるようにした。
     また、メニュに [最終行表示] を新設し、上記処理の実行を容易にした。
  ・ 拡張通信トレース表示ダイアログにおいても、メニュに [最終行表示] を新設し、通信トレースウインド
     の最終行表示を容易にした。

  ・ スクリプト文内の演算子（代入、演算、比較）の前後に空白を置けない仕様を、置けるように変更。
     この変更により、スクリプト文の視認性を高めた。
  ・ スクリプトの release 文で、複数の SF-Code を１行で release 可能とした。

  ・ スクリプト実行時、if ブロック 及び while ブロックから goto、continue、break により制御の遷移が
     ある場合に、正しく制御ブロック階層が評価されない問題を解決。
     ただし、上方への goto では制御ブロックの範囲を超えることはできない。

  ・ 上記スクリプト機能の改訂に伴い、サンプルスクリプト・ファイルを改訂した。


  (V21.061)

  ・ 32bit AP、64ビット AP の両方を用意した。

  ・ スクリプトの set 文における代入演算子として == を新設した。
     文字列変数への代入に == を使用する場合、== の右辺をそのまま左辺文字列変数に代入することを可能
     とし、文字列変数の単純コピーが可能となった。

  ・ 代入演算、比較演算において、数値変数（整数、実数）に前置単項演算子 "-" を付加することを可能と
     した。


  (V21.062)

  ・ スクリプトの set 文で @file を使用する場合の .dat ファイルに相対パス名称を指定した場合は、
     スクリプト・ファイル（.ssl ファイル）存在ディレクトリからの相対位置であることを明示した。

  ・ SECS Message の SML List 形式表示の右側に、関連する SECS Message データ領域の 16進数表示を付加
     表示可能とした。 

  ・ 各サンプル・ファイルを Sample0/ に格納し、Win32/、Win64/ の各 .exe は、../Sample0/ のファイル
     を使用するようなサンプルを示した。

  ・ 上記に関連し、各サンプル・ファイルを改訂した。


