命令文
マイコンから表示用端末に送る送信を命令と呼びます。
命令文には次の3つ種類があります。
- 準備命令 - 画面に描画するための準備を行う
- 描画命令 - 画面に文字や図形を描画する
- 管理命令 - 発行済みの描画命令を管理する
一般形式
命令文の一般形式は次の通りです。
命令 パラメータ1, パラメータ2, ....
| 命令 | 表示用端末に指示する命令です。各命令むの短縮形も使用できます。 |
| パラメータ | 命令の動作の詳細を指定します。 1つの命令に複数のパラメータがある場合がありますが[ ]で囲まれたパラメータはカンマも含めて省略可能です。 |
色の指定方法
命令文で使用する色を指定するには#で始まる6桁または8桁の16進数を用います。
6桁の16進数を用いる場合は先頭より2桁ずつの3領域に区切られ各々赤、緑、青の色の度合いを表わします。
8桁の16進数を用いる場合は先頭より2桁ずつの4領域に区切られ各々透明度、赤、緑、青の色の度合いを表わします。
赤、緑、青を表わす2桁の16進数は 00~FFまで256諧調あり、00が色の度合い弱く、FFが最も色の度合いが高くなります。
指定する色は赤、緑、青の3つの色の度合いにより決まります。
8桁の16進数で用いられる透明度は 00~FFまで256諧調あり、00が不透明で、FFが最も透明になります。値が大きいほど背景が透けて見えます。
6桁の16進数を用いる場合は透明度は 00で、不透明となります。
(例)
#FF0000 赤
#80FF0000 半透明な赤
短縮指定
6桁または8桁の16進数の短縮形として3桁または4桁の16進数を用いることができます。
3桁の16進数を用いる場合は先頭より各1桁ずつで赤、緑、青の色の度合いを表わします。
4桁の16進数を用いる場合は先頭より各1桁ずつで透明度、赤、緑、青の色の度合いを表わします。
赤、緑、青を表わす16進数は 0~Fまで16諧調あり、0が色の度合い弱く、Fが最も色の度合いが高くなります。
透明度を表わす16進数は 0~Fまで16諧調あり、0が不透明で、Fが最も透明になります。値が大きいほど背景が透けて見えます。
(例)
#F00 赤
#8F00 半透明な赤
色名指定
次の色は色名で直接指定できます。
RED BLUE GREEN BLACK WHITE GRAY CYAN MAGENTA YELLOW LIGHTGRAY DARKGRAY GREY LIGHTGREY DARKGREY AQUA FUCHSIA LIME MAROON NAVY OLIVE PURPLE SILVER TEAL

