specs/overview/S_PLAYER

Tulip Player

The Tulip Player is an Electron-based application built by Tulip for operators to run Tulip apps. These apps are created on the "App Editor" Page.

Once installed on a device and configured by a user with "create" permissions for Stations, it can run the set of apps and versions that are determined by the "Shop Floor" Page.

The Tulip Player is meant for "production" use cases, in other words, for running the published versions of apps in order to store production data.

Here are the environments that can run the Tulip Player:

Operating SystemMethodRequirements
WindowsDownloadable Application from Tulip WebsiteWindows 10, 64 bit processor, 4 GB RAM
WindowsChrome BrowserWindows 10, 64 bit processor, 4 GB RAM
MacOSDownloadable Application from Tulip Website64 bit processor, 4 GB RAM
MacOSChrome Browser64 bit processor, 4 GB RAM
iPadOSSafari browserRecommend testing for each class of device you intend to use.
iOSSafari browserRecommend testing for each class of device you intend to use.
AndroidDownloadable Application from Google Play StoreAndroid OS 5.1 or later. Recommend testing for each class of device you intend to use.
Thin ClientsDownloadable Application from Tulip WebsiteRecommend testing for each class of device you intend to use.

It supports the following devices on Windows with no external configuration:

  • RFID Scanners
  • Some barcode scanners
  • The default camera on the device running the Player
  • USB Footpedals

It supports the following devices on Android, macOS, iOS, iPadOS:

  • Barcode scanners that output as a keyboard

Initialization Process

The Tulip Player can be opened via two methods:

  1. By a machine via a URL string
  2. By a human on their computer's desktop or internet browser

By Machine

This method does not require authentication. The Player is automatically authenticated when it is installed on the machine, and can be opened via a URL string through other programs on the machine that the user has the appropriate credentials to access.

Human Input

There are two ways to initialize the Player via human input- either via the credentials of a Tulip user or via a single-use link that is provided by a Tulip user.

  1. Download the Tulip Player from download.tulip.co.

Tulip User Authentication

  1. Launch the Tulip Player Application on your tablet, laptop or phone.
  2. Type your Tulip account name into the open window (Ex: 'my_instance'.tulip.co is the account name)
  3. A user with "create" permissions for stations must enter their email and password to authenticate the device.
  4. Name the device (e.g 'Station 1 Touchscreen')
  5. Choose an existing Station or create a new one.
  6. If you would like to run the "Development Version" of the app in the Player, you must open up the "Shop Floor" page in Tulip and change the Station settings to run the "Development Version" of all permitted apps.

Operator Authentication

  1. Click the single-use Registration Link that has been provided by a Tulip user.
  2. Enter your badge ID to prove your identity.
  3. Name the device (e.g 'Station 1 Touchscreen')

Running Applications on the Tulip Player

The Tulip Player collects data from applications that were originally created by Tulip users. App data is stored in the Tulip database when the app is "completed". An app is "completed" when a Trigger with the "Complete App" transition is executed.

Once data is stored from an application, it cannot be modified or deleted. The main components of the Tulip Player:

  1. The menu screen - Individual apps are shown according to their location in the nested hierarchy of app groups. From this screen an operator can:
    • Change their preferred language
    • Sign out - When a user logs out the display will show the login screen. To login an operator must again input their username and password.
    • Search for an app by name (note, only apps assigned from the stations UI show up in this menu)
    • Mute Sounds - Mute all default sounds that are created by navigation buttons while running apps in the Player
  2. Timed Logout - If there are no user UI actions (button presses), or device inputs (barcode scanners), for a predetermined amount of time, the display will log the user out and show the login screen. The amount of time is determined on the Account Settings Page.
  3. Saving Data - Any time an application is run to completion a core data set is captured and stored in the database, along with any other variables that the User has configured to store into the application. For more information see the Application Audit Trail doc.

Page Connections

