1.0 TUI Design Elements {#SDD_001}

The daemontui script provides a convenient way to run any of the existing daemon scripts with default (but adjustable) values. The TUI interface can support both keyboard and mouse input (as long as the underlying console also supports mouse input) for both option selection and navigation. The Debug option will increase verbosity both in the daemon log output and the TUI parameters (on exit).

Network functional elements

  • server listens (IPv4 address and port, pyserv)

  • server status checks daemon PID

  • UI sets server params (defaults plus user overrides)

UI elements

  • edit and validate settings

  • control server state

  • view recent log output

SW diagrams

Rendered versions of current mermaid_ diagrams are shown here, starting with the following activity sequence diagram for the TUI context loops.

activity sequence diagram

Activity Sequence Diagram.

tui_sequence_diagram source User activity sequence diagram showing 2 primary Screen contexts.
        sequenceDiagram
    participant Select
    participant InitState
    participant Operate
    Select->>Select: confirm settings
    Select->>InitState: Next: setup state variables
    InitState->>Operate: initialize log display
    Operate->>Operate: run server
    Operate->>Operate: view logs
    Operate->>InitState: Back: init defaults
    InitState->>Select: Update selections
    

SW dependencies

primary software dependencies

Primary Software Dependencies.

tui_dependency_graph source daemontui dependency graph showing primary software units.
        graph TB
  subgraph id1[Static Dependencies]
    subgraph id2[Packages]
      A(daemontui)
      B(picotui)
      C(pygtail)
      D(pyserv)
    end
    A --> B & C & D
  end
    

1.1 SDD_002 {#SDD_002}

daemontui settings

The daemontui software must know the appropriate default settings, as well as both allow changes at runtime, and match the pre-configured values used by the daemon scripts.

Individual settings values are mostly specific to a server implementation, eg, log file names and socket timeouts.

The software should provide appropriate data structures to handle both groups of settings and dynamic data such as network device names and file system paths, starting with user-confirmed runtime settings for server and logging options.

scripts/daemontui.py (line 122)

Parent links: TUI_002, TUI_003

1.2 SDD_003 {#SDD_003}

daemontui indicators

The daemontui software must display network and server status to the operator using both visual indicators and log entries.

scripts/daemontui.py (line 212) scripts/daemontui.py (line 217)

Parent links: TUI_001, TUI_005

1.3 SDD_004 {#SDD_004}

daemontui controls

The daemontui software must provide obvious operator controls that correspond to the primary daemon commands: [start, stop, status]

scripts/daemontui.py (line 235) scripts/daemontui.py (line 238) scripts/daemontui.py (line 241)

Parent links: TUI_004