# Input Options

This chapter is about how grid elements can be selected with different input modalities.

Back to Overview

Clicking on Button “Input Options” in Main view opens a menu with the following entries:

  • Mouse/Touch input: options for input types like normal mouse click, tap or hovering
  • Scanning: Input method for 1-2 input events, subsequently select groups of elements until one element is chosen
  • Direction input: Input method for 2-5 input events, 1-4 input events for navigating in different directions, 1 input event for selecting an element
  • Huffman input: 2-9 input events, assigns a code to each grid element which consists of an ordered sequence of the available input events
  • Sequential input: 2 input events, one for navigating to the next element one for selecting the current element

# Introduction to input events

An input event in general is any kind of defined, single user interaction. AsTeRICS Grid currently supports the following input event types:

  • Keypress: event of pressing a key on the keyboard, also can be a external button press using additional external hardware
  • AsTeRICS ARE event: any event that is generated by a running model within the AsTeRICS Framework. This type of event is very flexible and can be e.g. eye movement, head movement or a signal of an EMG muscle activity sensor.

These types of input events can be used in all input methods except Mouse/Touch input where the input events are mouse movements and click/tap events.

# Keypress input events

Figure 1 shows the configuration possibilities of an keypress event:

input event keypress options Fig. 1: Configuration of a keypress input event

These are the shown elements and options:

  1. Dropdown: allows to choose between Keypress or AsTeRICS ARE event
  2. Record key: click in order to start keyboard record mode. A subsequent keypress on the keyboard will be recorded and that key used for the event.
  3. Current key: prints the currently recorded/used key. Digit1 means the 1 digit key on the keyboard.
  4. More: a accordion of additional options that can be opened/closed by a click
  5. Timeout: minimum pause in milliseconds between two subsequent actions (if faster, the second action is ignored). Mandatory if different Repetitions are set for the same key in order to wait for possible upcoming repetitions before performing the action.
  6. Repetitions: the number of times the key has to be pressed in order to perform the action
  7. Hold duration: time in milliseconds how long a key has to be pressed in order to perform the action

Note that it’s not possible to set both Repetitions greater 1 and Hold duration greater 0 at the same time.

# Usage examples

Here are some examples for the properties Timeout, Repetitions and Hold duration that could be useful in real use cases:

  • Different actions with same key (e.g. Space), distinction by hold duration:
    • Action 1: Timeout=0, Repetitions=1, Hold Duration=0
    • Action 2: Timeout=0, Repetitions=1, Hold Duration=400
    • Pressing the key once performs action 1, Pressing and holding the key for 400ms performs action 2
    • This is the default configuration for input method Scanning where this configuration can be tested
  • Different actions with same key (e.g. Space), distinction by repetition:
    • Action 1: Timeout=0, Repetitions=1, Hold Duration=0
    • Action 2: Timeout=300, Repetitions=2, Hold Duration=0
    • Pressing the key once and waiting 300ms performs action 1, pressing the key twice (with less than 300ms pause) performs action 2
  • Filter unintended keypresses
    • all actions: Timeout=0, Repetitions=1, Hold Duration=300
    • any unintended keypresses are ignored and actions are only performed if a key is pressed longer than 300ms

# AsTeRICS ARE input events

AsTeRICS ARE input events are triggered by external events of a running model within the AsTeRICS Framework.

input event asterics are options Fig. 2: Configuration of an AsTeRICS ARE input event

Figure 2 shows the configuration of an AsTeRICS ARE input event:

  1. Dropdown: allows to choose between Keypress or AsTeRICS ARE event
  2. Record ARE event: start recording of AsTeRICS ARE events. Subsequently trigger the desired event in ARE in order to be recorded.
  3. ARE URL: the URL of the running AsTeRICS instance. If AsTeRICS ARE is running on the same computer this field can be empty.
  4. List of events: list of recorded ARE events. Any of these events triggers the currently configured action.
  5. Recycle bin symbols: a click on the recycle bin symbol next to a recorded event deletes it

# Example of using an AsTeRICS ARE event

Follow these steps in order to set up an AsTeRICS Grid input method while using AsTeRICS ARE event for input:

  1. Open the settings modal for the desired input method in AsTeRICS Grid
  2. Start AsTeRICS ARE
  3. Select AsTeRICS ARE event for the desired input action in AsTeRICS Grid
  4. Click on “Record ARE event” to start recording
  5. Do any action in AsTeRICS ARE that tiggers an event, e.g. clicking on a button
  6. The recorded event should be shown in AsTeRICS Grid
  7. Save and close the input options in AsTeRICS Grid by clicking “OK”
  8. Redo the same action in AsTeRICS ARE as before - it should trigger the configured input action in AsTeRICS Grid

# Input options modals

Each input option dialog opened by “Main view - Input options” has about the same structure, see Figure 3:

general structure of an input option dialog Fig. 3: General structure of an input option dialog

These are the basic elements of and input option dialog:

  1. Enable checkbox: Generally enable or disable this input method. The subsequent sections are only visible if the input method is enabled.
  2. Input section: configure input actions like described in section Introduction to input events
  3. Advanced settings: configure advanced settings for this input method
  4. Test configuration: opens a 10x10 test grid where the current input configuration can be tested
  5. Cancel: close the dialog discarding changes
  6. OK: close the dialog saving and applying changes

