This file is part of the OpenJAUS HTML JAUS Reference.
Please support AS-4 JAUS and SAE by purchasing the corresponding Standard Document(s) from SAE International here.

Home / MobilityServiceSet / ListManager


Version: 1.0
ID: urn:jaus:jss:mobility:ListManager
Inherits From:
extended byurn:jaus:jss:core:Management v1.1
extended byurn:jaus:jss:core:AccessControl v1.1
extended byurn:jaus:jss:core:Events v1.1
extended byurn:jaus:jss:core:Transport v1.0

The List Manager Service permits operations on a single ordered sequence of connected elements. It supports operations to add, replace or delete elements from the list, as well as querying the entire list or individual elements. Elements within the list are uniquely identified by the Element UID. The Element UID is used as an identifier only, and the value of the UID does not imply a sequence or order. When a new element is added to the list, the previous (parent) and next (child) elements are specified to denote sequencing, similar to a doubly linked list. Circular lists can be created when the last element in the list specifies the first element as a child. A list is considered valid when the following conditions are met: 1) A list must contain exactly one head element which is defined as having a previous (parent) identifier of zero (0). 2) For non-circular lists, the list must contain exactly one tail element which is defined as having a next (child) identifier of zero (0). 3) Each element must reference existing previous (parent) and next (child) elements, or zero. 4) Elements cannot be orphaned. An orphan is defined as an element that is not connected in any way to the other elements in the list. 5) The previous (parent) and next(child) reference for each element cannot point to itself. The list manager service is designed to be inherited, and is trivial on its own. Derived services should redefine isElementSupported condition as shown by example in the Global Waypoint List Driver.

Internal Event Set

Message Set
Message ID Name
041Ch ConfirmElementRequest
041Bh DeleteElement
241Ah QueryElement
241Ch QueryElementCount
241Bh QueryElementList
041Dh RejectElementRequest
441Ah ReportElement
441Ch ReportElementCount
441Bh ReportElementList
041Ah SetElement

State Machine Diagram

ListManager State Machine Diagram
State Transitions
Label Transition Trigger Conditional Actions
B ListManagerControlledLoop SetElement ( isElementSupported && isValidElementRequest ) && isControllingClient sendConfirmElementRequest , setElement
SetElement isControllingClient && !isValidElementRequest sendRejectElementRequest
SetElement !elementExists && isControllingClient sendRejectElementRequest
DeleteElement elementExists && isControllingClient deleteElement , sendConfirmElementRequest
DeleteElement isControllingClient && !elementExists sendRejectElementRequest
A ListManagerDefaultLoop QueryElement elementExists sendReportElement
QueryElementList sendReportElementList
QueryElementCount sendReportElementCount

Action Name Type Description
deleteElement Remove the specified element(s) from the list. The service should modify the NextUID of the previous element and/or the Previous UID of the next element to reflect the updated sequence.
sendConfirmElementRequest Send Action Output Message: ConfirmElementRequest
sendRejectElementRequest Send Action Output Message: RejectElementRequest
sendReportElement Send Action Send a Report Element message with the requested element.
Output Message: ReportElement
sendReportElementCount Send Action Output Message: ReportElementCount
sendReportElementList Send Action Output Message: ReportElementList
setElement Store the element(s) in the list with sequence specified by the previous and next element IDs. If this action represents an insert or append into an existing list, the service should modify the NextUID of the previous element and/or the Previous UID of the next element to reflect the updated sequence.

Copyright © SAE International. Reprinted with Permission.
Portions Copyright © OpenJAUS LLC.
The information above is generated from the JAUS Services modelled in the OpenJAUS SDK using OpenJAUS Service Studio. It is provided as a resource to assist JAUS developers and is not a substitute for the JAUS Standards Documents which may be obtained from the SAE International.

Generated on 09/11/2015 from AS6009-Mobility.ojss