The Tulip Player Menu can be accessed by pressing the "Menu" button within any running Tulip app.

Model Connections

Here's how apps run in the Player can manipulate different Models in the Tulip system.

User

View

  • Within apps, a user can view all the values within User Fields associated with users that are included in an Embedded Table Widget.
  • Within apps, a user can view the name of the logged-in user via the Variable Text Widget.

Edit

  • Within apps, a user can edit the values of each individual User Field for a given user if they fire a Trigger with relevant actions.

Table

View

  • Within apps, a user can view an entire table via the Embedded Table Widget.

Table Record

View

  • Within apps, a user can view a single Table Record via the Table Record Text Widget.
  • Within apps, a user can view many Table Records from a single Table via the Embedded Table Widget.

Edit

  • Within apps, a user can edit the values of a Table Record when they run a Trigger with relevant actions.

Create

  • Within apps, a user can create a Table Record when they run a Trigger with relevant actions.

Delete

  • Within apps, a user can delete a Table Record when they run a Trigger with relevant actions.

Station

Create

  • A user can create a new station while they are initializing the Tulip Player by choosing "New Station" in the initialization flow and then entering a Station name.

View

  • Within apps, a user can view the name of the station where the app is being run via the Variable Text Widget.

Variable

View

  • Within apps, a user can view the value of the variable when the app is being run via the Variable Text Widget.

Step, Signature Step, Regular Step, Form Step

View

  • Within apps, a user can view the steps that they are sent to via Trigger logic.

Widget, Form Input

View

  • Within apps, a user can view Widgets and Form Inputs that have been embedded on the Step that they are currently viewing.

App Version Completion

Create

  • Within apps, a user can create an App Version Completion by firing a Trigger with a "Complete App" Transition.

View

  • Within apps, a user can view past App Version Completions via an embedded Table analysis.

Analysis

View

  • Within apps, a user can view analyses that are embedded on the current step via the Analysis Widget.

Player Device Mapping

Create

  • A user can create a new Player Device Mapping by clicking the "Tools" option in the navigation bar on a Windows operating system and selecting "Barcode Scanner".

Edit/View/Delete

  • A user can edit or replace a Player Device Mapping by clicking the "Tools" option in the navigation bar on a Windows operating system and selecting "Barcode Scanner" and then entering new values.

Player Install Details

These are the details associated with each unique install of the Player.

NameDescription
LanguageChoose the language for all the text in the Player Menu. Choices include English, German, Spanish, French, Italian and Japanese
App VersionThe installed version of the Tulip Player
DeviceThe name of this install of Tulip Player when referenced within Tulip
Serial NumberThe unique identifier for this install of the Tulip Player
Navigation AudioA boolean value to turn default navigation sounds on or off. This setting will inherit the global setting, but can be overitten.
Device Input LanguageChoose whether barcode scanners should attempt to output in English or the keyboard's default language
Clear All DataWhen a user chooses this option, all configuration settings will be discarded and a Tulip user will need to reauthenticate the Player as if it had just been installed for the first time

Tests

