Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
If you don't want to use any specific AAC software, you can get going with our demonstration software "RelayKeys-QT" (aka RelayKeys or RelayKeys Desktop). You will find this on your desktop as well as your start programmes if you have installed our software. It has 4 main buttons on the left:
This screen enables you to capture the keystrokes and mouse movements and any captured input gets sent directly to the currently connected device. To connect a device - see "Devices" screen.
This screen enables you to create a macro file. This records your mouse or keystrokes and enables you to play it back. This is useful for creating long sequences of commands or say for writing a common piece of text such as a signature. You can play it back in this software or use the macro with the CLI tool.
This screen enables you to switch between paired devices and change the current mode. This means the RelayKeys hardware can run either as a wired dongle or a wireless device. Use the switch mode to change these modes.
This screen enables you to add and remove paired devices - as well as removing all devices from the relaykeys hardware.
Right now we are focused on Windows AAC Software. For iOS or Android, a developer needs to support relaykeys for it to work.
Most AAC software has a way of connecting to an external application. Some call this "Run Programme or something similar. As long as RelayKeys is installed and the correct hardware is connected you can then call the installed command line application - with the correct syntax.
Take a look at the guides for your software.
The key application you want to access is the relaykeys-cli-win.exe
found in C:\Program Files (x86)\Ace Centre\RelayKeys
\
For a full list of commands you can send see here.
If you pass the --notify flag to the cli application you will get notifications about the devices you are connected to and the status of the device. See here for more information
There is no documented way for third parties integrating their software into commercial AAC software for example integrated notifications. So we have to make use of the operating system notification system. The difficulty on Windows is that by default full screen apps do not see notifications. So to make this work we recommend three alterations to your notifications.
Turn Focus Assist off.
Turn off the setting "When I'm using an app in full screen mode"
And next - because AAC users wont typically be able to dismiss notifications change the time that they appear for. To do this follow the steps here.
Communicator 5 is a AAC software for Tobii Dynavox communication aids . Follow the steps below to add commands to your pageset
Pageset quick start. Want a headstart? Download the Pageset here. It has all the commands you should need. Just import, add the pageset to your Home Page and adapt
This is the best way to enter longer texts and allows you to use the communication aid's prediction and phrase banks etc. Use the "Copy" command followed the Run Program command to run relaykeys-cli-win.exe with the paste argument
This is useful for making a keyboard-like page with individual letters and other keys that send one keystroke at a time. Use the Run Program command to run relaykeys-cli-win.exe with the keypress:LETTER argument (where letter is the key you want to send)
For special commands and shortcuts such as control-C, alt-F4 etc use the Run Program command to run relaykeys-cli-win.exe with the keypress:KEYNAME,MODIFIER argument (where keyname is the key you want to send)
Use the Run Program command to run relaykeys-cli-win.exe with the mousemove:X,Y argument (where X,Y is the distance you want to move the mouse), or the mousebutton:BUTTON,ACTION argument (where BUTTON is the button to use, and ACTION is click or doubleclick etc.)
Use the Run Program command to run relaykeys-cli-win.exe with the ble-cmd:reconnect, ble-cmd:switch, or ble-cmd:devname --notify commands
The Grid 3 is a commonly used piece of software for AAC. Follow the steps below to add commands to your gridset
Gridset quick start Want a headstart? Download a Gridset here. It has all the commands you should need. (You'll need to download the raw file) Just copy/paste and adapt
Use the relaykeys-cli-win.exe with the keypress:LETTER argument (where letter is the key you want to send)
Use the "Copy" command followed by the relaykeys-cli-win.exe paste argument
Before you think about using RelayKeys for MindExpress have you tried using ? Its built into MindExpress. It works well - but does rely on a network/TCP connection to the secondary devices - which also need to run the software.
So if you want to communicate directly with the serial device - instead of via the server you can. So to do this, you would need to write your software to open the serial connection and use the correct commands to talk to the hardware.
Baud rate should be 115200
Hardware flow control CTS/RTS on
nrfVID = '239A'
nrfPID = '8029'
Then you send and receive commands over Serial. The following is a list of the commands and what you should expect to receive back
The good thing about RelayKeys is that we dont try and send actual characters - we send actual keys. This is good - as it means we dont deal with the multilingual problems and different keyboard maps. However - it does mean the the command to send and press a keyboard key can look a little daunting. Here is what it looks like.
AT+BLEKEYBOARDCODE=02-00-00-00-00-00-00-00
This is pretty standard stuff when it comes to a keyboard HID code. E.g. to see what its all about. In short though:
The letter "a" is usage code 0x04 for example. If you want an uppercase "A", then you would also need to set the Byte 0 modifier bits to select "Left Shift" (or "Right Shift").
AT+BLEHIDMOUSEMOVE=X,Y,WY,WX
X = Right Pixels
Y = Down pixels
WY = Scroll Down
WX = Scroll Right
MouseMoveX = Pixels RIGHT and MouseMoveY = Pixels DOWN. So to go RIGHT/UP = use negative numbers.
e.g. This moves it Right by 10 and Down by 10
AT+BLEHIDMOUSEMOVE=10,10,0,0
AT+BLEHIDMOUSEBUTTON=Button[,Action]
Button is one of
l = Left
r= Right
m=Middle
b=Mouse backward
f=Mouse forward
NB: Mouse backward and forward are not available functions on all Operating Systems
Action is
Click
Doubleclick
O (which acts as press/release toggle)
e.g.
Single click:
Double click:
Adds a new device to the cached list of devices. After giving this AT command the user should connect with the board via BLE. If connection is successful then the device's name will be added into the list and the board will connect with the device.
Note: A user can only add a new device if the cached list is not full. If the list is full then the board will return with an Error
. If no new device connects with the board till the timeout (set to 30 seconds), a Timeout Error
will be returned.
This AT command will remove said device's name from the cached list. Device's name should be written between double quotes. You have to be exact with this! If device_name
is not found in the list, then the board will return with an Error
.
If device_name
is currently connected to a BLE device, then the board will disconnect from this device and then remove device's name from the list.
This AT command will return the currently connected BLE device's name. If the board is not connected with any BLE device then it will return NONE
.
This AT command will switch the BLE connection to the next device in the cached list. The board will try to connect with the next listed device till the timeout, then Timeout Error
will be returned and the board will try to connect with the next device listed in the cache.. and so on..
This AT command will return a list of device names.
This AT command will change the maximum number of BLE devices possible in the cached list. The number should be greater than 0 and less then 15
Gets the current mode - either wired or wireless.
Switches the current mode from wired to wireless. Or Wireless to wired.
Before you look at using RelayKeys with Snap have you considered ? Its available for TD software and is good! There are some snags - its not multi device compatible and does require the dongle being plugged in.
You need to edit your snap pageset - and create a "General" button - then you can add an action to a button. The action
We have created a command line interface which allows you to send mouse and keyboard commands to your RelayKeys hardware.
To run it access
relaykeys-cli.exe command:data
or if running it in pure python
python relaykeys-cli.py command:data
and the non-verbose, non-windowed version
python relaykeys-cli-win.py command:data
Where 'command' and 'data' are provided below.
Remember to change your application accordingly We regularly use the term for command line application 'relaykeys-cli' in this documentation. Often though you will want to use the 'relaykeys-cli-win.exe' application that will run a little quicker and has no printed output. Use this for your default call to relaykeys from other applications. If you want to see any errors use 'relaykeys-cli.exe'
If you are developing with the code You must make sure the server is running when you call the cli files. The is the code that turns these commands into the correct AT syntax and access the com port
Keymap files are located in folder. You can choose which keymap file the CLI is going to use in the cfg by assigning file name to keymap_file variable (see )
By default the us_keymap.json is loaded. To run relaykeys-cli with other keymap either change the cfg setting on the cli application. E.g.
relaykeys-cli.exe -c .\relaykeys-example.cfg type:@
See more info on the format
This takes the pasteboard of the computer (i.e. when you copy some text) and pastes the resulting string to RelayKeys
i.e.
relaykeys-cli.exe paste
Types the string following the :. Note you will need to escape spaces etc
relaykeys-cli.exe type:Hello\ World
You can send special characters, ones that are usually shifted, by sending the key and the shift modifier (see keyevent below). But for the type and paste commands we have some other characters that are hardcoded and it will do the conversion on the fly.
So for example, to send the @ symbol:
relaykeys-cli.exe type:@
All codes which are converted can be seen below. NB: \t = Tab \r\n are line breaks~
Sends the KEY and any modifier, For example:
relaykeys-cli.exe keypress:A
Will emulate pressing and releasing the letter A
. What about a shift?
relaykeys-cli.exe keypress:A,LSHIFT
Will emulate pressing the A with Left Shift. i.e. Upper casing the A.
relaykeys-cliexe keypress:RIGHTARROW,LSHIFT,LCTRL
Will press the right arrow, left shit and left control (would select the next word in programs like word)
Left Control/CTRL: LCTRL
Left Shift : LSHIFT
Left Alt/Alt: LALT
(Left) Meta/Windows Key/Mac Key/Command Key: LMETA
Note: On Windows there is generally only one Windows key. So use LMETA to emulate pressing the Windows key
Right Control/CTRL:: LCTRL
Right Shift : RSHIFT
(Right) Meta/Windows Key/Mac Key/Command Key: RMETA
If you are wanting to send two keys with a modifier - send the key - then modifier. E.g. keypress:C,LCTRL
- not the other way round!
Volume Up: VOLUP
Volume Down: VOLDOWN
Mute: MUTE
So all the other keys are defined below. We will try and explain what these are when its ambiguous