UP 更新日:2004/09/26

TCMLへの対応について

このツールのデータは、タイミングチャート清書ツールとは非互換です。
ただし、メジャーバージョンアップ(要はRev.1.0.0)に向けて、今後徐々に互換性を増していくつもりはあります。
なので、タイミングチャート清書ツールで使用するタイミングチャート作成言語(TCML)と対比しながら、今後の方向性を記述してみます。
(別に、タイミングチャート清書ツールのサイトで互換性がうんぬんと書かれてしまったから、とか完全互換にしないんですかと質問された、とかからではないです...たぶん)

この文章は、Rev.0.3.xの段階で書かれています。実装の状況により順次予告無く書き換わることがあります(詳細はリリースノートを参照してください)。
またTCMLの文法規則が理解されていることを前提にしていますので、分からない方は先にTCMLの規則を読むか、このページと対比させながら読んでいただくと、より分かりやすいと思います。

■ファイル(データ)構造について

・「#」で始まる行
コメント行として無視されます。
習慣的に「'」で始まる行もコメント行としています。
・「@」で始まる行
各種のパラメータ設定用です。
まだまだTCMLとの互換性は低いですが、徐々に整備していきます。
・「%」で始まる行
チャートの指定位置に文字列を書き込むことができる設定ですが、将来的に対応するかもしれません。
この手の機能はVisioの得意技なので、優先順位は限りなく低いです(でも、いちおう予約行)。
当面、この文字で始まる行は無視されます(コメント行と同じ)。
・タイミング記述行
現行は「ラベル+[:]+レベル文字列」です。
TCML的にはスペースなんですが、ラベル(信号名)に空白を入れてしまうので踏み切れません(" "で括るって手もあるんですが、面倒で...)。
将来的には、区切り文字列(今は[:])を設定可能にするつもり(優先順位低)です。

■タイミング記述行

・レベル記号
現行はレベル文字列として「0_1~-=」が使用できます。
・補助記号
TCMLの「:」(単位時間の空白)は魅力なのですが、実装にあたっての根性がなかなかでません(区切り文字と被ってるし)。将来的な努力目標ということで...
TCMLの「X」(バスの遷移を挿入)は、使用できます。直後に「"」で括ったテキストを記述すると、行内にテキストの埋め込みができます(Rev.0.4.0以降)。
TCMLの「|」(縦線の挿入)はVisioの得意技ですし、そのためにグラフに接合点を埋め込んでいるので、今のところ対応予定はありません(自動だと便利かもしれませんが)。
・書き込み文字列
今のところ対応予定は未定です(「X」との組合せ以外は)。Visioの得意技なので、そちらに任せるかもしれません(あくまで今のところ、です)。

《波形内へのテキスト埋め込み(行内ラベル)》

Rev.0.4.0以降、暫定的に波形内にテキストの埋め込みができるようになりました。
埋め込み可能なパターンは、以下の通りです。

Label:"1"==X"2"==X"3"===X"4"====
この機能を利用する場合、以下に注意してください。

■パラメータ設定

パラメータの設定は、設定ファイルによる初期値の指定と、パラメータ行としてデータに埋め込む方法があります。
パラメータ行についてはTCMLに似せてます(できることが違うので、互換性には限りがあります)。
また適用範囲は、こちらは原則的に逐次適用されます(タイミングチャート清書ツールではチャート全体)。
また個別の詳細設定を行いたい場合、「グループ図形のみ選択」のチェックを外すことで、VISIO上で個々のパーツの属性を変更することが可能です。

