Skip to main content

ProGlove Documentation

Screen templates

ProGlove uses a template approach to display information.

Templates are pre-defined screen layouts that support integration efforts and ensure the best possible user-experience. Use them to refine your worker’s process and reduce the number of data-points you want to present to your workers.

Terminology

Term

Description

Template

Templates are pre-defined screen layouts that support integration efforts and ensure the best possible user-experience.

Template ID

Template IDs are unique identifiers for each template layout, that need to be set during the integration process.

(Template) Layout

(Template) Layouts define the general structure of the screen. Example: 2 or 3 fields.

(Template) Field

(Template) Field is a field/cell within the Layout. One Layout can contain one or more fields.

Field ID

Each field is referenced using a unique ID. The order of Field IDs should follow the western writing direction (primary: left to right; secondary top to bottom).

Header

Each Template field may contain a Header, which can be used as a description of the displayed content. Example: “Quantity”.

Content

Each Template field contains Content (data-points). Example: “165 pcs”.

explanation.png
Template naming logic

PG

X

Y

PG = ProGlove

Identifier of the company providing the template.

X = Number of Fields

X Describes the number of fields you can set for unique content

Y = Secondary identifier

The secondary identifier allows for special separation of templates with the same amount of fields.

A = Alternate

E = Error

C = Confirm

I = Information

Limitations
  • Starting with firmware v2.0.0, we support all printable characters of the ASCII and extended ASCII range, as can be found here.

  • Character limits:

    • The text length, that you can send with each SetScreen command, is limited by the amount of transmitted bytes. It can be up to 40 characters per header and up to 80 per content. If the text contains special characters (which will take more than one byte of space in UTF-8 encoding), a lower number of characters can be transmitted.

      • Sending a bigger number of bytes/characters will result in an SDK/Intent error and no screen will be set.

    • The second limitation is display space. If the sent text exceeds the limits of the display, some text will be omitted automatically.

      • For firmware versions starting from v2.0.0 and Insight Mobile starting from v1.5 no error will be returned. Instead, Insight Mobile just logs the incident.

      • For firmware versions starting from v2.0.0 there may be issues when exceeding the displayable limit with a version of Insight Mobile prior to v1.5, as you will receive an error, even though the screen is actually set.

  • Currently, there is no way of creating custom templates.

Automatic font scaling

MARK Display automatically decreases the font size or breaks the text into several lines to fit it into the template fields.

Headers of template fields are never scaled, while content fields support auto-scaling.

MARK Display always tries to use the maximum possible font size for the template field’s content. If that does not work, a line-break is used before the font is scaled down to fit the screen.

This ensures that the largest possible font is used and the template size is utilized as much as possible. For line-breaks, it firstly tries to break on an empty space. If the text does not contain a space, it is broken after the maximum amount of characters.

Templates

Below, you can find the list of all available templates. (Field) IDs are displayed in purple boxes.

Template ID

Preview

Description

Font Size(s)

Firmware Version

PG1

PG1-item.png
PG1-text.png

Use Case: ideal for single items or short text messages

Fields: one field with content and header

Header: 26px (8-27 characters)

Content: 16 - 90px (max 80 characters)

minimum 2.0.0-prerelease-3

PG1A

PG1A-long.png
PG1A-short.png

Use Case: ideal for text messages

Fields: one field with content

Content: 16 - 90px (max 80 characters)

minimum 2.0.0-prerelease-3

PG2

PG2-new.png

Use Case: ideal for sorting use cases

Fields: two fields with content and headers

Header: 22px (10-33 characters)

Content: 16 - 60px (max 80 characters)

PG3

PG3Updated.png

Use Case: ideal for picking use cases

Fields: three fields with content and headers

Header: 22px (10-33 characters)

Content: 16 - 60px (15-50 characters)

PG1C

PG1C-new.png

Use Case: ideal for short, positive notifications

Fields: one field with content

Content: 16 - 60px (max 75 characters)

PG2C

PG2C-new.png

Use Case: ideal for positive notifications needing more detail

Fields: two fields with content

Field 1 Content: 26px (8-80 characters), centering

Field 2 Content: 16-60px (max 80 characters)

PG1E

PG1E-new.png

Use Case: ideal for short, negative notifications

Fields: one field with content

