Startup: Davinci Developer
Startup: Davinci Developer
DaVinci Developer
Content Startup with DaVinci Developer
Content
1.2 Conventions 1
1.3 Certification 2
1.4 Warranty 2
1.5 Support 3
1.6 Trademarks 3
2 DaVinci Developer 1
> You can see in the footer to which version the user manual refers,
> At the end of the user manual you will find an index to find information quickly,
> Also at the end of the user manual you will find a glossary of the used technical terms
1.2 Conventions
In the following two charts you will find the conventions used in the user manual regarding utilized
spellings and symbols.
1.3 Certification
Vector Informatik GmbH has ISO 9001:2008 certification. The ISO standard is a globally recognized
standard.
1.4 Warranty
We reserve the right to modify the contents of the documentation or the software without notice.
Vector disclaims all liabilities for the completeness or correctness of the contents and for damages
1.5 Support
Germany
And all other countries, not listed here.
1.6 Trademarks
All brand names in this documentation are either registered or non registered trademarks of their
respective owners.
Note
If you habe a SIP from Vector you also find the same content in the SIP Startup Guide.
2 DaVinci Developer
DaVinci Developer is a Vector tool for designing the architecture of a software component (SWC) for
AUTOSAR ECUs.
Via a graphical view or textual grid views you can design software components including ports, data
types, connectors and internal behavior. With the consistency check you verify the AUTOSAR com-
pliance of your SWC design.
If you don’t work in combination with DaVinci Configurator Pro you start with creating a new work-
space via the File menu. It is recommended to create the new workspace in a blank folder on your
disk.
Note
Some editors of the DaVinci Developer, e.g. the Data Mapping Editor, will not be available
in such standalone workspaces.
If you work in combination with DaVinci Configurator Pro, the DaVinci project created with DaVinci
Configurator Pro already contains a DaVinci Developer workspace. You don’t need to create it sep-
arately.
You edit the content of the workspace with DaVinci Developer. After saving the workspace, DaVinci
Configurator Pro will detect the change and reload the data automatically.
Caution!
Keep in mind that the DaVinci Configurator Pro is not able to write to DCF file.
Learn all about application components, ports, connection and runnables, how they work and how to
exchange information between application components.
1. Application Components
3. Connections
4. Runnables
5. Triggers
6. Port Access
7. Data Mapping
Cross Reference
To get basic tool handling information, refer to the online help of the DaVinci Developer.
The Object Browser is the central view of all design objects in the workspace. Open it via the toolbar.
The Object Browser you use in the following steps can basically be used in different ways.
> Type-oriented
> Package-oriented
> File-oriented
The type-oriented workflow is shown in the following steps. But you can also choose the package-ori-
ented or file-oriented one. This concept will now be described briefly.
Packages
It is like a kind of grouping with its own name space. A name of an object has to be unique within a
package but can be used more than once within the project.
These packages can be exported and imported for round-tripping with other tools also supporting the
packages.
At the bottom of the Object Browser you can select Types view, Packages view or Files view. Select
the Package.
You need a Root Package first? Create it via right-click in the Packages view.
Then right-click the root (e.g. MyECU_PartA) and you will get to the context menu. Use New Child Pack-
age to nest the packages or you put the objects plain below the root package.
Files
> can see all AUTOSAR design objects, which are loaded from the particular file.
> move objects to other files.
Note
The Files tab is not editable, if you want to add or delete files you have to move to the File
Browser.
Right-click on Application Component Types in the Object Browser and select New Application Com-
ponent Type....
It is good to give a speaking name to see what kind of component it is. e.g. AP – Application, SA –
Sensor / Actuator
Enter a Name for the Application Component Type. Select Composition if the SWC should contain other
SWC or select Atomic. Select its Type and confirm with [OK]. All application software component types
are displayed in the Object Browser.
Note
To get fast information about any element in the Object Browser just select one and see
its Properties, Port Prototypes (if available) and Description in the Properties view (right
side).
Double-click the SWC in the Object Browser or click Software Design to open the Software Design
view for your ECU project (e.g. MyECU).
Note
In the graphical representation of an application component prototype you can change its
size using the little squares shown at the angles and in the middle of the sides.
An application component type becomes an application component prototype when it is used. It also
needs a name. Using drag’n’drop, both names are the same. Open the properties window from the con-
text menu for a component prototype to change the prototype name.
Note
Define and use as many application software components as you need for your ECU.
Note
The notation of the software component starts with the software component prototype fol-
lowed by the software component type.
This illustration will help you to understand working with the DaVinci Developer. You have to deal with
> Prototype
> Type
> Interface
When is a software component a software component type, when a software component prototype?
When is a port a port interface, when a port prototype?
In theObject Browser, the software components are types, the ports are interfaces. As soon as you
use them, they become prototypes.
To communicate and to exchange information the components need so-called ports (S/R ports).
Before you can use application ports you have to define application port interfaces. To completely
define the port interfaces you have to define data types first, if you don’t want to use the predefined
ones.
Caution!
You can handle application port interfaces like application component types. Define the
application port interfaces in the Object Browser and then use them as application port pro-
totypes for each application component. The same applies for data types and data ele-
ments.
To define a new application port interface, right-click the Application Port Interface in the Object
Browser and select New S/R Port Interface….
Then the window for the S/R Port Interface opens. Enter a name, select the tab Data Element Pro-
totypes and define the content of the port. In this case it is just one data element called OnOff with
the Data Type Boolean, use the button […] to select Data Type.
Note
Note
A port interface can carry many data elements of different data types.
Now you have to define which application component needs which application ports.
Select an application port interface from the Object Browser and place it onto the application com-
ponent via drag’n’drop. This transfers a port interface into a port prototype.
Note
Interfaces
The ports are added to the components as graphical element together with the name of the port.
Note
Your Service Components will be loaded automatically to the DaVinci Developer workspace .
Note
The DaVinci Configurator stores the service components within the folder <Project Folder-
>\Config\ServiceComponents.
The content of the service components are not part of the DaVinci Developer workspace.
Service Port Interface name and content depend on the BSW configuration and version of
the service component within the DaVinci Configurator, so it is not stable.
If you want to connect one of your Application Component to a Service Component, you have to define
a Service Port Prototype based on a Service Port Interface.
To avoid implicit modification of the Application Components, they should not use these Service Port
Interfaces directly. Instead, they should use an own copy of the Service Port Interfaces.
The Service Port Interface definition from the loaded Service Component is always in read-only status.
These Service Port Interfaces are marked with a read-only icon within the Object Browser.
Then copy and paste the definition from the Service Component. Assign the definition to an own pack-
age, so it is possible to use the same name as before. Therefore open the Service Port Interface,
select Package tab and choose a package via [...].
Assign your copied Service Port Interface to your Application Component. Therefore open your Applic-
ation Component Prototype, select Port Prototype List1, open Service Ports tab and add your Service
Port via [New] | From Port Interface. Now the Service Port used by your Application Component is
independent from the Service Component description.
Note
> SYMBOL and NAME – what the runnable skeleton is called in the template file
> TRIGGER – when is the runnable executed
> PORT ACCESS – what data can the runnable access
> MAPPING – in which task context does the runnables work?
Caution!
Note
The runnable skeletons are generated by the DaVinci Configurator Pro/the RTE and can then
be accomplished with your code. Find more details follow in the next chapters.
1. Open a software component via the Object Browser or the Software Design view.
2. Click on the runnable icon [fx].
3. Click [New] and select Runnable.
4. Enter Name and Symbol for the new runnable on the Properties tab.
If you leave the Symbol field empty, the runnables (functions) will be named according to the entry in
the Name field.
A runnable can be marked as Can be invoked concurrently if it can be executed while it is already
running. In other words it can be safely executed concurrently (re-entrant). There are a few criteria
for your implementation code:
Select the tab Trigger. On this tab you select when your runnable should be executed.
Note
On Data Reception: As soon as data is received at the appropriate port the runnable is
activated. (Indication)
The trigger On Operation Invocation belongs to service ports and will be explained later.
The runnable of the demo application only needs to be called when the state of the doors is changed.
This can be realized via a cyclic polling or directly by a trigger from the doors. In the demo, Peri-
odical… is chosen.
Note
When experimenting with the demo, replace the cyclic trigger with two triggers On Data
Reception…, one for the left and one for the right front door.
Define which port information each runnable should be able to read or write. Select the tab Port
Access. You only get displayed accessible ports.
Click e.g. Read Data… and the Port Access Definition:Read Data window will open.
Summary
If you plan to implement the SWC manually (rather than with a model-based code generator), you
may generate a SWC Templates and Contract Header Files.
To generate code you select the SWC in the Object Browser and call the code generator via the context
menu.
Note
The design of the SWC including ports, runnables and port access influences the SWC Templates and
Contract Header Files you generate with DaVinci Developer.
In the header of the runnable’s skeleton you will find a list with all available API functions for this run-
nable. If any access is missing, check whether the Port Access is set correctly.
www.vector.com