Widgets / directory

Table

TABLE

Dynamic multi-row table fed by firmware commands and row updates.

At a glance

Default8 x 4
Minimum4 x 2
Resizeboth
Pinrequired
Interactiveno

Behavior

  • Ideal for logs, queues, alerts and device lists.
  • Rows can be clicked or highlighted depending on config.
  • The app stores row models and selection state instead of treating the widget as one scalar value.

Firmware contract

Use add/update/delete row commands from firmware or service events.

On the app side this widget snaps to the 8-column square grid and uses both resizing. Its raw type is TABLE and the matching icon token in the app is tablecells.fill.

Pin support: Typically virtual pin driven, but the row model itself is server-side state rather than one scalar value.

Transmission: Supports add/update/delete/clear/select style commands and can notify hardware when clickable rows are enabled.

Canvas preview

docs.widget.preview
3 rows
Table
last 4s
SYNC

Widget contract

PropertyValue
Raw typeTABLE
Default size8 x 4
Minimum size4 x 2
Resize modeboth
Pin requirementrequired
Pin supportTypically virtual pin driven, but the row model itself is server-side state rather than one scalar value.
Interactiveread-only / service
TransmissionSupports add/update/delete/clear/select style commands and can notify hardware when clickable rows are enabled.

Allowed pin families

Typically virtual pin driven, but the row model itself is server-side state rather than one scalar value.

Transport path

Supports add/update/delete/clear/select style commands and can notify hardware when clickable rows are enabled.

Operational limits

Server and app cap practical complexity; current FIFO behavior is tuned for roughly 100 rows in the implemented app flow

Configuration surface

  • isClickableRows decides whether row taps emit hardware feedback
  • rows and columns are stored in the server profile
  • currentRowIndex tracks selection state
  • row add/update/delete/clear/select actions come through firmware/service commands rather than normal writes
  • stable row keys or deterministic indexes matter once rows are clickable

Limits and caveats

  • Server and app cap practical complexity; current FIFO behavior is tuned for roughly 100 rows in the implemented app flow
  • Dense tables need thoughtful column sizing on smaller devices
  • Without a clear row identity contract, selection callbacks can target the wrong logical item after refresh or prune

Protocol and implementation notes

  • The table is not one scalar pin value; it is a row model updated by row-level commands such as add, update, delete, clear and select.
  • The current implemented client path is tuned for about 100 rows of FIFO-like behavior before readability drops hard.
  • Clickable rows need a stable row identity contract, otherwise selection callbacks drift after reordering or pruning.

Layout notes

Canvas footprint

8 x 4

Default footprint in the Plynx canvas before user resizing.

Resize floor

4 x 2

The minimum size accepted by the app during drag-resize.

Interaction model

Display

Whether the user edits state directly or only reads it.

Related widgets