Configuration file format: AT mode

Configuration file examples

You may find some predefined configuration files in cfg-data/AT-mode directory. After investigation of these configuration files You became more familiar with its format.

Format

Comments

Line starting with a % considered as a comment line.

Long command can be splitted into the several lines. You have to put backslash (\) as the last character to continue a command to the next line.


Parameters section

AutoConnect=false

Auto-connect to phone on startup, default value is false. Used when anyRemote is in AT-mode.

AutoRepeat=false

Auto repeat feature (as on PC keyboard - about 10 events per second). Usefull for mouse emulation, for example. Default value is false.

Baudrate=19200

Baudrate to use; default value is 19200

CharSet=8859-1

Charset to use; default value is 8859-1. Used when anyRemote is in AT-mode.

Device=/dev/rfcommX

Connect string. Default value is bluetooth:19 (which is used in Server mode, so You have to set this parameter up if plans to use anyRemote in AT mode)

Log=true|false|debug

Print or not to print logging info to the file $HOME/.anyRemote/anyremote.log, default value is false. Use Log=debug for verbose logging.

By default all logging informationin will be stored in $HOME/.anyRemote/anyremote.log file. This could be altered by setting AR_TMPDIR environment variable. If AR_TMPDIR environment variable is set then logging information will be printed to ${AR_TMPDIR}/anyremote.log.${USER}

RetrySecs=60

Duration in seconds beetween attempts to reconnect to the phone in case if connection fails. Default value is 60. Works in conjunction with AutoConnect parameter. Used when anyRemote is in AT-mode.

Screen=true

Send or don't send any commands (SendCKPD(), etc.) to the phone. Default value is false.

CmerOn=AT+CMER=3,1,0,0,0

AT+CMER command which enters phone in "echo" mode. In "echo" mode phone will send key codes of buttons pressed over bluetooth; no default value. If this parameter is not specified program will try to determine it automatically. Used when anyRemote is in AT-mode.

CmerOff=AT+CMER=0,0,0,0,0

AT+CMER command which exits phone from "echo" mode; no default value. If this parameter is not s pecified program will try to determine it automatically. Used when anyRemote is in AT-mode.

ToMainMenu=E

CKPD sequence which used to reach main screen of the phone from any of phone's menus. On Motorola-V500 to press "Red Cancel" button is enough to get out from any menu. Default value is empty string. This parameter is a kind of shortcut which allows not to specify SendCKPD(E) command (see below) for each Key_Code. Used when anyRemote is in AT-mode.

GuiAppName="application name"

GuiAppBinary="name of executable"

GuiAppRun="command do determine is application running or not; must returns OK or NOK"

GuiAppIcon="icon name"

GuiAppType=Application|Custom|Example

These parameters is used by GUI frontends only.


[Aliases] section

Format:

Key_Code=New_alias

Different phones uses the different keycodes, for example: Button 1 on Motorola generates keycode 1 but the same button on Sagem generates keycode 49. So, if You plans to use this tools with different phones, it could be useful to redefine:

and then use "One" in [Keys] section instead of "1" or "49":

[Keys] section

A short example:

Format:

Key_Codes=Command1;Command2;Command3;....

Where CommandX could be:

Exec() command

It is possible to define multi-key commands

It is not good idea to define:

simultaneously, since only one command will works (which one - depends on search order).

It is possible to group keymappings in so-called "mode" to set more than one command to the key:

It is possible to write quite complex commands inside Exec(), for example:

Macro() command

This command used to create new keymapping:

Macro() command can contain condition:

Conditional Macro() will be execute only if a result of execution of command is equal to string "0".

Note: In shells result code of command execution stored in $? environment variable.

Timer()

Format: Timer(key, timeout, maxTimes) or

Timer(key, cancel|pause|continue)

This command sets/removes a timer for the key specified. A command sequence, associated with this key will be executed periodically.

For example, the following commands run 'ls -1' command 2 times with timeout equal to 5 sec:

The following command run 'date' command every 10 sec:

It is impossible to have two active timer commands with the same key.

To delete existing timer use the following command:

Load() command

This command used to load commands from file and execute them:

Include() command

This command used to include definitions from external configuration file:

Only [Keys], [Aliases] and [Alarms] sections will be loaded (Parameters section will not be loaded). Definitions from included file will not rewrite existing definitions if any.

Make()

Format: Make(flush|disconnect|mode|remote|var[,....])

This command used control local state of anyRemote.

See detailed description here.

SendCKPD() command

This command sends CKPD sequence back to phone and could be useful if You can't lock the keyboard and needs to clean-up phone screen after each key pressing on phone keypad. It is possible to use word PAUSE to make a 1-second pause before next CKPD command will be sent. This command works when anyRemote is in AT-mode.

Exit

Exit command used to exit from application.

SetMode()

Change current keymapping group (do not mix this with AT/Server mode !).

Alse see description of (EnterMode) and (ExitMode) event handlers below.

There are several "events" could be triggered:

(Init) event will be fired when anyRemote is initialized:

(Exit) event will be fired when anyRemote is exiting:

(Connect) event will be fired when connection established:

(Disconnect) event will be fired when connection is lost:

Auto-lock example:

Incoming call handling.

End of call handling.

Auto-mute example (amixer utility should be installed):

If mode is changed by SetMode() then (ExitMode) event for current keymapping group and (EnterMode) event for the new keymapping group will be fired:

Variable substitution:

In Exec(), Make(var,...), Load(), Include() commands is it possible to use several predefined internal "variables".

Caller ID will be substituted (if determined) instead of $(CallId):

Current mode be substituted instead of $(Mode):

Directory in which resides used cfg.file will be substituted instead of $(CfgDir):

In addition to the predifined internal variables it is possible to define custom internal variables with Make(var,....) syntax.

[Alarms] section

Format:

Alarm_file=command1;command2;...

When file Alarm_file will be created, then command1, command2 ... will be executed.

In principle, (since this just keyboard emulation stuff) smart guys ;-) could even make a call with this feature.

For example, the following command will dial number 1111111, waits 6 seconds, then finish the call and type "* 3 *" on screen of phone (valid for Motorola-V500).

About · Download · Documentation · FrontEnds · Contacts ·