Interface Control Document¶
- Interface Control Document
- Table of Figures
- Overview
- Modules
- ActiveMQ: Topics and Queues
- Messaging
- Overview
- GIFT Message Header
- GIFT Messages
- GIFT Payloads
- Affective State
- After Action Review Course Event
- After Action Review Survey Event
- After Action Review Remediation Event
- Apply Strategies
- Apply Strategy Learner Action
- Authorize Strategies Request
- Branch Adaptation Strategy
- Branch Path History
- Branch Path History Request
- Chat Log
- Clear Text Action
- Close Domain Session Request
- Collision
- Cognitive State
- Course State
- Detonation
- Display AAR Tutor Request
- Display Avatar Action
- Display Chat Window Request
- Display Chat Window Update Request
- Display Course Init Instructions Request
- Display Guidance Tutor Request (Base)
- Display HTML Page Guidance Tutor Request
- Display Learner Actions Tutor Request
- Display Media Collection Request
- Display Mid-Lesson Media Request
- Display Message Tutor Request
- Display Scripted Avatar Action
- Display Text Action
- Domain Option
- Domain Options Request
- Domain Selection Request
- Domain Session
- Domain Session List
- Entity State
- Environment Control
- Evaluator Update Request
- Data Collection Item
- Execute OC Strategy
- Experiment Subject
- Experiment Course Request
- Filtered Sensor
- Gateway Module Status
- Generic State
- Get Survey Request
- Get Experiment Request
- Individual Knowledge Session
- Initialize Domain Session Request
- Initialize Embedded Connections
- Initialize Interop Connections
- Initialize Pedagogical Model Request
- Instantiate Learner Request
- Interop Connections Info
- Knowledge Session Created
- Knowledge Sessions Request
- Knowledge Sessions
- Learner Action
- Learner State
- Learner Tutor Action
- LMS Connection Info
- LMS Course Record
- LMS Course Records
- LMS Data Request
- Line of Sight Query
- Line of Sight Result
- Located Team Member
- Login Request
- LTI Get User Request
- LTI Get User Reply
- LTI Lesson Graded Score Request
- LTI Runtime Parameters
- LTI User Id
- LTI User Session Details
- Marked Team Member
- Matrix of Choices Reply Weights
- Media Item
- Metadata Attribute Item
- Mission
- Module Allocation Request
- Module Allocation Reply
- Module Status
- NACK
- Pedagogical Request
- Pedagogical Requests
- Performance Assessment
- Performance State
- PowerPoint State
- Publish Lesson Score Request
- Publish Lesson Score Response
- Remove Entity
- Request Branch Adaptation
- Request Do Nothing Strategy
- Request Instructional Intervention
- Request Mid-Lesson Media
- Request Performance Assessment
- Request Scenario Adaptation
- Rifle Shot
- Sensor Status
- Sensor File Created
- Siman
- Simple Example State
- Start Resume
- Stop Freeze
- Strategy To Apply
- Subject Created
- Submit Survey Results
- Survey Check Request - Reply
- Survey Check Response
- Survey Context
- Survey Context Survey
- Survey Check Response - Success Response
- Survey List Check Request
- Survey Item Property Value
- Survey Gift Data
- Survey Scale Score
- Survey Scorer
- Survey Page
- Survey Response
- Team Knowledge Session
- Tutor Module Status
- Tutor User Interface Feedback
- Unfiltered Sensor Data
- User Data
- User Session
- User Session List
- Variables State Request
- Variables State Result
- Weapon Fire
- Web Monitor Module Status
- GIFT Enumerations
- Arousal Level
- Assessment Level
- Damage
- Detonation Result
- Domain Option Recommendation Enum
- Engagement Level
- Environment Control Enum
- Error Type
- Experiment Status
- Filter Type
- Gender
- Learner Action Type
- Learner State Attribute Name
- Lesson Level
- Low Medium High Level
- Message Encoding Type
- Message Feedback Display Mode
- Message Type
- Merrill Quadrant
- Metadata Attribute
- Module State
- Module Type
- Operator
- Pass Fail
- Performance Node State
- Posture
- Question State
- Score Node Type
- Sensor Attribute Name
- Sensor State
- Sensor Type
- Shared Course Permissions
- Siman Type
- Survey Property Key
- Training App Route Type
- Training Application
- Question Type
- Understanding Level
- Version
- Weapon Control Status
- Protobuf Files
Table of Figures¶
Figure 2: Message Flow through ActiveMQ
Overview¶
The purpose of the GIFT Interface Control Document (ICD) is to describe the interface, in terms of messaging input and outputs, of each module in the system. It does not attempt to describe the characteristics of each module but merely treat each module as if it were a black box. GIFT developers can use this document to create new modules in replace of existing modules by adhering to the messaging I/O described.
Figure 1: The GIFT architecture diagram shows how the various components of GIFT interact. The arrows depict the flow of messages and interactions.
Modules¶
Messaging Details¶
Each module declares two ActiveMQ queues that are used to receive messages from other GIFT modules; the “Inbox” queue and the Module Queue. The queues are named according to the following convention:
Inbox Queue: <module name>:<ip address>:Inbox
Module Queue: <module name>:<ip address>
The functions of the two queues are described below:
Inbox Queue
The Inbox Queue of a particular module is effectively its messaging address. As such other modules wishing to communicate with a particular module will address messages to the desired module’s Inbox Queue. Conversely, when a module communicates with other modules, it identifies itself using the name of its Inbox Queue.
Module Queue
This is the queue the module listens on to receive incoming messages – effectively it is the Module’s “Outbox”. Messages should not be directly sent to this queue because the Camel component of ActiveMQ will route the message from the Inbox to this queue as well as to other queues for logging and monitoring. An illustration of this process is shown below.
Figure 2: Message Flow through ActiveMQ
Upon receipt of a message, a module can reply, initially, with a:- ACK message – Indicates that the message was received and successfully decoded.
- NACK message – Indicates that the message was received but was unable to be decoded.
- No message – Nothing is sent for messages read from a Topic or those messages whose header specifies that a reply is not needed (refer to message header attributes for each message type in this document).
- Processed ACK – Signifies that the message was handled successfully.
- ACProcessed NACK – Signifies that the message was not handled successfully.
Currently only a single reply message (ACK and NACK are not considered reply messages here, e.g. LMS Data Reply) should be sent for each received message. Additional replies will be ignored by the recipient.
User Management System (UMS) Module¶
Details¶
The primary function of the UMS module is to manage a user session. It is responsible for storing information about the user such as biographical details, in addition to maintaining information about domain sessions. It does not, however, keep scoring records of user’s training history. That is handled by the LMS. The UMS also contains the message logger which is responsible for logging all messages sent on a single ActiveMQ network.
Subscriptions¶
Domain Discovery- For logging purposes
- For logging purposes
- For logging purposes
- For logging purposes
- For logging purposes
- For logging purposes
- For logging purposes
Logger Queue
Messages¶
Send
To: UMS Discovery
Reply With: Nothing
Description: Notify all subscribers of the UMS module status
Receive
From: LMS Discovery, Pedagogical Discovery, Learner Discovery, Tutor Discovery, Gateway Discovery, Domain Discovery, Sensor Discovery
Reply With: Nothing
Description: For logging the module status messages of the other modules that are active in the system
Receive
From: Tutor
Reply With: Module Allocation Reply, Processed NACK
Description: The Tutor is requesting to use this UMS module for a User Session
Send
To: Tutor
Expected Reply: Nothing
Description: Reply to the Tutor’s request to use this UMS module for a User Session
Initialize Domain Session Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Receive
From: Tutor
Reply With: Login Reply, Processed NACK
Description: Request for a new user to be created
Receive
From: Tutor
Reply With: User Id Reply, Processed NACK
Description: Request for a user id based on a username
Receive
From: Tutor
Reply With: Login Reply, Processed NACK
Description: Request for a user to be logged in
Receive
From: Tutor
Reply With: Processed ACK, Processed NACK
Description: Request for a user to be logged out
Receive
From: Sensor
Reply With: Nothing
Description: Notification that a file has been created with sensor data
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Submit the results of a survey
Receive
From: Domain, Tutor
Reply With: Get Survey Reply
Description: Request a survey
Receive
From: Domain
Reply With: Domain Selection Reply, Processed NACK
Description: Request a domain session on the selected domain
Receive
From: Domain
Reply With: SurveyCheckResponse, Processed NACK
Description: The UMS module needs to check the survey references against entries in the survey database.
Domain Session Start Time Request
Receive
From: Monitor
Reply With: Domain Session Start Time Reply, Processed NACK
Description: Request the start time of a domain session.
Receive
From: Domain
Expected Reply: Get Experiment Reply
Description: Reply to a request to retrieve the experiment details by experiment id.
Receive
From: Tutor
Expected Reply: LTI Get User Reply
Description: Request to get the LTI user record based on an incoming LTI launch request (containing a consumer key and consumer id).
LTI Get User Reply
Send
To: Tutor
Expected Reply: Nothing
Description: The LTI user record data that was found for the user. If the user was not found, null is returned for the lti user record.
Learning Management System (LMS) Module¶
Details¶
The primary function of the LMS module is keep track of a user’s training history. The GIFT LMS will save the scores of every lesson.
Subscriptions¶
Messages¶
Send
To: LMS Discovery
Reply With: Nothing
Description: Notify all subscribers of the LMS module status
Receive
From: Tutor
Reply With: Module Allocation Reply, Processed NACK
Description: The Tutor is requesting to use this LMS module for a User Session
Send
To: Tutor
Reply With: Nothing
Description: Reply to the Tutor’s request to use this LMS module for a User Session
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
Receive
From: Learner, Tutor
Reply With: LMS Data Reply, Processed NACK
Description: A request for a learner’s LMS data
Receive
From: Domain
Reply With: Publish Lesson Score Reply, Processed NACK
Description: The final score of a lesson, to be stored for later retrieval with the key returned from a successful publish
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Receive
From: Domain
Reply With: Nothing
Description: Notifies any listeners that a knowledge session was created
Receive
From: Learner
Reply With: Nothing
Description: contains the latest learner state information which could be given to an LMS (or LRS).
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: contains survey responses which can be given ton an LMS (or LRS).
Receive
From: Pedagogical
Reply With: Nothing
Description: A request for an action, can be given to an LMS (or LRS) to record.
Initialize Domain Session Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing
Receive
From: Domain
Reply With: Nothing
Description: Notifies any listeners that a knowledge session was created
Learner Module¶
Details¶
The primary function of the Learner module is to determine the learner’s state.
Subscriptions¶
Messages¶
Send
To: Learner Discovery
Expected Reply: Nothing
Description: Notify all subscribers of the Learner module status
Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Learner module for a Domain Session
Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Learner module for a User Session
Receive
From: Sensor
Reply With: Nothing
Description: For processing sensor data into human relatable behavior
Receive
From: Sensor
Reply With: Nothing
Description: For processing sensor data into human relatable behavior
Receive
From: UMS
Reply With: Processed ACK, Processed NACK
Description: Try to instantiate a new learner
Initialize Domain Session Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Nothing
Description: For being notified that a domain session is ending
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify learner module that the lesson started
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify learner module that the lesson is complete
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Publishes the score of the lesson completed by a learner
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Submit the results of a survey to a learner
Receive
From: Domain
Reply With: Nothing
Description: Give a performance assessment to a learner
Receive
From: Tutor
Reply With: Nothing
Description: Unregister a learner with the module
Receive
From: Domain
Reply With: Processed ACK
Description: Provide the current course state to any pedagogical models. In some instances a model will return a pedagogical request.
Send
To: Pedagogical, LMS
Expected Reply: Nothing
Description: Notify modules of a learner’s state
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Tell a module to initialize a single lesson of a course during a domain session
Pedagogical Module¶
Details¶
The primary function of the Pedagogical module is to use information about the learner’s state to produce actions for the tutor to better influence learning.
Subscriptions¶
Messages¶
Send
To: Pedagogical Discovery
Expected Reply: Nothing
Description: Notify all subscribers of the Pedagogical module status
Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Pedagogical module for a Domain Session
Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Pedagogical module for a User Session
Receive
From: Learner
Reply With: Nothing
Description: Process learner state and update pedagogical actions
Initialize Domain Session Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify pedagogical module that the lesson started
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify pedagogical module that the lesson is complete
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Send
To: Domain, LMS
Expected Reply: Nothing
Description: Suggest pedagogical action to a tutor
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Tell a module to initialize a single lesson of a course during a domain session
Initialize Pedagogical Model Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Tell the Pedagogical Module to initialize a pedagogical model.
Receive
From: Domain
Reply With: Pedagogical Request, Nothing
Description: Provide the current course state to any pedagogical models. In some instances a model will return a pedagogical request.
Domain Module¶
Details¶
The primary function of the domain module is to create, maintain and assess domain sessions.
Subscriptions¶
UMS Discovery
LMS Discovery
Pedagogical Discovery
Tutor Discovery
Learner Discovery
Domain Discovery
Sensor Discovery
Gateway Discovery
Messages¶
Send
To: Domain Discovery
Expected Reply: Nothing
Description: Notify modules of the Domain module status
Receive
From: LMS Discovery
Reply With: Nothing
Description: Get status of available LMS modules
Receive
From: UMS Discovery
Reply With: Nothing
Description: Get status of available UMS modules
Receive
From: Pedagogical Discovery
Reply With: Nothing
Description: Get status of available Pedagogical modules
Receive
From: Tutor Discovery
Reply With: Nothing
Description: Get status of available Tutor modules
Receive
From: Learner Discovery
Reply With: Nothing
Description: Get status of available Learner modules
Receive
From: Sensor Discovery
Reply With: Nothing
Description: Get status of available Sensor modules
Receive
From: Gateway Discovery
Reply With: Nothing
Description: Get status of available Gateway modules
Receive
From: Tutor
Reply With: Module Allocation Reply, Processed NACK
Description: The Tutor is requesting to use this Domain module for a Domain Session
Send
To: Pedagogical, Learner, Sensor, Gateway
Expected Reply: Module Allocation Reply, Processed NACK
Description: Request that the module be allocated to this Domain module for a Domain Session
Send
To: Tutor
Expected Reply: Nothing
Description: Reply to the Tutor’s request to use this Domain module for a Domain Session
Receive
From: Pedagogical, Learner, Sensor, Gateway
Reply With: Nothing
Description: Replies to this Domain’s request to use the module for a Domain Session
Receive
From: Tutor, Gateway
Reply With: Processed ACK, Processed NACK
Description: Notify domain of action completed by the learner on the tutoring system
Receive
From: Tutor, Gateway
Reply With: Domain Options Reply, Processed NACK
Description: Request the current set of domain options
Receive
From: Tutor
Reply With: Domain Selection Reply, Processed NACK
Description: Request a domain session on the selected domain
Receive
From: Tutor
Reply With: Processed ACK, Processed NACK
Description: For updating the domain module with the chat between the tutor and user
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Send
To: Learner, UMS, Sensor, Gateway, Tutor, Pedagogical, LMS
Expected Reply: Nothing
Description: Ends the domain session
Receive
From: Monitor, Tutor
Reply With: Processed ACK, Processed NACK
Description: Ends the domain session
Receive
From: Pedagogical
Reply With: Nothing
Description: A request for an action
Send
To: UMS
Expected Reply: Get Survey Reply, Processed NACK
Description: Request the UMS for a survey
Send
To: Gateway
Expected Reply: Nothing
Description: Do a line of sight query
Send
To: Learner, UMS, LMS
Expected Reply: Processed ACK, Processed NACK
Description: Submit the results of the survey to the UMS
Initialize Domain Session Request
Send
To: Learner, UMS, Sensor, Gateway, Pedagogical, Tutor, LMS
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to initialize a domain session
Send
To: Learner
Expected Reply: Processed ACK, Processed NACK
Description: Request Learner to be instantiated
Send
To: Learner, UMS, Sensor, Gateway, Pedagogical, Tutor, LMS
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to start a domain session
Send
To: Learner, UMS, Sensor, Gateway,Tutor, Pedagogical, LMS
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to close a domain session
Display Feedback Embedded Request
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the embedded training application to display a feedback message to the user within the application
Display Feedback Tutor Request
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display feedback to the user
Display Guidance Tutor Request
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display guidance to the user
Display Lesson Material Tutor Request
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display lesson material to the user
Display Mid-Lesson Media Tutor Request
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display media to the user during a training application lesson
Send
To: Tutor
Expected Reply: Processed NACK, Display Survey Tutor Reply
Description: Tell the Tutor module to display a survey to the user
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display the After Action Review to the user
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Request a chat window to be displayed to the learner
Display Chat Window Update Request
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Request an update to the chat window to be displayed to the learner
(Siman Type = LOAD)
Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor module to load a scenario in the training application
(Siman Type = START)
Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor module to start a scenario in the training application
(Siman Type = STOP)
Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor module to stop a scenario in the training application
(Siman Type = RESTART)
Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor module to restart a scenario in the training application
(Siman Type = PAUSE)
Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or TutorModule to pause a scenario in the training application
(Siman Type = RESUME)
Send
To: Gateway, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Gateway module or Tutor Module to resume a scenario in the training application
Send
To: Gateway
Expected Reply: Processed ACK, Processed NACK
Description: Tweak the environment of the current interop application
Send
To: LMS
Expected Reply: Processed ACK, Processed NACK
Description: Notify the LMS of the score achieved by the user for a specific lesson
Send
To: Learner
Expected Reply: Nothing
Description: Notify the Learner module of the completed performance assessment
Initialize Interop Connections
Send
To: Gateway
Expected Reply: Interop Connections Info, Processed NACK
Description: Notify the Gateway module of the interop connections needed for the lesson that is about to begin
Initialize Embedded Connections
Send
To: Tutor
Expected Reply: Interop Connections Info, Processed NACK
Description: Notify the Tutor module of the embedded application needed for the lesson that is about to begin
Send
To: Learner, Pedagogical, Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell a module to initialize a single lesson of a course during a domain session
Initialize Pedagogical Model Request
Send
To: Pedagogical
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Pedagogical Module to initialize a pedagogical model.
Active Domain Sessions Request
Receive
From: Monitor, Gateway
Expected Reply: Active Domain Sessions Reply
Description: Request for the active domain sessions known to this domain module instance.
Send
To: Monitor, Gateway
Expected Reply: Nothing
Description: Reply to a request for the active domain sessions known to this domain module instance.
Send
To: Pedagogical, Tutor, Learner
Expected Reply: Pedagogical Request (when the course state warrants it), Nothing
Description: The pedagogical module needs to know where in the course the user is in order to inform various pedagogical model(s).
Send
To: UMS
Expected Reply: SurveyCheckResponse, Processed NACK
Description: The UMS module needs to check the survey references against entries in the survey database.
Display Course Init Instructions Request
Send
To: Tutor
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display the generic course initialize instructions webpage to the user
Receive
From: Tutor
Expected Reply: Domain Selection Reply, Processed NACK
Description: Starts a new subject in the experiment's course
Send
To: UMS
Expected Reply: Get Experiment Reply
Description: Request the experiment details by experiment id.
Send
To: LMS
Expected Reply: Nothing
Description: Notifies any listeners that a knowledge session was created
Send
To: Tutor
Expected Reply: Processed ACK
Description: Notify the tutor that a subject has been created for the experiment being started as per the tutor's request
Send
To: Tutor
Expected Reply: Nothing
Description: Forwarding the training application content loading progress information from the gateway module interop plugin
Training Application Survey Submit
Send
To: Tutor
Expected Reply: Nothing
Description: Forwarding the training application survey submit event so the tutor can submit the currently presented survey
Tutor Survey Question Response
Send
To: Gateway
Expected Reply: Nothing
Description: Forwarding the selecting an answer (not submitting the answer/survey) to a survey question event from the tutor
Tutor Survey Question Response
Receive
To: Tutor
Expected Reply: Nothing
Description: The selecting an answer (not submitting the answer/survey) to a survey question event from the tutor
Training Application Survey Response
Send
To: Tutor
Expected Reply: Nothing
Description: Forwarding the event of the user selecting a survey response in the external training application from the gateway module interop plugin
Send
To: Gateway
Expected Reply: Variable State Result, Processed NACK
Description: A request to retrieve one or more pieces of information for specific actors from an external training application
Sensor Module¶
Details¶
The primary function of the Sensor module is to read and filter sensor data.
Subscriptions¶
Messages¶
Send
To: Sensor Discovery
Expected Reply: Nothing
Description: Notify subscribers of Sensor Module status
Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Sensor module for a Domain Session
Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Sensor module for a Domain Session
Initialize Domain Session Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is being ended
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Send
To: Learner
Expected Reply: Nothing
Description: Propagate new Sensor data for processing
Send
To: Learner
Expected Reply: Nothing
Description: Propagate new Filtered Sensor data for processing
Send
To: UMS
Expected Reply: Nothing
Description: Notify modules that a new Sensor File was created
Tutor Module¶
Details¶
The primary function of the Tutor module is to provide an interface that allows interaction between GIFT and the learner.
Subscriptions¶
UMS Discovery
LMS Discovery
Domain Discovery
Tutor Discovery
Messages¶
Send
To: Tutor Discovery
Expected Reply: Nothing
Description: Notify subscribers of Tutor Module status
Receive
To: UMS Discovery
Expected Reply: Nothing
Description: Get status of available UMS modules
Receive
To: LMS Discovery
Expected Reply: Nothing
Description: Get status of available LMS modules
Receive
To: Domain Discovery
Expected Reply: Nothing
Description: Get status of available Domain modules
Send
To: Tutor
Expected Reply: Nothing
Description: Notify subscribers about the existence of the Tutor Topic
Send
To: Domain, UMS and LMS
Expected Reply: Module Allocation Reply, Processed NACK
Description: Request that the module be allocated to this Tutor module for a User Session
Receive
From: Domain, UMS and LMS
Expected Reply: Nothing
Description: Replies to this Tutor’s request to use the module for a User Session
Initialize Domain Session Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
Receive
From: Domain
Reply With: Processed ACK
Description: Provide the current course state to any pedagogical models. In some instances a model will return a pedagogical request.
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Display Guidance Tutor Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request some guidance to be displayed to the learner
Display Feedback Tutor Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request feedback to be displayed to the learner
Receive
From: Domain
Reply With: Display Survey Tutor Reply, Processed NACK
Description: Request a survey to be displayed to the learner
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request an After Action Review to be displayed to the learner
Display Lesson Material Tutor Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request lesson material to be displayed to the learner
Display Mid-Lesson Media Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request media to be displayed to the learner during a training application lesson
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request a chat window to be displayed to the learner
Display Chat Window Update Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Request an update to the chat window to be displayed to the learner
Send
To: UMS
Expected Reply: Processed NACK, Login Reply
Description: Request a new user to be added to the UMS
Send
To: UMS
Expected Reply: Processed NACK, Login Reply
Description: Request a user login
Send
To: UMS
Expected Reply: Processed NACK, User Id Reply
Description: Request the unique GIFT user id based on the GIFT username
Send
To: LMS
Expected Reply: LMS Data Reply, Processed NACK
Description: Request all LMS data on a user
Send
To: Domain
Expected Reply: Domain Options Reply, Processed NACK
Description: Request a list of available domains
Send
To: Domain
Expected Reply: Domain Selection Reply, Processed NACK
Description: Select a domain for use
Send
To: Domain
Expected Reply: Processed ACK, Processed NACK
Description: Notify Domain of a completed report
Send
To: Learner, UMS
Expected Reply: Processed ACK, Processed NACK
Description: Log a user out
Send
To: Domain
Expected Reply: Processed ACK, Processed NACK
Description: For updating the domain module with the chat between the tutor and user
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: Tell a module to initialize a single lesson of a course during a domain session
Receive
From: Monitor
Expected Reply: Active User Sessions Reply
Description: Request for the active user sessions known to this tutor instance.
Send
To: Monitor
Expected Reply: Nothing
Description: Reply to a request for the active user sessions known to this tutor instance.
Send
To: Domain
Expected Reply: Get Experiment Reply
Description: Reply to a request for the experiment request by experiment id.
Display Course Init Instructions Request
Receive
From: Domain
Expected Reply: Processed ACK, Processed NACK
Description: Tell the Tutor module to display the generic course initialize instructions webpage to the user
Receive
From: Domain
Expected Reply: Processed ACK
Description: Notifcation that a subject has been created for the experiment being started as per the tutor's request
Receive
From: Domain
Expected Reply: None
Description: Forwarded training application content loading progress from the gateway module interop plugin
Training Application Survey Submit
Receive
From: Domain
Expected Reply: Nothing
Description: Forwarded the training application survey submit event so the tutor can submit the currently presented survey
Tutor Survey Question Response
Send
To: Domain
Expected Reply: Nothing
Description: The selecting an answer (not submitting the answer/survey) to a survey question event
Training Application Survey Response
Receive
From: Domain
Expected Reply: Nothing
Description: Forwarded the event of the user selecting a survey response in the external training application from the gateway module interop plugin
Send
To: UMS
Expected Reply: LTI Get User Reply
Description: Request to get the LTI user record based on an incoming LTI launch request (containing a consumer key and consumer id).
LTI Get User Reply
Receive
From: UMS
Expected Reply: Nothing
Description: The LTI user record data that was found for the user. If the user was not found, null is returned for the lti user record.
Gateway Module¶
Details¶
The primary function of the Gateway module is to listen for communication outside of GIFT and then convert it into GIFT messages and vice-versa.
When a message is received from outside of GIFT (e.g., VBS DIS connection), the Gateway module converts that message into a GIFT message and sends it to the Gateway Module’s topic (i.e., broadcasts the message).
Subscriptions¶
Gateway Discovery Topic
Gateway Topic
Messages¶
Send
To: Gateway Discovery Topic
Expected Reply: Nothing
Description: Notify subscribers of Gateway status and the name of the topic where simulation messages will be sent to for other modules to consume.
Receive
From: Domain
Reply With: Variables State Result, Processed NACK
Description: A request to retrieve one or more pieces of information for specific actors from an external training application
Receive
From: Domain
Reply With: Module Allocation Reply, Processed NACK
Description: The Domain is requesting to use this Gateway module for a Domain Session
Send
To: Domain
Expected Reply: Nothing
Description: Reply to the Domain’s request to use this Gateway module for a Domain Session
Initialize Domain Session Request
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is initializing
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is starting
Receive
From: Anywhere
Reply With: Processed ACK, Processed NACK
Description: Notify learner module that the lesson started
Receive
From: Domain
Reply With: Processed ACK, Processed NACK
Description: For being notified that a domain session is ending
Receive
From: Anywhere
Reply With: Nothing
Description: For shutting down the module remotely
Initialize Interop Connections
Receive
To: Domain
Reply With: Interop Connections Info, Processed NACK
Description: Initialize/Enable the specified interop connections needed for the lesson that is about to begin
Interoperability¶
The Gateway Module has simulation interoperability capabilities with the following standards. These interfaces allow GIFT to communicate with training applications that also implement the same standards. Each section will list the messages from each standard that GIFT can currently handle. Refer to GIFT Configuration Settings for more information on interoperability configurations and the other interoperability interfaces.
DIS¶
This interface uses JDIS library (http://sourceforge.net/projects/jdis/) to send/receive DIS PDUs.
For information on the DIS standard concerning these messages see: https://en.wikipedia.org/wiki/Distributed_Interactive_Simulation
Detonation PDU
Entity State PDU
Fire PDU
Currently the DIS interop interface can send these GIFT messages:
Weapon Fire
Detonation
Entity State
Collision
Currently the DIS interop interface can handle these incoming GIFT messages and convert and send their equivalents as DIS messages:
DIS PDU data consumed by GIFT
The following tables contain a list of the DIS PDUs and attributes that GIFT consumes from the network and then converts into GIFT messages.
Entity State DIS PDU Components | Notes | ||
PDU Header Record | |||
Exercise Identifier Field | used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml | ||
PDU Type Field | used by JDIS | ||
Entity ID Record | |||
Entity ID Field | |||
Force ID Field | |||
# of Articulation Parameters (n) Field | currently only used with the Excavator instance that uses DE Testbed virtual desktop application to determine the movement of various parts of that vehicle. | ||
Entity Type Record | For Game Master Map 2525 symbols use GIFT\config\tools\dashboard\dis_to_sidc.yml file to convert. | ||
Kind Field | Can be over-riden with GIFT echelon value defined by EchelonEnum.java | ||
Domain Field | |||
Country Field | |||
Category Field | |||
Subcategory Field | |||
Specific Field | |||
Extra Field | |||
Alternative Entity Type Record | |||
Entity Linear Velocity Record | |||
Entity Location Record | |||
Entity Orientation Record | |||
Entity Appearance Record | |||
General Appearance Record | |||
Entity Damage Field | convert positions 3-4 to DamageEnum.java | ||
Specific Appearance Varient | |||
Life Forms Record | |||
Lifeform State Field | convert to PostureEnum.java | ||
Activity State Field | converted to true and false, used when sending out DIS PDUs from GIFT during playback when the Game Master user has filtered the map view to only show some entities/teams. | ||
Dead Reckoning Parameters | |||
Dead Reckoning Algorithm Field | converted to DeadReckoningAlgorithmField enum, though not currently used for anything. | ||
Entity Marking Record | |||
Entity Marking String Record | used as one of two ways to map a team member in the DKF team organization to a DIS Entity Id (integer) for a single execution of a DIS exercise. | ||
Entity Capabilities Record | NOT USED | ||
Articulation Parameter Record | (used in conjuction with # of articulated parts above) currently only used with the Excavator instance that uses DE Testbed virtual desktop application to determine the movement of various parts of that vehicle. |
Fire DIS PDU Components | Notes | |
PDU Header Record | ||
Exercise Identifier Field | used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml | |
PDU Type Field | used by JDIS | |
Firing Entity Id Record | ||
Entity Identity Field | once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members | |
Target Entity Id Record | ||
Entity Identity Field | once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members | |
Munition Id Record | ||
Entity Identity Field | decoded but not used yet | |
Event Identifier Record | decoded but not used yet | |
Fire Mission Index Field | NOT USED | |
Location in World Record | ||
Burst Descriptor Record | ||
Munition Record | decoded but not used yet | |
Warhead Field | decoded but not used yet | |
Fuse Field | decoded but not used yet | |
Quantity Field | currently used only in RulesOfEngagementCondition | |
Rate Field | decoded but not used yet | |
Velocity Record | ||
Range Field | NOT USED |
Detonation DIS PDU Components | Notes | |
PDU Header Record | ||
Exercise Identifier Field | used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml | |
PDU Type Field | used by JDIS | |
Firing Entity Id Record | ||
Entity Identity Field | once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members | |
Target Entity Id Record | ||
Entity Identity Field | once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members | |
Munition Id Record | ||
Entity Identity Field | decoded but not used yet | |
Event Identifier Record | decoded but not used yet | |
Velocity Record | ||
Location in World Record | ||
Burst Descriptor Record | decoded but not used yet | |
Location in Entity Coordinates Record | NOT USED | |
Detonation Result Field | converted to DetonationResultEnum, only using 'Other' (0), 'EntityImpact' (1) and 'None' (6) | |
Number of Articulation Parameters Field | NOT USED | |
Padding - 16bit Field | NOT USED | |
Articulation Parameter Record | NOT USED |
Collision DIS PDU Components | Notes | |
PDU Header Record | ||
Exercise Identifier Field | used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml | |
PDU Type Field | used by JDIS | |
Issuing Entity ID Record | ||
Entity Identity Field | once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members | |
Colliding Entity ID Record | ||
Entity Identity Field | once a DKF team member is mapped to an entity id via incoming Entity State PDUs and some GIFT logic, GIFT knows if this entity id is for one of the DKF team members | |
Event ID Record | NOT USED | |
Collision Type Field | converted but not used | |
Padding Field | NOT USED | |
Velocity Record | NOT USED | |
Mass Field | NOT USED | |
Location Record | NOT USED |
StopFreeze DIS PDU Components | Notes | |
PDU Header Record | ||
Exercise Identifier Field | used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml | |
PDU Type Field | used by JDIS | |
Originating Entity ID Record | NOT USED | |
Receiving Entity ID Record | NOT USED | |
Real-World Time Record | ||
Reason Field | used to determine if pausing or stopping the simulation | |
Frozen Behavior Field | converted but not used | |
Padding - 16bit Field | NOT USED | |
Request ID Field | converted but not used |
StartResume DIS PDU Components | Notes | |
PDU Header Record | ||
Exercise Identifier Field | used to filter DIS traffic on the GIFT DIS recieve network port. Port and exercise id defined in GIFT\config\gateway\default.interopConfig.xml | |
PDU Type Field | used by JDIS | |
Originating Entity ID Record | NOT USED | |
Receiving Entity ID Record | NOT USED | |
Real-World Time Record | converted but not used | |
Simulation Time Record | converted but not used | |
Request ID Field | converted but not used |
JSON DIS¶
This interface is built upon the DIS interface mentioned above. The difference is that incoming DIS PDU messages created by applications external to GIFT are converted into GIFT JSON messages. These JSON messages are perfectly formatted for use in the SIMILE assessment engine in the Domain module.
The GIFT game state message is defined by Generic Status.
VBS¶
This interop interface communicates to the GIFT VBS plugin DLL.
Currently the VBS interop interface can handle these incoming GIFT messages:
SIMAN
Environment Control
LoS Query
Display Feedback Gateway Request
Variable State Request
Currently the VBS interop interface can send these GIFT messages:
LoS Result
Start Resume
Stop Freeze
VR Engage¶
This interop interface communicates to the GIFT VR Engage plugin DLL.
Currently the VR Engage interop interface can handle these incoming GIFT messages:
SIMAN
Environment Control
LoS Query
Display Feedback Gateway Request
Currently the VR Engage interop interface can send these GIFT messages:
ARES¶
This interop interface communicates to the Augemented REality Sandtable application.
Currently the ARES interop interface can handle these incoming GIFT messages:
SIMAN
Survey Presented Notification
Tutor Survey Question Response
Currently the ARES interop interface can send these GIFT messages:
Training App Survey Response
Training App Survey Submit
PPT¶
This interop interface uses JACOB library (http://sourceforge.net/projects/jacob-project/) to communicate with Microsoft PowerPoint.
Currently the PPT interop interface can handle these incoming GIFT messages:
Currently the PPT interop interface can send these GIFT messages:
Start Resume
Stop Freeze
PowerPoint State
Load Progress
TC3¶
This interop interface handles communication between TC3 (aka vMedic) game engine.
Currently the TC3 interop interface can handle these incoming GIFT messages:
Currently the TC3 interop interface can send these GIFT messages:
SCATT¶
This interop interface handles communication between the SCATT Pro marksmanship training application.
Currently the SCATT interop interface can handle these incoming GIFT messages:
Currently the SCATT interop interface can send these GIFT messages:
Simple (XML-RPC)¶
This interop interface handles communication between the Simple Training App created for the GIFT Developer Guide.
Currently the Simple interop interface can handle these incoming GIFT messages:
SIMAN
Display Feedback Gateway Request
Currently the Simple interop interface can send these GIFT messages:
Unity¶
This interop interface communicates to the GIFT Unity SDK.
Currently the Unity interop interface can handle these incoming GIFT messages:
SIMAN
Display Feedback Gateway Request
Currently the VR Engage interop interface can send these GIFT messages:
Adaptive Learning Service¶
This interop interface communicates with an ActiveMQ message bus (not the same instance that the GIFT core architecture uses).
Currently the Adaptive learning service interop interface can handle these incoming GIFT messages:
Authorize Strategies Request
Close Domain Session Request
Display Feedback Tutor Request
Knowledge Session Created
Knowledge Session Updated Request
Learner State
Lesson Completed
Lesson Started
Pedagogical Request
Sensor Filter Data
SIMAN
Course State
Currently the Adaptive Learning Service interop interface can send these GIFT messages:
Manage Membership Team Knowledge Session
Knowledge Session Updated Request
Domain Options Request
Domain Selection Request
Active Domain Sessions Request
Close Domain Session Request
Evaluator Update Request
Apply Strategies Request
ActiveMQ: Topics and Queues¶
GIFT uses ActiveMQ connections to handle transporting of messages between modules. For more information on ActiveMQ visit http://activemq.apache.org/.
Topics¶
Topics are used by GIFT to implement publish and subscribe semantics. A message published to a topic is delivered to all subscribers, so zero to many subscribers will receive a copy of the message. Only subscribers who had an active subscription at the time the broker receives the message will get a copy of the message.
UMS Discovery¶
The UMS discovery topic is used to obtain the address and status of available UMS modules.
Publishers
UMS
Subscribers
Domain, Monitor, Tutor
LMS Discovery¶
The LMS discovery topic is used to obtain the address and status of available LMS modules.
Publishers
LMS
Subscribers
Tutor, Monitor, Domain, UMS (for logging)
Pedagogical Discovery¶
The Pedagogical discovery topic is used to obtain the address and status of available Pedagogical modules.
Publishers
Pedagogical
Subscribers
Monitor, Domain, UMS (for logging)
Tutor Discovery¶
The Tutor discovery topic is used to obtain the address and status of available Tutor modules.
Publishers
Tutor
Subscribers
Monitor, Domain, UMS (for logging)
Tutor¶
The Tutor topic that embedded apps send game state messages to. One instance is created for each domain session that contains an embedded training application. Each instance is created by the Tutor Module when an Initialize Domain Session Request is received and is destroyed by the Domain Module when a domain session is closed.
Publishers
Tutor
Subscribers
Monitor, Domain
Learner Discovery¶
The Learner discovery topic is used to obtain the address and status of available Learner modules.
Publishers
Learner
Subscribers
Monitor, Domain, UMS (for logging)
Sensor Discovery¶
The Sensor discovery topic is used to obtain the address and status of available sensor modules.
Publishers
Sensor
Subscribers
Domain, Monitor, UMS (for logging)
Domain Discovery¶
The Domain discovery topic is used to obtain the address and status of available domain modules.
Publishers
Domain
Subscribers
Tutor, Monitor, UMS (for logging)
Gateway Discovery¶
The Gateway discovery topic is used to obtain the address and status of available Gateway modules.
Publishers
Gateway
Subscribers
Domain, Monitor, UMS (for logging)
Gateway¶
The Gateway topic is used to send GIFT simulation messages from interop plugins (e.g., DIS, VBS plugin).
Publishers
Gateway
Subscribers
Domain, Monitor, UMS (for logging)
Queues¶
Queues are used to send information from a single source to a single destination. The reader of a queue is the message recipient. GIFT uses Queues to send messages from one module to another module. Every module has a queue with the “Inbox” suffix (e.g., Sensor_Queue:192.168.1.113:Inbox) which is present in that module’s status message. The Inbox queue is used as the destination to send messages to a particular module. The modules themselves actually read messages from a queue with a similar name but without the “Inbox” suffix. This setup provides GIFT the opportunity to route messages to the message logger queue in the UMS.
Messaging¶
Overview¶
Communication between modules in GIFT is done through ActiveMQ messaging, for more information on ActiveMQ, visit http://activemq.apache.org/.
Prior to GIFT 2021-2 (Nov 2021) release GIFT sent messages formatted as JSON strings. Now GIFT uses Google protocol buffers or protobuf.
For the messages and data objects below, note the following:
Requires: This message or data object needs to also include all the properties of the required message or data object.
Assigned Value: This message or data object needs to set the indicated property to the specified value.
For the enumeration value type, use the string representation of the enumeration value
Protobuf Files¶
The GIFT protobuf (.proto) files that are used in this GIFT instance are found in the attachment:
protobufMessages.2021-2.zip
Time Stamps¶
Timestamps use UNIX (epoch) time stored as 64-bit signed integers. The Timestamp property in the GIFT Message Header should always hold an absolute timestamp of when the message was created. See http://en.wikipedia.org/wiki/Unix_time for more details.
Message Sequences¶
This section contains details about the sequence of messages for common events in GIFT execution.
Key:
S – Message Sender
R – Message Recipient
Start Domain Session
Once the learner starts a selected GIFT course, the following message sequence happens. The end of this sequence is when the first course transition is about to be handled.
Note: ACK messages are not shown.
Note: This sequence doesn't apply to a subject in an experiment starting an experiment's course. Continue reading for more details.
Message | Tutor | Domain | Sensor | Learner | Ped | Gateway | UMS | LMS | Reason |
Domain Selection Request | S | R | Tutor notifies Domain of course being loaded | ||||||
Domain Selection Request | S | R | Domain request UMS create domain session entry in database | ||||||
Domain Selection Reply | R | S | |||||||
Module Allocation Request | S | R | Domain trying to select a Pedagogical module | ||||||
Module Allocation Reply | R | S | |||||||
Module Allocation Request | S | R | Domain trying to select a Sensor module | ||||||
Module Allocation Reply | R | S | |||||||
If running in Desktop Mode: | Desktop mode doesn't use Course Initialization Instructions webpage | ||||||||
Module Allocation Request | S | R | Domain trying to select a Gateway module | ||||||
Module Allocation Reply | R | S | |||||||
otherwise running in Server mode: | Sever mode requires the learner to run a java web start jnlp application | ||||||||
Display Course Initialize Instructions | R | S | Tutor needs to display the webpage with instructions for the learner | ||||||
Processed ACK | S | R | |||||||
Once Domain Module receives Gateway module heartbeat | Indication that the learner start the java web start jnlp application | ||||||||
Module Allocation Request | S | R | Domain trying to select a Gateway module | ||||||
Module Allocation Reply | R | S | |||||||
Display Course Initialize Instructions | R | S | Update of status to the course initialization instructions webpage | ||||||
Processed ACK | S | R | |||||||
Configure Interop Connections | S | R | Domain indicating which interops need to be configured | ||||||
Processed ACK | R | S | |||||||
Display Course Initialize Instructions | R | S | Update of status to the course initialization instructions webpage | ||||||
Processed ACK | S | R | |||||||
continue common sequence | |||||||||
Module Allocation Request | S | R | Domain trying to select a Learner module | ||||||
Module Allocation Reply | R | S | |||||||
Domain Selection Reply | R | S | Notify the tutor that the Domain has completed setting up the domain session | ||||||
Instantiate Learner Request | S | R | Have the learner module create the Learner instance | ||||||
LMS Data Request | S | R | Retrieve learner records to customize the learner instance | ||||||
LMS Data Reply | R | S | |||||||
Initalize Domain Session Request | R | S | R | R | R | R | R | Synchronize and prepare all modules for course start | |
Processed ACK | S | R | S | S | S | S | S | ||
Initalize Pedagogical Model Request | S | R | Load any course specific pedagogical models | ||||||
Processed ACK | R | S | |||||||
Start Domain Session | R | S | R | R | R | R | R | Synchronize the start of the course across all modules | |
Processed ACK | S | R | S | S | S | S | S | ||
Course State | R | S | R | ||||||
course specific requests… |
Start Training Application course transition
This message sequence happens when a training application course transition is reached. The end of this message sequence is when game state messages start arriving.
- ACK messages are not shown
- The * indicates that training application game state messages can start arriving after the gateway module acknowledges that message appropriately.
Message | Tutor | Domain | Sensor | Learner | Ped | Gateway | UMS | LMS |
Course State | S | R | ||||||
Initialize Interop Connections | S | R | ||||||
Siman (load) | S | R | ||||||
Initialize Pedagogical Model Request | S | R | ||||||
Initialize Lesson Request | S | R | ||||||
Display Learner Actions Request | R | S | ||||||
Lesson Started | R(2) | S | R(1) | R(3) | ||||
Siman (start)* | S | R | ||||||
Start Resume (game state) | S | |||||||
game state messages... | ||||||||
Pre-GIFT v2014-2 (5.0) | ||||||||
Course State | S | R | ||||||
Initialize Interop Connections | S | R | ||||||
Siman (load) | S | R | ||||||
Siman (start)* | S | R | ||||||
Start Resume (game state) | S | |||||||
Initialize Lesson Request | S | R | ||||||
Display Learner Actions Request | R | S | ||||||
Initialize Pedagogical Model Request | S | R | ||||||
Lesson Started | R(2) | S | R(1) | R(3) | ||||
game state messages… |
Start Experiment
Once a subject selects to start an experiment's course, the following message sequence happens. The end of this sequence is when the first course transition is about to be handled.
Note: ACK messages are not shown.
Message | Tutor | Domain | Sensor | Learner | Ped | Gateway | UMS | LMS |
Experiment Course Request | S | R | ||||||
Module Allocation Request | S | R | ||||||
Module Allocation Reply | R | S | ||||||
Get Experiment Request | S | R | ||||||
Get Experiment Reply | R | S | ||||||
If there are surveys in the course: | ||||||||
Survey Check Request | S | R | ||||||
Survey Check Response | R | S | ||||||
New User Request | S | R | ||||||
Login Reply | R | S | ||||||
Subject Created | R | S | ||||||
Module Allocation Request | S | R | ||||||
Module Allocation Reply | R | S | ||||||
Module Allocation Request | S | R | ||||||
Module Allocation Reply | R | S | ||||||
Module Allocation Request | S | R | ||||||
Module Allocation Reply | R | S | ||||||
If running in Desktop Mode: | ||||||||
Module Allocation Request | S | R | ||||||
Module Allocation Reply | R | S | ||||||
otherwise running in Server mode: | ||||||||
Display Course Initialize Instructions | R | S | ||||||
Processed ACK | S | R | ||||||
Once Domain Module receives Gateway module heartbeat | ||||||||
Module Allocation Request | S | R | ||||||
Module Allocation Reply | R | S | ||||||
Display Course Initialize Instructions | R | S | ||||||
Processed ACK | S | R | ||||||
Configure Interop Connections | S | R | ||||||
Processed ACK | R | S | ||||||
Display Course Initialize Instructions | R | S | ||||||
Processed ACK | S | R | ||||||
Domain Selection Reply | R | S | ||||||
Instantiate Learner Request | S | R | ||||||
LMS Data Request | S | R | ||||||
LMS Data Reply | R | S | ||||||
Initalize Domain Session Request | R | S | R | R | R | R | R | |
Processed ACK | S | R | S | S | S | S | S | |
Initalize Pedagogical Model Request | S | R | ||||||
Processed ACK | R | S | ||||||
Start Domain Session | R | S | R | R | R | R | R | |
Processed ACK | S | R | S | S | S | S | S | |
Course State | S | R | ||||||
course specific requests… |
GIFT Message Header¶
ProtobufMessage.proto
Protobuf Files
GIFT Messages¶
Message Name | Message Type Enum Value | Session Type | Payload |
ACK | ACK | pre-user session, user session, domain session * | None |
Active Domain Sessions Request | ActiveDomainSessionsRequest | pre-user session | None |
Active Domain Sessions Reply | ActiveDomainSessionsReply | pre-user session | Domain Session List |
Active Knowledge Sessions Request | ActiveKnowledgeSessionsRequest | pre-user session | Knowledge Sessions Request |
Active Knowledge Sessions Reply | ActiveKnowledgeSessionsReply | pre-user session | Knowledge Sessions |
Active User Sessions Request | ActiveUserSessionsRequest | pre-user session | None |
Active User Sessions Reply | ActiveUserSessionsReply | pre-user session | User Session List |
Apply Strategies | ApplyStrateiges | domain session | Apply Strategies |
Authorize Strategies Request | AuthorizeStrateigesRequest | domain session | Authorize Strategies Request |
Branch Path History Update | BranchPathHistoryUpdate | domain session | Branch Path History |
Branch Path History Request | BranchPathHistoryRequest | domain session | Branch Path History Request |
Branch Path History Reply | BranchPathHistoryReply | domain session | Branch Path History Request |
Chat Log | ChatLog | domain session | Chat Log |
Close Domain Session Request | CloseDomainSessionRequest | domain session | Close Domain Session Request |
Collision | Collision | domain session | Collision |
Course State | CourseState | domain session | Course State |
Detonation | Detonation | pre-user session | Detonation |
Display AAR Tutor Request | DisplayAarTutorRequest | domain session | Display AAR Tutor Request |
Display Chat Window Request | DisplayChatWindowRequest | domain session | Display Chat Window Request |
Display Chat Window Update Request | DisplayChatWindowUpdateRequest | domain session | Display Chat Window Update Request |
Display Course Init Instructions Request | DisplayCourseInitInstructionsRequest | domain session | Display Course Init Instructions Request |
Display Feedback Tutor Request | DisplayFeedbackTutorRequest | domain session | Tutor User Interface Feedback |
Display Feedback Gateway Request | DisplayFeedbackGatewayRequest | domain session | String Payload – the feedback message |
Display Feedback Embedded Request | DisplayFeedbackEmbeddedRequest | domain session | String Payload – the feedback message |
Display Leaner Actions Tutor Request | DisplayLearnerActionsTutorRequest | domain session | Display Learner Actions Tutor Request |
Display Lesson Material Tutor Request | DisplayLessonMaterialTutorRequest | domain session | Display Media Collection Request |
Display Message Tutor Request | DisplayMessageTutorRequest | domain session | Display Message Tutor Request |
Display Mid-Lesson Media Tutor Request | DisplayMidLessonMediaTutorRequest | domain session | Display Mid-Lesson Media Request |
Display Survey Tutor Reply | DisplaySurveyTutorReply | domain session * | Survey Response |
Display Survey Tutor Request | DisplaySurveyTutorRequest | domain session | Survey |
Display Team Sessions | DisplayTeamSessions | pre-user session | None |
Display Guidance Tutor Request | DisplayGuidanceTutorRequest | domain session | Display Guidance Tutor Request (Base) |
Domain Options Request | DomainOptionsRequest | user session | Domain Options Request |
Domain Options Reply | DomainOptionsReply | user session * | Domain Option List |
Domain Selection Reply | DomainSelectionReply | user session * | Domain Session |
Domain Selection Request | DomainSelectionRequest | user session | Domain Selection Request |
Domain Session Start Time Request | DomainSessionStartTimeRequest | pre-user session | Integer |
Domain Session Start Time Reply | DomainSessionStartTimeRequest | pre-user session | Long |
Entity State | EntityState | pre-user session | Entity State |
Environment Control | EnvironmentControl | domain session | Environment Control |
Evaluator Update Request | EvaluatorUpdateRequest | domain session | Evaluator Update Request |
Execute OC Strategy | ExecuteOCStrategy | pre-user session | Execute OC Strategy |
Experiment Course Request | ExperimentCourseRequest | pre-user session | Experiment Course Request |
Gateway Module Status | GatewayModuleStatus | pre-user session | Gateway Module Status |
Generic Status | GenericState | domain session | Generic State |
Geolocation | Geolocation | domain session | Geolocation |
Get Experiment Request | GetExperimentRequest | domain session * | Get Experiment Request |
Get Experiment Reply | GetExperimentReply | domain session * | Data Collection Item |
Get Survey Reply | GetSurveyReply | domain session * | Survey Gift Data |
Get Survey Request | GetSurveyRequest | domain session | Get Survey Request |
Initialize Domain Session Request | InitializeDomainSessionRequest | domain session | Initialize Domain Session Request |
Initialize Embedded Connections | InitializeEmbeddedConnections | domain session | Initialize Embedded Connections |
Initialize Interop Connections | InitializeInteropConnections | domain session | Initialize Interop Connections |
Initialize Lesson Request | InitializeLessonRequest | domain session | None |
Initialize Pedagogical Model Request | InitializePedagogicalModelRequest | domain session | Initialize Pedagogical Model Request |
Instantiate Learner Request | InstantiateLearnerRequest | domain session | Instantiate Learner Request |
Interop Connections Info | InteropConnectionsInfo | domain session * | Interop Connections Info |
Kill Module | KillModule | pre-user session | None |
Knowledge Session Created | KnowledgeSessionCreated | domain session | Knowledge Session Created |
Knowledge Session Updated Request | KnowledgeSessionUpdatedRequest | domain session | Knowledge Sessions |
Learner State | LearnerState | domain session | Learner State |
Learner Tutor Action | LearnerTutorAction | Dodomain session | Learner Tutor Action |
Lesson Completed | LessonCompleted | domain session | None |
Lesson Started | LessonStarted | domain session | None |
Lesson Graded Score Request | LTILessonGradedScoreRequest | domain session | LTI Lesson Graded Score Request |
LMS Data Reply | LMSDataReply | user session * | LMS Course Records |
LMS Data Request | LMSDataRequest | user session | LMS Data Request |
Load Progress | LoadProgress | domain session | Generic State |
Login Reply | LoginReply | user session * | User Data |
Login Request | LoginRequest | user session | Login Request |
Logout Request | LogOutRequest | user session | None |
LoS Query | LoSQuery | domain session | Line of Sight Query |
LoS Result | LoSResult | domain session | Line of Sight Result |
Get Lti User Request | LtiGetUserRequest | pre-user session | LTI Get User Request |
Get Lti User Reply | LtiGetUserReply | pre-user session | LTI Get User Reply |
Get Lti Provider Url Request | LtiGetProviderUrlRequest | pre-user session | LTI Get Provider Url Request |
Get Lti Provider Url Reply | LtiGetProviderUrlReply | pre-user session | LTI Get Provider Url Reply |
Manage Membership Team Knowledge Session | Manage Membership Team Knowledge Session | domain session | Manage Membership Team Knowledge Session |
Module Allocation Reply | ModuleAllocationReply | pre-user session | Module Allocation Reply |
Module Allocation Request | ModuleAllocationRequest | pre-user session | Module Allocation Request |
Module Status | ModuleStatus | pre-user session | Module Status |
NACK | NACK | pre-user session, domain session, user session * |
NACK |
New User Request | NewUserRequest | pre-user session | User Data |
Over Dwell Violation | OverDwellViolation | pre-user session | String Payload – the GIFT username to use to lookup the violation |
Pedagogical Request | PedagogicalRequest | domain session | Pedagogical Request |
Performance Assessment | PerformanceAssessment | domain session | Performance Assessment |
PowerPoint State | PowerPointState | pre-user session | PowerPoint State |
Publish Lesson Score Request | PublishLessonScoreRequest | domain session | Publish Lesson Score Request |
Publish Lesson Score Reply | PublishLessonScoreReply | domain session | Publish Lesson Score Response |
Processed ACK | ProcessedACK | pre-user session, domain session, user session * |
None |
Processed NACK | ProcessedNACK | pre-user session, domain session, user session * |
NACK |
Rifle Shot | RifleShot | pre-user session | Rifle Shot |
Remove Entity | RemoveEntity | pre-user session | Remove Entity |
Sensor Data | SensorData | domain session | Unfiltered Sensor Data |
Sensor Status | SensorStatus | user session | Sensor Status |
Sensor File Created | SensorFileCreated | domain session | Sensor File Created |
Sensor Filter Data | SensorFilterData | domain session | Filtered Sensor Data |
SIMAN | Siman | domain session | Siman |
Simple Example State | SimpleExampleState | domain session | Simple Example State |
Start Domain Session | StartDomainSession | domain session | None |
Start Resume | StartResume | pre-user session | Start Resume |
Start Team Knowledge Session Request | StartTeamKnowledgeSessionRequest | domain session | None |
Start Team Knowledge Session Reply | StartTeamKnowledgeSessionReply | domain session | None |
Stop Freeze | StopFreeze | pre-user session | Stop Freeze |
Subject Created | SubjectCreated | user session | Subject Created |
Submit Survey Results | SubmitSurveyResults | domain session | Submit Survey Results |
SurveyCheckRequest | SurveyCheckRequest | user session | Survey Check Request |
SurveyCheckResponse | SurveyCheckResponse | user session | Survey Check Response |
TrainingAppSurveyResponse | TrainingAppSurveyResponse | user session | Survey Response |
TrainingAppSurveySubmit | TrainingAppSurveySubmit | domain session | None |
Tutor Module Status | TutorModuleStatus | pre-user session | Tutor Module Status |
TutorSurveyQuestionResponse | TutorSurveyQuestionResponse | domain session | Question Response |
Under Dwell Violation | UnderDwellViolation | pre-user session | String Payload – the GIFT username to use to lookup the violation |
User Id Request | UserIdRequest | pre-user session | String Payload – the GIFT username to use to lookup the user id |
User Id Reply | UserIdReply | pre-user session | User Data |
Vibrate Device Request | VibrateDeviceRequest | domain session | Vibrate Device |
Weapon Fire | WeaponFire | pre-user session | Weapon Fire |
Weapon State Request | VariablesStateRequest | pre-user session | Variables State Request |
Weapon State Result | VariablesStateResult | pre-user session | Variables State Result |
Web Monitor Module Status | WebMonitorModuleStatus | pre-user session | Web Monitor Module Status |
- - Fill in the proper Sequence Number for the reply.
GIFT Payloads¶
Affective State¶
AbstractLearnerState.proto
Protobuf Files
After Action Review Course Event¶
AfterActionReviewCourseEvent.proto and AbstractAfterActionReviewEvent.proto
Protobuf Files
After Action Review Survey Event¶
AfterActionReviewSurveyEvent.proto and AbstractAfterActionReviewEvent.proto
Protobuf Files
After Action Review Remediation Event¶
AfterActionReviewRemediationEvent.proto and AbstractAfterActionReviewEvent.proto
Protobuf Files
Apply Strategies¶
ApplyStrategies.proto
Protobuf Files
Apply Strategy Learner Action¶
ApplyStrategyLearnerAction.proto
Protobuf Files
Authorize Strategies Request¶
AuthorizeStrategiesRequest.proto
Protobuf Files
Branch Adaptation Strategy¶
BranchAdaptationStrategy.proto
Protobuf Files
Branch Path History¶
BranchPathHistory.proto
Protobuf Files
Branch Path History Request¶
BranchPathHistoryRequest.proto
Protobuf Files
Chat Log¶
ChatLog.proto
Protobuf Files
Clear Text Action¶
ClearTextAction.proto
Protobuf Files
Close Domain Session Request¶
CloseDomainSessionRequest.proto
Protobuf Files
Collision¶
Collision.proto
Protobuf Files
Cognitive State¶
AbstractLearnerState.proto
Protobuf Files
Course State¶
CourseState.proto
Protobuf Files
Detonation¶
Detonation.proto
Protobuf Files
Display AAR Tutor Request¶
DisplayAARTutorRequest.proto
Protobuf Files
Display Avatar Action¶
DisplayAvatarAction.proto
Protobuf Files
Display Chat Window Request¶
DisplayChatWindowRequest.proto
Protobuf Files
Display Chat Window Update Request¶
DisplayChatWindowUpdateRequest.proto
Protobuf Files
Display Course Init Instructions Request¶
DisplayCourseInitInstructionsRequest.proto
Protobuf Files
Display Guidance Tutor Request (Base)¶
AbstractDisplayGuidanceTutorRequest.proto
Protobuf Files
Display HTML Page Guidance Tutor Request¶
AbstractDisplayGuidanceTutorRequest.proto
Protobuf Files
Display Learner Actions Tutor Request¶
DisplayLearnerActionsTutorRequest.proto
Protobuf Files
Display Media Collection Request¶
DisplayMediaCollectionRequest.proto
Protobuf Files
Display Mid-Lesson Media Request¶
DisplayMidLessonMediaRequest.proto
Protobuf Files
Display Message Tutor Request¶
AbstractDisplayGuidanceTutorRequest.proto
Protobuf Files
Display Scripted Avatar Action¶
DisplayAvatarAction.proto
Protobuf Files
Display Text Action¶
DisplayTextAction.proto
Protobuf Files
Domain Option¶
DomainOption.proto
Protobuf Files
Domain Options Request¶
DomainOptionsRequest.proto
Protobuf Files
Domain Selection Request¶
DomainSelectionRequest.proto
Protobuf Files
Domain Session¶
DomainSession.proto
Protobuf Files
Domain Session List¶
DomainSessionList.proto
Protobuf Files
Entity State¶
EntityState.proto
Protobuf Files
Environment Control¶
EnvironmentControl.proto
Protobuf Files
Evaluator Update Request¶
EvaluatorUpdateRequest.proto
Protobuf Files
Data Collection Item¶
DataCollectionItem.proto
Protobuf Files
Execute OC Strategy¶
ExecuteOCStrategy.proto
Protobuf Files
Experiment Subject¶
ExperimentSubject.proto
Protobuf Files
Experiment Course Request¶
ExperimentCourseRequest.proto
Protobuf Files
Filtered Sensor¶
FilteredSensorData.proto
Protobuf Files
Gateway Module Status¶
GatewayModuleStatus.proto
Protobuf Files
Generic State¶
GenericState.proto
Protobuf Files
Get Survey Request¶
GetSurveyRequest.proto
Protobuf Files
Get Experiment Request¶
GetExperimentRequest.proto
Protobuf Files
Individual Knowledge Session¶
AbstractKnowledgeSession.proto
Protobuf Files
Initialize Domain Session Request¶
InitializeDomainSessionRequest.proto
Protobuf Files
Initialize Embedded Connections¶
InitializeEmbeddedConnections.proto
Protobuf Files
Initialize Interop Connections¶
InitializeInteropConnections.proto
Protobuf Files
Initialize Pedagogical Model Request¶
InitializePedagogicalModelRequest.proto
Protobuf Files
Instantiate Learner Request¶
InstantiateLearnerRequest.proto
Protobuf Files
Interop Connections Info¶
InteropConnectionsInfo.proto
Protobuf Files
Knowledge Session Created¶
KnowledgeSessionCreated.proto
Protobuf Files
Knowledge Sessions Request¶
KnowledgeSessionsRequest.proto
Protobuf Files
Knowledge Sessions¶
KnowledgeSessions.proto
Protobuf Files
Learner Action¶
LearnerAction.proto
Protobuf Files
Learner State¶
LearnerState.proto
Protobuf Files
Learner Tutor Action¶
LearnerTutorAction.proto
Protobuf Files
LMS Connection Info¶
LMSConnectionInfo.proto
Protobuf Files
LMS Course Record¶
LMSCourseRecord.proto
Protobuf Files
LMS Course Records¶
LMSCourseRecords.proto
Protobuf Files
LMS Data Request¶
LMSDataRequest.proto
Protobuf Files
Line of Sight Query¶
LoSQuery.proto
Protobuf Files
Line of Sight Result¶
LoSResult.proto
Protobuf Files
Located Team Member¶
AbstractTeamUnit.proto
Protobuf Files
Login Request¶
LoginRequest.proto
Protobuf Files
LTI Get User Request¶
LtiGetUserRequest.proto
Protobuf Files
LTI Get User Reply¶
LtiGetUserReply.proto
Protobuf Files
LTI Lesson Graded Score Request¶
LtiLessonGradedScoreRequest.proto
Protobuf Files
LTI Runtime Parameters¶
AbstractRuntimeParameters.proto
Protobuf Files
LTI User Id¶
LtiUserID.proto
Protobuf Files
LTI User Session Details¶
LtiUserSessionDetails.proto
Protobuf Files
Marked Team Member¶
AbstractTeamUnit.proto
Protobuf Files
Matrix of Choices Reply Weights¶
survey/MatrixOfChoicesReplyWeights.proto
Protobuf Files
Media Item¶
MediaItem.proto
Protobuf Files
Metadata Attribute Item¶
MetadataAttributeItem.proto
Protobuf Files
Mission¶
Mission.proto
Protobuf Files
Module Allocation Request¶
ModuleAllocationRequest.proto
Protobuf Files
*If the Module Type is equal to Gateway Module then the Module Type is mapped to the Gateway Module Status instead.
Module Allocation Reply¶
ModuleAllocationReply.proto
Protobuf Files
Module Status¶
ModuleStatus.proto
Protobuf Files
NACK¶
NACK.proto
Protobuf Files
Pedagogical Request¶
PedagogicalRequest
Protobuf Files
Pedagogical Requests¶
PedagogicalRequest.proto
Protobuf Files
Performance Assessment¶
PerformanceAssessment.proto
Protobuf Files
Performance State¶
PerformanceState.proto
Protobuf Files
PowerPoint State¶
PowerPointState.proto
Protobuf Files
Publish Lesson Score Request¶
PublishLessonScore.proto
Protobuf Files
Publish Lesson Score Response¶
PublishLessonScoreResponse.proto
Protobuf Files
Remove Entity¶
RemoveEntity.proto
Protobuf Files
Request Branch Adaptation¶
AbstractPedagogicalRequest.proto
Protobuf Files
Request Do Nothing Strategy¶
AbstractPedagogicalRequest.proto
Protobuf Files
Request Instructional Intervention¶
AbstractPedagogicalRequest.proto
Protobuf Files
Request Mid-Lesson Media¶
AbstractPedagogicalRequest.proto
Protobuf Files
Request Performance Assessment¶
AbstractPedagogicalRequest.proto
Protobuf Files
Request Scenario Adaptation¶
AbstractPedagogicalRequest.proto
Protobuf Files
Rifle Shot¶
RifleShotMessage.proto
Protobuf Files
Sensor Status¶
SensorStatus.proto
Protobuf Files
Sensor File Created¶
SensorFileCreated.proto
Protobuf Files
Siman¶
Siman.proto
Protobuf Files
Simple Example State¶
SimpleExampleState.proto
Protobuf Files
Start Resume¶
StartResume.proto
Protobuf Files
Stop Freeze¶
StopFreeze.proto
Protobuf Files
Strategy To Apply¶
StrategyToApply.proto
Protobuf Files
Subject Created¶
SubjectCreated.proto
Protobuf Files
Submit Survey Results¶
survey\SubmitSurveyResults.proto
Protobuf Files
Survey Check Request - Reply¶
SurveyCheckRequest.proto
Protobuf Files
Survey Check Response¶
SurveyCheckResponse.proto
Protobuf Files
Survey Context¶
survey\SurveyContext.proto
Protobuf Files
Survey Context Survey¶
survey\SurveyContextSurvey.proto
Protobuf Files
Survey Check Response - Success Response¶
SurveyCheckResponse.proto
Protobuf Files
Survey List Check Request¶
SurveyListCheckRequest.proto
Protobuf Files
Survey Item Property Value¶
survey\SurveyItemPropertyValue.proto
Protobuf Files
Survey Gift Data¶
survey\SurveyGiftData.proto
Protobuf Files
Survey Scale Score¶
survey\SurveyScorer.proto
Protobuf Files
Survey Scorer¶
survey\SurveyScorer.proto
Protobuf Files
Survey Page¶
survey\SurveyPage.proto
Protobuf Files
Survey Response¶
survey\SurveyResponse.proto
Protobuf Files
Team Knowledge Session¶
AbstractKnowledgeSession.proto
Protobuf Files
Tutor Module Status¶
TutorModuleStatus.proto
Protobuf Files
Tutor User Interface Feedback¶
TutorUserInterfaceFeedbackPayload.proto
Protobuf Files
Unfiltered Sensor Data¶
UnfilteredSensorData.proto
Protobuf Files
User Data¶
UserData.proto
Protobuf Files
User Session¶
UserSession.proto
Protobuf Files
User Session List¶
UserSessionList.proto
Protobuf Files
Variables State Request¶
VariablesStateRequest.proto
Protobuf Files
Variables State Result¶
VariablesStateResult.proto
Protobuf Files
Weapon Fire¶
WeaponFire.proto
Protobuf Files
Web Monitor Module Status¶
WebMonitorModuleStatus.proto
Protobuf Files
GIFT Enumerations¶
Arousal Level¶
Element Name | Element Value | Description |
Unknown | Unknown | |
Low | Low | |
Medium | Medium | |
High | High |
Assessment Level¶
Element Name | Element Value | Description |
Below Expectation | BelowExpectation | |
At Expectation | AtExpectation | |
Above Expectation | AboveExpectation | |
Unknown | Unknown |
Damage¶
Element Name | Element Value | Description |
SlightDamage | Slight Damage | |
ModerateDamage | Moderate Damage | |
Destroyed | Destroyed |
Detonation Result¶
Element Name | Element Value | Description |
Other | Other | |
Entity Impact | EntityImpact | |
None | None |
Domain Option Recommendation Enum¶
Element Name | Element Value | Description |
Unavailable - Other | UnavailableOther | |
Unavailable - Survey Validation | UnavailableSurveyValidation | |
Unavailable - Restricted to User | UnavailableRestrictedToUser | |
Recommended | Recommended | |
Not Recommended | NotRecommended |
Engagement Level¶
Element Name | Element Value | Description |
Unknown | Unknown | |
Low | Low | |
Medium | Medium | |
High | High |
Environment Control Enum¶
Element Name | Element Value | Description |
Overcast | Overcast | |
Fog Level 1 | FogLevel1 | |
Fog Level 2 | FogLevel2 | |
Fog Level 3 | FogLevel3 | |
Fog Level 4 | FogLevel4 | |
Rain | Rain | |
Time of Day Dusk | TimeOfDayDusk | |
Time of Day Dawn | TimeOfDayDawn | |
Time of Day Midday | TimeOfDayMidday | |
Time of Day Midnight | TimeOfDayMidnight |
Error Type¶
Element Name | Element Value | Description |
Malformed Data Error | MalformedDataError | |
User Not Found Error | UserNotFoundError | |
Database Insert Error | DBInsertError | |
Database Update Error | DBUpdateError | |
Incorrect Credentials | IncorrectCredentials | |
LMS Retrieve Error | LMSRetrieveError | |
Learner Instantiated Error | LearnerInstantiatedError | |
Domain Session Not Found Error | DomainSessionNotFoundError | |
Message Timeout Error | MessageTimeOutError | |
Operation Failed | OperationFailedError | |
Module Not Found | ModuleNotFound | |
Unhandled Message Error | UnhandledMessageError | |
Get Survey Error | GetSurveyError |
Experiment Status¶
Element Name | Element Value | Description |
Running | RUNNING | |
Paused | PAUSED | The experimenter has paused the experiment, meaning no additional subjects can start the experiment while it is in this state. |
Invalid Course | INVALID_COURSE | The course is currently invalid. This means that no additional subjects can start the experiment while the course is invalid. |
Filter Type¶
Element Name | Element Value | Description |
Raw | RAW |
Gender¶
Element Name | Element Value | Description |
Male | MALE | |
Female | FEMALE |
Learner Action Type¶
Element Name | Element Value | Description |
Explosive Hazard Spot Report | EXPLOSIVE_HAZARD_SPOT_REPORT | |
Nine Line Report | NINE_LINE_REPORT | |
Spot Report | SPOT_REPORT | |
Radio | RADIO |
Learner State Attribute Name¶
Element Name | Element Value | Description |
Engagement | Engagement | |
Understanding | Understanding | |
Arousal | Arousal | |
Long Term Excitement | LongTermExcitement | |
Short Term Excitement | ShortTermExcitement | |
Meditation | Meditation | |
Frustration | Frustration | |
Motivation | Motivation | |
Prior Knowledge | PriorKnowledge | |
Socio-Economic Status | SocioEconomicStatus | |
Locus of Control | LocusOfControl | |
Learner Ability | LearnerAbility | |
General Intelligence | GeneralIntelligence | |
Learning Style | LearningStyle |
Lesson Level¶
Element Name | Element Value | Description |
Course | Course | |
RTA | Real-Time Assessment |
Low Medium High Level¶
Element Name | Element Value | Description |
Unknown | Unknown | |
Low | Low | |
Medium | Medium | |
High | High |
Message Encoding Type¶
Element Name | Element Value | Description |
JSON | JSON | |
BINARY | BINARY |
Message Feedback Display Mode¶
Element Name | Element Value | Description |
AvatarAndText | Avatar and Text | |
AvatarOnly | Avatar Only | |
TextOnly | Text Only |
Message Type¶
Element Name | Element Value | Description |
ACK | ACK | |
Active Domain Sessions Reply | ActiveDomainSessionsReply | |
Active Domain Sessions Request | ActiveDomainSessionsRequest | |
Active User Sessions Reply | ActiveUserSessionsReply | |
Active User Sessions Request | ActiveUserSessionsRequest | |
Active Knowledge Sessions Request | ActiveKnowledgeSessionsRequest | |
Active Knowledge Sessions Reply | ActiveKnowledgeSessionsReply | |
Apply Strategies | ApplyStrategies | |
Authorize Strategies Request | AuthorizeStrategiesRequest | |
Branch Path History Update | BranchPathHistoryUpdate | |
Branch Path History Request | BranchPathHistoryRequest | |
Branch Path History Reply | BranchPathHistoryReply | |
Chat Log | ChatLog | |
Close Domain Session Request | CloseDomainSessionRequest | |
Collision | Collision | |
Configure Interop Connections | ConfigureInteropConnections | |
Course State | CourseState | |
Detonation | Detonation | |
Display AAR Tutor Request | DisplayAarTutorRequest | |
Display Chat Window Request | DisplayChatWindowRequest | |
Display Chat Window Update Request | DisplayChatWindowUpdateRequest | |
Display Feedback Tutor Request | DisplayFeedbackTutorRequest | |
Display Feedback Gateway Request | DisplayFeedbackGatewayRequest | |
Display Learner Actions Tutor Request | DisplayLearnerActionsTutorRequest | |
Display Lesson Material Tutor Request | DisplayLessonMaterialTutorRequest | |
Display Mid-Lesson Media Tutor Request | DisplayMidLessonMediaTutorRequest | |
Display Survey Tutor Request | DisplaySurveyTutorRequest | |
Display Guidance Tutor Request | DisplayGuidanceTutorRequest | |
Display Team Sessions | DisplayTeamSessions | |
Domain Module Status | DomainModuleStatus | |
Domain Options Request | DomainOptionsRequest | |
Domain Options Reply | DomainOptionsReply | |
Domain Selection Request | DomainSelectionRequest | |
Domain Selection Reply | DomainSelectionReply | |
Domain Session Start Time Request | DomainSessionStartTimeRequest | |
Domain Session Start Time Reply | DomainSessionStartTimeReply | |
Entity State | EntityState | |
Environment Control | EnvironmentControl | |
Evaluator Update Request | EvaluatorUpdateRequest | |
Experiment Course Request | ExperimentCourseRequest | |
Execute OC Strategy | ExecuteOcStrategy | |
External Monitor Config | ExternalMonitorConfig | |
Gateway Module Status | GatewayModuleStatus | |
Generic JSON State | GenericJSONState | |
Geolocation | Geolocation | |
Get Experiment Request | GetExperimentRequest | |
Get Experiment Reply | GetExperimentReply | |
Get Survey Reply | GetSurveyReply | |
Get Survey Request | GetSurveyRequest | |
Initialize Domain Session Request | InitializeDomainSessionRequest | |
Initialize Interop Connections | InitializeInteropConnections | |
Initialize Embedded Connections | InitEmbeddedConnections | |
Initialize Lesson Request | InitializeLessonRequest | |
Initialize Pedagogical Model Request | InitializePedagogicalModelRequest | |
Instantiate Learner Request | InstantiateLearnerRequest | |
Interop connections information | InteropConnectionsInfo | |
Kill Module | KillModule | |
Knowledge Session Created | KnowledgeSessionCreated | |
Knowledge Session Updated Reply | KnowledgeSessionUpdatedReply | |
Knowledge Session Updated Request | KnowledgeSessionUpdatedRequest | |
Learner Tutor Action | LearnerTutorAction | |
Learner State | LearnerState | |
Lesson Completed | LessonCompleted | |
Lesson Started | LessonStarted | |
Lesson Graded Score Request | LessonGradedScoreRequest | |
LMS Data Reply | LMSDataReply | |
LMS Data Request | LMSDataRequest | |
Load progress | LoadProgress | |
Login Reply | LoginReply | |
Logout Reply | LogoutReply | |
Logout Request | LogoutRequest | |
Line of Sight Query | LoSQuery | |
Line of Sight Result | LoSResult | |
LTI Get User Request | LtiGetUserRequest | |
LTI Get User Reply | LtiGetUserReply | |
LTI Get Provider URL Request | LtiGetProviderUrlRequest | |
LTI Get Provider URL Reply | LtiGetProviderUrlReply | |
Manage Membership Team Knowledge Session | ManageMembershipTeamKnowledgeSession | |
Module Allocation Reply | ModuleAllocationReply | |
Module Allocation Request | ModuleAllocationRequest | |
Module Status | ModuleStatus | |
NACK | NACK | |
New User Request | NewUserRequest | |
Over dwell violation | OverDwellViolation | |
Pedagogical Request | PedagogicalRequest | |
Performance Assessment | PerformanceAssessment | |
Publish Lesson Score Request | PublishLessonScoreRequest | |
Publish Lesson Score Reply | PublishLessonScoreReply | |
Processed ACK | ProcessedACK | |
Processed NACK | ProcessedNACK | |
Rifle Shot | RifleShot | |
Sensor Data | SensorData | |
Sensor Status | SensorStatus | |
Sensor File Created | SensorFileCreated | |
Sensor Filter Data | SensorFilterData | |
Siman | Siman | |
Simple Example State | SimpleExampleState | |
Start Domain Session | StartDomainSession | |
Start Resume | StartResume | |
Start Team Knowledge Session Request | StartTeamKnowledgeSessionRequest | |
Start Team Knowledge Session Reply | StartTeamKnowledgeSessionReply | |
Stop Freeze | StopFreeze | |
Subject Created | SubjectCreated | Used to indicate that a subject in an experiment was created. |
Submit Survey Results | SubmitSurveyResults | |
Survey Check Request | SurveyCheckRequest | |
Survey Check Response | SurveyCheckResponse | |
Survey Presented Notification | SurveyPresentedNotification | |
Training App Survey Response | TrainingAppSurveyResponse | |
Training App Survey Submit | TrainingAppSurveySubmit | |
Tutor module status | TutorModuleStatus | |
Tutor Survey Question Response | TutorSurveyQuestionResponse | |
User ID Request | UserIdRequest | |
User ID Reply | UserIdReply | |
Under dwell violation | UnderDwellViolation | |
Vibrate Device Request | VibrateDeviceRequest | |
Weapon Fire | WeaponFire | |
Variable State Result | VariableStateResult | |
Variable State Request | VariableStateRequest | |
Weapon State Result | WeaponStateResult | |
Weapon State Request | WeaponStateRequest | |
Web Monitor Module Status | WebMonitorModuleStatus |
Merrill Quadrant¶
Element Name | Element Value | Description |
Rule | Rule | |
Example | Example | |
Recall | Recall | |
Practice | Practice |
Metadata Attribute¶
Element Name | Element Value | Description |
IMI 1 | IMI1 | |
IMI 2 | IMI2 | |
IMI 3 | IMI3 | |
IMI4 | IMI4 | |
Visual | Visual | |
Textual | Textual | |
Visual with Text | Visual with Text | |
Video | Video | |
Animation | Animation | |
Easy Difficulty | Easy Difficulty | |
Medium Difficulty | Medium Difficulty | |
Hard Difficulty | Hard Difficulty | |
Low Control | Low Control | |
Medium Control | Medium Control | |
High Control | High Control | |
Case Study | Case Study | |
Graphic | Graphic | |
Worked Example | Worked Example | |
Multiple Choice | Multiple Choice | |
Short Response | Short Response | |
Essay Response | Essay Response | |
LSA | LSA | |
Item Response | Item Response | |
Concept Progression As Needed | Concept Progression As Needed | |
Feedback Frequency Question by Question | Feedback Frequency Question by Question | |
Feedback Frequency Following All items | Feedback Frequency Following All Items | |
Training Type Procedure Execution | Training Type Procedure Execution | |
Training Type Problem Solving | Training Type Problem Solving | |
Guidance Hints | Guidance Hints | |
Guidance Prompts | Guidance Prompts | |
Guidance Reflection | Guidance Reflection | |
Guidance Assertions | Guidance Assertions | |
Guidance Pumps | Guidance Pumps | |
Training Feedback Realtime | Training Feedback Realtime | |
Training Feedback AAR | Training Feedback AAR |
Module State¶
Element Name | Element Value | Description |
UNKNOWN | Unknown | The state is not known or not provided |
NORMAL | Normal | The module is behaving normally |
OVERLOADED | Overloaded | The module is overloaded at this time |
FAILED | Failed | The module has reached a critical failure state and is no longer executing properly. |
Module Type¶
Element Name | Element Value | Description |
UMS Module | UMS_Module | |
LMS Module | LMS_Module | |
DMS Module | DMS_Module | |
Tutor Module | Tutor_Module | |
Learner Module | Learner_Module | |
Pedagogical Module | Pedagogical_Module | |
Sensor Module | Sensor_Module | |
Gateway Module | Gateway_Module | |
Domain Module | Domain_Module | |
Monitor Module | Monitor_Module |
Operator¶
Element Name | Element Value | Description |
Less Than | LessThan | |
Greater Than | GreaterThan | |
Less Than or Equals | LessThanEquals | |
Greater Than or Equals | GreaterThanEquals | |
Equals | Equals |
Pass Fail¶
Element Name | Element Value | Description |
Pass | PASS | |
Fail | FAIL | |
Unknown | UNKNOWN | |
Incomplete | INCOMPLETE |
Performance Node State¶
Element Name | Element Value | Description |
Unactivated | UNACTIVATED | the task/concept was never active |
Active | ACTIVE | the task/concept is currently being assessed |
Deactivated | DEACTIVATED | the concept's conditions never finished but the concept is NOT currently being assessed because the ancestor task is no longer active |
Finished | FINISHED | the task/concept gracefully finished and is NOT currently being assessed |
Posture¶
Element Name | Element Value | Description |
Unused | Unused | |
Standing | Standing | |
Walking | Walking | |
Running | Running | |
Kneeling | Kneeling | |
Prone | Prone | |
Crawling | Crawling | |
Swimming | Swimming | |
Parachuting | Parachuting | |
Jumping | Jumping | |
Sitting | Sitting | |
Squatting | Squatting | |
Crouching | Crouching | |
Wading | Wading | |
Surrender | Surrender | |
Detained | Detained |
Question State¶
Element Name | Element Value | Description |
Answered Correct | AnsweredCorrect | |
Answered Wrong | AnsweredWrong | |
Skipped | Skipped | |
Unanswered | Unanswered |
Score Node Type¶
Element Name | Element Value | Description |
Graded Score Node | GradedScoreNode | |
Raw Score Node | RawScoreNode |
Sensor Attribute Name¶
Element Name | Element Value | Description |
Time | Time | |
Temperature | Temperature | |
Humidity | Humidity | |
Arousal | Arousal | |
Acceleration 3D X | Acceleration3d | |
Electro Dermal Activity | EDA | |
Long Term Excitement | LongTermExcitement | |
Short Term Excitement | ShortTermExcitement | |
Meditation | Meditation | |
Frustration | Frustration | |
Engagement | Engagement | |
ED Counter | ED_COUNTER | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Interpolated | ED_INTERPOLATED | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Raw CQ | ED_RAW_CQ | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED AF3 | ED_AF3 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan F7 | EE_CHAN_F7 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan F3 | EE_CHAN_F3 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan FC5 | EE_CHAN_FC5 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan T7 | EE_CHAN_T7 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan P7 | EE_CHAN_P7 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan O1 | EE_CHAN_O1 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan O2 | EE_CHAN_O2 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan P8 | EE_CHAN_P8 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan T8 | EE_CHAN_T8 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan FC6 | EE_CHAN_FC6 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan F4 | EE_CHAN_F4 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
EE Chan F8 | EE_CHAN_F8 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED AF4 | ED_AF4 | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Gyro X | ED_GYROX | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Gyro Y | ED_GYROY | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Timestamp | ED_TIMESTAMP | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED ES Timestamp | ED_ES_TIMESTAMP | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Function ID | ED_FUNC_ID | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Function Value | ED_FUNC_VALUE | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Marker | ED_MARKER | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
ED Sync Signal | ED_SYNC_SIGNAL | An attribute of the Emotiv EPOC neuroheadset. Refer to www.emotiv.com for more information. |
OS3D BITMASK | OS3D_BITMASK | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
OS3D FRAME COUNTER | OS3D_FRAME_COUNTER | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
OS3D RAW ACC | OS3D_RAW_ACC | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
OS3D RAW GYR | OS3D_RAW_GYR | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
OS3D RAW MAG | OS3D_RAW_MAG | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
OS3D RAW TEMP | OS3D_RAW_TEMP | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
OS3D CAL ACC | OS3D_CAL_ACC | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
OS3D CAL GYR | OS3D_CAL_GYR | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
OS3D CAL MAG | OS3D_CAL_MAG | An attribute of the Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
QUAT X | QUAT_X | A quaternion X value. |
QUAT Y | QUAT_Y | A quaternion Y value. |
QUAT Z | QUAT_Z | A quaternion Z value. |
QUAT W | QUAT_W | A quaternion W value. |
QUAT X Relative | QUAT_X_REL | A relative quaternion X value. |
QUAT Y Relative | QUAT_Y_REL | A relative quaternion Y value. |
QUAT Z Relative | QUAT_Z_REL | A relative quaternion Z value. |
QUAT W Relative | QUAT_W_REL | A relative quaternion W value. |
Dropped Packet Count | DROPPED_PACKET_COUNT | A counter for the number of dropped packets. |
Roll Degrees | ROLL_DEG | A roll value in degrees |
Pitch Degrees | PITCH_DEG | A pitch value in degrees |
Yaw Degrees | YAW_DEG | A yaw value in degrees |
Roll Relative Degrees | ROLL_DEG_REL | A roll value in degrees relative to some value |
Pitch Relative Degrees | PITCH_DEG_REL | A pitch value in degrees relative to some value |
Yaw Relative Degrees | YAW_DEG_REL | A yaw value in degrees relative to some value |
HEART RATE | HEART_RATE | An attribute of the Zephyr Technologies BioHarness sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information. |
RESPIRATION RATE | RESPIRATION_RATE | An attribute of the Zephyr Technologies BioHarness sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information. |
SKIN TEMPERATURE | SKIN_TEMPERATURE | An attribute of the Zephyr Technologies BioHarness sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information. |
POSTURE | POSTURE | An attribute of the Zephyr Technologies BioHarness sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information. |
HEAD POSE | HEAD_POSE | |
HEAD POSE ROT | HEAD_POSE_ROT | |
POSTURE TYPE | POSTURE_TYPE | |
ACTIVITY TYPE | ACTIVITY_TYPE | |
ATTENTION TYPE | ATTENTION_TYPE | |
ATTENTION VALUE | ATTENTION_VALUE | |
ENGAGEMENT TYPE | ENGAGEMENT_TYPE | |
ENGAGEMENT VALUE | ENGAGEMENT_VALUE | |
HORIZONTAL GAZE | HORIZONTAL_GAZE | |
VERTICAL GAZE | VERTICAL_GAZE | |
GAZE DIRECTION | GAZE_DIRECTION | |
LEFT HAND POSE | LEFT_HAND_POSE | |
LEFT HAND POSE ROT | LEFT_HAND_POSE_ROT | |
LEFT HAND POSE TYPE | LEFT_HAND_POSE_TYPE | |
RIGHT HAND POSE | RIGHT_HAND_POSE | |
RIGHT HAND POSE ROT | RIGHT_HAND_POSE_ROT | |
RIGHT HAND POSE TYPE | RIGHT_HAND_POSE_TYPE | |
HEAD | HEAD | |
CENTER HIP | CENTER_HIP | |
CENTER SHOULDER | CENTER_SHOULDER | |
LEFT ANKLE | LEFT_ANKLE | |
LEFT ELBOW | LEFT_ELBOW | |
LEFT FOOT | LEFT_FOOT | |
LEFT HAND | LEFT_HAND | |
LEFT HIP | LEFT_HIP | |
LEFT KNEE | LEFT_KNEE | |
LEFT SHOULDER | LEFT_SHOULDER | |
LEFT WRIST | LEFT_WRIST | |
RIGHT ANKLE | RIGHT_ANKLE | |
RIGHT ELBOW | RIGHT_ELBOW | |
RIGHT FOOT | RIGHT_FOOT | |
RIGHT HAND | RIGHT_HAND | |
RIGHT HIP | RIGHT_HIP | |
RIGHT KNEE | RIGHT_KNEE | |
RIGHT SHOULDER | RIGHT_SHOULDER | |
RIGHT WRIST | RIGHT_WRIST | |
SPINE | SPINE | |
TOP SKULL | TOP_SKULL | |
TOP RIGHT FOREHEAD | TOP_RIGHT_FOREHEAD | |
MIDDLE TOP DIP UPPER LIP | MIDDLE_TOP_DIP_UPPER_LIP | |
ABOVE CHIN | ABOVE_CHIN | |
BOTTOM OF CHIN | BOTTOM_OF_CHIN | |
RIGHT OF RIGHT EYEBROW | RIGHT_OF_RIGHT_EYEBROW | |
MIDDLE TOP OF RIGHT EYEBROW | MIDDLE_TOP_OF_RIGHT_EYEBROW | |
LEFT OF RIGHT EYEBROW | LEFT_OF_RIGHT_EYEBROW | |
MIDDLE BOTTOM OF RIGHT EYEBROW | MIDDLE_BOTTOM_OF_RIGHT_EYEBROW | |
ABOVE MID UPPER RIGHT EYELID | ABOVE_MID_UPPER_RIGHT_EYELID | |
OUTER CORNER OF RIGHT EYE | OUTER_CORNER_OF_RIGHT_EYE | |
MIDDLE TOP RIGHT EYELID | MIDDLE_TOP_RIGHT_EYELID | |
MIDDLE BOTTOM RIGHT EYELID | MIDDLE_BOTTOM_RIGHT_EYELID | |
INNER CORNER RIGHT EYE | INNER_CORNER_RIGHT_EYE | |
UNDER MID BOTTOM RIGHT EYELID | UNDER_MID_BOTTOM_RIGHT_EYELID | |
RIGHT SIDE OF CHIN | RIGHT_SIDE_OF_CHIN | |
OUTSIDE RIGHT CORNER MOUTH | OUTSIDE_RIGHT_CORNER_MOUTH | |
RIGHT OF CHIN | RIGHT_OF_CHIN | |
RIGHT TOP DIP UPPER LIP | RIGHT_TOP_DIP_UPPER_LIP | |
TOP LEFT FOREHEAD | TOP_LEFT_FOREHEAD | |
MIDDLE TOP LOWER LIP | MIDDLE_TOP_LOWER_LIP | |
MIDDLE BOTTOM LOWER LIP | MIDDLE_BOTTOM_LOWER_LIP | |
LEFT OF LEFT EYEBROW | LEFT_OF_LEFT_EYEBROW | |
MIDDLE TOP OF LEFT EYEBROW | MIDDLE_TOP_OF_LEFT_EYEBROW | |
RIGHT OF LEFT EYEBROW | RIGHT_OF_LEFT_EYEBROW | |
MIDDLE BOTTOM OF LEFT EYEBROW | MIDDLE_BOTTOM_OF_LEFT_EYEBROW | |
ABOVE MID UPPER LEFT EYELID | ABOVE_MID_UPPER_LEFT_EYELID | |
OUTER CORNER OF LEFT EYE | OUTER_CORNER_OF_LEFT_EYE | |
MIDDLE TOP LEFT EYELID | MIDDLE_TOP_LEFT_EYELID | |
MIDDLE BOTTOM LEFT EYELID | MIDDLE_BOTTOM_LEFT_EYELID | |
INNER CORNER LEFT EYE | INNER_CORNER_LEFT_EYE | |
UNDER MID BOTTOM LEFT EYELID | UNDER_MID_BOTTOM_LEFT_EYELID | |
LEFT SIDE OF CHEEK | LEFT_SIDE_OF_CHEEK | |
OUTSIDE LEFT CORNER MOUTH | OUTSIDE_LEFT_CORNER_MOUTH | |
LEFT OF CHIN | LEFT_OF_CHIN | |
LEFT TOP DIP UPPER LIP | LEFT_TOP_DIP_UPPER_LIP | |
OUTER TOP RIGHT PUPIL | OUTER_TOP_RIGHT_PUPIL | |
OUTER BOTTOM RIGHT PUPIL | OUTER_BOTTOM_RIGHT_PUPIL | |
OUTER TOP LEFT PUPIL | OUTER_TOP_LEFT_PUPIL | |
OUTER BOTTOM LEFT PUPIL | OUTER_BOTTOM_LEFT_PUPIL | |
INNER TOP RIGHT PUPIL | INNER_TOP_RIGHT_PUPIL | |
INNER BOTTOM RIGHT PUPIL | INNER_BOTTOM_RIGHT_PUPIL | |
INNER TOP LEFT PUPIL | INNER_TOP_LEFT_PUPIL | |
INNER BOTTOM LEFT PUPIL | INNER_BOTTOM_LEFT_PUPIL | |
RIGHT TOP UPPER LIP | RIGHT_TOP_UPPER_LIP | |
LEFT TOP UPPER LIP | LEFT_TOP_UPPER_LIP | |
RIGHT BOTTOM UPPER LIP | RIGHT_BOTTOM_UPPER_LIP | |
LEFT BOTTOM UPPER LIP | LEFT_BOTTOM_UPPER_LIP | |
RIGHT TOP LOWER LIP | RIGHT_TOP_LOWER_LIP | |
LEFT TOP LOWER LIP | LEFT_TOP_LOWER_LIP | |
RIGHT BOTTOM LOWER LIP | RIGHT_BOTTOM_LOWER_LIP | |
LEFT BOTTOM LOWER LIP | LEFT_BOTTOM_LOWER_LIP | |
MIDDLE BOTTOM UPPER LIP | MIDDLE_BOTTOM_UPPER_LIP | |
LEFT CORNER MOUTH | LEFT_CORNER_MOUTH | |
RIGHT CORNER MOUTH | RIGHT_CORNER_MOUTH | |
BOTTOM OF RIGHT CHEEK | BOTTOM_OF_RIGHT_CHEEK | |
BOTTOM OF LEFT CHEEK | BOTTOM_OF_LEFT_CHEEK | |
ABOVE THREE FOURTH RIGHT EYELID | ABOVE_THREE_FOURTH_RIGHT_EYELID | |
ABOVE THREE FOURTH LEFT EYELID | ABOVE_THREE_FOURTH_LEFT_EYELID | |
THREE FOURTH TOP RIGHT EYELID | THREE_FOURTH_TOP_RIGHT_EYELID | |
THREE FOURTH TOP LEFT EYELID | THREE_FOURTH_TOP_LEFT_EYELID | |
THREE FOURTH BOTTOM RIGHT EYELID | THREE_FOURTH_BOTTOM_RIGHT_EYELID | |
THREE FOURTH BOTTOM LEFT EYELID | THREE_FOURTH_BOTTOM_LEFT_EYELID | |
BELOW THREE FOURTH RIGHT EYELID | BELOW_THREE_FOURTH_RIGHT_EYELID | |
BELOW THREE FOURTH LEFT EYELID | BELOW_THREE_FOURTH_LEFT_EYELID | |
ABOVE ONE FOURTH RIGHT EYELID | ABOVE_ONE_FOURTH_RIGHT_EYELID | |
ABOVE ONE FOURTH LEFT EYELID | ABOVE_ONE_FOURTH_LEFT_EYELID | |
ONE FOURTH TOP RIGHT EYELID | ONE_FOURTH_TOP_RIGHT_EYELID | |
ONE FOURTH TOP LEFT EYELID | ONE_FOURTH_TOP_LEFT_EYELID | |
ONE FOURTH BOTTOM RIGHT EYELID | ONE_FOURTH_BOTTOM_RIGHT_EYELID | |
ONE FOURTH BOTTOM LEFT EYELID | ONE_FOURTH_BOTTOM_LEFT_EYELID | |
COLOR CHANNEL | COLOR_CHANNEL | |
DEPTH CHANNEL | DEPTH_CHANNEL |
Sensor State¶
Element Name | Element Value | Description |
Ready | READY | |
Running | RUNNING | |
Stopped | STOPPED |
Sensor Type¶
Element Name | Element Value | Description |
Temperature/Humidity | TEMP_HUMIDITY | |
GSR | GSR | |
Sinewave | SINEWAVE | |
Self Assessment | SELF_ASSESSMENT | |
Temperature Humidity Mouse Surrogate | MOUSE_TEMP_HUMIDITY_SURROGATE | |
Temperature Humidity Mouse | MOUSE_TEMP_HUMIDITY | |
Mouse Event | MOUSE_EVENT | |
Emotiv Composer | EMOTIV_COMPOSER | |
Emotiv | EMOTIV | |
VHT Multisense | VHT_Multisense | |
Kinect | KINECT | |
OS3D | OS3D | The Inertial Labs OS3D-GS orientation sensor. Refer to www.inertiallabs.com for more information. |
BioHarness | BIOHARNESS | The Zephyr Technologies BioHarness 3 sensor. Refer to http://www.zephyr-technology.com/products/bioharness-3/ for more information. |
Motivation Surrogate | MOTIVATION_SURROGATE | |
Expertise Surrogate | EXPERTISE_SURROGATE |
Shared Course Permissions¶
Element Name | Element Value | Description |
Can Take | TakeCourse | |
Can View, Copy, Export, and Take | ViewCourse | Specifies the ability to view a course in authoring mode |
Can Edit, Copy, Export, and Take | EditCourse | Specifies the ability to edit a course in authoring mode |
Siman Type¶
Element Name | Element Value | Description |
Load | Load | |
Start | Start | |
Stop | Stop | |
Pause | Pause | |
Resume | Resume |
Survey Property Key¶
Element Name | Element Value | Description |
Question Image | Question_Image | |
Question Image Position | Question_Image_Position | |
Question Image Width | Question_Image_Width | |
Is Answer Field Text Box | Is_Answer_Field_Text_Box | |
Column Options | Column_Options | |
Row Options | Row_Options | |
Column Width | Column_Width | |
Reply Option Set | Reply_Option_Set | |
Minimum Selections Required | Minimum_Selections_Required | |
Maximum Selections Allowed | Maximum_Selections_Allowed | |
Scale Image URI | Scale_Image_Uri | |
Hide Reply Option Labels | Hide_Reply_Option_Labels | |
Display Scale Labels | Display_Scale_Labels | |
Left Label | Left_Extreme_Label | |
Right Label | Right_Extreme_Label | |
Mid Point Label | Mid_Point_Label | |
Correct Answer | Correct_Answer | |
CLS Question Priority | CLS_Question_Priority | |
Use Bar Layout | Use_Bar_Layout | |
Scorers | Scorers | |
Survey Item Scales | Survey_Item_Scales | |
Answer Weights | Answer_Weights | |
Hide Survey Name | Hide_Survey_Name | |
Hide Survey Question Numbers | Hide_Survey_Question_Numbers | |
Hide Survey Page Numbers | Hide_Survey_Page_Numbers | |
Survey Next Page Button Label | Survey_Next_Page_Button_Label | |
Survey Next Page Button Label | Survey_Complete_Survey_Button_Label | |
Survey Go Back Enabled | Survey_Go_Back_Enabled | |
Randomize | Randomize | |
Help String | Help_String | |
Text | Text | |
Required | Required | |
Range | ValueBounds |
Training App Route Type¶
Element Name | Element Value | Description |
Embedded | EMBEDDED | Specifies an embedded application that resides as a web page within the Tutor User Interface |
Interop | INTEROP | Specifies an interop-based application that runs external to GIFT and communicates with GIFT through the Gateway Module |
Training Application¶
Element Name | Element Value | Description |
ARES | Augmented REalitySandtable (ARES) | |
SimpleExampleTrainingApp | Demo Application | |
DE_Testbed | Dynamic Environment Testbed | |
MobileDeviceEvents | Mobile Device Events | |
PowerPoint | PowerPoint | |
Sudoku | Sudoku | |
TC3 | Tactical Combat Casuality Care (TC3) | |
UnityEmbedded | TUI Embedded Unity | |
UnityDesktop | Unity Desktop | |
VBS | Virtual Battle Space (VBS) | |
VR-Engage | VR-Engage | |
HAVEN | Hybrid Agile Virtual Experimentation Nexus |
Question Type¶
Element Name | Element Value | Description |
Fill In The Blank | FillInTheBlank | |
Multiple Choice | MultipleChoice | |
Rating Scale | RatingScale | |
Matrix Of Choices | MatrixOfChoices | |
Slider Bar | SliderBar |
Understanding Level¶
Element Name | Element Value | Description |
Unknown | Unknown | |
Low | Low | |
Medium | Medium | |
High | High |
Version¶
Element Name | Element Value | Description |
1.0 | 1.0 | May 2012 |
2.0 | 2.0 | Nov 2012 |
3.0 | 3.0 | May 2013 |
4.0 | 4.0 | Nov 2013 |
2014-2X | 5.0 | Sept 2014 |
2014-3X | 5.1 | Dec 2014 |
2015-1 | 6.0 | June 2015 |
2016-1 | 7.0 | July 2016 |
2017-1 | 8.0 | July 2017 |
2019-1 | 9.0 | April 2019 |
2020-1 | 10.0 | April 2020 |
2021-1 | 11.0 | April 2021 |
2021-2 | 11.0 | Nov 2021 |
Weapon Control Status¶
Element Name | Element Value | Description |
Hold | Hold | |
Tight | Tight | |
Free | Free |