Content: 16-60px (max 75 characters)

PG2E

PG2E-new.png

Use Case: ideal for negative notifications needing more detail

Fields: two fields with content

Field 1 Content: 26px (8-80 characters), centering

Field 2 Content: 16-60px (max 80 characters)

PG1I

PG1I-new.png

Use Case: ideal for short, neutral notifications

Fields: one field with content

Content: 16-60px (max 75 characters)

PG2I*

PG2I-new.png

Use Case: ideal for neutral notifications needing more detail

Fields: two fields with content

Field 1 Content: 26px (8-80 characters), centering

Field 2 Content: 16-60px (max 80 characters)

PG2A

PG2A.png

Use Case: sorting (echoes scanned content and reverts to the original screen)

Fields: two fields with content

Field 1 content: 22 - 110px (max 80 characters)

Field 2 content: 22 - 32px (max 80 characters)

minimum v2.3.0

*The template has a character limit. If the message is up to 10 characters, the whole message displays. If the message is over 10 characters, only the first 8 characters display followed by an ellipsis.

Template examples

For Intent examples, access our GitHub repository via the link posted below:

https://github.com/workaroundgmbh/proglove_connect_samples

For API messages, see the code samples below:

Example 85. PG1
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG1",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
        "display_field_id": 1,
        "display_field_header": "Storage Unit",
        "display_field_text": "R15"
    }]
}


Example 86. PG1A
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG1A",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
        "display_field_id": 1,
        "display_field_header": "",
        "display_field_text": "Scan the next package"
    }]
}


Example 87. PG2
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG2",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
            "display_field_id": 1,
            "display_field_header": "Storage Unit",
            "display_field_text": "R15"
        },
        {
            "display_field_id": 2,
            "display_field_header": "Destination",
            "display_field_text": "A7"
        }
    ]
}


Example 88. PG3
{
  "api_version": "1.2",
  "event_type": "display!",
  "event_id": "02114da8-feae-46e3-8b00-a3f7ea8672df",
  "time_created": 1546300800000,
  "time_validity_duration": 10000,
  "device_serial": "MDMR000000064",
  "display_template_id": "PG3",
  "display_refresh_type": "DEFAULT",
  "display_fields": [
    {
      "display_field_id": 1,
      "display_field_header": "Left",
      "display_field_header_right": "Right",
      "display_field_text": "Text 1"
    },
    {
      "display_field_id": 2,
      "display_field_header": "Left",
      "display_field_header_right": "Right",
      "display_field_text": "Text 2"
    },
    {
      "display_field_id": 3,
      "display_field_header": "Left",
      "display_field_header_right": "Right",
      "display_field_text": "Text 3"
    }
  ]
}


Example 89. PG1C
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG1C",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
        "display_field_id": 1,
        "display_field_header": "",
        "display_field_text": "Order Complete"
    }]
}


Example 90. PG2C
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG2C",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
            "display_field_id": 1,
            "display_field_header": "",
            "display_field_text": "Correct Part"
        },
        {
            "display_field_id": 2,
            "display_field_header": "",
            "display_field_text": "Double click to proceed"
        }
    ]
}


Example 91. PG1E
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG1E",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
        "display_field_id": 1,
        "display_field_header": "",
        "display_field_text": "Part Number Incorrect"
    }]
}


Example 92. PG2E
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG1E",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
        "display_field_id": 1,
        "display_field_header": "",
        "display_field_text": "Part Number Incorrect"
    }]
}


Example 93. PG1I
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG1I",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
        "display_field_id": 1,
        "display_field_header": "",
        "display_field_text": "Confirm Quantity"
    }]
}


Example 94. PG2I
{
    "api_version": "1.0",
    "event_type": "display!",
    "event_id": "21d22d49-efbe-4e0c-b109-2e9afb7acacc",
    "time_created": 1546300800000,
    "time_validity_duration": 0,
    "device_serial": "MDMR000006406",
    "display_template_id": "PG2I",
    "display_refresh_type": "DEFAULT",
    "display_fields": [{
            "display_field_id": 1,
            "display_field_header": "",
            "display_field_text": "Confirm Qty"
        },
        {
            "display_field_id": 2,
            "display_field_header": "",
            "display_field_text": "25"
        }
    ]
}