Chapter 4. External Interface Requirements

Table of Contents

User Interfaces
Hardware Interfaces
External Software Interfaces
External Communication Interfaces
Runner Listening Agent Interface

Iface.UI.IconTheme.  The system shall use the Papirus icon set for any icons displayed in the user interface. Priority: Medium.

Iface.UI.TabStops.  The system shall ensure that each interactive control be assigned a tab stop in order from top left to top right to bottom left to bottom right.

Iface.UI.Accelerators.  The system shall ensure that interactive controls may be selected for input via a keyboard accelerator. The keyboard accelerator shall be in the form of Alt+[key], and the key shall be discoverable by underlining the letter corresponding to the key in the label for the interactive control.

Iface.UI.ButtonAccel.  The system shall ensure that all displayed buttons have a corresponding function key as a keyboard accelerator. The function key shall be displayed as a parenthetical note next to the label of the button. For example: "Next (F6)", "Cancel (F3)".

Iface.UI.ScreenRes.  The system shall be usable with a minimum screen resolution of 800x600 pixels.

Iface.UI.Scaling.  The system shall ensure that controls and fonts are scaled based on the DPI of the screen.

Iface.UI.StandardButtons.  Horizon UI shall have a "Back (F5)", "Next (F8)", "Cancel (F3)", and "Help (F1)" on all pages except the first page (where the Back button shall not be displayed) and the last page (where the Back and Cancel buttons shall not be displayed).

Iface.UI.ScreenReader.  The system shall be usable with the built-in Qt screen reader. Priority: Low.

Iface.UI.Colours.  The system shall not rely on colour alone to differentiate options, controls, or other elements. The system shall additionally be tested in a greyscale mode.

Iface.UI.NeutralColours.  The system shall use neutral colours for the window title bar, window border, and background.

No direct hardware interfaces have been identified for this release of Project Horizon; all interfacing with hardware is done via other libraries as defined below in the section called “External Software Interfaces”.

Iface.Software.WPA.  The system shall use the wpactrl library from bcnm for manipulating wireless network connections.

Iface.Software.blkid.  The system shall use the blkid library from util-linux for determining current disk layout.

Iface.Software.Parted.  The system shall use the libparted library from parted for manipulating disk partitions.

Iface.Software.dhcpcd.  The system shall use dhcpcd for automatically obtaining network configuration over the DHCP protocol.

Iface.Software.Eudev.  The system shall use the libudev library from eudev for enumerating devices present on the system, including but not limited to: disk drives, network interfaces, graphics adaptors.

Iface.Software.Timezones.  The system shall use tzdata for time zone information and selection, and shall write the selected time zone to /etc/localtime in the installation environment.

Iface.Comm.Serial.  Horizon Runner shall support writing progress and log messages to a serial interface if requested by the user.

Iface.Comm.UI.UploadLog.  Horizon UI shall support uploading of log files to an external service in the event of an installation failure.

Iface.Comm.UI.Network.Wireless.SecTypes.  The system shall support the following security types for wireless networking access points:

  1. No Security

  2. WEP Passphrase

  3. WPA with Preshared Key (PSK)

The Horizon Runner Listening Agent Interface is the interface used to communicate progress. The Horizon Runner will send messages to the Listening Agent using the interface defined here to note status messages, step completion, and any exceptions that occur during execution. The Listening Agent may be an external application (such as the Horizon UI), a logging system, or even a serial port or TTY monitored by the user. For this reason, automated parsing is a higher priority than sapient parsing, but sapient parsing still must be considered.

Agent.MessageFormat.  Messages sent by the Agent shall be in the following format:

  1. A timestamp, in ISO 8601 format, with millisecond resolution;

  2. A tab character (\t);

  3. Message class: log, prompt, stepstart, stepend

  4. A tab character (\t);

  5. The message;

  6. A newline character (\n).

Agent.Prompt.  When the Agent requires external input from the User, the system shall interpret the answer as an entire line sent to the Agent via STDIN terminated with a newline.