FRep support archive

Category : Variables (1)

Log / Reference of Variable

Categories: Variables
Tags: No Tags

The log for the edited sequence can be referred by menu View Last Log in Edit Sequence, which is available with FRep Unlock Key.  To get the details, you can add Variables control, or Set variables on success/fail for important phase.  The used variables can be referred in the log, too.

View Last Log in Edit Sequence (Requires Unlock Key)FRep View Last Log

Show success/fail, finished time, and last played item for last playing.  Variables referred in the sequence are also shown.  With Log Only Last Error option, successful playing does not overwrite the log.

- Date
The date of playing finished with rectangle of result color, green for success, red for fail or interrupted.

- Label, Result: Last played item
Label name on playing, result of success or fail/interruption, and #. label of item of last played.

- Error message
Information message about the issue for the failure or abort.

- Referred variables
The variables referred in the sequence with their values at finish playing.

 

FRep VariablesVariables

Retrieve and/or calculate values in playing sequence to store them to variables.  The variables can be used in specific control settings or IF branch (see next section).  The stored values are common in all sequences, i.e. all variables can be referred / overwritten by other sequences.

Registered statements in the list will perform from above.

Remove / prepend statements from left – / right + buttons, edit by tapping the statement.  Long-tap the statement will start dragging to reorder in the list.

Format of statements;

(Destination Variable)=(Code):(Arg1)(Operator)(Arg2)

Variable name: [A-Za-z_@][0-9A-Za-z_]+

Definable variable name consists of alphanumerical characters and under bar(_).  First letter cannot be a number.  The reserved variables as environmental variables start with @, and they are used only for arguments and some settings.

frep0, frep1, frep2, frep3, frep4 are passed to Tasker as temporal variables %frep0, %frep1, %frep2, %frep3, %frep4 by Tasker Event Plugin (%frepsuccess will be 1 for success or 0 for fail to play).

Value Type [(Empty), Number, Rectangle, String]

There are 4 value types including empty value.  The type of variables are determined by the value they have.

Type Description Example
(Empty) The state of no value defined.
*Shown as null in Log.
var=num:
var=rect:
var=str:
Number Integer or decimal, including negative value. var=num:0
var=num:0.012
var=num:-0.5
Rectangle Rectangle defined by: (left top right bottom)
Each component must be integer or variable.
var=rect:(10 20 30 40)
String String defined by: “character sequence”
Escaped characters; (line feed)\n (tab)\t (\backslash)\\ (“quote)\”
var=str:”line1\nline2″

@reserved environmental variables

System variables for referring the state of device or playing sequence.

変数名 説明
@repeat Number Current repeat number (0 for first time)
@loop Number Last loop count number (0 for first time)
@lastif Number Last IF result (success/true:1, fail/false:0)
@rotation Number Current orientation of the device
(0: 0°, 1:90°, 2:180°, 3:270°)
@cpuusage Number Current CPU load (0~100)
@start Number Starting time (ms)
@now Number Current time (ms)
@lastmatch Rectangle Latest successful Image Match position
@screen Rectangle Screen size of the device (fixed for orientation 0°)
@clipboard String Contents of the clipboard text

Special modification for variables; var.left, var.x, var.length

For some types of variables, the derived values can be referred by special postfix modification.

Modification Description Example
(Rect).left
(Rect).top
(Rect).right
(Rect).bottom
Refer each component of the rectangle l=num:r.left
(Rect).x
(Rect).y
Refer the center x or y of the rectangle
x=(left+right)/2
y=(top+bottom)/2
centerx=num:r.x
(Rect).width
(Rect).height
Refer the width or height of the rectangle
width=right-left
height=bottom-top
w=num:r.width
(String).length Refer the length of the string len=num:s.length
(String).asnum
(String)
.asrect
Refer the number converted from numeric string
Refer the rectangle converted from “(left top right bottom)” type string
n=num:s.asnum
r=rect:s.asrect
(Num).asstr
(Rect)
.asstr
Refer the number / rectangle as string s=str:n.asstr
s=str:r.asstr
(Num).asdate
(Num)
.astime
Refer the time (ms) number as date string with format “yyyy/MM/dd kk:mm:ss”
Refer the time (ms) number as time difference string with format “hour:min:sec.ms”
s=str:@now.asdate
t=num:@now-@start
s
=str:t.astime

 

Code references

num: Set / Calculate Number

Operator Arg1 Arg2 Description Example
(None) Variable, Number, (Empty) (None) Set number value var=num:0
+ – * Variable, Number Variable, Number Add Subtract Multiply var=num:var + 1
/ Variable, Number Variable, Number Divide
(If Arg2 is 0, returns Arg1 without change)
var=num:var / 3
% Variable, Number Variable, Number Residue
(If Arg2 is 0, returns 0)
var=num:var % 3
& | ^ Variable, Number Variable, Number Bit operation AND OR XOR
(Args are forced to be integer)
var=num:var & 7
~ Variable, Number Variable, Number Bit operation ANDNOT
(Args are forced to be integer)
var=num:var ~ 128

 