準備命令
画面に描画するための準備を行うための命令群です。
表示領域の初期化や使用するフォント、画像、イメージセットを準備します。
初期化
一連の描画を行う前に最初に行う命令です。
Android端末の画面を初期化し表示領域と背景色を設定します。
表示用端末がこの命令を受けると今まで受けた描画命令をすべてクリアします。
初期化命令の前には必ず改行を入れて下さい。
書式
init width, height, backcolor[,orientation]
| init | 初期化命令 | 短縮形 in |
| width | 表示領域の幅 | 表示領域の縦横比の横の値として使用されます。また領域内の位置指定時の横座標の最大値として使用されます。 |
| height | 表示領域の高さ | 表示領域の縦横比の縦の値として使用されます。また領域内の位置指定時の縦座標の最大値として使用されます。 |
| backcolor | 背景色 | 表示領域の背景色を指定します。詳細は色の指定方法をご覧ください。 |
| orientation | 画面の向き | 画面の向きを指定します。0は横向き固定表示、1は縦向き固定表示になります。 指定なき場合は、置き方により自動回転します。 |
表示領域
widthとheightの値は実際のAndroid端末の画面解像度と関係ありません。widthとheightは表示領域の横縦比を表わします。
android端末の画面ではこの横縦比で確保される最大領域が表示領域となります。
例えばwidthが100でheightが75の場合、1080*1920のスマートフォンを横向きに使う場合は、1440*1080の領域に表示されます。
またスマートフォンを縦向きにした場合は、1080*810の領域に表示されます。
座標指定と大きさ指定
画面上の座標位置を指定する場合は、表示領域の左上の点がが(0, 0)、表示領域の右下の点が(width - 1, heigh - 1)となります。
また領域の大きさや線の太さ、フォントサイズなどは表示領域の横幅をwidth、高さをheightとし、それをスケールとして値を設定して下さい。
これらの値には小数も使用できます。
フォント生成
フォントIDを指定して使用するフォントを生成します。
テキストを描画する場合にフォントIDを指定してフォントを選択します。
書式
font fontId, fontFamily, textStyle, fontSize
| font | フォント生成命令 | 短縮形 fo |
| fontId | フォントID | フォントを使用するときのIDを設定します。空白を含まない任意の文字列です。 |
| fontFamily | フォントファミリー | (1)SERIF (2).SANS_SERIF (3)MONOSPACE または1,2,3の数字で指定します。 |
| textStyle | スタイル | (0)DEFAULT (1)BOLD (2)ITALIC (3)BOLD_ITALIC または0,1,2,3の数字で指定します。 |
| fontSize | フォントサイズ | 領域指定のwidthを基準にフォントの大きさを指定します。 widthが100の場合フォントサイズを5とした場合は、フォントサイズは表示領域の幅の1/20となります。 |
イメージ生成
MyDisplayでは携帯端末にある画像ファイルを表示することができます。
画像ファイルを読込むのには時間がかかりますので、予め読込んでイメージを生成しておきます。
サブイメージ
1つの画像ファイルの中に複数のイメージを格納することもできます。複数のイメージの各々をサブイメージと呼びます。
各々のサブイメージは同じ大きさで、縦横の配列状に並べてに一つの画像とします。
各々のサブイメージは番号によって呼び出されます。
番号は右上を0とし、同じ行で右方向に1,2,3...と数えます。右端に達したら次の行の左端に戻り同じように続きを数えます。
書式
image imageID, fileName [, width, height]
| image | イメージ生成命令 | 短縮形 im |
| imageID | イメージID | 画像を使用するときのIDを設定します。空白を含まない任意の文字列です。 |
| fileName | 画像ファイル名 | 表示用端末にある画像ファイル名を指定します。フォルダは指定しません。 MyDisplayを一度起動すると表示用端末の本体またはSDカードにandroid/data/jp.maplesoft/mydisplay/files/picturesフォルダが作られます。 画像ファイルはこのフォルダに置いて下さい。 拡張子はjpg, pngに対応しています。pngを使用するし背景を透明にすることができます。 |
| width | 単位画像横幅 | 複数の画像が納められている場合に、個々の画像の横幅をピクセルで指定します。 |
| height | 単位画像高さ | 複数の画像が納められている場合に、個々の画像の高さをピクセルで指定します。 |
描画命令
画面に文字や図形を描画するための命令群です。
テキスト描画
書式
drawText text, x, y, align, fontId, textColor [, space]
| drawText | テキスト描画命令 | 短縮形 dt |
| text | テキスト | 表示するテキスト文字列を指定します。ダブルクォーテーションは不要です。カンマを含む場合は\でエスケープします。 |
| x | 横座標 | 表示位置の横座標を領域指定のwidthを最大値として指定します。小数も使用できます。 |
| y | 縦座標 | 表示位置の縦座標を領域指定のheightを最大値として指定します。小数も使用できます。 |
| align | アライメント | 座標の位置を文字列のどこに合わせるかを数字または文字で指定します。 0:left_top 1:center_top 2:right_top 3:left_middle 4:center_middle 5:right_middle 6:left_bottom 7:centrt_bottom 8:right_bottom |
| fontId | フォントID | 使用するフォントのIDを指定します。 |
| textColor | 文字の色 | 文字色を指定します。詳細は色の指定方法をご覧ください。 |
| space | 文字間隔 | 文字間のスペースを文字の高さを基準に設定します。例えば文字間に文字の高の半分のスペースを設ける場合は0.5とします。 文字間隔の設定は省略可能です。省略した場合はフォントに設定された標準の文字間隔です。 マイナスを設定すると文字間を詰めることができます。 |
線の描画
書式
drawLine startX, startY, stopX, stopY, color, lineWidth
| drawLine | 線描画命令 | 短縮形 dl |
| startX | 開始横座標 | 描画する線の開始横座標を指定します。 |
| startY | 開始縦座標 | 描画する線の開始縦座標を指定します。 |
| stopX | 終了横座標 | 描画する線の終了横座標を指定します。 |
| stopY | 終了縦座標 | 描画する線の終了縦座標を指定します。 |
| color | 描画色 | 線の描画色を指定します。詳細は色の指定方法をご覧ください。 |
| lineWidth | 線幅 | 描画する線の線幅を指定します。 |
多角形描画
書式
drawPath x1, y1, x2, y2, x3, y3, [x4, y4, ....,] [close,] color, lineWidth
| drawPath | 多角形描画命令 | 短縮形 dp |
| x1, y1 | 開始座標を | 描画する多角形の開始座標を指定します。 |
| x2, y2 | 第2座標 | 描画する多角形の第2座標を指定します。 |
| x3, y3 | 第3座標 | 描画する多角形の第3座標を指定します。 |
| x4, y4, .... | 第4座標 | 必要であれば描画する矩形の第4座標以降を指定します。 |
| close | 閉鎖指定 | 最初の点に戻り、多角形を閉鎖する場合はcloseを記載します。閉じない場合は不要(カンマも)です。 |
| color | 描画色 | 描画色を指定します。詳細は色の指定方法をご覧ください。 |
| lineWidth | 線幅 | 多角形を線で描画する場合は線幅を指定します。 多角形を塗りつぶす場合はFILLまたはFを指定します。 |
矩形描画
書式
drawRect left, top, width, height, color, lineWidth
| drawRect | 矩形描画命令 | 短縮形 dr |
| left | 左座標 | 描画する矩形の左座標を指定します。 |
| top | 上座標 | 描画する矩形の上座標を指定します。 |
| width | 横幅 | 描画する矩形の横幅を指定します。 |
| height | 高さ | 描画する矩形の高さを指定します。 |
| color | 描画色 | 描画色を指定します。詳細は色の指定方法をご覧ください。 |
| lineWidth | 線幅 | 矩形を線で描画する場合は線幅を指定します。 矩形を塗りつぶす場合はFILLまたはFを指定します。 |
角丸矩形描画
書式
drawRoundRect left, top, width, height, rx, ry, color, lineWidth
| drawRoundRect | 角丸矩形描画命令 | 短縮形 drr |
| left | 左座標 | 描画する矩形の左座標を指定します。 |
| top | 上座標 | 描画する矩形の上座標を指定します。 |
| width | 横幅 | 描画する角丸矩形の横幅を指定します。 |
| height | 高さ | 描画する角丸矩形の高さを指定します。 |
| rx | 角丸の横半径 | 角丸矩形の丸みの横方向の半径を指定します。 |
| ry | 角丸の縦半径 | 角丸矩形の丸みの縦方向の半径を指定します。 |
| color | 描画色 | 描画色を指定します。詳細は色の指定方法をご覧ください。 |
| lineWidth | 線幅 | 角丸矩形を線で描画する場合は線幅を指定します。 角丸矩形を塗りつぶす場合はFILLまたはFを指定します。 |
円描画
書式
drawCircle cx, cy, radius, color, lineWidth
| drawCircle | 円描画命令 | 短縮形 dc |
| cx | 中心の横座標 | 描画する円の中心の横座標を指定します。 |
| cy | 中心の縦座標 | 描画する円の中心の縦座標を指定します。 |
| radius | 円の半径 | 円の半径を指定します。 |
| color | 描画色 | 描画色を指定します。詳細は色の指定方法をご覧ください。 |
| lineWidth | 線幅 | 円を線で描画する場合は線幅を指定します。 円を塗りつぶす場合はFILLまたはFを指定します。 |
楕円描画
書式
drawOval left, top, width, height, color, lineWidth
| drawOval | 楕円描画命令 | 短縮形 do |
| left | 左座標 | 描画する楕円の左座標を指定します。 |
| top | 上座標 | 描画する楕円の上座標を指定します。 |
| width | 横幅 | 描画する楕円の横幅を指定します。 |
| height | 高さ | 描画する楕円の高さを指定します。 |
| color | 描画色 | 描画色を指定します。詳細は色の指定方法をご覧ください。 |
| lineWidth | 線幅 | 楕円を線で描画する場合は線幅を指定します。 楕円を塗りつぶす場合はFILLまたはFを指定します。 |
円弧描画
書式
drawArc left, top, width, height, startAngle, sweepAngle, useCenter, color, lineWidth
| drawArc | 円弧描画命令 | 短縮形 da |
| left | 左座標 | 描画する円弧を含む楕円の左座標を指定します。 |
| top | 上座標 | 描画する円弧を含む楕円の上座標を指定します。 |
| width | 横幅 | 描画する円弧を含む楕円の横幅を指定します。 |
| height | 高さ | 描画する円弧を含む楕円の高さを指定します。 |
| startAngle | 開始角 | x 軸から円弧の開始点まで、時計回りに測定した角度 (度単位) |
| sweepAngle | 描画各 | startAngleから円弧の終了点まで、時計回りに測定した角度 (度単位) |
| useCenter | 中心点の使用 | TRUEの場合は中心点を通る直線を引いて円弧をとじます。FALSEの場合は開いた円弧になります。 |
| color | 描画色 | 描画色を指定します。詳細は色の指定方法をご覧ください。 |
| lineWidth | 線幅 | 円弧を線で描画する場合は線幅を指定します。 円弧を塗りつぶす場合はFILLまたはFを指定します。 |
イメージ描画
①指定したIDのイメージを指定した描画領域に表示します。
書式
drawImage imageID, left, top, width, height
| drawImage | イメージ描画命令 | 短縮形 di |
| imageID | 画像ID | 描画する画像のIDを指定します。 |
| left | 左座標 | 描画領域の左座標を指定します。 |
| top | 上座標 | 描画領域の上座標を指定します。 |
| width | 幅 | 描画領域の幅を指定します。0とした場合幅は高さより縦横比を固定して自動計算されます。 |
| height | 高さ | 描画領域の高さを指定します。0とした場合高さは幅より縦横比を固定して自動計算されます。 |
②指定したIDのイメージの指定範囲を指定した描画領域に表示します。
書式
drawImage imageID, trimLeft, trimTop, trimWidth, trimHeight, left, top, width, height
| drawImage | イメージ描画命令 | 短縮形 di |
| imageID | 画像ID | 描画する画像のIDを指定します。 |
| trimLeft | トリム左座標 | トリミング領域の左座標をピクセルで指定します。 |
| trimTop | トリム上座標 | トリミング領域の上座標をピクセルで指定します。 |
| trimWidth | トリム幅 | トリミング領域の幅をピクセルで指定します。 |
| trimHeight | トリム高さ | トリミング領域の高さをピクセルで指定します。 |
| left | 左座標 | 描画領域の左座標を指定します。 |
| top | 上座標 | 描画領域の上座標を指定します。 |
| width | 幅 | 描画領域の幅を指定します。0とした場合幅は高さより縦横比を固定して自動計算されます。 |
| height | 高さ | 描画領域の高さを指定します。0とした場合高さは幅より縦横比を固定して自動計算されます。 |
③指定したIDのイメージの指定した番号のサブイメージを指定した描画領域に表示します。
書式
drawImage imageID, number, left, top, width, height
| drawImage | イメージ描画命令 | 短縮形 di |
| imageID | 画像ID | 描画する画像のIDを指定します。 |
| number | サブイメージ番号 | 使用するイメージサブイメージの番号を指定します。 |
| left | 左座標 | 描画領域の左座標を指定します。 |
| top | 上座標 | 描画領域の上座標を指定します。 |
| width | 幅 | 描画領域の幅を指定します。0とした場合幅は高さより縦横比を固定して自動計算されます。 |
| height | 高さ | 描画領域の高さを指定します。0とした場合高さは幅より縦横比を固定して自動計算されます。 |
描画命令の付加情報
描画命令の先頭には描画IDとタッチ通知を付加情報として追加することができます。
描画ID
描画命令の先頭には描画IDを付けることができます。
描画IDと描画命令の間はコロン(:)で区切ります。
(例)BOLL: drawCircle 50, 50, 30, #FF0000, FILL
描画IDは描画命令を削除したり、非表示にしたり、表示順を変更するときの目印となります。
また、同じ描画IDの描画命令を発行すると前の命令は自動的に削除されます。
これを利用して同じ描画IDの描画命令で位置を変えて表示すると動いたように見えます。
タッチ通知
表示用端末の画面で描画命令の描画範囲をタッチしたときに、表示用端末からマイコンに通知を送ることができます。
タッチ開始時に通知を受ける場合は+、タッチ終了時に通知を受ける場合は-を描画IDの後ろに設定します。通知を受けない場合は何も設定しません。+と-を両方設定することもできます。
(例)BUTTON:+ drawRect 50, 50, 10, 20, #FF0000, FILL
通知される文字列はタッチ開始時は $+描画ID 、タッチ終了時は $-描画ID となります。
一括描画
通常は描画命令を出すとすぐに描画されます。しかしグラフの様に多くの項目を描画する場合、各命令ごとに描画を行うとチラつく原因となり、速度も遅くなります。
このような場合は、Wait/Draw命令を使用して一括描画することができます。
描画抑制
Wait
この命令以降の描画をDraw命令がくるまで抑制します。
描画命令
Draw
Wait命令で抑制されていた描画を一括実行します。
管理命令
発行済みの描画命令を管理するための命令群です。
表示の順序を変えたり、一時的に特定の描画を行わない、描画命令を削除するなどが行えます。
表示命令の指定には描画IDを使用します。
表示順序設定
通常は画面には最初の指令された描画命令により図形(文字)が描かれ、その上に順次、次の描画命令により図形が描がかれていきます。
従って最初に書いた図形の上に次の図形が描かれて前の図形の一部は隠れるようになります。
このように描画命令には実行順序がありますが、最初が最下層(BOTTOM)に最後が最上層(TOP)になります。
この表示順は次の命令により変えることができます。
書式
setOrder id position[, destid]
| setOrder | 表示順序設定命令 | 短縮形 so |
| id | 描画ID | 移動する命令に付けられた描画IDを指定します。 |
| position | 移動位置 | TOP:最上層に移動します。 BOTTON:最下層に移動します。 ABOVE:次に指定する移動先IDの上(TOP側)に移動します。 UNDER:次に指定する移動先IDの下(BOTTOM側)に移動します。 |
| destid | 移動先ID | positiontがABOVEまたはUNDERのときに、基準となる移動先の命令に付けられたIDを指定します。 |
この設定を利用すれば、動く図形が他の図形の前に移動したり、後ろに移動したりすることができます。
表示非表示設定
描画命令を一時的に非表示にしたり、元に戻したりできます。
書式
setVisible id sw
| setVisible | 表示非表示設定命令 | 短縮形 sv |
| id | 描画ID | 設定する命令に付けられた描画IDを指定します。 |
| sw | 表示スイッチ | TRUE:表示します。 FALSE:非表示にします。 |
描画命令削除
発行した描画命令を削除します。
書式
remove id
| remove | 描画命令削除命令 | 短縮形 rm |
| id | 描画ID | 削除する描画命令に付けられた描画IDを指定します。 |