TCMLのパラメータへの対応状況および独自拡張したパラメータは以下の通りです。
パラメータ内容TCML対応状況
step1単位時間のチャート上での長さを規定。
(画面上の設定で類似の設定が可能)
類似有り
lineheight信号の高さを規定。
(画面上の設定で類似の設定が可能)
類似有り
lineskip信号の上下間隔(中心間)を規定。対応予定
capwidth信号名の表示欄の幅を規定。
(基準幅に対する倍率として指定)
類似有り
slant信号遷移部の傾きを規定。
(0=鉛直,0.3=初期値,<なだらかな立上り。ただし、一定角度以上は鉛直)
類似有り
signalline信号を記述する線のスタイルを規定(*1)。類似有り
borderline外枠の線のスタイルを規定(*1)。類似有り
gridline縦線のスタイルを規定。予定無し
capfont信号名を書くフォント(のスタイル)を指定(*2)。類似有り
strfont信号中に書き込む文字列のフォント(のスタイル)を指定(*2)。類似有り
rotate1を指定すると図を時計回りに90度回転させる。予定無し
bitmapmagビットマップに変換する際に、1ポイントを何ピクセルにするかを指定。予定無し
dividingline区切り線のスタイルを指定(*1)。独自拡張

《*1:線の設定値》

線(信号線、外枠線、区切り線)のスタイルは、以下の設定値を取ります。

数値(0-255) 数値(0-255) 数値(0-255) setrgbcolor 数値 setlinewidth [数値 setlinepattern]

前半3個の数値はそれぞれ赤、緑、青を示し、0〜255の範囲(TCMLでは0〜1の範囲)で指定します。
「0 0 0」が黒、「255 255 255」が白、「255 0 0」が赤になります(Visioの仕様に準拠)。

線幅(setlinewidth)はポイントで指定します(Visioの仕様に準拠)。
Visioの標準線との関係は、以下のようになります。
Visio標準線ポイント
010.24 pt
030.72 pt
051.20 pt
092.16 pt
133.12 pt
174.08 pt

ラインパターン(setlinepattern)は、VISIOのラインパターンを指定します。
ラインパターンはTCMLの独自拡張であり省略可能です。
ラインパターンは0〜23の範囲で、主な線種は以下の通りです(Visioの仕様に準拠)。
Visioパターン線種
0線なし
1実線
16長い破線
2破線
23細かい破線
4一点鎖線
5二点鎖線
7長い一点鎖線

上記以外のラインスタイルは、最新の値(あるいはVisioの設定値)が継続されます。

《*2:FONTの設定値》

FONT(ラベル、行内ラベル)のスタイルは、以下の設定値を取ります。

[FONT名 setfonttype] [R G B setrgbcolor] [SIZE setfontsize] [italic] [bold]

■フォント指定時の注意事項

VISIOで表示可能なフォント名を指定することができます。
日本語フォントの使用も可能です...が、いくつかVISIO固有の問題点があります。

1.特に日本語フォント名の指定は正確に!
全角/半角に気をつけて下さい。
半角カナや全角スペース等、正確なフォント名を指定しない場合はデフォルトのフォントが指定されます(Visio2000までは「MSゴシック」。2002以降は「MS Pゴシック」になります)。
2.フォントの番号
フォント名の代わりにフォントの番号を指定することができます(例えば、デフォルトのフォント=0)。
ただし、個別のVISIOの環境により、同じフォント名でもフォントの番号が異なります。
従って複数の端末で作業を行う場合、デフォルトのフォント以外を指定すると、表示が異なる可能性が高いです。


※尚、上記仕様は、あくまで現行の仕様です。諸般の事情により仕様が変更されることがあります(プログラミング能力の向上等)。ご留意ください。

■その他

密かな野望として、TDML(Timing Diagram Markup Language)に準拠するオプションも考えているんですが、要望ってどの程度あるんでしょうか?
(そもそも、日本ではどの程度使われているんでしょう?)

■ご注意

決してTCMLで書かれた大規模データを食わせて互換性のテストなどしないでください。泣きが入ります。

■・・・・

何だか墓穴を掘っているような気がしてきた...が、本人はお気楽に構えています(いつかできるだろう、とか)ので、気の長いお付き合いを...


戻る