rect: Set / Calculate Rectangle

Operator Arg1 Arg2 Description Example
(None) Variable, Rectangle, (Empty) (Empty) Set rectangle value var=rect:(0 0 100 200)
+ – * Variable, Rectangle Variable, Number, Rectangle Add Subtract Multiply
*If Arg2 is rectangle, each component will be used for calculation.  If Arg2 is number, it is applied for all components.
var=rect:var + (10 20 10 20)
*Move the var rectangle by (10,20)
/ Variable, Rectangle Variable, Number, Rectangle Divide
*If Arg2 is rectangle, each component will be used for calculation.  If Arg2 is number, it is applied for all components.  When the component is divided by 0, it will not change.
var=rect:var / (2 2 0 0)
*Halve the (left,  top) coordinates
& Variable, Rectangle Variable, Rectangle Intersect
Retrieve common area in both rectangles.
var=rect:var & @screen
*Clip by screen size
| Variable, Rectangle Variable, Rectangle Union
Retrieve the minimum area which covers both rectangles.
var=rect:var | @lastmatch
*Expand rectangle to contain image matched area

str: Set / Calculate String

Operator Arg1 Arg2 Description Example
(None) Variable, Number, Rectangle,
String, (Empty)
(None) Set String value var=str:”char seq”
+ Variable, Number, Rectangle,
String
Variable, Number, Rectangle,
String
Concatenate 2 values as string var=str:var + “\n”
*Append line feed
sub Variable, String Rectangle Extract string from Arg1, as defined range of Arg2 (la ln ca cn).When ln>0, extract ln lines from offset:la.When cn>0, extract cn characters from offset:ca.*If la<0 or ca<0, each extraction starts from back position from tail. var=str:var sub (1 2 5 10)
*Extract 2 lines from var, offset:1 (#2,3 line) and then get 10 characters from 6th.var=str:var sub (a 1 0 0)
*Extract line #(a+1) from var.var=str:var sub (0 0 -5 5)
*Extract last 5 characters from var.
idx Variable, String Variable, String If Arg1 contains Arg2 string, the position of Arg2 start in Arg1 string (first is 0).
If Arg1 does not contain Arg2 string, -1.
var=str:”abcde” idx “cd”
*var is 2.var=str:”abcde” idx “f”
*var is -1.
read Variable, String (None) Read the file designated by the path of Arg1. (up to 1MB) var=str:”/sdcard/test.txt” read

 

Other Functional Codes

Code Arg1 Arg2 Description Example
toast: Variable, Number, Rectangle,
String
(None) Show the message by popup. toast:”message”
clean: (None) (None) Clear all variables except environmental ones(@~). clean:

IFFRep IF

Branch or finish the sequence by condition of variables.  If they meets the conditions, the sequence proceeds to On Success, and @lastif will be 1.  If not, the sequence proceeds to On Fail, and @lastif will be 0.

Registered statements in the list will perform from above.

Remove / prepend statements from left – / right + buttons, edit by tapping the statement.  Long-tap the statement will start dragging to reorder in the list.

Format of statements;

and/or(not):(Arg1) (Operator) (Arg2)

 

Combined condition by and: or: (andnot: ornot:)

Multiple conditions can be combined with and: / or: cases.  With and:, previous condition must be met to succeed.  With or:, new condition check starts even if the above conditions fail.  The first condition ignores and: / or: cases because they make sense only with previous condition(s). Neither of and: or: cannot be nested.  If there are multiple conditions divided by or:, each section is colored in the list.

andnot: ornot: are variant of and: or:, they use the reversed result of each condition check.

 

Operators for condition

Operator Arg1,2 Description Example
==
!=
Variable, Number, Rectangle,
String, (Empty)
Check if the contents of Args are equal or not equal. and:var == “char seq”and:@loop == 0
*Check if first loop or not
> >=
< <=
Variable, Number Compare the number of Args. and:var > 0
& Variable, Number, Rectangle If Args are numbers, success on the result of BITAND operation is not zero.If Args are rectangle, success on any intersect area exists. and:var & 5and:r & @lastmatch
*Check if the result of Image Match hits on r or not
]= Variable, Rectangle, String If Args are rectangle, success when Arg1 equals or includes whole Arg2 area.If Args are string, success when Arg1 contains Arg2 string. and:r ]= @lastmatch
*Check if the result of Image Match is in r or notand:var ]= “ok”
*Check if var has string “ok” or not

TIPS

- To confirm the contents of the variables on successful replay, set Log Only Last Error option to OFF and then play the sequence.

- To set the clipboard text as variable, add Clipboard control and assign the variable from ▼ button in its settings.

page 1 of 1

Japanese
EnglishFrenchRussian
eBay

(USB host adapter to connect between 2 Androids, for FRep setup tool for Android)



(Bluetooth keyboard for KeyTrigger)



Adsense