Assume that the Raspberry Pi (see D.2.2) is used for an automated guided vehicle (AGV) using the Sense HAT and some motors attached through the connectors. Figure D.29 illustrates a sample FunctionalEntity representing this simplified AGV.


Figure D.29 – Sample FunctionalEntity for a simplified AGV

The Information Model offers two alternatives using a normalized value or raw data for controlling SpeedSetpoint and monitoring SpeedActual, Orientation, and Compass. Since both alternatives should not be used at the same time, two ControlGroups, ControlNormalized and ControlRaw, are added to the functional model (see Figure D.30).


Figure D.30 – ControlGroups added to the functional model

Each of the ControlGroups represents an interface provided by the FunctionalEntity to control and monitor the AGV using normalized or raw data. The interface is represented by the ListToRestrict and ListOfRelated References. By this, the InputData, OutputData, ConfigurationData, and all provided Methods belonging to the interface can be easily determined. The ListToBlock prevents the setting of specific data, for example, SpeedSetpointNormalized, when controlling the AGV with raw data. The ListToRestrict prevents usage of the Method and setting of MaxAcceleration and SpeedSetpoint from anyone except the owner when controlling the AGV.

Since ControlNormalized and ControlRaw share Variables in their ListToRestrict, usage of them at the same time is only possible with the same owner.