IDName
QA-T17User Management : 09 - Login to /player using new badge ID
QA-T62Variable widget : 07 - Testing variables and compound variables in app
QA-T98Record Placeholders : 04 - Load Table Records Trigger, and Table Record Widget
QA-T99Record Placeholders : 05 - Create and Load Table Record Trigger
QA-T100Record Placeholders : 06 - Table Data Tab
QA-T108Signature Step : 03 - Signature form should allow any user to submit it when configured so
QA-T109Signature Step : 04 - Signature form should allow only the current user to submit it when configured so
QA-T110Signature Step : 05 - Signature forms should only be submittable a single time per process run
QA-T112Signature Step : 07 - LDAP Signature Widgets should accept a correct username/password pair
QA-T135Player: Add custom barcode scanner dialog renders correctly
QA-T136Values are persisted
QA-T137Player: Add custom barcode scanner validation works
QA-T139Player: Adding and removing devices in dialog
QA-T140Player: ensuring Vendor ID and product ID can take hexadecimal values
QA-T148SQL Connectors : 02 - Add Function to SQL Connector
QA-T183Triggers - Print Using System Dialog Trigger
QA-T208Analytics - Analytics Widget
QA-T212Logs stored on system (Windows)
QA-T213Information Check in About Dialog Box
QA-T214Barcode Scanner on Player
QA-T215Footpedal works with Player
QA-T216Lascar Sensor works with Player
QA-T217RFID works with player
QA-T219Load failed view- 'Retry' tests
QA-T220File, View, Tools in Toolbar work
QA-T222Picking and authenticating server and factory instances
QA-T223Developer tests - channel and server
QA-T224Auth'd credentials - with and without proxy (Windows)
QA-T225Onscreen Keyboard loads and resizes according to content on touch devices
QA-T228Player settings persist across app restarts
QA-T230Localization - Proxy Login (Windows)
QA-T232Proxy Testing for Updater (Mac)
QA-T240HTTP Connectors : 02 - Add several functions to HTTP Connector
QA-T243Embedded Tables : 03 - Connect an embedded Tulip Table to a Table record
QA-T267User Roles : 08.1 / Viewers should be unable to run Apps or edit/modify Apps, Dashboards, and Analytics
QA-T299Camera Tests
QA-T305Configuration and Apps : 05A - Apps can use Vision Cameras and Regions
QA-T307Handling Plug Events 'Vision Camera' widget shown in Player
QA-T308Configuration and Apps : 07 - User permissions get checked when viewing video
QA-T310Configuration and Apps : 08 - Video stream is shown
QA-T312Handling Plug Events and Player Online/Offline Events for Cameras page
QA-T314Video stream keeps playing for 1 hour
QA-T332LDAP Tulip Managed : 02 - Users can log in via LDAP
QA-T334Stations Page - Player Authorization
QA-T335Stations Page - Station and Station Group Management
QA-T336Stations Page - Station App Configuration
QA-T337Stations Page - Live Preview and Player Control
QA-T347Form Step - Running the Form Step
QA-T349App Editor Misc - Player Menu
QA-T350App Editor Misc - Comments
QA-T370Zebra Network Printer Driver works with Player
QA-T372Single Install authentication on Windows Platform
QA-T373Single Install login on Windows Platform
QA-T374Single Install - Clear all data on windows platform
QA-T375Single Install - Instance locking
QA-T376Digital Caliper works in Player
QA-T394Configuration and Apps : 06 - Test Snapshot Feature with regions
QA-T404Configuration and Apps : 12 - Test Jig Enter/Exit region and Appear/Disappear events
QA-T408Brecknell Scale works in Player
QA-T422Localization - Menu bar
QA-T423Configuration and Apps : 24 - Test color detection began/ended events
QA-T424Localization - Pick Server
QA-T425Localization - About Dialog
QA-T426Localization - Instance Login
QA-T429Localization - Update dialog
QA-T430Localization - Network error page
QA-T431Omega OS-MiniUSB temperature sensor with Player
QA-T437Single Install - Instance locking timeout
QA-T499Run button opens Player and switches to the new instance from another instance
QA-T503Player: Touch and scroll tests
QA-T558Single Install: Migration to operator auth from badge Id mode
QA-T559Single Install: Migration to badge Id from operator auth mode
QA-T576Configuration and Apps : 18 - Test Person ROI enter and exit events
QA-T612Configuration and Apps : 16 - Test text detected events using OCR detector
QA-T614Configuration and Apps : 22A - Test datamatrix detected events using Datamatrix detector
QA-T646Configuration and Apps : 20 - Test Barcode detected events using Barcode detector
QA-T651Signature Step : 07 / LDAP Signature Widgets should reject wrong/empty passwords
QA-T655LDAP Tulip Managed : 02 / Operators can't log into Factory via LDAP
QA-T665Quitting Player (Windows, Mac, Linux)
QA-T666Logs stored on system (MAC)
QA-T670Proxy Testing for Updater (Windows)
QA-T671Auth'd credentials - with and without proxy (Mac)
QA-T673Factory Logger
QA-T674Configurable Storage path (Windows)
QA-T675Configurable Storage path (Mac)
QA-T676Update from current prod version to new QA alpha version
QA-T729HTTP Connectors : 06 - HTTP Connector Functions perform the same with TLS on/off
QA-T734Configuration and Apps : 04 - Test region filter in Factory
QA-T750Workspaces : 11 / - Failing to run an app from another workspace
QA-T751Workspaces : 12 / - Workspace owner cannot access other workspaces
QA-T809Mobile - Register Tulip Player on SAML enabled site
QA-T837Display Devices Page : 06 - Shareable Link - One time use
QA-T838Display Devices Page : 07 - Shareable Link - Reusable Links
QA-T855Using the Camera on Player
QA-T875Disable auto updates through global settings file - Windows only test
QA-T923Embedded Tables : 03 / Only matching record placeholders can be selected
QA-T929Dymo USB Scale Works in Player
QA-T935Player registration using display device registration link
QA-T1013Player Driver - Caliper - Insize Multimeter
QA-T1014Player Driver - Printer - Zebra Network
QA-T1015Player Driver - Telnet General
QA-T1019Player Driver - Player Serial - Mettler Toledo scale
QA-T1020Player Driver - Player Serial - Zebra Printer
QA-T1036Player Driver - Telnet - ZPL Printer
QA-T1039Player: Disable Drivers from Factory Successfully (Windows)
QA-T1040Player: Enable Drivers from Factory Successfully (Windows)
QA-T1070Azure AD SSO Integration
QA-T1122Player/Windows Specific: 03 - Cognex Insight Camera - No Device Output, or Get Image
QA-T1159User Roles : 17.2 - Viewer (with Player Access) role - Player, Dashboards, Apps, Analytics
QA-T1163User Roles : 11.2 - Connector Supervisor role - Player, Dashboards, Apps, Analytics
QA-T1167User Roles : 12.2 - Tulip Table Supervisor role - Player, Dashboards, Apps, Analytics
QA-T1183User Roles : 13.2 - Station Operator role - Player, Dashboards, Apps, Analytics
QA-T1198User Roles : 14.2 - Station Supervisor role - Player, Dashboards, Apps, Analytics
QA-T1202User Roles : 15.2 - Administrator role - Player, Dashboards, Apps, Analytics
QA-T1206User Roles : 16.2 - Application Approver role - Player, Dashboards, Apps, Analytics
QA-T1212User Management: 17 - Account owner can register player
QA-T1217User Roles : 10.2 - Application Builder role - Player, Dashboards, Apps, Analytics
QA-T1236User Roles : 19.2 - Workspace Owner role - Player, Dashboards, Apps, Analytics
QA-T1255Misc Tests - Logged In User is displayed when logged into Factory and Player

Requirements

IDRequirement
PLAT-8807 (32)All Users have to be uniquely identified.
PLAT-8874 (848)The ability to discern invalid or altered records. Ability to annotate data is changed. For GMP or critical data changes annotation can be configured as required.
PLAT-8883 (814)Ability to view, display and and print accurate and complete records, including any attachments, electronic signatures and their associated audit trails.
PLAT-8888 (811)All records, electronic signatures, and audit trails must be human readable and protected to ensure they are readily retrievable throughout a pre-defined retention period.
PLAT-8920 (802)All records shall be Original; all originally recorded data shall be maintained.
PLAT-8939 (35)Automatic logout user from system after a configurable amount of inactivity time.
PLAT-8946 (806)All records shall be Enduring, ie. stored, managed, accessible and unalterable for the full retention period.