Primitives
A Primitive summarizes and specifies a set of Instances. All Instances have the same member variables as their corresponding Primitive. Primitives do not need to be clared explicitly. The can be used out of the box. Currently there are 4 Primitves implemented:
- Location
- Event
- Time
- Constraint
Location
A transport is a movement of goods placed in a container (or bin) from one location to another location. Therefor we define a Location with two attributes as following:
Template Location
type = ""
name = ""
End
The attribute type represents the container (or bin) type placed on the location. The location self is named in the field name. These attributes can be later accessed inside the instances.
Location pickUpLocation
type = "Pallet"
name = "warehouse_pos1"
End
Event
Sometimes it is necessary to determine the flow control, for example when something depends on an interaction with an user action or a physiscal sensor. Therefore we introduce an Event, which can described as follows:
Template Event
name = ""
type = ""
End
An Event, has the same attributes as Location, a name and a type. The type reprents the datatype, e.g. string, numeric value (Integer, Float) or just a boolean value (True/ False).
Time
Our primitive time is linked to the UNIX cron job time. With this primitive it is able to schedule a task in the future. Of course, this 'time' value needs to be scheduled by a real schedular ;-)
Template Time
timing = ""
End
Constraint
Constraints can help to declare a set of decision variables for feasible solutions. An example for an constraint is the costs of a transport or the maximal energy consumption. This needs also to be resolved by the schedular.
Template Constraint
type = ""
End
Event- and Time-instances can be used in TriggeredBy and/or FinisheredBy statements while the Constraint is an generic item for a task.