You are on page 1of 21

Automation Desk 3.

3 Tool Set - Test Automation Software


P.BALAJI
Software Engineer
L&T IES, Mumbai
Content
Definition & Objective

User interface of Automation Desk

Various Blocks inside the Automation Desk

Creation and Execution of Automation Test Project

Features

Limitations of Automation blocks






Definition & Objective

Automation Desk is an environment for organizing and creating
automation tasks. It provides a graphical editor for describing
control flows and parameterizing them.

Python-based real-time test automation i.e.. it Uses Python
Scripting for algorithms and to build blocks e.g. Complex
algorithms and API Calls.

Provides different sub libraries in a graphical view according to
their Field of Application and located in the library Browser .

It is a powerful front-end tool for automated hardware-in-the-
loop (HIL) testing of the application software or diagnostic
functions of electronic control units (ECUs).

User interface of Automation Desk

Various Blocks inside the Automation Desk

Main library Control Flows, Basic Elements and Python Data
Objects.

Report library : To add Text,2-D plots, images, Tables, Data
objects, Hyperlinks(URL).

Dialogs library : contains input and message dialogs

Input dialog- To input data during the execution of your
automation task.
Message dialog- To control your test automation task with a
control button click .







































Platform Access
used to access a simulation platform

Configure the simulation platform

Read /write data from /to the variable of the simulator

Capture data from real Time application and stream the data to Hard
disk

Generate stimulus signals.

HIL API Libraries
This supports the MA (Model access) Port implementation of the HIL API
standard to access a simulation platform



















RS232 library
Connecting the automation desk to Serial Interface(RS232) .

Remote Diagnostics(COM)
To perform diagnostics on an electronic control unit (ECU) remotely
via COM/DCOM interfaces.

This tool accesses the diagnostic tools that support the ASAM MCD-
3 D 2.0.1 standard. for example, Control Desk Next Generation with
installed Control Desk Next Generation ECU Diagnostics Module.













Remote Calibration
To control ASAM MCD-3 MC-compatible measurement and
calibration (MC) systems remotely via the standard serial (RS232)
interface.

Remote Calibration(COM)
To control ASAM MCD-3 MC-compatible measurement and calibration
(MC) systems remotely via the standard serial (RS232) interface via
COM/DCOM interfaces.

Failure Simulation Access
To realize failure simulation on special dSPACE hardware.











MATLAB Access
Open the Matlab instance and execute the commands in the MATLAB
via automation desk

Exchange the data between Automation desk and Matlab

Work with data stored in the MAT file Format .

Test Framework
This provides high-level automation blocks with predefined
functionalities for test purposes.












Real-Time Testing
Automation Desk provides the Real-Time Testing library to manage
Real-Time Testing (RTT) projects on dSPACE real-time platforms.

CANscope
To remote control the CANscope Evaluation software (version 3.0).
CANscope is a hardware device for CAN buses from Vector Informatik
GmbH. It records and evaluate signal levels on CAN buses.

CANstress
To remote control the CANstressD/CANstressDR Configuration
software (version 2.1). CANstressD and CANstressDR are devices form
Vector Informatik GmbH which can initiate digital disturbances on the
CAN bus.







Custom library

To integrate user-defined automation blocks in Automation Desk

The libraries that we created linked to the Automation Desk Project
statically or dynamically

In static link mode ,the libraries loaded from the repository (via Get
or Check Out) have no effect on your opened Automation Desk
projects until you synchronize.

in Dynamic link mode, modifications in the libraries loaded from the
repository have an immediate effect on your opened Automation
Desk projects. Only the interfaces must be synchronized manually.




Version Management control

The check out state of a
project element is displayed via
various check marks with the
version control and it is as follows
.
Creation and Execution of Automation Test Project

From the menu bar, choose File - New - Project to open the New
Project dialog and select the standard project by default and click on
browse button to save the project

Add a New Folder to the project and rename to the Type of Tests
(Functional ,Interlocks ,Calibration ,Diagnostics) by simple right
click on the project folder .

Add the Data objects from the drop down menu list, once we do right
click on the Project Folder or the sub folders

Create a New Test sequence (rename is optional) to add the Test
blocks by drag & drop from the Library Browser



All the blocks which are
added in sequential or
Concurrent (Parallel) are
arranged and shown in the
sequence Hierarchy in the
Navigation window .

After Completion of Test
case scripting ,go to Menu
bar and select Execute from
the Execution tab in the
drop down list to run either
in Online or Offline to
generate the Test Report in
both HTML and PDF.





Features

Remote control of calibration, measurement, and diagnostic
tools such as Control Desk Next Generation
Flexible test planning with weekend and overnight tests
Offline test execution and development
Debugger
Complex signal evaluations
Automatic report generation
Support of HIL API-based simulator access
Advanced custom library concept with Version Control
Management.
Limitations of Automation blocks

Main library
The maximum number of characters to be used with a String data
object is 65536.

Python allows a tuple to be used as a dictionary key value.

In RS232Configuration or a Collector data object, must not be added
to a collection-type data object, like a list, tuple or dictionary. we can
append only Python standard types (int, float, list, tuple, etc.) to a
collection-type data object.




Not permitted operations in the Exec block

Never assign objects and values to members of objects of the internal
Automation Desk object model. The internal member will be
overwritten. For ex: _AD_.Parent = 5 (Parent is an internal member)

Never assign instances that contain unpickleable objects (for example,
COM or OS objects such as rtplib.Appl, cdautomationlib.Application) to
a data object's value.

Ex: import cdautomationlib
AD_.Variant1 = cdautomationlib.Application()

Error :
<class 'cPickle.PicklingError'>: Can't pickle <type 'PyIDispatch'>:
attribute lookup __builtin__.PyIDispatch failed
Never assign instances of classes that are defined in Exec/ExecFile blocks to
a data object's value such as a Variant or an element of a List, Tuple or
Dictionary.
Example:
class A:
def __init__(self, aName):
self.MyName = aName

myInstanceOfA = A("The New Instance Name")
_AD_.Variant1 = myInstanceOfA
Platform Access library

Using sdmlib functions in Exec blocks
It is not possible to use sdmlib functions(to generate stimulus signals) in
an Exec block, because the SIGNAL object cannot be created. An
Attribute Error will be displayed.

Parameters in masked subsystems are not updated in Control Desk
When writing mask and workspace parameters using rtplib functions,
Control Desk does not notice modifications to these parameters itself,
although the effects of such modifications are reported.

Simulink model must be stopped before using extended capturing
blocks
You must stop a Simulink model before you can execute an InitCapture
or ConfigureCapture block.


Platform access in Parallel blocks
It is recommended not to use Platform Access blocks in Parallel blocks if
there are dependencies between the blocks.

Considering initialization time
It is recommended to use a LoadVariableFile block always otherwise we
have to consider the required time for initializing the capture process

LoadApplication event in ControlDesk is not executed
The LoadVariableFile block is directly accessing ControlDesk's
PlatformManager without using the implementation of ControlDesk's
event handling when load application event in control desk is not
executed.
Example : Access the PlatformManager via cdautomationlib in an Exec
block
import cdautomationlib
app = cdautomationlib. PlatformManager()
app.Platforms.Item(<Index>).Load(<Variable File>)
app = None

You might also like