プログラムの編集により作成した記録を再生した結果は、アンロックキーを導入することでプログラムの編集画面メニュー「再生ログを表示」から確認することができます。より詳細な再生中の状態を確認するために、アプリ待ちや画像認識結果を変数に格納してくことで、再生ログに表示することができます。
再生ログの表示 (要アンロックキー)
再生結果と再生完了の日時、最後に再生または中断された項目を表示します。プログラムが変数を参照した場合には、参照した変数の内容をリスト表示します。エラー時のみ再生ログを記録オプションがONの場合、再生成功時にはログ情報は上書きされません。
– 日時
再生成功時には緑、失敗・中断時には赤の四角アイコンを表示します。日時は成否に関わらず再生終了時点を示します。
– ラベル 再生結果:最終項目
再生時点でのラベル名と成否、終了直前に実行された項目の番号およびラベルを表示します。
– エラーメッセージ
再生失敗・中断時の原因となったエラーメッセージを表示します。
– 参照変数
プログラム内で設定・参照された変数について、再生終了時点での値を表示します。
変数
再生中に得られる値の取得や演算を行い、変数に保存します。変数はプログラム編集の制御項目の設定や、IFやSwitch分岐に利用できます。保存された変数はFRepサービスが保持し、他のプログラムと共通して使用されます。
複数の演算を指定した場合、リストの上から順に実行されます。
リストの左側ボタンから削除、右側+ボタンから演算を追加できます。中央の演算文を長押しすることでリスト内をドラッグ移動できます。演算内容を編集する場合は中央の演算文をタップします。
演算文の形式
(代入先変数)=(コード):(引数1) (演算子) (引数2)
変数名 [A-Za-z_@][0-9A-Za-z_]+
定義できる変数名は半角英数とアンダーバーから構成されます。ただし、冒頭に数字は使用できません。@で始まる変数は規定のシステム変数のため、引数にのみ使用できます。
frep0, frep1, frep2, frep3, frep4 はTasker Eventプラグインによって再生終了時にTasker一時変数%frep0, %frep1, %frep2, %frep3, %frep4に渡されます。このとき同時に%frepsuccessに1(再生成功時)または0(失敗/割り込み中断時)が指定されます。
型 [(空), 数値, 矩形, 文字列]
値の型は(空)を含め4種類です。変数の型は保持している値で決定されます。
型 | 説明 | 定義例 |
(空) | 値が定義されていない状態 ※再生ログ上ではnull表示 |
var=num: var=rect: var=str: |
数値 | 整数、小数、負数 ※一部演算子では整数に切り捨てた値が使用される |
var=num:0 var=num:0.012 var=num:-0.5 |
矩形 | (left top right bottom) 形式で定義される矩形 各成分は整数または変数 |
var=rect:(10 20 30 40) |
文字列 | “文字列内容” 形式で定義 エスケープ文字は(改行)\n (タブ文字)\t (\文字)\\ (“文字)\” |
var=str:”line1\nline2″ |
@システム変数一覧
機器や再生の状況を参照するためのシステム変数です。代入はできません。
変数名 | 型 | 説明 |
@repeat | 数値 | 現在の繰り返し再生回数(初回0) |
@loop | 数値 | 直近のループ項目カウント(初回0) |
@lastif | 数値 | 直近のIF項目の成否(成功時1,失敗時0) |
@rotation | 数値 | 現在の画面向き(0: 0°, 1:90°, 2:180°, 3:270°) |
@cpuusage | 数値 | 現在のCPU使用率(0~100) ※Android ~7のみ |
@start | 数値 | 再生開始時刻(ms) |
@now | 数値 | 現在時刻(ms) |
@lastfinish |
数値 | そのプログラムの最後の再生の成否 (-1:失敗/中断, 0:未再生, 1:成功) |
@laststep |
数値 | そのプログラムが再生されたときの最後のステップ番号 (未再生の場合は0) |
@lastmatch | 矩形 | 直近の画像認識位置(成功時のみ上書) |
@screen | 矩形 | 機器のスクリーンサイズ(向きは0°固定) |
@clipboard | 文字列 | クリップボードテキスト内容 ※Android ~9のみ |
@tofrep |
文字列 | FRep Tasker Pluginで指定された呼び出し変数 (パネルやショートカットからの再生時には空) |
変数の特殊参照 var.left, var.x, var.length
一部の型を保持している変数は、その内部値に基づく値を参照できます。
特殊参照 | 説明 | 例 |
(矩形).left (矩形).top (矩形).right (矩形).bottom |
矩形の各成分値(数値)を参照 | l=num:r.left |
(矩形).x (矩形).y |
矩形の中央座標のx,y値(数値)を参照 x=(left+right)/2 y=(top+bottom)/2 |
centerx=num:r.x |
(矩形).width (矩形).height |
矩形の幅,高さを参照 width=right-left height=bottom-top |
w=num:r.width |
(文字列).length | 文字列の長さを参照 | len=num:s.length |
(文字列).asnum (文字列).asrect |
数字による文字列を数値に変換したものを参照 (left top right bottom)文字列を矩形に変換したものを参照 |
n=num:s.asnum r=rect:s.asrect |
(文字列).asint (数値).asint |
数字による文字列を数値に変換した値、または既存の数値を整数型に変換したものを参照(小数点以下切り捨て) | i=num:s.asint i=num:n.asint |
(数値).asstr (矩形).asstr |
値を文字列に変換したものを参照 | s=str:n.asstr s=str:r.asstr |
(数値).asdate (数値).astime |
時刻(ms)の数値を日付文字列(yyyy/MM/dd kk:mm:ss)に変換したものを参照 時刻の差分(ms)の数値を時間文字列(hour:min:sec.ms)に変換したものを参照 |
s=str:@now.asdate t=num:@now–@start s=str:t.astime |
コード別リファレンス
num: 数値の設定・演算
演算子 | 引数1 | 引数2 | 説明 | 例 |
(なし) | 変数, 数値, 空 | (なし) | 数値を指定 | var=num:0 |
+ – * | 変数, 数値 | 変数, 数値 | 加算 減算 乗算 | var=num:var + 1 |
/ | 変数, 数値 | 変数, 数値 | 除算 (引数2が0の場合は引数1の値を返す) |
var=num:var / 3 |
% | 変数, 数値 | 変数, 数値 | 剰余(引数2が0の場合は0を返す) | var=num:var % 3 |
& | ^ | 変数, 数値 | 変数, 数値 | ビット演算AND OR XOR (引数1,2は整数型に強制) |
var=num:var & 7 |
~ | 変数, 数値 | 変数, 数値 | ビット演算ANDNOT (引数1,2は整数型に強制) |
var=num:var ~ 128 |
rect: 矩形の設定・演算
演算子 | 引数1 | 引数2 | 説明 | 例 |
(なし) | 変数, 矩形, 空 | (なし) | 矩形を指定 | var=rect:(0 0 100 200) |
+ – * | 変数, 矩形 | 変数, 数値, 矩形 | 加算 減算 乗算 ※引数2が矩形の場合、成分ごとに演算。数値の場合、全ての成分に対して同じ演算を行う |
var=rect:var + (10 20 10 20) ※(10,20)オフセット移動 |
/ | 変数, 矩形 | 変数, 数値, 矩形 | 除算 ※引数2が矩形の場合、成分ごとに演算。数値の場合、全ての成分に対して同じ演算を行う (除算する値が0の場合は該当する引数1の値をそのまま返す) |
var=rect:var / (2 2 0 0) ※左上座標のみ半分の値に |
& | 変数, 矩形 | 変数, 矩形 | 交差部分の取得(Intersect) | var=rect:var & @screen ※スクリーンサイズに収まるよう切り抜き |
| | 変数, 矩形 | 変数, 矩形 | 両方の矩形を含む最小の矩形を取得(Union) | var=rect:var | @lastmatch ※画像認識位置を含むように拡張 |
str: 文字列の設定・演算
演算子 | 引数1 | 引数2 | 説明 | 例 |
(なし) | 変数, 数値, 矩形, 文字列, 空 | (なし) | 文字列を指定 | var=str:”文字列” |
+ | 変数, 数値, 矩形, 文字列, 空 | 変数, 数値, 矩形, 文字列 | 文字列を結合 | var=str:var + “\n” ※改行を追加 |
sub | 変数, 文字列 | 矩形 | 引数1の文字列を引数2(la ln ca cn)の範囲に従って切り出しln>0の時、行オフセットlaからln行抽出(※laがマイナスの場合、抽出開始行は末尾から-la行遡った位置)cn>0の時、文字オフセットcaからcn文字抽出(※caがマイナスの場合、抽出開始位置は末尾から-ca文字遡った位置) | var=str:var sub (1 2 3 4) ※文字列varの2~3行目を抽出し、その4文字目から4文字を抽出var=str:var sub (a 1 0 0) ※文字列varの(a+1)行目を抽出var=str:var sub (0 0 -5 5) ※文字列varの末尾5文字を抽出 |
idx | 変数, 文字列 | 変数, 文字列 | 引数1内に引数2の文字列が含まれる場合、その開始位置(冒頭:0) 引数1内に引数2が含まれない場合は-1 |
var=str:”abcde” idx “cd” ※varには数値2が格納されるvar=str:”abcde” idx “f” ※varには数値-1が格納される |
read | 変数, 文字列 | (空) | 引数1に指定されたファイルパスの内容を読み込む(最大1MB) | var=str:”/sdcard/test.txt” read ※ファイル内容をvarに格納 |
その他の機能コード
コード | 引数1 | 引数2 | 説明 | 例 |
toast: | 変数, 数値, 矩形, 文字列 |
(なし) | 指定した内容をポップアップ表示 | toast:”メッセージ” |
clean: | (なし) | (なし) | システム変数を除く全ての変数を消去 | clean: |
IF
変数に格納された値を条件としてプログラムを分岐・中断します。 条件を満たした場合は成功、満たさない場合は失敗に分岐し、成否はシステム変数@lastifに記録(成功:1, 失敗:0)されます。
複数の条件を指定した場合、リストの上から順に判定されます。
リストの左側ボタンから削除、右側+ボタンから条件を追加できます。中央の条件文を長押しすることでリスト内をドラッグ移動できます。条件を編集する場合は中央の条件文をタップします。
条件文の形式
andまたはor(not):(値1) (比較演算子) (値2)
複合条件 and: or: (andnot: ornot:)
複数の条件を組み合わせた判定を行うことができます。and: は直前の条件と共に満たす必要がある条件です。or: は以前の条件が満たされていない場合でも別の条件として引き続き判定する条件です。1つ目の条件はand: or: の判定は行われません。また、and: or: とも入れ子構造にはならず、or: が存在する場合、or: により区切られた条件はリスト内で色分けされます。
andnot: ornot: はそれぞれの条件の判定を逆転した結果を基に動作する and: or: です。
比較演算子
比較演算子 | 値1,2 | 説明 | 例 |
== != |
変数, 数値, 矩形, 文字列, 空 | 内容が同一かどうかを判定 | and:var == “文字列”and:@loop == 0 ※ループ内初回を判定 |
> >= < <= |
変数, 数値 | 数値の大小を判定 | and:var > 0 |
& | 変数, 数値, 矩形 | 数値の場合、ビットAND演算の結果が0でなければ成功矩形の場合、2つの矩形が一部でも重なれば成功 | and:var & 5and:r & @lastmatch ※画像認識結果が矩形rと重なる部分があるかどうか判定 |
]= | 変数, 矩形, 文字列 | 矩形の場合、値1の範囲と値2が一致、または値1の範囲に値2の範囲が完全に含まれると成功文字列の場合、値1の文字列内に値2の文字列が含まれると成功 | and:r ]= @lastmatch ※矩形r内で画像認識されたかどうか判定and:var ]= “ok” ※varに文字列okが含まれるか判定 |
Switch
変数に格納された値を条件としてプログラムを分岐します。条件1つにつき1つの行き先を指定でき、リストの上から順番に評価して最初に満たされた条件の行き先へ分岐します。どの条件にも一致しなかった場合は、その他(default)に指定した行き先へ分岐します。
リストの左側ボタンから削除、右側+ボタンから条件を追加できます。条件文を長押しすることでリスト内をドラッグ移動できます。条件や行き先を編集する場合はそれぞれをタップします。
使用できる比較演算子はIFと同一ですが、複合条件(and:やor:等)は指定できません。
TIPS
– 再生成功時の変数を確認する場合は、あらかじめエラー時のみ再生ログを記録オプションをOFFにして再生します。
– クリップボード内容を変更する場合は、クリップボード項目を追加して▽ボタンから変数を指定します。