Types and objects
Introduction to Types and Objects
A critical first step in creating a new SmartSpace application is to design and implement your data model and object model. With SmartSpace you can create new domain-specific object types to use in building taxonomies, modeling entities and referring to real-world objects.
At the most basic level, all new types are Ubisense Objects which can be assigned two simple properties. These properties (also sometimes referred to as attributes) are a unique identifier (a name) and, where applicable, one or more space properties.
Ubisense type creation follows standard object-oriented best practice, including single and multiple inheritance. This means that new types can inherit from several different types to include all the properties of the parents, and can satisfy ‘is a’ type checking wherever types of the parent class are referred to.
As well as using Ubisense Objects, you can also create types using other Ubisense-supplied types. These are described below. In your data model, you can only use Ubisense types associated with features you have licensed.
Ubisense Types
Below are the Ubisense types and the components or features to which they belong:
Ubisense type | Description |
---|---|
Core | |
Ubisense Object | Ubisense Object is the most basic type and in the absence of any more complex types is the basis for all new data model types. This type allows you to create custom data types which have a unique name and optionally include one or many space properties allowing the type to be included in different SmartSpace spatial relations. |
Visibility | |
Sensor | Used by Visibility. Sensors created in LSC are copied to SmartSpace as type Sensor, along with the name, position and label of the sensors. |
Location rules | |
Assertion Area | Used in Robust location.
Assertion area has two main functions: to group together assertion points with the same configuration parameters and to control a set of objects which can be located at one of its assertion points. |
Assertion Point | Used in Robust location.
Assertion points report when an object is at a given place, using strong evidence, including distance from the point and the speed at which the object is moving. |
Parking Area | Used in Parking bay snapping.
Parking Area is derived from Assertion Area and inherits all spatial properties, parameters and assertions from Assertion Area; and these inherited configurations have the same function. |
Parking Bay | Used in Parking bay snapping.
Parking Bay is derived from Assertion Point and inherits all spatial properties, parameters and assertions from Assertion Point; and these inherited configurations have the same function. |
Tag Association Point | Used in Automated tag association.
During automated tag association a sequence of objects created from an external source are assigned to tags detected at a Tag Association Point. |
Room snapping | |
Building |
Used in Room snapping to group rooms and doorways. |
Doorway |
Used in Room snapping to define a space through which tags can pass between rooms. |
Room |
Used in Room snapping to define areas inside of which tags are snapped to locations. |
Paths and queues | |
Path Group | Used in Paths and queues. A Path Group is a logical grouping of paths used to determine which objects are being controlled by the path tracking location rules. |
Path Point | Used in Paths and queues. A path point is an object intended to be located exactly on a path. Creating objects based on the Path point type gives objects features to get them to snap to paths or be generated at regular intervals. |
Location quality monitoring | |
Location Quality Monitor | Used by Location quality monitoring. Base type for all quality monitor types. See Introduction to Location quality monitoring for further information. |
Distance Monitor | Used by Location quality monitoring. Base type for all distance monitor types. See Introduction to Location quality monitoring for further information. |
Base Distance Monitor | Used by Location quality monitoring. Monitor to measure the maximum distance between the current tag position and the longer-term average position, over a time interval. See Introduction to Location quality monitoring for further information. |
Jump Monitor | Used by Location quality monitoring. Monitor to detect large distances between two consecutive tag location events. See Introduction to Location quality monitoring for further information. |
Parking Distance Monitor | Used by Location quality monitoring. Monitor to measure the tag sighting distance from the tag position assuming the object is parked. See Introduction to Location quality monitoring for further information. |
Path Monitor | Used by Location quality monitoring. Base type for all path monitor types. See Introduction to Location quality monitoring for further information. |
Path Distance Monitor | Used by Location quality monitoring. Monitor to measure the distance of the tag from its expected position if the object is on the path. See Introduction to Location quality monitoring for further information. |
Path Jump Monitor | Used by Location quality monitoring. Monitor to measure the distance between consecutive tag positions assuming the tagged object is on the path. See Introduction to Location quality monitoring for further information. |
Outage Monitor | Used by Location quality monitoring. Monitor to measure the length of time between successive sightings of a tag. See Introduction to Location quality monitoring for further information. |
RFID integration | |
AngleID Recipe |
Automatically created by AngleID connect. A recipe in AngleID contains instructions to tell tag readers what to do with streams of angle readings generated when the readers detect Ubisense tags. |
LLRP Reader | Used in the LLRP interface to create type for LLRP readers you want to connect to. |
RTLS integration | |
External data connector | |
Action |
Used by External data connector. Abstract base type for all actions. |
Association Action |
Used by External data connector. Associates unassociated parsed objects with free tags from a given range. |
Cartesian Location Action |
Used by External data connector. Injects object/tag locations from Cartesian (x/y/z) data. |
Fixed Location Action |
Used by External data connector. Injects object/tag locations at a fixed position. |
GPS Location Action |
Used by External data connector. Injects object/tag locations from GPS data. |
GPS Reference Point | Used by External data connector. Used to configure GPS coordinate conversion. |
HTTP Listener Stream |
Used by External data connector. Listens for POST/PUT HTTP(S) requests. |
HTTP Request Stream |
Used by External data connector. Retrieves data via periodic HTTP(S) GET requests. |
Location Action |
Used by External data connector. Abstract base class for actions on object/tag location data. |
Location Action Zone |
Used by External data connector. Used to define inclusion/exclusion extents for location actions. |
Object Action |
Used by External data connector. Abstract base class for actions on object data. |
Object Creation Action | Used by External data connector. Creates missing SmartSpace objects to match objects from parsed data. It is recommended that you only have one Object Creation Action per External system. |
Object Tag Action |
Used by External data connector. Abstract base class for actions on object/tag data. |
Property Action |
Used by External data connector. Sets UDM property values for objects based on parsed data. |
SQL Stream |
Used by External data connector. Connects and queries external SQL systems. |
Stream |
Used by External data connector. Abstract base type for streams. |
Tag Battery Action |
Used by External data connector. Asserts tag battery status from parsed data. |
TCP Client Stream |
Used by External data connector. Connects to a TCP server socket and listens for data. |
Text Connector Stream |
Used by External data connector. Abstract base class for text connector stream. |
Text Listener Stream |
Used by External data connector. Abstract base class for text listener streams. |
Text Stream |
Used by External data connector. Abstract base class for text based streams. |
Websocket Connector Stream |
Used by External data connector. Connects to a server via websockets and listens for data. |
Zone | Used by External data connector. Used to define inclusion/exclusion extents for location actions. |
AVL/GPS connect | |
GPS Reference Point | Used by AVL/GPS connect. |
GPS Zone | Used by AVL/GPS connect. |
Web Location Source | Used by AVL/GPS connect. |
SmartSpace Developer | |
Sensor | |
Location simulation | |
Simulation Control | Used by Location simulation. Base type for all simulation control types. See Location simulation for further information. |
Simulation Behaviour | Used by Location simulation. A simulation behaviour has a set of service parameters that define how objects behave in a simulation. See Location simulation for further information. |
Simulation Lifecycle | Used by Location simulation. A simulation lifecycle has a set of service parameters that define a set of objects to be created while the lifecycle is active. See Location simulation for further information. |
Simulation Target Group | Used by Location simulation. A simulation target group is used to make random routing decisions. See Location simulation for further information. |
ACS | |
Generation2 Area |
Used to define areas for use with ACS. |
ACS Assembly Line | Parent type used with ACS. |
ACS Assembly Point | Parent type used with ACS. |
ACS Association Zone | Parent type used with ACS. |
ACS Device |
Parent type used for all ACS device types. |
ACS Disassociation Zone | Parent type used with ACS. |
ACS Event Subscription | Parent type used with ACS. |
ACS Exception | Parent type used with ACS. |
ACS External System |
Parent type used for all ACS external systems. |
ACS Ident Zone |
Parent type used for all ACS ident zones. |
ACS Object |
Parent type used for all ACS types. |
ACS Object Lifecycle | Parent type used with ACS. |
ACS Product |
Parent type used for all ACS product types. |
ACS Product Space | Parent type used with ACS. |
ACS Product Type | Parent type used with ACS. |
ACS Production Line | Parent type used with ACS. |
ACS Station |
Parent type used for all ACS assembly line station types. |
ACS Trigger Point | Parent type used with ACS. |
ACS Workspace |
Parent type used for all ACS workspace types. |
Outgoing ACS Event | Parent type used for outgoing ACS events. |
Creating a custom type and adding a space property
Types and objects are created using the SmartSpace Config application. You can find a description of the workspace for creating types and objects in Types and objects. The instructions below take you through creating a type, giving it a name, and adding a spatial property.
To create a new type, click on TYPES / OBJECTS to open the Types and objects workspace and double-click <Create new type>.
This will display the type creation dialog. At this point you must:
- Give your new Type a name.
- Decide whether you want the type to inherit from any existing types.
- Give your new type a property with which instances of the object can be uniquely identified, .i.e. a “name” or “UID” property.
- Click Save.
If you want to add a space property to your new type, select the type in the top half of the Types and properties list and double-click the <Create new property> option in the lower half.
This will pop up the property creation dialog. From here you must:
-
Give the new property a name. Because we are creating a property of type Space, it is good practice to use the term “extent” or “space” as part of the name.
-
At which is managed by you can select the service which manages this property. Accept the default option of the site-level object property data service. In general, you should accept the default, but see Ubisense Real-Time Rules: Concepts and Configuration for further information.
-
From the dropdown menu, choose Space as the property's type.
- Click Save.