# Mouse/Touch input

Mouse/Touch input has the following options:

  • Select with mouse click (or tap): if checked elements can be selected by a simple mouse click or tap on a touchscreen
  • Enable hovering: enables hovering where elements are selected by moving the mouse on the element (=hovering) and waiting for some time. Hovering also works on touchscreens where the finger is held on an element for some time.
  • Hover time: time in milliseconds to wait until a hovered element is selected. The value 0 means that the hovered element is never selected.
  • Hide cursor: if checked the cursor is hidden and not visible while hovering above elements. This can be useful e.g. for eye-tracking where the cursor may be distracting.
  • Read out active element: if checked the label of the hovered element is directly read out if the active element has changed

# Scanning

The input method scanning is suited to be used with 1-2 input events. It works as follows:

  1. Available elements are divided into groups
  2. One group is highlighted
  3. Group containing the desired element is selected
  4. Remaining elements are again divided into groups
  5. Steps 3 and 4 are repeated until the single desired element is selected

# Input events

These are the possible input events for scanning:

  • Select element: selects the current group or element
  • Next scanning group: moves focus to the next group or element. This input event is optional and can be omitted if timed scanning is activated (see Advanced settings).

# Advanced settings

  • Vertical scanning: determines the orientation element groups are build:
    • vertical (checked): groups are built vertical, moving left to right
      vertical scanning
    • horizontal (unchecked): groups are built horizontal, moving top to bottom
      horizontal scanning
  • Binary scanning: defines if scanning groups are rows/columns or one half of existing elements:
    • binary (checked): groups are built by separating remaining elements in two halves each scanning step
      binary scanning
    • non-binary (unchecked): groups are built row/column by row/column
      non-binary scanning
  • Scanning selection by mouse click or tap: if checked the current scanning group can also be selected by a mouse click or tap anywhere on the screen
  • Automatic (timed) scanning: if checked the active scanning group is automatically changed after a specific time, making it possible to use scanning just with a single input event
  • Scanning time: time to wait before highlighting the next scanning group (in milliseconds)
  • Time factor first element: the time to keep the first scanning group (e.g. first row/column) highlighted is “Scanning Time” multiplied with this factor. Increasing the time for the first group often improves usability.

# Direction input

The input method direction input is suited to be used with 2-5 input events. It gives the possibility to simply navigate through elements in up to 4 directions.

# Input events

These are the possible input events for direction input:

  • Select element: selects the currently highlighted element
  • Go right: navigate to the right
  • Go left: navigate to the left
  • Go down: navigate down
  • Go up: navigate up

# Advanced settings

These are the Advanced settings for direction input:

  • Wrap around: if checked navigation continues at the opposite border, so e.g. moving left on the most left element sets the focus to the most right element
  • Go to start position after select: if checked the focused element is set to the first element after an element was selected respective

# Huffman input

The input method huffman input is suited to be used with 2-9 input events. It assigns a unique code of input event sequences to each element. Triggering the respective input event sequence directly selects an element.

This is an example for 2 input events and 4 elements:

  • Element A has code 11
  • Element B has code 12
  • Element C has code 21
  • Element D has code 22

Triggering input event 1 and then input event 2 would directly select Element B.

Huffman input uses the theory of n-ary huffman codes.

# Input events

These are the possible input events for huffman input:

  • Input [1-9]: defines the input events of numbers 1-9 that are used to enter the codes for selecting the elements. At least two input events have to be defined.

# Advanced settings

These are the Advanced settings for huffman input:

  • Show numbers: if checked the assigned codes are shown at the bottom of each element
  • Show colors: if checked a color code is shown at the bottom of each element
  • Mark inactive elements: if checked all impossible elements are grayed out, so that e.g. starting input of the code with 1 grays out all elements with codes that aren’t starting with 1.
  • Timeout: time of inactivity (in milliseconds) for resetting the current, incomplete input. So if the first digit of the code 1 was typed accidentally the user has to wait this time in order to be able to restart with another code. Simultaneously this is the time the user has to input the next digit of the code. If set to 0 the timeout is disabled.
  • Number of elements: by default (if this property is set to 0) the codes are automatically generated based on the number of elements in the current grid. This means that in one grid the n-th element could have a different code than in an other grid. To prevent this the number of elements property can be set to the maximum number of elements that are existing in any grid. Therefore in every grid the n-th element will have the same code.

# Sequential input

The sequential input method can be used with 2 input events. It just sequentially focuses all elements and afterwards restarts at the first element.

# Input events

These are the possible input events for sequential input:

  • Next element: moves the focus to the next element. If focus is currently on the last element, the first element will be focused.
  • Select element: selects the element that is currently focused

# Advanced settings

These are the Advanced settings for sequential input:

  • Read out active element: if checked the label of the currently focused element is read out on each change of focus

← Previous Chapter Next Chapter →

Back to Overview

Last Updated: 11/15/2019, 5:08:56 AM