Vorto is an open source tool that allows to create and manage technology agnostic, abstract device descriptions, so called information models. Information models describe the attributes and the capabilities of real world devices. These information models can be managed and shared within the Vorto Information Model Repository. Code Generators for Information Models let you integrate devices into different platforms.
The IoT Tool Set lets Device Manufacturers to describe the devices using Information Models in a textual DSL editor. The editor provides several features e.g. auto completion, syntax highlighting, and content assistance.
With the Information Model Repository, Platform vendors are able to manage, share and reuse existing Information Models directly from the Tool set or via the Web.
Many technologies are available today that allow for the interconnection of devices, the management of systems of devices, and consequently the realization of solutions in the Internet of Things (IoT). However, most of the software components related to the IoT are industry-specific implementations that provide individual abstraction layers for specific groups of devices. Because of the different approaches, there is often no interoperability between the mentioned components. This in particular leads to a variety of disparate implementations related to the connectivity of one and the same device.
In the current development branch, the following functionalities have been added to the Vorto toolset to enable developers to seamlessly integrate with the Model Repository:
-
-
-
Search models in the repository
-
Share models to the repository
-
Use a shared model as reference in a local model project
-
Import a shared model to the local workspace
-
Eclipse preferences for the URL, username and password of the Model Repository.
Before we can use the toolset integration with the Model Repository, we must add the URL of the Model Repository in the preferences. We must also add the username and password if we want to be able to save models to the repository.
-
-
Setting the preferences
-
-
-
Go to Window > Preferences then choose Vorto > Remote Repository
-
Enter the URL of the Model Repository
-
Optionally, you can also enter the username and password if you want to save models to the repository.
-
-
-
-
-
Adding the Model Repository view to the workspace
-
-
There are two ways to add the Model Repository view. You can either switch to the Vorto Perspective, or you can manually add the Model Repository view to the workspace.
-
-
Switching to the Vorto perspective
-
-
Click the Vorto perspective button on the upper right corner. When the perspective change is completed, you’ll see the Model Repository view on the bottom right corner along with the Console
-
-
-
-
Manually adding the Model Repository view to the workspace
-
-
-
Go to Window > Show View > Other.
-
Look for Vorto, click on Model Repository
-
-
-
-
-
Searching for models
-
-
Searching for models is as simple as typing a filter and clicking the Search button. Without a filter, Search will return ALL models in the Model Repository.
-
-
-
-
Sharing models
-
-
After you have created your model, you can open the context menu of the project (by right clicking on it) to see the Share button. This require credentials to be entered in the Vorto preferences first.
-
-
-
-
Using shared models as references
-
-
Dragging a shared model from the Model Repository view and dropping it to a local model project will add the shared model to the list of references of the local model project. It will also download the shared model from the Model Repository to the shared folder of the local model project.
-
-
-
-
Importing a shared model to the local workspace
-
-
Dragging a shared model from the Model Repository view and dropping it to one of the three model views (Datatype Models, Function Block Models, Information Models), and not to any particular local model project will import the shared model as a project to the local workspace.
Welcome to this blogpost that explains how to develop an App using Vorto.
-
-
This App is an iOS Game that displays different moves on a Flat Screen based on the player’s movement. The player has to follow specific moves. Two TI Sensortags are tied, one on each wrist to detect whether a move is a hit or not.
-
-
Vorto provides a specific Information Model for these TI Sensortags. Based on this Information Model, the necessary Swift code is generated with an iOS Platform Generator.
-
-
-
-
The generated Code can then be integrated into the iOS App. The relevant projects are available in github and can be accessed from the following links:
Sounds unrealistic? Not really, though!! Here is a quickest way to create a web interface for your physical devices
-using Vorto. Here are the list of ingredients you need before you develop it.
- Step 3: Refer all your function blocks (temperature & humidity sensor) into your "WeatherStation" information model
- using simple drag and drop into information model.
-
-
-
-
-
-
-
- Step 4: Right click on "WeatherStation" -> Generate Code -> Web Device Application Generator.
-
-
-
-
-
-
Done! Your web application for your “Weather Station” is generated. A new web application called “weatherstation-webapp” is created in your workspace. Inorder to quickly test and see your application live, Run maven “jetty:run” from your web application that you have created. To view your web application visit
-Weather Station - Web Application
-
-
Lets explore the generated web application’s structure, technology used and customization options.
-
-
User Interface Styling:
-
-
The webapplication user inteface is built using Twitter Bootstrap which is almost defacto standard of any web application. You are free to change your application theme or develop on your own. There are plenty of free & commerical bootstrap themes available (e.g Bootswatch.com, startbootstrap.com to name a few) which can be easily replaced by changing the stylesheet in index.html.
-
-
Web Routes & Modularization:
-
Angular js provides REST controllers using angular routes module, which is used for making server calls. It makes use of html templates for modularizing the web application and provide component behaviours like tabs,navigation etc. Any angular js compatible library can be used in addition to enrich your web application.
-
-
Http Services:
-
All necessary REST service which is required for server calls is created using Jersey. The rest services are geneated under “service” package and associated models under “model” package, grouped by function blocks and information model. Your functional logic can be writtern in these service classes for appropriate behaviours.
-
-
As you can see, how easy and quick it is to generate a web interface to monitor/control your devices using Vorto. Your development time is considerably reduced so that you can focus more on building your functionality.
-
-
You need to use appropriate device library for your your device, inorder to communicate to this webapplication
-
-
To see how web application is created, watch the video
One year ago we initiated the Eclipse Vorto project, and provided initial sources that now serve as the technical basis of today’s Vorto components. Since then, we have learned a lot, gained plenty of valuable experience, and of course implemented a range of new features. Now just before the year draws to a close, we would like to review the work that has been done over the past few months and provide some ideas for the future.
A virtual meetup was held on Google Hangouts where a short overview of Vorto and its powerful components such as Vorto repository and Code generators was presented.
This blog tells how to use oomph to automate the annoying eclipse environment setup for Eclipse Vorto project. Although the depicted code is for Vorto project, the concept and procedure work for all Eclipse based project, it could be easily customized to help your own project.
-
-
-
## Why need automation? ##
-
-
Eclipse is probably the most popular free IDE platform in the world, there are a lot of open-source projects using Eclipse as their development environment. Thanks to its notable extensible plug-in design, developers are encouraged to integrate many useful third-party tools and even their own features to extend the standard Eclipse framework to meet the project requirements. However, on the other side, more and more plug-ins and thier version dependencies make Eclipse seems vunarable and causes a lot of headache for developers to setup a proper development environment. Moreover, it could be the very first but probably most effective roadblock for potential interesed developers to join an open-source project. Say Vorto :)
-
-
What is Oomph?
-
-
Oomph is an Eclipse plug-in designed to automate the installation and update of Eclipse development environment, recently it is adopted by Eclipse fundation and becomes the official Eclipse installer.
-Oomph project website provides more details. Basically, it is kind of script engine to manage Eclipse development environment installation, including Eclipse framework installation, third-party plug-ins installation, github clone, project import, project build, etc. So that users just need to set a few parameters, simple as the installation folder and should be given a complete workable environment after the installation process done.
-
-
How to make it running?
-
-
As what I mentioned, Oomph is a script engine, so we need to write a script, called setup file in context to tell (define) Oomph how to setup the needed environment.
-
-
The setup for Vorto project is a little bit challenging, because Vorto uses DSL(Domain specific language), which requires dynamically generate java source code during installation process.
-
-
-
Generate 4 java source files from xtend code using MWE2 workflows after project import (before project build);
-
Manage the sequence of MWE2 workflows due to dependency of the xtend code;
-
-
-
First, download Oomph (Eclipse installer) from Eclipse website (https://wiki.eclipse.org/Eclipse_Installer) and install it following the official instruction;
-Then we could use Oomph setup project model wizard to generate a basic tempelate for Vorto project.
-
-
-
-
The XML format setup file will be generated under (Oomph git path)/setups folder.
Bosch Corporate Research is currently conducting a research project that uses Eclipse Vorto to describe the vehicle-to-cloud interface. This blog describes how
-the key data and services required for communication at this vehicle-to-cloud interface can be represented using Vorto.
Bosch Corporate Research is currently conducting a research project that uses Eclipse Vorto to describe the vehicle-to-cloud interface. This blog describes how
-the key data and services required for communication at this vehicle-to-cloud interface can be represented using Vorto.
This blog tells how to use oomph to automate the annoying eclipse environment setup for Eclipse Vorto project. Although the depicted code is for Vorto project, the concept and procedure work for all Eclipse based project, it could be easily customized to help your own project.
A virtual meetup was held on Google Hangouts where a short overview of Vorto and its powerful components such as Vorto repository and Code generators was presented.
One year ago we initiated the Eclipse Vorto project, and provided initial sources that now serve as the technical basis of today’s Vorto components. Since then, we have learned a lot, gained plenty of valuable experience, and of course implemented a range of new features. Now just before the year draws to a close, we would like to review the work that has been done over the past few months and provide some ideas for the future.
Sounds unrealistic? Not really, though!! Here is a quickest way to create a web interface for your physical devices
-using Vorto. Here are the list of ingredients you need before you develop it.
Welcome to this blogpost that explains how to develop an App using Vorto.
-
-
This App is an iOS Game that displays different moves on a Flat Screen based on the player’s movement. The player has to follow specific moves. Two TI Sensortags are tied, one on each wrist to detect whether a move is a hit or not.
-
-
Vorto provides a specific Information Model for these TI Sensortags. Based on this Information Model, the necessary Swift code is generated with an iOS Platform Generator.
In the current development branch, the following functionalities have been added to the Vorto toolset to enable developers to seamlessly integrate with the Model Repository:
-
-
-
Search models in the repository
-
Share models to the repository
-
Use a shared model as reference in a local model project
-
Import a shared model to the local workspace
-
Eclipse preferences for the URL, username and password of the Model Repository.
Many technologies are available today that allow for the interconnection of devices, the management of systems of devices, and consequently the realization of solutions in the Internet of Things (IoT). However, most of the software components related to the IoT are industry-specific implementations that provide individual abstraction layers for specific groups of devices. Because of the different approaches, there is often no interoperability between the mentioned components. This in particular leads to a variety of disparate implementations related to the connectivity of one and the same device.
The Bosch IoT Suite M2M Connector allows the integration of the ThingWorx platform with the Bosch IoT Suite to enable fast UI development for IoT solutions.
-It leverages the Vorto interface definition language for the IoT to manage heterogeneous asset and device landscapes.
-
ProSyst provides the software stack for IoT Gateways, SDKs for integration and application development and the device management platform in the cloud.
-
The Bosch IoT Suite comprises a large number of integrated services to efficiently develop innovative and sustainable IoT applications. The M2M Toolchain uses Vorto to describe devices and use a Code Generator to generate device specific OSGI bundles for the Bosch IoT platform.
-
To find out more about which language elements are available when writing a data type DSL, have a look at the respective DSL Reference.
- Use the keyboard shortcut Ctrl + Space to get a list of available DSL elements, that can be applied in the current scope you are in.
A function block model describes a function block with its properties and behavior. For this it can contain a functionblock element (refer to Function Block) and no or several entity elements (refer to Entity).
namespace com.mycompany.fb
-version 1.0.0
-functionblock Lamp {
- displayname "Lamp"
- description "A lamp makes the environment bright"
- category demo
- configuration{
- mandatory blinking as boolean "if the lamp is currently blinking or not"
- mandatory on as boolean "if the lamp is currently switched on"
- mandatory powerConsumption as int
- "the amount of power the lamp is consuming"
- }
- fault{
- mandatory bulbDefect as boolean
- "true if the light bulb of the lamp is defect"
- }
- operations{
- blink(blinkType as int) "sets the blinking type for the lamp"
- getPowerConsumption() returns int
- "gets the amount of power being consumed by the lamp"
- isOn() returns boolean "checks if the lamp is switched on"
- off() "turns the lamp off"
- on() "turns the lamp on"
- stopBlinking() "stops the blinking of the lamp"
- toggle() "switches the lamp on or off"
- toggleWithDelay(delayInSeconds as int)
- "switches the lamp on or off with a delay of the specified seconds"
- }
- }
-
-
-
Function Block
-
-
A functionblock element describes the properties and behavior of a function block. A functionblock element contains
-
-
-
General metadata parameters (displayname, description, vendor, category, version).
The following table describes the parameters and elements of a functionblock. Mandatory parameters or elements are marked with Y in the column Mandatory
-
-
-
-
-
Parameter/Element
-
Mandatory
-
Description
-
Type
-
Examples
-
-
-
-
-
displayname
-
-
A descriptive and user friendly name of the function block.
-
String enclosed in quotation marks
-
displayname "Vending Machine"
-
-
-
description
-
-
Extra information about the function block.
-
String enclosed in quotation marks
-
description "A vending machine withdraws food or drinks"
-
-
-
category
-
Y
-
The category should be used to logically group function blocks that semantically belong to the same domain.
-
top level category (mandatory) and a sub category (optional), separated by aslash (/)
-
IAP/smarthomeindego
-
-
-
configuration
-
Y
-
Contains one or many configuration properties for the function block.
-
complex type containing properties (see grammar for Property)
-
...configuration { // properties}
-
-
-
status
-
-
Contains one or many status properties for the function block.
-
complex type (see grammar for Property)
-
...status { // properties}
-
-
-
fault
-
-
Contains one or many fault properties for the function block.
-
complex type (see grammar for Property)
-
...fault { // properties}
-
-
-
operations
-
-
Contains one or many operations for the function block.
-
complex type (see grammar for Operation)
-
...operations { // operations}
-
-
-
events
-
-
Contains one or many events for the function block.
-
complex type (see grammar for Event)
-
...events { // events go here}
-
-
-
-
-
Example
-
-
namespace com.mycompany.fb
-version 1.0.0
-functionblock Lamp {
- displayname "Lamp"
- description "A lamp makes the environment bright"
- category demo
- configuration{
- mandatory blinking as boolean "if the lamp is currently blinking or not"
- mandatory on as boolean "if the lamp is currently switched on"
- mandatory powerConsumption as int
- "the amount of power the lamp is consuming"
- }
-
- fault{
- mandatory bulbDefect as boolean
- "true if the light bulb of the lamp is defect"
- }
- events{
- defect{
- mandatory on as boolean "if on is true"
- mandatory powerConsumption as int "if powerConsumption is 0"
- }
-
- }
- operations{
- blink(blinkType as int) "sets the blinking type for the lamp"
- getPowerConsumption() returns int
- "gets the amount of power being consumed by the lamp"
- isOn() returns boolean "checks if the lamp is switched on"
- off() "turns the lamp off"
- on() "turns the lamp on"
- stopBlinking() "stops the blinking of the lamp"
- toggle() "switches the lamp on or off"
- toggleWithDelay(delayInSeconds as int)
- "switches the lamp on or off with a delay of the specified seconds"
- }
-}
-
The following table describes the property elements. Mandatory property elements are marked with Y in the column Mandatory
-
-
-
-
-
Property element
-
Mandatory
-
Description
-
Type
-
-
-
-
-
optional | mandatory
-
Y
-
Declares if the property is optional or mandatory.
-
-
-
-
multiple
-
-
Defines if the property can have more than one value.
-
-
-
-
<property_name>
-
Y
-
A descriptive name of the property.
-
String (identifier, without spaces)
-
-
-
as <type>
-
Y
-
The data type of the property.
-
Supported types:
-
-
boolean
-
dateTime
-
float
-
int
-
string
-
long
-
short
-
double
-
base64Binary
-
byte
-
-
-
-
-
<constraints>
-
-
Key value pair(s) enclosed by <>, following the pattern:<CONSTRAINT_KEYWORD value>
-
<STRLEN value>, defining the length of a string
- <MIN value>, defining the maximum of a numeric property
- <MAX value>, defining the minimum of a numeric property
- <REGEX value>, defining the regular expression pattern of the property
- <REGEX value>, defining the regular expression pattern of the string property. Value format expected should be of XML schema pattern format, e.g: [A-Z], [0-9], ([a-z][A-Z])+
-
-
-
<description>
-
-
Extra information about the property.
-
String enclosed in quotation marks
-
-
-
-
-
Examples
-
-
optional multiple products as Product
- "the products that are offered by the vending machine"
-
-optional vendingMachineIdentifier as string <STRLEN 8>
- "the id of the vending machine"
-
-mandatory positiveNum as int <MIN 0 , MAX 1111>
- "Positive numbers that is within [0 , 1111]"
-
-mandatory biggerThanInt as long <MAX 999999999999999999>
- "Value for constraint is validated according to the property type,
- in this case, Long instead of Int"
-
-mandatory deviceName as string <REGEX '[a-zA-Z][a-zA-Z][0-9]'>
- "Only allow 2 uppercase or lowercase characters and 1 digit for
- device name"
-
-
-
Operation
-
-
An operation can be seen as a function the function block can perform. Function block operations support the one-way as well as request-response operation pattern and are composed inside the operations element of a functionblock.
...
- events {
- ready {
- optional since as dateTime
- }
- }
-...
-
-
-
Entity
-
-
The entity element defines a new data type that can be referenced by the function block definition. In a function block model 0 or many entity elements can be defined (refer to Function Block Model).
This migration guide describes how to migrate projects created with Vorto version 0.1.x to 0.4.x. This document doesn’t describes about installation. For installation, please follow standard eclipse update manager.
-
-
Function Block Project migration
-
-
For example if function block “Lamp” project that was created in Vorto 0.1.x can be imported/used into Vorto 0.4.x workspace, however following are the list of changes needs to be done.
-
-
-
Vendor to namespace
-
Convention of nampespace
-
Namespace, Version positioning
-
Separation of Entity, enum sections into separate project
-
Entity and enum references in functionblock project
-
-
-
Vendor to namespace
-
In Vorto 0.4.x the “vendor” keyword is replaced by “namespace” keyword in Vorto 0.4.x version.
-
-
-
-
-
Vorto 0.1.x
-
Vorto 0.4.x
-
-
-
-
-
-
functionblock Lamp {
-
...
-
-
vendor www.bosch.com
-
-
...
-
-
...
-
}
-
-
-
namespace www.bosch.com {
-
functionblock Lamp {
-
-
...
-
...
-
...
-
-
...
-
}
-
-
-
-
-
-
Convention of namespace value
-
-
In Vorto 0.4.x the “namespace” value follows new convention which is of Java package structure like “com.bosch.fb” instead of existing url type “www.bosch.com”. However the existing url convention is still valid.
-
-
-
-
-
Vorto 0.1.x
-
Vorto 0.4.x
-
-
-
-
-
-
functionblock Lamp {
-
...
-
-
vendor www.bosch.com
-
-
...
-
-
...
-
}
-
-
-
namespace com.bosch.fb {
-
functionblock Lamp {
-
-
...
-
...
-
...
-
-
...
-
}
-
-
-
-
-
-
Namespace, Version positioning
-
-
In Vorto 0.4.x the “namespace” and “version” statement appears outside the main functionblock block.
-
-
-
-
-
Vorto 0.1.x
-
Vorto 0.4.x
-
-
-
-
-
-
functionblock Lamp {
-
...
-
-
vendor www.bosch.com
-
version 1.0.0
-
...
-
-
...
-
}
-
-
-
namespace com.bosch.fb {
-
version 1.0.0
-
functionblock Lamp {
-
-
...
-
...
-
...
-
-
...
-
}
-
-
-
-
-
-
Separate project for Entity, Enum types
-
-
In Vorto 0.4.x the entity and enum types are separated into defined into separate projects instead of defining within the same function block. The Enum and Entity wizard can help to create new projects respectively.
-
-
The entity, enum files will have additional “namespace” and “version” statement in additional to the actual definition.
-
-
-
-
-
Vorto 0.1.x
-
(in .fbmodel file in functionblock project)
-
-
Vorto 0.4.x
-
(in .type file in enum project)
-
-
-
-
-
-
-
functionblock Lamp {
-
...
-
...
-
...
-
-
...
-
...
-
}
-
enum BlinkType {
-
fast,
-
slow
-
}
-
-
-
namespace com.bosch.type
-
version 1.0.0
-
enum BlinkType {
-
fast,
-
slow
-
}
-
-
-
-
-
-
-
-
-
Vorto 0.1.x
-
(in .fbmodel file in functionblock project)
-
-
Vorto 0.4.x
-
(in .type file in entity project)
-
-
-
-
-
-
-
functionblock Lamp {
-
...
-
...
-
...
-
-
...
-
...
-
}
-
entity Color {
-
mandatory red as string "Red color value"
-
mandatory green as string "Green color value"
-
mandatory blue as string "Blue color value"
-
}
-
-
-
namespace com.bosch.type
-
version 1.0.0
-
entity Color {
-
mandatory red as string "Red color value"
-
mandatory green as string "Green color value"
-
mandatory blue as string "Blue color value"
-
}
-
-
-
-
-
-
Entity and enum references in functionblock project
-
-
In Vorto 0.4.x, in order to use the entity and enum types, it needs to be referenced explicitly referred within functionblock by “using” statement. The “using” statement has following convention using «fully qualified entity or enum type with namespace» ; «version of entity or enum type»
-
-
e.g using com.bosch.type.BlinkType;1.0.0
-
-
-
-
-
Vorto 0.1.x
-
(in .fbmodel file in functionblock project)
-
-
Vorto 0.4.x
-
(in .fbmodel file in functionblock project with references)
-
-
-
-
-
-
-
functionblock Lamp {
-
...
-
...
-
...
-
-
...
-
...
-
}
-
entity Color {
-
mandatory red as string "Red color value"
-
mandatory green as string "Green color value"
-
mandatory blue as string "Blue color value"
-
}
-
-
enum BlinkType {
-
fast,
-
slow
-
}
-
-
-
...
-
...
-
using com.bosch.type.BlinkType ; 1.0.0
-
using com.bosch.type.Color ; 1.0.0
-
functionblock Lamp {
-
...
-
...
-
...
-
-
...
-
...
-
}
-
-
-
-
-
-
Also, the entity and enum projects should have project references within the functionblock project without errors.
-
-
In Lamp Function block properties - > Project References should have all entity and enum projects checked inorder to resolve without errors within workspace.
-
-
-
-
Here is the full soruce of Lamp functionblock in Vorto 0.1.x migrated to Vorto 0.4.x.
-
-
Vorto 0.1.x Lamp.fbmodel
-
-
functionblock Lamp {
- displayname "Lamp"
- description "A lamp makes the environment bright"
- vendor www.bosch.com
- category demo
- version 1.0.0
-
- configuration {
- mandatory blinking as boolean "if the lamp is currently blinking or not"
- mandatory on as boolean "if the lamp is currently switched on"
- mandatory powerConsumption as int "the amount of power the lamp is consuming"
- }
-
- fault {
- mandatory bulbDefect as boolean "true if the light bulb of the lamp is defect"
- }
-
- events {
- ToggleEvent {
- optional previousState as string
- optional currentState as string
- }
-
- }
-
- operations {
- blink(blinkType as BlinkType) "sets the blinking type for the lamp"
- getPowerConsumption() returns int "gets the amount of power being consumed by the lamp"
- isOn() returns boolean "checks if the lamp is switched on"
- off() "turns the lamp off"
- on() "turns the lamp on"
- setColor(color as Color) "Set the color of Led"
- stopBlinking() "stops the blinking of the lamp"
- toggle() "switches the lamp on or off"
- toggleWithDelay(delayInSeconds as int) "switches the lamp on or off with a delay of the specified seconds"
- }
-
-}
-entity Color {
- mandatory red as string "Red color value"
- mandatory green as string "Green color value"
- mandatory blue as string "Blue color value"
-}
-enum BlinkType {
- fast,
- slow
-}
-
-
-
Vorto 0.4.x Lamp.fbmodel
-
-
namespace com.mycompany.fb
- version 1.0.0
- using www.bosch.com.BlinkType ; 1.0.0
- using com.mycompany.type.Color ; 1.0.0
- functionblock Lamp {
- displayname "Lamp"
- description "Function block model for Lamp"
- category demo
-
- configuration{
- mandatory blinking as boolean "if the lamp is currently blinking or not"
- mandatory on as boolean "if the lamp is currently switched on"
- mandatory powerConsumption as int "the amount of power the lamp is consuming"
- }
-
- status{
- mandatory bulbDefect as boolean "true if the light bulb of the lamp is defect"
- }
-
- fault{
- mandatory bulbDefect as boolean "true if the light bulb of the lamp is defect"
- }
-
- operations{
- blink(blinkType as BlinkType) "sets the blinking type for the lamp"
- getPowerConsumption() returns int "gets the amount of power being consumed by the lamp"
- isOn() returns boolean "checks if the lamp is switched on"
- off() "turns the lamp off"
- on() "turns the lamp on"
- setColor(color as Color) "Set the color of Led"
- stopBlinking() "stops the blinking of the lamp"
- toggle() "switches the lamp on or off"
- toggleWithDelay(delayInSeconds as int) "switches the lamp on or off with a delay of the specified seconds"
-
- }
- }
-
namespace com.bosch.type
-version 1.0.0
-entity Color {
- mandatory red as string "Red color value"
- mandatory green as string "Green color value"
- mandatory blue as string "Blue color value"
-}
-
-
-
Vorto 0.4.x - Information Models
-
-
-
-
-
-
In Vorto 0.4.x there won't be any code generators menu appear for functionblock projects. Instead the functionblocks are ecnlosed within information models and code generation menu appears only for Information model projects.
-
I Get an Error During the Installation That it Cannot Perform the Operation and is Trying for Alternative Solutions
-
-
You need to uninstall the Vorto plug-ins as well as its dependent Xbase & Xtext plug-ins (refer to Uninstalling the Vorto Plug-ins).
-
-
Should I Upgrade the Xtext Plug-in?
-
-
This is not necessary, but even if you update to the latest version of Xtext, you should be able to work smoothly, since we assume that every Xtext update is backward compatible.
-
-
General Issues
-
-
The Function Block Project Wizard Does Not Appear Under New Projects
-
-
Please make sure you are running Eclipse with Java 1.7. To check the Java version your IDE run with, proceed as follows
-
-
-
In the main menu click Help > About Eclipse.
-The About Eclipse window opens.
Locate the line beginning with java.runtime.version=1.7.*. Make sure the version start with 1.7. Otherwise you can add the line below to your eclipse.ini file to specify your Java version that should be used to launch the IDE (e.g.):
When I build a function block, the system throws an out of memory error, or returns with exit code “-1”
-
-
It is likely the build requires more memory. Build internal uses maven to generate java artifacts and first time it usually need to download a lot of dependencies and require more memory than default setting. Please add below lines to your eclipse.ini file if such error occur.
In the main menu click Help > Install new Software….
-The Install dialog opens displaying the Available Software.
-
-
Click the What is already installed? link.
-The Installation Details dialog opens.
-
-
-
-
If necessary, click the Installed Software tab.
-
Select the Software belonging to the Vorto plug-ins (refer to Installing the Vorto Plug-ins) and click the Uninstall… button.
-The Uninstall dialog opens.
-
Click Finish to uninstall the Vorto plug-ins.
-After the uninstallation is complete, the Software Updates dialog opens.
-
-
Click Yes to restart your IDE.
-After the restart, the IDE contains no Vorto group anymore (File > New > Project…).
By means of code generators, you can create information model based code artifacts which you can use in specific solutions. Vorto provides wizards to support the creation of new code generators. Example code generators are also part of the Vorto project. To implement your own code generators, please refer to the Implementing a Code Generator
-
-
The examples of the following sections explain the Code Generator concept.
A function block model contains necessary artifacts (e.g., Java representation of the model) which can be used by the M2M Agent Hub and the Central Registry at run time.
Currently, there is the following limitation:
- Although you can drop multiple function blocks in an information model, the Bosch M2M code generator considers only one function block model in an information model (namely the first).
-
-
-
-
Proceed as follows
-
-
-
In the Information Models browser, select the function block project you want to generate code for.
-
Right-click to open the context menu and click Generate Code > Bosch M2M Model Generator.
-
-The following is generated and Eclipse switches to the Java perspective:
-
-
The M2M model project (<your_function_block>-model).
-
The M2M service project (<your_function_block>-service).
-
The dummy base driver project (dummy-basedriver).
-
-
-
-
-
-
-
-
There might be some errors on the generated project. You can select the project, then right-click to open the context menu and click Maven-Update Project... to resolve the errors.
-
-
-
-
-
-
-
Please note that the default generated function block service uses the latest M2M API that exist in maven repository for dependency. If your target platform is not the latest (e.g., latest is 2.2.5 but your target platform is running 2.2.0), then you need to update the property m2m.version in the pom.xml file in your service project to your actual M2M version. Then update your project. You can check the actual M2M version used by expanding maven dependencies from your service project.
Eclipse M2E plug-in 1.5.* (can already be packaged with Eclipse Luna)
-
-
-
-
-
-
-
In order to use a repository you have to adjust the maven settings.xml file by adding a new profile.
-
-
-
-
-
-
-
-
In the Eclipse preferences (Maven > User Settings > User Settings), add the absolute path to the maven settings.xml file.
-
-
-
-
Proceed as follows
-
-
Select the information model project created (MyLightingDevice), right-click and choose Generate Code > Web Device Application Generator from the context menu.
-
-
The Web application project mylightingdevice-webapp is generated and Eclipse switches to the Java perspective.
-
-
-
-
-
-
-
-
There might be some errors on the generated project. You can select the project, then right-click to open the context menu and click Maven-Update Project... to resolve the errors.
-
-
-
-
The following items are generated:
-
-
-
POJO Java classes corresponding to the function block model created (with package com.bosch.iot.<functionblock>.model). For the purpose of simplicity, only primitive types are generated.
-
One service class that support REST operation (e.g., retrieve of device information or perform operations of the device with package com.bosch.iot.<functionblock>.service)
-
An XML file that allows the application to run as a web application.
- Web.xml
-
An html file that provides visualization of a device.
- Index.html
-
A POM file that allows the package to run the application as web application. Additionally it also contains configurations for launching the application from Eclipse using jetty server.
- pom.xml
-
-
-
Running the Generated Web Device Application
-
-
Run the generated Web device application to visualize it.
In the Package Explorer, select the Web device application project (mylightingdevice-webapp in the example). From the context menu, choose Run As > Run Configurations….
-The Run Configurations dialog opens.
-
In the configuration list on the left side, expand Maven Build and click the sub item New_configuration.
-A configuration form opens.
-
Change the entry in the Name field to, e.g., mylightingdevice_configuration.
-
In the Base directory input field, enter ${workspace_loc}/mylightingdevice-webapp.
-
In the Goals input field, enter jetty:run.
-
Click Run.
-
-Wait a few seconds for jetty server to start. Upon successfully start, message [INFO] Started Jetty Server should be displayed in the Eclipse console.
-
Open the URL http://localhost:8080/mylightingdevice-webapp/index.html in your browser to see the HTML representation of your device over Web.
-
-
-
-
Modifying the Behavior of the Generated Web Device Application
-
-
The default REST service class Switchable generated provides a service to return default properties of the lamp instance. It also provides a service to handle an operation request. However it only contains dummy log statements. If you click the On button the status of Lamp is still shown as false. The service does not update the status of the lamp instance.
-
-
Prerequisites
-
-
-
You have created an information model mapping with target platform set to “smarthome” (refer to Editing an Information Model).
-
Eclipse smart home generator is provided to generate eclipse thing types based on Vorto information model.
-
-
-
Proceed as follows
-
-
-
-
Update the service method on() of class Switchable (file SwitchableService.java) to update the device instance status.
In the main menu, click File > New > Project > Vorto > Code Generator Project.
-The New Code Generator Project dialog opens.
-
In the field Project name, enter a project name.
-
-
Click Finish.
-
-
The new plug-in projects org.eclipse.vorto.example.mygenerator and org.eclipse.vorto.example.service are now generated. All dependencies required by the new project, as well as default classes and configuration files are generated.
You have implemented the code for the plug-in project (refer to Implementing the Code).
-
-
-
Proceed as follows
-
-
-
In the Package Explorer, select the plug-in project (MyGenerator in the example).
-
From the context menu, choose Run As > Eclipse Application.
- A new Eclipse instance is started.
-
Switch to the Vorto perspective.
-
Create an information model (e.g., PhilipsHue) and select it.
-
From the context menu, choose Generate Code > Invoke MyGenerator.
-
- A new project with name PhilipsHueDevice is generated.
-
-
-
-
Runing the Example Code Generator
-
-
An example code generator is provided for you to understand code generator easier. The implementation convert all function block models in a information model to json format. Please follow below steps to run example code generator.
-
-
Proceed as follows
-
-
-
In the main menu, click File > New > Project > Vorto > Code Generator Project.
-The New Code Generator Project dialog opens.
-
In the field Project name, enter a project name. Also check the option Add Example Code Generator Project.
-
-Beside your project, an example code generator project org.eclipse.vorto.codegen.example will also be generated.
-
Create an information model (e.g., PhilipsHue).
-
Create one or more function block(s) and add it or them to the information model.
-
From the context menu, choose Generate Code > Invoke JsonGenerator.
-
-A new project with name PhilipsHueDevice is generated.
-
In the Datatype Models tab, click the data type entity you want to edit, e.g., Color.
-The DSL editor for the file Color.type opens.
-
In the DSL editor, edit the entity according to your needs.
-
-
-
Example
-
-
namespace com.mycompany.type
-version 1.0.0
-entity Color{
- mandatory r as int <MIN 0, MAX 255>
- mandatory g as int <MIN 0, MAX 255>
- mandatory b as int <MIN 0, MAX 255>
-}
-
A function block provides an abstract view on a device to applications that want to employ the devices’ functionality. Thus, it is a consistent, self-contained set of (potentially re-usable) properties and capabilities.
For more detailed concept of function block please refer to section Function Block Specification in the Vorto Developer Guide.
-
-
A function block definition is typically structured as follows:
-
-
-
Properties
-
-
Status
-
Configuration
-
Fault
-
Events
-
-
-
Services - they represent the functional operations offered by the device.
-
-
-
Creating a New Function Block
-
-
Prerequisites
-
-
-
You have started your IDE.
-
You have selected the the Vorto perspective.
-
-
-
Proceed as follows
-
-
-
-
Right-click in the Function Block Models tab and choose Create new Function Block from the context menu:
-
- Alternatively, you can click File > New > Project…. in the main menu. In the opening New Project dialog select Vorto > Function Block Model and click Next.
- The Create Function Block dialog opens.
-
-
-
-
Adjust the entries for the input fields Function Block Name, Version, Description and Project Name according to your needs and click Finish.
-The function block model DSL source file (with suffix .fbmodel) is generated and displayed in the function block editor. The file contains a complete structure according the DSL syntax with the values given in the preceding step.
-
Edit the function block project by extending the generated source file in the function block DSL editor.
-
-
Example
-
-
namespace com.mycompany.fb
-version 1.0.0
-displayname "Lamp"
-description "A lamp makes the environment bright"
-category demo
-
-functionblock Lamp {
- configuration {
- mandatory blinking as boolean "if the lamp is currently blinking or not"
- mandatory on as boolean "if the lamp is currently switched on"
- mandatory powerConsumption as int "the amount of power the lamp is consuming"
- }
-
- fault {
- mandatory bulbDefect as boolean "true if the light bulb of the lamp is defect"
- }
-
- operations {
- blink(blinkType as int) "sets the blinking type for the lamp"
- getPowerConsumption() returns int "gets the amount of power being consumed by the lamp"
- isOn() returns boolean "checks if the lamp is switched on"
- off() "turns the lamp off"
- on() "turns the lamp on"
- stopBlinking() "stops the blinking of the lamp"
- toggle() "switches the lamp on or off"
- toggleWithDelay(delayInSeconds as int) "switches the lamp on or off with a delay of the specified seconds"
- }
-}
-
Right-click in the Information Models tab and choose Create new Information Model from the context menu:
-
-The Create Information Model dialog opens:
-
-
Enter, e.g., PhilipsHue as Information Model Name.
-
Click Finish.
-The information model DSL source file (with suffix .infomodel) is generated and displayed in the information model editor. The file contains a complete structure according the DSL syntax with the values given in the preceding step.
-
Edit the information model by extending the generated source file in the information model DSL editor.
-
-
Example
-
-
-
-
Create a new function block model named Switchable and update it according the following:
-
-
namespace com.mycompany.fb
- version 1.0.0
- displayname "Switch"
- description "Function block model for Switch"
- category demo
-
- functionblock Switchable {
- status {
- optional on as boolean
- }
-
- operations {
- on()
- off()
- toggle()
- }
-
- }
-
-
-
-
Create a new function block model named ColorLight, drag and drop the entity model Color from Data Types into this funciton block model, and update it according the following:
-
-
namespace com.mycompany.fb
- version 1.0.0
- displayname "ColorLight"
- description "A light makes the environment bright and colorful"
- category hue
- using com.mycompany.type.Color ; 1.0.0
-
- functionblock ColorLight {
- configuration {
- optional brightnessLevel as int
- optional defaultColor as Color
- }
-
- fault {
- mandatory bulbDefect as boolean "true if the light bulb of the lamp is defect"
- }
-
- operations {
- setR(r as int)
- setG(g as int)
- setB(b as int)
- }
-
- }
-
-
-
Drag and drop the two created and edited function blocks from the Function Block Models tab into the information model MyLightingDevice in the Information Models tab to create the reference.
-
-
-
Update the information model according the following:
-
-
namespace com.mycompany
- version 1.0.0
- displayname "PhilipsHue"
- description "Information model for PhilipsHue"
- category demo
- using com.mycompany.fb.Switchable ; 1.0.0
- using com.mycompany.fb.ColorLight ; 1.0.0
-
- infomodel MyLightingDevice {
-
- functionblocks {
- switchable as Switchable
- colorlight as ColorLight
- }
- }
-
You have followed previous steps to create Entity, Function Block, and Information models.
-
You have selected the Java perspective.
-
-
-
Define a Entity Mapping
-
In entity mapping, you can define mapping rules for entity types.
-Proceed as follows
-
-
-
-
Select data type project Color.
-
-
-
Right click and choose Vorto->Create new Mapping Model
-The Create Mapping Model dialog opens.
-
-
-
Enter a name for your target platform, e.g., MyIOTPlatform, and click Finish, a new mapping file will be created under folder src/mappings/
-
-
-
Edit the mapping file according to your needs.
-
-
-
-
Example of an entity mapping file
-
-
namespace com.mycompany
- version 1.0.0
- displayname "Color_MyIOTPlatform"
- description "Color to MyIOTPlatform mapping"
- using com.mycompany.type.Color ; 1.0.0
-
- entitymapping Color_MyIOTPlatform {
- targetplatform MyIOTPlatform
-
- from Color.version
- to MyColor with { Revision : "Rev-" }
-
- from Color.r, Color.g, Color.b
- to MyColor with { r : "Red", g : "Green", b : "Blue" }
- }
-
-
-
-
-
Define a Function Block Mapping
-
In function block model mapping, you can define mapping rules for function block model attributes, as well as detailed function block properties, and data types used in function blocks.
-
-
Proceed as follows
-
-
In function block mapping, you can define mapping rules for function blocks.
-Proceed as follows
-
-
-
-
Select data type project ColorLight.
-
-
-
Right click and choose Vorto->Create new Mapping Model
-The Create Mapping Model dialog opens.
-
-
-
Enter a name for your target platform, e.g., MyIOTPlatform, and click Finish, a new mapping file will be created under folder src/mappings/
-
-
-
Edit the mapping file according to your needs.
-
-
-
-
Example of a function block mapping file
-
-
namespace com.mycompany
- version 1.0.0
- displayname "ColorLight_MyColorLight"
- description "ColorLight to MyColorLight mapping"
- using com.mycompany.fb.ColorLight ; 1.0.0
- using com.mycompany.Color_MyIOTPlatform ; 1.0.0
-
- functionblockmapping ColorLight_MyIOTPlatform {
- targetplatform MyIOTPlatform
-
- from ColorLight.displayname
- to TargetDisplayName
-
- from ColorLight.configuration.defaultColor
- to reference Color_MyIOTPlatform
-
- from ColorLight.operation.setR, ColorLight.operation.setG, ColorLight.operation.setB
- to channelType with { Attribute : "color" }
- }
-
-
-
-
-
Define an Information Model Mapping
-
In information model mapping, you can define mapping rules for information model attributes, as well as detailed function block properties for each function block variable, and data types used in function blocks.
-
-
Proceed as follows
-
-
-
-
Select data type project MyLightingDevice.
-
-
-
Right click and choose Vorto->Create new Mapping Model
-The Create Mapping Model dialog opens.
-
-
-
Enter a name for your target platform, e.g., MyIOTPlatform, and click Finish, a new mapping file will be created under folder src/mappings/
-
-
-
Edit the mapping file according to your needs.
-
-
-
-
Example of an information model mapping file
-
-
namespace com.mycompany
-version 1.0.0
-displayname "MyLightingDevice_MyIOTPlatform"
-description "MyLightingDevice to MyIOTPlatform mapping"
-using com.mycompany.MyLightingDevice ; 1.0.0
-using com.mycompany.ColorLight_MyIOTPlatform ; 1.0.0
-
-infomodelmapping MyLightingDevice_MyIOTPlatform {
- targetplatform MyIOTPlatform
-
- from MyLightingDevice.displayname
- to TargetDisplayName
-
- from MyLightingDevice.switchable
- to MySwitch with { Icon : "switch.png" }
-
- from MyLightingDevice.colorlight
- to reference ColorLight_MyIOTPlatform
-}
-
The Vorto plug-ins are available on the Eclipse update site server. The URL to the server is http://download.eclipse.org/vorto/update/milestones. You must add this repository to your IDE or, alternatively, import the Vorto plug-in zip archive to get the Vorto plug-ins.
-
-
Proceed as follows
-
-
-
Start your IDE (Eclipse Luna or later).
-
In the main menu, click Help > Install new Software….
-The Install dialog opens displaying the Available Software.
-
Click the selection button of the Work with selection list field to check if the Vorto plug-ins repository is already present.
-
-If the Vorto plug-ins repository URL is displayed in the expanding list, you can end the procedure here.
-Otherwise proceed with the next step.
-
Add the Vorto plug-ins repository URL:
-a. Click the Add… button beside the Work with field. The Add Repository dialog opens.
-b. Enter a Name (optionally, e.g., Vorto).
-c. Enter the Vorto plug-ins repository URL http://download.eclipse.org/vorto/update/milestones into the Location field.
-d. Click OK.
-
-
-
In the Install dialog, the available software list is updated and now contains the software found in the added repository and in the installed archive, respectively.
-
-
-
-
-
-
The update of the available software list may take a while.
If not yet done click Help > Install new Software… in the main menu.
-The Install dialog opens displaying the Available Software.
-
In the Work with selection list, select the entry with the Vorto plug-ins URL.
-
-The Available Software list is updated.
-
In the Available Software list, select Vorto.
-All containing software parts (features) are checked.
-
-
Click Next to verify the installation of Vorto plug-ins and its dependencies.
-The Install dialog now displays the Install Details.
-
-
Click Next.
-The Install dialog now displays the Review Licenses.
-
-
Select I accept the terms of the license agreements and click Finish.
-The software is being installed.
-
If the Security Warning dialog opens click OK.
-After the installation is complete the Software Updates dialog opens.
-
-
-
Click Yes to restart the your IDE.
-After the restart the IDE contains the Vorto project group with several new project wizard items (File > New > Project…).
-
-
-
-
-
-
-
-
-
-
In case the installation is unsuccessful, uninstall the previous version of the Vorto and install it again.
-
-
-
-
-
Upgrading the Vorto Plug-ins
-
-
This section lists the steps required to upgrade the Vorto plug-ins.
-
-
Prerequisites
-
-
-
You have a working installation of the previous version of the Vorto plug-ins.
-
This assumes that your IDE version is in the Vorto supported versions, and stable releases of Xtext and M2E have been installed (for more information refer to System Requirements).
-
You have started your IDE.
-
-
-
Proceed as follows
-
-
-
Click Help > Install new Software… in the main menu.
-The Install dialog opens displaying the Available Software.
-
In the Work with selection list, select the entry with the Vorto plug-ins URL.
-The Available Software list is updated.
-
In the Available Software list, select Vorto.
-All containing software parts (features) are checked.
-
Click Next to verify the installation of Vorto plug-ins and its dependencies.
-The Install dialog now displays the Install Details.
-
If the plug-ins are up-to date the Finish button remains inactive. End here by clicking Cancel.
-
Otherwise, click Next.
-The Install dialog now displays the Review Licenses.
-
Select I accept the terms of the license agreements and click Finish.
-The software is being installed.
-
If the Security Warning dialog opens click OK.
-After the installation is complete the Software Updates dialog opens.
Vorto is an open source tool that allows for creating and managing technology agnostic, abstract device descriptions, so called information models. Information models describe the attributes and the capabilities of real world devices. These information models can be managed and shared within the Vorto repository. In addition Vorto provides a code generator extension point where code generators can be plugged in.
-
-
Standardization organizations and industry consortia work hard on device abstraction related standards. Some of them are domain specific, some are very generic, and all of them are useful for a large number of use cases. However in most cases there is no tooling available that allows for creating and managing standard conform device representations. It is also the case that many standards are very complex and it is not easy to validate existing abstract representations of devices against the standard.
-
-
The Vorto project is an approach to leverage the standardization of so called Information Models. Information models are abstract representations of real world devices following a meta information model which is also part of the project. The meta information model shall be very flexible and easy to use. In addition, the project scope includes an eclipse based toolset that allows for creating information models, a repository for finding, managing and sharing information models, and last but not least a set of code generators that allow for the creation of information model based code artifacts to be employed in specific solutions.
-
-
-
-
Features
-
-
Vorto allows the user to create the following:
-
-
Datatypes
-Vorto provides a facility to create a new data type (Entity or Enum). You can use auto-completion and validation to update data types.
-
-
Function block model
-Vorto provides a facility to create a function block model project containing all necessary resources.
-
-
Information model
-Information models represent the capabilities of a particular type of device in its entirety. An information model contains one or more function blocks. Vorto allows to create an information model project and all required resources.
-
-
Mapping model
-Vorto provides a facility to create a mapping model from existing Datatype, Function block, or Information models.
-
-
Generate code
-Vorto provides a facility to create information model based code artifacts which you can use in specific solutions by choosing a suitable generator from the list of existing generators or allows the user to implement/create his own code generator
-
-
DSL editors
-The new Domain-specific Language (DSL) is a simple way to define and read datatype models, function block models and information models without the need to understand XML, XSD or even Java. On-the-fly auto-completion and validation lets you create the named models even faster than ever.
-
-
-
Datatype model DSL editor:
-
-
-
-
-
-
Function block model DSL editor:
-
-
-
-
-
-
Information model DSL editor:
-
-
-
-
-
-
Mapping model DSL editor:
-
-
-
Vorto provides Mapping DSL editor for user to create customized mapping that map a vorto model to another platform model.
-
-
Vorto perspective
-The Vorto perspective as a new Eclipse perspective simplifies the view and, thus, the work with the more abstract models.
-
-
-
-
Example code generators
-Vorto provides several code generators, so that the user can generate code based on the select information model. Vorto also provides a code generator extension point, so that the user can create his own code generator.
-
-
-
-
Significant Contribution
-
-
The Vorto project considers the following contributions as significant contribution:
-
-
-
Giving technical input to the Vorto Meta Information Model that leads to an update of the current ecore model.
-
Giving input to the project that leads to a high prioritized bug in Github Issues.
-
Implementing and contributing a new Vorto code generator to the project.
-
Fixing a bug that is considered as critical.
-
Implementing a complex feature.
-
-
-
If you satisfy our requirements for significant contribution, email your logo to vorto-dev@eclipse.org to get added to our homepage.
-
-
System Requirements
-
-
For the use of the Vorto plug-ins the following software requirements must be met:
Validity period will endure at the most as long as the version of infrastructure software of third party manufacturers defined in this document (Operating Systems, Java, etc.) is publicly and officially supported. We support the most recent patch releases of the respective software product version.
Configure Information Model Repository in preferences
-
-
-
-
Overview
-
-
In this tutorial, you are going to implement a web application for the information model through a series of steps.
-The webapplication that is going to communicate with mqtt client will appear as shown below:
-
-
-
Let’s begin!
-
-
Step 1: Implement MQTT client for functionblocks
-
-
-
From eclipse, switch to Vorto perspective.
-
Select Model Repository tab, Search for the info model TI_Sensor
-
TI_SensorTag info model gets listed in the search result.
-
Drag and drop this infomodel into the infomodel frame
-
-
Select the info model -> Right-click -> Generate Code -> choose MQTT Generator
-
-
Switch back to java perspective. The generated project will not compile, since it requires some Java model classes for the device.
-
Switch back to the Vorto Repository and Generate also the Javabeans for the TI SensorTag
-
-
Update mqtt and javabeans project. The MQTT Client project should fully compile now.
-
-
Congratulations! You have just generated a MQTT client for the functionblocks, offered as functionality by the TI SensorTag.
-
-
-
-
Step 2: Implement a Web Application for the information model
-
-
In this exercise we are making our IoT app a little more sophisticated and display the MQTT sensor data in web UI Elements.
-
-
-
Switch to the Vorto Perspective and find the TI SensorTag information model.
-
Right-click and choose Web UI Generator from the list of Generators
-
Switch back to the Java Perspective. You should see another Eclipse Project added by the Web UI Generator (webdevice.example)
-
-
Convert this Project to an Eclipse Project as well. The Web application is a Spring Boot application and already fully runnable.Run the application.
-
-
-
-
Open your browser under [http://localhost:8080/webdevice]
-
-
In the web application, switch to the Accelerometer tab. You will see status fields that have been generated from the Accelerometer functionblock.
-
-
-
-
Congratulations! You just implemented a small AngularJS web application with the help of Vorto. However the Accelerometer UI fields are not yet populated with the sensor data. Let’s do that in the next exercise.
Take note of the Publish and Subscribe keys generated under Demo Keyset screen of PubNub.
-
-
-
Step 4: Receive MQTT status events and bind it to the Web UI Elements
-
-
In this exercise we are going to glue the Web application together with the MQTT client, that Vorto had so nicely generated for us.
-
-
-
-
In the pom.xml of the web application, add a dependency to the generated MQTT client
-
-
-
Go to the Spring Boot Application class and import the MQTT configuration for the Accelerometer (@Import (MqttConfigurationAccelerometer.class)).
-
Find the commented code that handles the incoming MQTT events and un-comment it.
-
Remove the annotation @EnableScheduling
-
-
-
Edit MqttConfigurationAccelerometer.java by adding the following lines to inboundAccelerometer method
-
-
MqttPahoMessageDrivenChannelAdapter adapter = new MqttPahoMessageDrivenChannelAdapter(this.connectionUrl, "pub-c-xxxx/sub-c-xxxx/clientAccelerometer_00c740db-9245-4e5a-8c80-8a50908ee69f");
-adapter.addTopic(this.topicName);
-
-
-
-
The MQTT configuration of the Accelerometer requires the MQTT topic and connection url in order to receive status events properly. Therefore we must add the following configuration to the application.yml file
Vorto Command Line Interface (CLI) tool is REST-Client that allows you, to access your specified repository with all Vorto related functionalities.
-
-
Basic Structure
-
-
The CLI-Tool is based on a simple structure.
-
-
It consists of a Command Line Interface as well as a .yaml file, that stores all necessary configuration properties like Username, Password, Proxy and Repository.
-
-
Installation
-
-
First of all, you have to download the CLI Tool from the download page and save it to any working directory.
-
-
A very convenient way to use the CLI Tool is, to add the path of the directory into the system’s environment PATH variable. Once you did this, you can call the CLI-Tool from any directory.
-
-
-
-
Before you can use the CLI Tool as a REST Client, you need to initialize basic preferences. The preferences are stored in a C:\Users\{$username}\.vortocli.yaml.file, which is located in your home directory.
-
-
You have to setup vorto via vorto config. If you want to initialize vorto with additional values (or change them afterwards) like -username, -password, -proxy and -repo, then you can extend the vorto config command with four additional flag parameters -username, -password, -proxy and -repo, or you can edit the .vortocli.yaml file via text editor.
-
-
vorto config -username andreas -password test1234 -repo http://vorto.eclipse.org/repo
-
-
-
Congratulations! - Setup is done and you are now able to use the Vorto CLI Tool.
-
-
-
-
CLI Commands
-
-
Now let’s continue how you can really gain a benefit from the CLI Tool.
-
-
The Vorto CLI Tool provides a scope of seven different Vorto Commands to interact with your specified Repository.
-
-
Each of them is based on a similar structure and offers a unique functionality.
-
-
vorto [command] [-flag1 parameter1 -flag2 parameter2 ... ]
-
-
-
-
-
-
Command
-
Description
-
Example
-
-
-
-
-
vorto config
-
With the vorto config command you do the basic CLI Tool setup. Additional flag parameters:
vorto config -username andreas -password test1234 -repo http://vorto.eclipse.org/repo
-
-
-
vorto help
-
To get more familiar with the CLI Tool commands, it's a good approach to call the vorto help command. vorto help lists you all other possible commands, including flag parameters and examples.
-
vorto help
-
-
-
vorto query
-
After everything is successfully setup, you are able to access the Repository. Via vorto query you can query all models of your Repository. The result of this command contains all models in the Repository.
-
vorto query "*"
-
-
-
vorto info
-
If you are now interested in a certain model and you want to get more information from this specific model, you can use vorto info to get it. The result of this command is a detailed view of the requested model.
-
vorto info examples.informationmodels.sensors.TI_SensorTag_CC2650:1.0.0
-
-
-
vorto download
-
Furthermore you can start working with a certain model locally, when you download it via vorto download. To open and to work with it, you can use any text editor to modify this certain model and you can even upload it again. Via the flag -outputPath can you specify a download directory. Additional flag parameters:
output - (Default: DSL)
outputPath - path to store the download (Default: current directory)
includeDependencies - whether to include dependencies or not (Default: false)
-
vorto download examples.informationmodels.sensors.TI_SensorTag_CC2650:1.0.0 -outputPath D:\models
-
-
-
vorto generators
-
If you want to generate platform specific code, you can get a short overview of all active code generators via vorto generators.
-
vorto generators
-
-
-
vorto generate
-
Afterwards you can generate vorto generate your platform specific code (specified by -generatorKey) in a very convenient way. Additional flag parameters:
generatorKey
outputPath
-
vorto generators
-
-
-
vorto share
-
Additionally to all this access functionality, you are also able to share your models. Therefore you either have to deposit your credentials in the .vortocli.yaml file or you have to pass them as additional parameters.
- Additional flag parameters:
username - vorto username credentials (Default: value in .vortocli.yaml)
password - vorto password credentials (Default: value in .vortocli.yaml)
-
vorto share D:\Models\ TI_SensorTag_CC2650\src\models\ TI_SensorTag_CC2650.infomodel vorto share D:\Models\ TI_SensorTag_CC2650\src\models\ TI_SensorTag_CC2650.infomodel -username andreas -password test1234
You can generate code from shared information models in the Vorto Repository. The code generation is carried out in the Vorto Repository backend. You can choose a desired generator from a list of available generators provided in the Vorto Repository.
-
-
Prerequisites
-
-
-
The information model you want to generate code from exists in the Vorto Repository.
-
You have started Eclipse.
-
You have selected the Vorto perspective with the Model Repository view.
-
-
-
Proceed as follows
-
-
-
In the Model Repository view, search for the information model you want to generate the code from by entering an appropriate search string in the Search entry field and clicking the Search button.
-
Select the information model you want to generate code from, right-click and choose Generate Code from the context menu.
-
-The Generator Overview dialog opens.
-
-
Choose the desired code generator for generating the souce code and click the corresponding Generate button.
-The code is generated.
-
Select the Java perspective to check the generated code.
-
-
-
Generating Code from Your Local Workspace
-
-
You can generate code from information models in your local workspace. The code generation is carried out locally on your computer. You can choose one of the code generators which have been installed along with the Eclipse Vorto plug-ins.
-
-
Prerequisites
-
-
-
The information model you want to generate code from exists in your local workspace.
-
You have started Eclipse.
-
You have selected the Vorto perspective.
-
-
-
Proceed as follows
-
-
-
In the Information Models browser, select the information model you want to generate code from.
-
Right-click to open the context menu click Generate Code, Choose a code generator and click it.
-
-Depending on the code generator several files are generated. Eclipse switches to the Java perspective where you can check the generated files.
You can search for an existing model in the repository and use this shared model as reference in a local model project.
-
-
Prerequisites
-
-
-
You have set the required preferences for accessing the Vorto Repository out of Eclipse (refer to Setting Required Preferences).
-
You have started Eclipse.
-
You have selected the Vorto perspective with the Model Repository view.
-
-
-
Proceed as follows
-
-
-
In entry field of the Model Repository view, enter a search string to find the item you want, e.g., temperature to find models relating temperature.
-
Click the Search button.
-The model table is updated according to the filter criteria and displays a subset of all models now.
-
-
-
-
-
-
-
-
If you leave the entry field empty, you will get all models available in the Vorto Repository.
-
-
-
-
-
Previewing a Model
-
-
Prerequisites
-
-
The model table displayes the model(s) you want to preview (refer to Searching Models).
-
-
Proceed as follows
-
-
Right-click the model you want to preview and select Preview model.
-
-An editor tab opens with the downloaded model definition.
-
-
-
Importing a Model from the Vorto Repository
-
-
Prerequisites
-
-
The model table displayes the model you want to import (refer to Searching Models).
-
-
Proceed as follows
-
-
Drag and drop the model you want to import from the model table in the Model Repository view into the tab of the appropriate model type on the left side.
-In the example below, the data type model TemperatureUnit has been imported into the Datatypes tab and the function block model TemperatureSensor has been imported into the Functionblocks tab.
-
You can share models (information models, function block models or data type models) by uploading them to the Model Repository out of the Eclipse Vorto plug-in.
To get more information on Vorto, click About Vorto in the menu bar.
-You are forwared to the home page of the Eclipse Vorto project http://www.eclipse.org/vorto.
You can generate code artifacts based on an information model in the Vorto Repository for usage in specific solutions. The code generation is carried out in the Vorto Repository backend. You can choose a desired generator from a list of available generators provided in the Vorto Repository.
-
-
Prerequisites
-
-
You have opened the Model tab of the information page of the model you want to generate code from (refer to Menu).
-
-
Proceed as follows
-
-
-
On the right side, click the link within the graphic of the appropriate generator.
-
-The code of your information model is generated according to the choosen generator and the browser’s download dialog opens providing a zip file containing this code.
-
Specify the download location and download the zip file.
In the menu bar, click Generators.
-The Generators page opens.
-
-
-
Here you can find the list of all available generators stating the following information on each generator:
-
-
-
Name
-
Statistics
-
Author
-
Link to the documentation
-
-
-
In addition, on the right side of the page the most frequently used generators are listet. Here, also the statistics is given - the more frequently used the more stars are displayed.
-
-
To get more information on generators including examples, refer to Code Generators.
In your browser, open the address http://vorto.eclipse.org.
-The Vorto Repository Web interface opens with the Search page.
-
-The Search page displays the model table containing all shared models.
In the menu bar, click Login.
- The Sign in to Vorto dialog opens.
-
-
-
-
Enter your credentials and click the Sign in button.
- You are logged-in to the Vorto Repository.
- Now the menu bar contains two further items Share and Welcome, <your_user_name>. Furthermore the Login item has turned to Log Out.
-
-
-
-
-
Logging out
-
-
Prerequisites
-
-
You are logged in to the Vorto Repository (refer to Logging in).
-
-
Proceed as follows
-
-
In the menu bar, click Log Out.
-You are logged out.
The Vorto Repository allows users to upload information models, to generate code for the selected information models, to search for models and reuse them based on their requirements. The repository is hosted by the Eclipse Vorto project.
-
-
You can do the following:
-
-
-
Searching models in the Vorto Repository.
-
Downloading models from the Vorto Repository.
-
Generating code from models in the Vorto Repository.
-
Sharing models from the local workspace to the Vorto Repository.
-
Using a shared model in the Vorto Repository as reference in a local model project.
-
Importing a shared model from the Vorto Repository to the local workspace.
-
-
-
You can access the Vorto Repository by the following ways:
For searching and downloading information Models as well as for information on available code generators you can use the Vorto Repository without an Vorto Repository account.
-
-
Sharing (uploading) information models is only possible if you have a Vorto Repository account.
If the Search page is not displayed, click Search in the menu bar.
- The Search page displays the model table containing all shared models.
-
To find a specific model, filter the model table in one or both of the following ways:
-
-
Select the appropriate radio button according to the model type you want to search for.
-
In the Search entry field, enter a search string to find the item you want, e.g., the function block Accelerometer
-
-
-
-
Click the Search button.
-The model table is updated according to the filter criteria and displays a subset of all models now.
-
-
-
Details
-
-
Model
-
-
Prerequisites
-
-
The model table displayes the model(s) you want to display details of (refer to Searching Models).
-
-
Proceed as follows
-
-
-
In the Details column of the model you want to get more information on, click the icon.
-The information page of the model opens with the active Model tab.
-
-Among other information on the model, the following data is essential:
-
-
References
- Displays the function block model or data type that the selected model is referencing to.
- Click the link(s) to get more details.
-
Used by
- Displays the model(s) model(s) using the selected model.
- Click the link(s) to get more details.
-
Other Formats
- Provides links for downloading the model definitions (XML, DSL or Markdown).
- Click the appropriate link to download the model in the specific format.
-
Model Preview
- Provides links for downloading the model definitions (XML, DSL or Markdown).
- Click the appropriate link to download the model in the specific format.
-
Platform Generators (for information models only)
- Provides download links for several platform generators with which you can generate code artifacts of your model (refer to Generating Code).
-
-
-
-
For the information model type, you can optionally upload or change a suitable image which will also be displayed in the Model tab.
-For this, point to the image and click Click to change image.
-
-
-
-
Discussion
-
-
Prerequisites
-
-
The information tab of the model is displayed (refer to Model).
-
-
Proceed as follows
-
-
Click the Discussion tab.
-The Discussion tab of the of the model’s information page becomes active.
-
-
-
-
In the entry field of the Discussion tab page, you can comment on the selected model.
-
-
-
-
-
-
You must be logged in to be able to write comments (refer to Logging in).
You can share models (information models, function block models or data type models) by uploading them to the Vorto Repository within the Vorto Repository Web interface.
Browse to the model file (or zip file containing multiple models) you want to share and click the Open button.
-The file name is taken over to the Upload entry field.
-
Click the Upload button to upload the selected file.
-The file(s) are checked. The content must correlate with the Vorto DSL guidelines. In addition, the dependencies of the files, if applicable, must be correct.
-
If the file(s) is (are) invalid, the Upload Results are displayed with an error message; the following image shows an invalid bulk upload.
-
-Check and revise your model file(s) and restart the sharing procedure.
-
-
If the file(s) is (are) valid, the Upload Results are displayed with an upload confirmation message.
-
-
-
Click the Checkin button.
-The model(s) is (are) checked in to the Vorto Repository and the Upload Results are displayed with a check in confirmation message.
-
Vorto is an open source tool that allows to create and manage technology agnostic, abstract device descriptions, so called information models. Information models describe the attributes and the capabilities of real world devices. These information models can be managed and shared within the Vorto Information Model Repository. Code Generators for Information Models let you integrate devices into different platforms.
The IoT Tool Set lets Device Manufacturers to describe the devices using Information Models in a textual DSL editor. The editor provides several features e.g. auto completion, syntax highlighting, and content assistance.
With the Information Model Repository, Platform vendors are able to manage, share and reuse existing Information Models directly from the Tool set or via the Web.
Code generators allow Solution developers to create information model based code artifacts that can be employed in specific solutions. Vorto provides wizards supporting the creation of new code generators. Example code generators are also part of the Vorto project.
-
The Vorto IoT toolset allows to comfortably create abstract, technology agnostic descriptions of devices. These descriptions are machine readable and thus can be transformed into formats that are required for an integration into a specific platform. By providing such device descriptions a device vendor allows an easy integration of devices into platforms for which Vorto code generators exist.
-
-
-
-
Platform Vendors
-
Vorto code generator which allows to transform Vorto device descriptions (so called information models) into formats that are required for an integration into a specific platform. After such a code generator is implemented it is very easy to integrate devices using Information Models that are available within the Vorto repository.
Solution developers that integrate devices into specific platforms often have to write a lot of code that could be generated using information about the corresponding device. The Vorto code generator infrastructure allows to do that which results in a significant reduction of development efforts.
Code generators allow Solution developers to create information model based code artifacts that can be employed in specific solutions. Vorto provides wizards supporting the creation of new code generators. Example code generators are also part of the Vorto project.
Two interesting talks around the Vorto project are going to be held at the Eclipse Conference North America from the 9th until the 12th of March 2015. The first talk is about the Vorto project itself and the idea behind it. The second talk covers practical insights about the Eclipse Smarthome Platform - among others, how Vorto information models can be used to integrate new devices into the Smart Home platform. For further information about the content of the presentation, check out the link below.
At the IoT Asia 2015 ,Vorto shared an exhibition booth,
-inviting various visitors, from around the world, to Vorto tech talks in order to find out more about the concepts and ideas behind it.
-It was a successful event with many interested attendees at the Vorto booth curious to understand Vorto and IoT.
An interesting talk around the Vorto project is going to be held at the Eclipse Conference Ludwigsburg, Germany from the 3rd until the 5th of November 2015.
-
-In this talk we are going to take & combine Eclipse Vorto and Eclipse Kura showing how easy it can be to develop and gamify IoT.
-
-For further information about the content of the presentation, check out on Making IoT child’s play.
At the IoT Show Asia 2015 ,Vorto showcased a very interesting use case about IoT gaming. There were also several talks and demonstrations about Vorto, addressing the needs of fast growing IoT industries.
-
-
Here are few captures from the event.
-
-
-
-
-
-
-
PTC and Bosch Software Innovations announced a technology alliance to facilitate the integration of the ThingWorx® Platform and the Bosch IoT Suite. The new Bosch IoT Suite M2M Connector for ThingWorx allows for technical interplay between the two platforms and is now available on the ThingWorx Marketplace.
-
-
The Device Management component (M2M) from the Bosch IoT Suite provides a reliable connection and control of devices, while operating a secure, flexible and transparent infrastructure for distributed devices. Vorto, an open source tool initiated by Bosch Software Innovations and developed by Eclipse IoT, enables the creation and management of information models for integration into different platforms. The ThingWorx® IoT application development platform enables rapid development of drag-and-drop business applications. A comprehensive security concept is designed to protect applications against unauthorized access.
When developing an Internet-of-Things solution, one can draw upon a wide variety of connected devices, interconnection protocols & management systems from a range of vendors. However, there is little interoperability between these components due to the disparate industry and vendor specific implementations of the device abstraction layer or information models.
-
-
At this IoT meetup event, Alexander Edelmann will provide an introduction to Vorto and lead a hands-on demonstration of how the tool can help you develop compelling IoT-enabled solutions using a broad range of components.
At an IoT meetup event in Singapore,
-Alexander Edelmann and about 50 IoT developers from various companies met up for a Vorto workshop where participants were guided through to create an IoT application from scratch with the help of Vorto.
-
-
Here are some pictures from this great event. To find out more, visit the organizers page on Facebook.
At an IoT meetup event in Singapore,
-Alexander Edelmann and about 50 IoT developers from various companies met up for a Vorto workshop where participants were guided through to create an IoT application from scratch with the help of Vorto.
-
-
Here are some pictures from this great event. To find out more, visit the organizers page on Facebook.
When developing an Internet-of-Things solution, one can draw upon a wide variety of connected devices, interconnection protocols & management systems from a range of vendors. However, there is little interoperability between these components due to the disparate industry and vendor specific implementations of the device abstraction layer or information models.
-
-
At this IoT meetup event, Alexander Edelmann will provide an introduction to Vorto and lead a hands-on demonstration of how the tool can help you develop compelling IoT-enabled solutions using a broad range of components.
PTC and Bosch Software Innovations announced a technology alliance to facilitate the integration of the ThingWorx® Platform and the Bosch IoT Suite. The new Bosch IoT Suite M2M Connector for ThingWorx allows for technical interplay between the two platforms and is now available on the ThingWorx Marketplace.
-
-
The Device Management component (M2M) from the Bosch IoT Suite provides a reliable connection and control of devices, while operating a secure, flexible and transparent infrastructure for distributed devices. Vorto, an open source tool initiated by Bosch Software Innovations and developed by Eclipse IoT, enables the creation and management of information models for integration into different platforms. The ThingWorx® IoT application development platform enables rapid development of drag-and-drop business applications. A comprehensive security concept is designed to protect applications against unauthorized access.
At the IoT Show Asia 2015 ,Vorto showcased a very interesting use case about IoT gaming. There were also several talks and demonstrations about Vorto, addressing the needs of fast growing IoT industries.
-
-
Here are few captures from the event.
-
-
-
-
-
-
-
An interesting talk around the Vorto project is going to be held at the Eclipse Conference Ludwigsburg, Germany from the 3rd until the 5th of November 2015.
-
-In this talk we are going to take & combine Eclipse Vorto and Eclipse Kura showing how easy it can be to develop and gamify IoT.
-
-For further information about the content of the presentation, check out on Making IoT child’s play.
At the IoT Asia 2015 ,Vorto shared an exhibition booth,
-inviting various visitors, from around the world, to Vorto tech talks in order to find out more about the concepts and ideas behind it.
-It was a successful event with many interested attendees at the Vorto booth curious to understand Vorto and IoT.
Two interesting talks around the Vorto project are going to be held at the Eclipse Conference North America from the 9th until the 12th of March 2015. The first talk is about the Vorto project itself and the idea behind it. The second talk covers practical insights about the Eclipse Smarthome Platform - among others, how Vorto information models can be used to integrate new devices into the Smart Home platform. For further information about the content of the presentation, check out the link below.
Interoperability is one of the most important criteria in the IoT. This is solved using IoT platforms that are able to integrate devices and to provide an infrastructure for interactions. It is crucial for device vendors to enable platform vendors to integrate their devices without major effort. A device that can be integrated on various platforms can be used in various scenarios which helps to increase the sales of the specific device vendor. The Vorto IoT toolset allows to comfortably create abstract, technology agnostic descriptions of devices. These descriptions are machine readable and thus can be transformed into formats that are required for an integration into a specific platform. By providing such device descriptions a device vendor allows an easy integration of devices into platforms for which Vorto code generators exist.
There is a large variety of smart devices available in the market. A customer doesn’t want to be restricted to devices of specific vendors because the platform, his IoT environment is based on, doesn’t support others. This is the reason why platform vendors would like to integrate as many devices as possible on their platform. It is very easy to create a platform specific Vorto code generator which allows to transform Vorto device descriptions (so called information models) into formats that are required for an integration into a specific platform. After such a code generator is implemented it is very easy to integrate devices using Information Models that are available within the Vorto repository.
Solution developers that integrate devices into specific platforms often have to write a lot of code that could be generated using information about the corresponding device. The Vorto code generator infrastructure allows to do that which results in a significant reduction of development efforts.
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/_site/pom.xml b/docs/_site/pom.xml
deleted file mode 100644
index 4fc1d4341b..0000000000
--- a/docs/_site/pom.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
- 4.0.0
- org.eclipse.vorto
- vorto-website
- 0.4.0-SNAPSHOT
-
- Vorto Website
-
- pom
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
-
-
- compile
-
- exec
-
-
- jekyll
-
- build
-
- ${project.basedir}
-
-
-
-
-
- maven-assembly-plugin
- 2.2-beta-5
-
-
- assembly.xml
-
-
-
-
- make-assembly
- package
-
- single
-
-
-
-
-
- maven-clean-plugin
- 2.6.1
-
-
-
- _site
- false
-
-
-
-
-
-
-
-
-
diff --git a/docs/_site/usecases.html b/docs/_site/usecases.html
deleted file mode 100644
index 6959302f5f..0000000000
--- a/docs/_site/usecases.html
+++ /dev/null
@@ -1,159 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Eclipse Vorto - IoT Toolset for standardized device descriptions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/documentation/installation/installation.md b/docs/documentation/installation/installation.md
deleted file mode 100644
index 0866fec86b..0000000000
--- a/docs/documentation/installation/installation.md
+++ /dev/null
@@ -1,158 +0,0 @@
----
-layout: documentation
-title: Installing the Vorto Toolset
----
-{% include base.html %}
-
-This section details the following topics:
-
-[Installing the Vorto Toolset](#installing-the-vorto-toolset)
-
-[Upgrading the Vorto Toolset](#upgrading-the-vorto-toolset)
-
-##Installing the Vorto Toolset
-
-This section lists the steps required to install the Vorto Toolset.
-
-Install the Eclipse Vorto Toolset in one of the following three ways:
-
-* [Installing from the Eclipse Vorto download page](#installing-from-the-eclipse-vorto-download-page)
-* [Installing from the Eclipse Marketplace](#installing-from-the-eclipse-marketplace)
-* [Installing from the Vorto Toolset Upadte Site](#installing-from-the-vorto-toolset-upadte-site)
-
-### Installing from the Eclipse Vorto Download Page
-
-**Proceed as follows**
-
-1. Start Eclipse.
-2. With your browser, go to the [Eclipse Vorto Daownload Page](https://eclipse.org/vorto/downloads).
- The Eclipse Vorto download page opens.
- ![Eclipse Vorto Download Page]({{base}}/img/documentation/vorto_eclipse_vorto_download_page.png)
-2. Do one of the following:
- * Drag and drop the Install button ![Install Button]({{base}}/img/documentation/vorto_eclipse_vorto_download_install_button.png) into your running Eclipse application.
- The **Confirm Selected Features dialog** of the **Eclipse Marketplace** opens.
- ![Eclipse Marketplace Confirm Selected Features Dialog]({{base}}/img/documentation/vorto_eclipse_vorto_download_marketplace_confirm_selected_features_dialog.png)
- Click the **Confirm >** button and proceed accepting the license (step 6 in [Installing](#installing)).
- * Click the **Vorto Update Site** button (**(Stable)** or **(Nightly)** according to your needs).
- An Eclipse standard page opens showing instructions how to use the download links in Eclipse.
- ![Eclipse Standard Download Info Page]({{base}}/img/documentation/vorto_eclipse_vorto_download_info_page.png)
- Follow the instructions.
- * Click the **Vorto zip** button (**(Stable)** or **(Nightly)** according to your needs).
- The download dialog of your browser opens.
- Download the zip file containing the Vorto Toolset archive to a location of your choice and install the archive in the standard way.
-
-### Installing from the Eclipse Marketplace.
-
-**Proceed as follows**
-
-1. Start Eclipse.
-2. In the main menu, click **Help > Eclipse Marketplace...**.
- The **Eclipse Marketplace** dialog opens.
-2. In the **Find** entry field enter `Vorto` and click the **Go** button.
- The Vorto Toolset is displayed.
- ![Eclipse Marketplace Install Vorto]({{base}}/img/documentation/vorto_eclipse_vorto_download_marketplace_install_dialog.png)
-3. Click the **Install** button.
- The Vorto Toolset is installed.
-
-### Installing from the Vorto Toolset Upadte Site
-
-The Vorto Toolset is available on the Eclipse Vorto update site server. The URL to the server is `http://download.eclipse.org/vorto/update/milestones` (*Vorto Toolset update site*). You must add this repository to Eclipse or, alternatively, import the Vorto Toolset zip archive to install the Vorto Toolset.
-
-#### Setting the Vorto Toolset Update Site
-
-**Proceed as follows**
-
-1. Start Eclipse.
-2. In the main menu, click **Help > Install new Software...**.
- The **Install** dialog opens displaying the **Available Software**.
-3. Click the selection button of the **Work with** selection list field to check if the *Vorto Toolset update site* is already present.
- ![Software update repository]({{base}}/img/documentation/m2m_tc_vrm_software_updates_install_vorto_repository_present.png)
- If the *Vorto Toolset update site* URL is displayed in the expanding list, you can end the procedure here.
- Otherwise proceed with the next step.
-4. Add the *Vorto Toolset update site* URL:
- a. Click the **Add...** button beside the **Work with** field. The **Add Repository** dialog opens.
- b. Enter a Name (optionally, e.g., *Vorto*).
- c. Enter the *Vorto Toolset update site* URL `http://download.eclipse.org/vorto/update/milestones` into the **Location** field.
- d. Click **OK**.
-
-In the **Install** dialog, the available software list is updated and now contains the software found in the added repository and in the installed archive, respectively.
-
-
-
-
-
-
The update of the available software list may take a while.
-
-
-
-
-#### Installing
-
-**Prerequisites**
-
-- You have started Eclipse.
-- You have set the *Vorto Toolset update site* in Eclipse (refer to [Setting the Vorto Toolset Update Site](#setting-the-vorto-toolset-update-site)).
-
-**Proceed as follows**
-
-1. If not yet done click **Help > Install new Software...** in the main menu.
- The **Install** dialog opens displaying the **Available Software**.
-2. In the **Work with** selection list, select the entry with the *Vorto Toolset* URL.
- ![Software update repository]({{base}}/img/documentation/m2m_tc_vrm_software_updates_install_vorto_repository_present.png)
- The **Available Software** list is updated.
-3. In the **Available Software** list, select **Vorto**.
- All containing software parts are checked.
- ![Software updates selected]({{base}}/img/documentation/m2m_tc_vrm_software_updates_selected_m2m_plugin_1.png)
-4. Click **Next** to verify the installation of the Vorto Toolset and its dependencies.
- The **Install** dialog now displays the **Install Details**.
- ![Software update install details]({{base}}/img/documentation/m2m_tc_vrm_software_updates_install_m2m_details_1.png)
-5. Click **Next**.
- The **Install** dialog now displays the **Review Licenses**.
- ![Review licenses]({{base}}/img/documentation/m2m_tc_vrm_software_updates_m2m_review_license_1.png)
-6. Select **I accept the terms of the license agreements** and click **Finish**.
- The software is being installed.
-7. If the **Security Warning** dialog opens click **OK**.
- After the installation is complete the **Software Updates** dialog opens.
- ![Restart VR Modeler]({{base}}/img/documentation/m2m_tc_vrm_software_updates_restart.png)
-8. Click **Yes** to restart Eclipse.
- After the restart, Eclipse contains the **Vorto** project group with several new project wizard items (**File > New > Project...**).
-
- ![New function block model project]({{base}}/img/documentation/m2m_tc_new_vorto_function_block_model_wizard.png)
-
-
-
-
-
-
In case the installation is unsuccessful, uninstall the previous version of the Vorto Toolset and install it again.
-
-
-
-
-## Upgrading the Vorto Toolset
-
-This section lists the steps required to upgrade the Vorto Toolset.
-
-**Prerequisites**
-
-- You have a working installation of the previous version of the Vorto Toolset.
-- This assumes that your Eclipse version is in the Vorto supported versions, and stable releases of *Xtext* has been installed (for more information refer to [System Requirements]({{base}}/documentation/overview/introduction.html#system-requirements)).
-
-**Proceed as follows**
-
-1. Start Eclipse.
-2. In the main menu, click **Help > Install new Software...**.
- The **Install** dialog opens displaying the **Available Software**.
-2. In the **Work with** selection list, select the entry with the *Vorto Toolset update site* URL.
- The **Available Software** list is updated.
-3. In the **Available Software** list, select **Vorto**.
- All containing software parts are checked.
-4. Click **Next** to verify the installation of *Vorto Toolset* and its dependencies.
- The **Install** dialog now displays the **Install Details**.
-5. If the toolset are up-to date the **Finish** button remains inactive. End here by clicking **Cancel**.
-5. Otherwise, click **Next**.
- The **Install** dialog now displays the **Review Licenses**.
-6. Select **I accept the terms of the license agreements** and click **Finish**.
- The software is being installed.
-7. If the **Security Warning** dialog opens click **OK**.
- After the installation is complete the **Software Updates** dialog opens.
-8. Click **Yes** to restart the Eclipse.
diff --git a/website/_data/doclinks.yml.orig b/website/_data/doclinks.yml.orig
deleted file mode 100644
index 45fd8b501b..0000000000
--- a/website/_data/doclinks.yml.orig
+++ /dev/null
@@ -1,219 +0,0 @@
-<<<<<<< .merge_file_a06376
-- title: "Introduction"
- href: ""
- sub:
- - title: "Overview"
- href: "/documentation/overview/introduction.html"
- - title: "Features"
- href: "/documentation/overview/introduction.html#features"
- - title: "Significant Contribution"
- href: "/documentation/overview/introduction.html#significant-contribution"
- - title: "System Requirements"
- href: "/documentation/overview/introduction.html#system-requirements"
-- title: "Installation"
- href: ""
- sub:
- - title: "Installing"
- href: "/documentation/installation/installation.html#installing-the-vorto-toolset"
- - title: "Upgrading"
- href: "/documentation/installation/installation.html#upgrading-the-vorto-toolset"
-- title: "Model Editors"
- href: ""
- sub:
- - title: "Data Types"
- href: "/documentation/editors/datatype.html"
- - title: "Function Block"
- href: "/documentation/editors/functionblock.html#defining-a-function-block"
- - title: "Information Model"
- href: "/documentation/editors/information-model.html#defining-an-information-model"
- - title: "Information Model Mapping"
- href: "/documentation/editors/mapping-model.html#defining-an-information-model-mapping"
-- title: "Code Generators"
- href: ""
- sub:
- - title: "Overview"
- href: "/documentation/code-generators/codegenerators.html"
- - title: "Example - Web Device Application"
- href: "/documentation/code-generators/webdevice-codegenerator.html#example-code-generator-web-device-application"
- - title: "Example - Bosch M2M Platform"
- href: "/documentation/code-generators/m2m-codegenerator.html#example-code-generator-bosch-m2m-platform"
-- title: "Developer Api"
- href: ""
- sub:
- - title: "Implementing a Code Generator"
- href: "/documentation/developer-api/codegenerator-implementation.html"
-- title: "Vorto Repository"
- href: ""
- sub:
- - title: "Vorto Repository Overview"
- href: "/documentation/vorto-repository/web-interface/overview.html"
- - title: "Web Interface"
- href: ""
- sub:
- - title: "Registering/Logging in/out"
- href: "/documentation/vorto-repository/web-interface/login-register.html"
- - title: "Searching Models"
- href: "/documentation/vorto-repository/web-interface/search-web.html"
- - title: "Generating Code"
- href: "/documentation/vorto-repository/web-interface/generate-code-web.html"
- - title: "Sharing Models"
- href: "/documentation/vorto-repository/web-interface/share-web.html"
- - title: "Informing about Generators"
- href: "/documentation/vorto-repository/web-interface/generators.html"
- - title: "Visiting the Vorto Project Page"
- href: "/documentation/vorto-repository/web-interface/about_vorto.html"
- - title: "Using REST API"
- href: "/documentation/vorto-repository/web-interface/rest-api.html#rest-api"
- - title: "Managing User Settings"
- href: "/documentation/vorto-repository/web-interface/user-settings.html"
- - title: "Eclipse Vorto Integration"
- href: ""
- sub:
- - title: "Setting Required Preferences"
- href: "/documentation/vorto-repository/eclipse-vorto-integration/setting-preferences-eclipse.html"
- - title: "Searching Models"
- href: "/documentation/vorto-repository/eclipse-vorto-integration/search-eclipse.html"
- - title: "Sharing Models"
- href: "/documentation/vorto-repository/eclipse-vorto-integration/share-eclipse.html"
- - title: "Generating Code"
- href: "/documentation/vorto-repository/eclipse-vorto-integration/generate-code-eclipse.html"
- - title: "Vorto CLI Tool"
- href: ""
- sub:
- - title: "Vorto CLI Tool"
- href: "/documentation/vorto-repository/cli-tool/cli-tool.html"
-- title: "Tutorial"
- href: ""
- sub:
- - title: "Establish communication between Web app and Mqtt client "
- href: "/documentation/tutorial/mqttwithwebapp.html"
-- title: "Appendix"
- href: ""
- sub:
- - title: "Troubleshooting"
- href: "/documentation/appendix/troubleshooting.html"
- - title: "Uninstallation"
- href: "/documentation/appendix/uninstallation.html"
- - title: "Migration Guide"
- href: "/documentation/appendix/migration-guide.html"
- - title: "Model DSL Reference"
- href: "/documentation/appendix/datatype-dsl-reference.html"
- sub:
- - title: "Data Type DSL"
- href: "/documentation/appendix/datatype-dsl-reference.html"
- - title: "Function Block DSL"
- href: "/documentation/appendix/functionblock-dsl-reference.html"
- - title: "Information Model DSL"
- href: "/documentation/appendix/informationmodel-dsl-reference.html"
- - title: "Information Mapping Model DSL"
- href: "/documentation/appendix/informationmodel-dsl-reference.html"
-=======
-- title: "Introduction"
- href: ""
- sub:
- - title: "Overview"
- href: "/documentation/overview/introduction.html"
- - title: "Features"
- href: "/documentation/overview/introduction.html#features"
- - title: "Significant Contribution"
- href: "/documentation/overview/introduction.html#significant-contribution"
- - title: "System Requirements"
- href: "/documentation/overview/introduction.html#system-requirements"
-- title: "Installation"
- href: ""
- sub:
- - title: "Installing"
- href: "/documentation/installation/installation.html#installing-the-vorto-toolset"
- - title: "Upgrading"
- href: "/documentation/installation/installation.html#upgrading-the-vorto-toolset"
-- title: "Model Editors"
- href: ""
- sub:
- - title: "Data Types"
- href: "/documentation/editors/datatype.html"
- - title: "Function Block"
- href: "/documentation/editors/functionblock.html#defining-a-function-block"
- - title: "Information Model"
- href: "/documentation/editors/information-model.html#defining-an-information-model"
- - title: "Information Model Mapping"
- href: "/documentation/editors/mapping-model.html#defining-an-information-model-mapping"
-- title: "Code Generators"
- href: ""
- sub:
- - title: "Overview"
- href: "/documentation/code-generators/codegenerators.html"
- - title: "Example - Web Device Application"
- href: "/documentation/code-generators/webdevice-codegenerator.html#example-code-generator-web-device-application"
- - title: "Example - Bosch M2M Platform"
- href: "/documentation/code-generators/m2m-codegenerator.html#example-code-generator-bosch-m2m-platform"
-- title: "Developer Api"
- href: ""
- sub:
- - title: "Implementing a Code Generator"
- href: "/documentation/developer-api/codegenerator-implementation.html"
-- title: "Vorto Repository"
- href: ""
- sub:
- - title: "Vorto Repository Overview"
- href: "/documentation/vorto-repository/web-interface/overview.html"
- - title: "Web Interface"
- href: ""
- sub:
- - title: "Registering/Logging in/out"
- href: "/documentation/vorto-repository/web-interface/login-register.html"
- - title: "Searching Models"
- href: "/documentation/vorto-repository/web-interface/search-web.html"
- - title: "Generating Code"
- href: "/documentation/vorto-repository/web-interface/generate-code-web.html"
- - title: "Sharing Models"
- href: "/documentation/vorto-repository/web-interface/share-web.html"
- - title: "Informing about Generators"
- href: "/documentation/vorto-repository/web-interface/generators.html"
- - title: "Visiting the Vorto Project Page"
- href: "/documentation/vorto-repository/web-interface/about_vorto.html"
- - title: "Using REST API"
- href: "/documentation/vorto-repository/web-interface/rest-api.html#rest-api"
- - title: "Managing User Settings"
- href: "/documentation/vorto-repository/web-interface/user-settings.html"
- - title: "Eclipse Vorto Integration"
- href: ""
- sub:
- - title: "Setting Required Preferences"
- href: "/documentation/vorto-repository/eclipse-vorto-integration/setting-preferences-eclipse.html"
- - title: "Searching Models"
- href: "/documentation/vorto-repository/eclipse-vorto-integration/search-eclipse.html"
- - title: "Sharing Models"
- href: "/documentation/vorto-repository/eclipse-vorto-integration/share-eclipse.html"
- - title: "Generating Code"
- href: "/documentation/vorto-repository/eclipse-vorto-integration/generate-code-eclipse.html"
- - title: "Vorto CLI Tool"
- href: ""
- sub:
- - title: "Vorto CLI Tool"
- href: "/documentation/vorto-repository/cli-tool/cli-tool.html"
-- title: "Tutorial"
- href: ""
- sub:
- - title: "Establish communication between Web app and Mqtt client "
- href: "/documentation/tutorial/mqttwithwebapp.html"
-- title: "Appendix"
- href: ""
- sub:
- - title: "Troubleshooting"
- href: "/documentation/appendix/troubleshooting.html"
- - title: "Uninstallation"
- href: "/documentation/appendix/uninstallation.html"
- - title: "Migration Guide"
- href: "/documentation/appendix/migration-guide.html"
- - title: "Model DSL Reference"
- href: "/documentation/appendix/datatype-dsl-reference.html"
- sub:
- - title: "Data Type DSL"
- href: "/documentation/appendix/datatype-dsl-reference.html"
- - title: "Function Block DSL"
- href: "/documentation/appendix/functionblock-dsl-reference.html"
- - title: "Information Model DSL"
- href: "/documentation/appendix/informationmodel-dsl-reference.html"
- - title: "Information Mapping Model DSL"
- href: "/documentation/appendix/informationmodel-dsl-reference.html"
->>>>>>> .merge_file_a10196
diff --git a/website/documentation/installation/installation.md b/website/documentation/installation/installation.md
index 798f263841..0866fec86b 100644
--- a/website/documentation/installation/installation.md
+++ b/website/documentation/installation/installation.md
@@ -14,11 +14,7 @@ This section details the following topics:
This section lists the steps required to install the Vorto Toolset.
-<<<<<<< HEAD:website/documentation/installation/installation.md
-The Vorto plug-ins are available on the Eclipse update site server. The URL to the server is [http://download.eclipse.org/vorto/update/milestones](http://download.eclipse.org/vorto/update/milestones "http://download.eclipse.org/vorto/update/milestones"). You must add this repository to your IDE or, alternatively, import the Vorto plug-in zip archive to get the Vorto plug-ins.
-=======
Install the Eclipse Vorto Toolset in one of the following three ways:
->>>>>>> Closes #258:docs/documentation/installation/installation.md
* [Installing from the Eclipse Vorto download page](#installing-from-the-eclipse-vorto-download-page)
* [Installing from the Eclipse Marketplace](#installing-from-the-eclipse-marketplace)
@@ -76,11 +72,7 @@ The Vorto Toolset is available on the Eclipse Vorto update site server. The URL
4. Add the *Vorto Toolset update site* URL:
a. Click the **Add...** button beside the **Work with** field. The **Add Repository** dialog opens.
b. Enter a Name (optionally, e.g., *Vorto*).
-<<<<<<< HEAD:website/documentation/installation/installation.md
- c. Enter the *Vorto plug-ins repository* URL [http://download.eclipse.org/vorto/update/milestones](http://download.eclipse.org/vorto/update/milestones "http://download.eclipse.org/vorto/update/milestones") into the **Location** field.
-=======
c. Enter the *Vorto Toolset update site* URL `http://download.eclipse.org/vorto/update/milestones` into the **Location** field.
->>>>>>> Closes #258:docs/documentation/installation/installation.md
d. Click **OK**.
In the **Install** dialog, the available software list is updated and now contains the software found in the added repository and in the installed archive, respectively.
diff --git a/docs/img/documentation/vorto_eclipse_vorto_download_info_page.png b/website/img/documentation/vorto_eclipse_vorto_download_info_page.png
similarity index 100%
rename from docs/img/documentation/vorto_eclipse_vorto_download_info_page.png
rename to website/img/documentation/vorto_eclipse_vorto_download_info_page.png
diff --git a/docs/img/documentation/vorto_eclipse_vorto_download_install_button.png b/website/img/documentation/vorto_eclipse_vorto_download_install_button.png
similarity index 100%
rename from docs/img/documentation/vorto_eclipse_vorto_download_install_button.png
rename to website/img/documentation/vorto_eclipse_vorto_download_install_button.png
diff --git a/docs/img/documentation/vorto_eclipse_vorto_download_marketplace_confirm_selected_features_dialog.png b/website/img/documentation/vorto_eclipse_vorto_download_marketplace_confirm_selected_features_dialog.png
similarity index 100%
rename from docs/img/documentation/vorto_eclipse_vorto_download_marketplace_confirm_selected_features_dialog.png
rename to website/img/documentation/vorto_eclipse_vorto_download_marketplace_confirm_selected_features_dialog.png
diff --git a/docs/img/documentation/vorto_eclipse_vorto_download_marketplace_install_dialog.png b/website/img/documentation/vorto_eclipse_vorto_download_marketplace_install_dialog.png
similarity index 100%
rename from docs/img/documentation/vorto_eclipse_vorto_download_marketplace_install_dialog.png
rename to website/img/documentation/vorto_eclipse_vorto_download_marketplace_install_dialog.png
diff --git a/docs/img/documentation/vorto_eclipse_vorto_download_page.png b/website/img/documentation/vorto_eclipse_vorto_download_page.png
similarity index 100%
rename from docs/img/documentation/vorto_eclipse_vorto_download_page.png
rename to website/img/documentation/vorto_eclipse_vorto_download_page.png