4. Advanced Functions

This section lists all the advanced usage of ViCANdo, e.g. how to work with differnet sources and hardware to utilize the power of ViCANdo. All the example projects can be downloaded from here .

4.1 Scripting functions

ViCANdo supports scripting with QML and JavaScript, as well as the Scriplet. It enables you to apply complex logic for the data you received from the source and also send data through the source to the network/field bus the source is connected to.

4.1.1 Using Scriplet

Scriplet is useful in some cases where scripts are simple and performance is not important. Check ViCANdo Scriplet API to learn how to use it. We recommend to use QML & JavaScript instead as Scriplet is obsolete.

4.1.2 Using QML & JavaScript

The most common and advanced scripting function is by using the QML extention in ViCANdo. Check the ViCANdo QML API to learn how to use it.

4.2 Working with bookmarks, session cropping/cutting

4.2.1 Bookmark

Bookmark is an easy to use method to mark the important timestamp with your own free text that describes what has happend at that specific timestamp.

To manually add/edit/remove a bookmark, you need to first select a session, then go to the timeline bar and left click on the point where you want to add a bookmark. After that right click on the bookmark the menu will show and it allows you to edit the bookmark:

_images/bookmark_menu.jpg

Another way to automatically set the bookmark is via the trigger with action set bookmark.

4.2.2 Session cropping

Session cropping in vicando is kinda “soft crop”, it doesn’t really destroy the original session. You can get the short clip/cropped session if you do “clone” of the cropped session.

To crop the session, you need to select the sesison, and right click on the timeline bar and set start and stop timestamps via crop menu. Then the session will be marked as “cropped” with a * in the session display name. Then right click on the session and select “Clone/Duplicate session” will create a new session from the cropped session, the new session will be added to the session tree. The new sessions will be added to the folder called cloned-sessions inside the project directory on the disk. The last step is to select on the original session and go to timeline bar and right click and select crop->reset crop.

_images/session_clone.jpg

You can also create an new project from the cropped session. To do this you need to set the start and stop timestamp for your cropping, then right click on the session and select Create new project with this session. The last step is to reset the crop of the original session.

A typical use case is that you crop the session between two bookmarks added by the triggers.

More advanced automatic session cropping can be done from the QML API .

4.3 Advanced search in log files

By right clicking Sessions icon and selecting search or pressing the ‘Ctrl+F’ keys, you can perform advanced search in the log files.

_images/search_in_log_1.jpg

When you do so, the following dialogue box will appear which has two modes – a free text search or an expression search.

_images/search_in_log_2.jpg

In the free text search, you can search for any word and the closest following 1000 hits as well as following the position of the time stamp pointer will appear.

_images/search_in_log_3.jpg

In the expression tab, you can select signals from your database and conditions, like in this case, we wanted values that are larger than 200.

In this dialogue you can also freely program your search criteria using JavaScript. Please consult the JavaScript manual for more details.

4.4 Working with sound sources and FFT analysis

_images/sound_1.jpg

Start off by adding a sound visualizer and associate it with a source.

_images/sound_2.jpg

When the source is associated, a sound visualizer will appear as can be seen below:

_images/sound_3.jpg

The sound visualizer has a number of settings that can be found under Component properties.

_images/sound_4.jpg

4.5 Working with network cameras

Start of by creating a source for the network camera; this can be done by selecting the Source option on the main menu.

_images/network_camera_1.jpg

Type in the network URL of your camera and you are ready to go.

For example, below is the typical setting for Axis camera, you need to have the rtsp(real time stream protocol) URL of the camera:

_images/network_camera_settings.jpg

Check the manual of your network camera to learn where to get the network URL.

Note

To get lower latency, try to avoid RTSP and H264, use MJPEG over HTTPS instead.

4.6 Working with GPS and maps

ViCANdo supports any GPS unit with USB and NMEA0183 protocol. Together with viewers in ViCANdo that can display Google Maps® viewer or Baidu Maps®, you can plot the whole route during your test run and analyze the signals in the vehicle afterwords.

To start working with GPS device, plug in your GPS device to your computer first. Then in ViCANdo select Source -> GPS Device:

_images/gps_1.jpg

In the New GPS Source dialogue, select the GPS device from the list and configure RS232 settings here:

_images/gps_2.jpg

After the GPS source is added, you can also change the settings in Component properties box when you click on the GPS source in project explorer.

Note

By default most GPS device output NMEA data at 1 Hz. It is recommended to pre-configure the GPS device’s output rate using the tools come from the GPS vendor if there are any. If you want to configure the output rate in ViCANdo, you need to know the chipset of the GPS device. Different device use differnet chipset for e.g. output rate settings. If you would like us to add support for configuring your GPS device, contact our sales for more information.

To view the GPS data, a Multi Trace needs to be added from menu Presentation -> Multi Trace. Select the GPS source you have added. You can also set the nickname of the Multi Trace in its Component properties dialogue to a name which is easier to identify the Multi Trace if there are many of them. e.g. nickname of the Multi Trace in this case can be set as GPS.

_images/gps_3.jpg

Next is to add Google Maps® or Baidu Maps® viewer from Presentation menu and select the GPS source you have added. If you want, you can also add a GPS compass.

_images/gps_4.jpg

Please note that Baidu Maps® viewer uses a differnet coordinates system called BD09, while Google Maps® uses WGS84. You may need to convert the coordinates system from the Component properties of the Baidu Maps presenter to get correct navigation.

_images/baidumap_bd09.jpg

Now you are ready to start recording. The Multi Trace will display the GPS data. For example:

_images/gps_5.jpg

Each GPS data entry in Multi Trace has two rows. First row contains:

  • GPS Source

  • Fix - means GPS fix quality in NMEA

  • Timestamp in microsecond

  • Speed in km/h

  • Number of satellites being tracked

  • Lattitude

  • Longitude

  • GPS date and time

The second row contains:

  • Bearing in degrees

  • Antenna signal strength for each satellite

  • Sea level altitude in meters

  • Geoid level altitude in meters

4.7 Working with GPSD

Start of by creating a source for GPSD that can be found under the Source option on the main menu: Source-> GPS Device

Then in the New GPS Source dialogue, select Via GPSD service. Then you can type in the server parameters necessary for your GPSD device(s).

_images/gpsd_1.jpg

4.8 Working with Ethernet

ViCANdo allows you to work with Ethernet. Make sure that ViCANdo does not be shielded by firewall in the computer.

For Mac OSX Users

If you need to use the Ethernet source(including TCP/UDP sockets) on your Mac, permission to capture network traffic should be given to ViCANdo. To resolve this, you can either enable “root” user on your Mac or execute below command in terminal:

sudo chmod o+r /dev/bpf*

which will allow any user on your machine to sniff packets.

For Windows OS Users

To use the ViCANdo Ethernet option on Windows OS, your computer needs to have PCAP(packet capture) driver installed.

Downlad PCAP driver, e.g. WinPcap from: https://www.winpcap.org/install/default.htm

Note

  • If your license includes Ethernet option but ViCANdo doesn’t display it from the menu. Please download and install the PCAP driver and restart ViCANdo.

  • ViCANdo currently only supports UDP and TCP level of Ethernet.

Open ViCANdo, add an Ethernet device from Source menu.

_images/Ethernet_1.jpg

Select the Etherent device from the list:

_images/Ethernet_2.jpg

When the Ethernet device is added, click on it and you will see the Component properties dialogue on the left where you can change the configuration of the Ethernet device.

_images/Ethernet_3.jpg

The Capture filter is the place to add the PCAP filters which can be used to capture the wanted traffic.

In ViCANdo, Multi Trace is used for displaying Ethernet traffic. Add a Multi Trace from Presentation menu and select the Etherent device in-use.

_images/Ethernet_4.jpg

Now you are ready to start recording. For eaxmple, below is the Ethernet traffic in Multi Trace without any PCAP filters:

_images/Ethernet_5.jpg

If you would like to add PCAP filter, just type the filter command in Component properties dialogue of the Etherent source and re-start recording. Then the Milti Trace will only display the traffic you are intrested in. For example:

  • Filter tcp will make Multi Trace display only the TCP traffic.

  • Filter udp will make the trace display only UDP traffic.

  • Filter port 80 will make the trace display only the traffic on port 80.

For more syntax examples, refer to tcpdump http://www.tcpdump.org/manpages/pcap-filter.7.html

4.9 Working with TCP and UDP Socket

ViCANdo has two modes:

  • Spy mode - Spy on TCP or UDP traffic, extract TCP or UDP data from raw Ethernet frame

  • Client/Server mode - Use ViCANdo as a TCP or UDP client or server

4.9.1 TCP socket - Spy mode

You need to have a Ethernet source(better to have a Multi Trace as well) added in ViCANdo first. Then go to Source menu to add a TCP or UDP socket:

_images/tcp_udp_socket.jpg

For example, below is a screenshot when adding the TCP socket, you need to select the Ethernet source from the drop-down list if you want to use the spy mode. Then configure the network address, the port number and the package size.

_images/spy_mode_add_tcp.jpg

Then under the Ethernet source in project explorer, you will find the TCP socket you have added. e.g. TCP:80 in below example.

_images/spy_mode_add_tcp_2.jpg

You can also change the configuration of the TCP socket in the Component properties dialogue when you click on the TCP source. e.g. Data mode can be changed to Text data where traffic will be displayed in text data mode.

You need a Multi Trace to view the TCP traffic. When adding the Multi Trace from Presentation menu, select the TCP source you have added.

_images/spy_mode_add_tcp_3.jpg

Now you are ready to start recording the TCP traffic on port 80.

In this example, we need to open web browser and go to www.zuragon.com to generate some traffic on port 80. Then the TCP traffic(default fixed packet size data mode)will be displayed:

_images/spy_mode_add_tcp_4.jpg

To change the Data mode, stop recording and click on the TCP:80 source and change the Data mode to Text data in Component properties dialogue. Then restart recording, the TCP traffic will be displayed in text data mode. For example:

_images/spy_mode_add_tcp_5.jpg

4.9.2 TCP socket - Server mode

To use ViCANdo as a TCP server, you need to add a TCP socket from Source menu and configure it, for example:

_images/tcp_socket_server_1.jpg

and also a Multi Trace for displaying the traffic. For example, below is the configured TCP socket in server mode and a Multi Trace:

_images/tcp_socket_server_2.jpg

In this example, start recording in ViCANdo, and then we need to open web broswer and go to http://localhost:8080 to see what the web broswer is trying to do. For example:

_images/tcp_socket_server_3.jpg

4.9.3 TCP socket - Client mode

To use ViCANdo as a TCP client, you need to add a TCP socket from Source menu and configure it, for example:

_images/tcp_socket_client_1.jpg

and also a Multi Trace for dislaying the traffic. Now you are ready to start recording in ViCANdo. Below is the screenshot when Data mode is set to Text data:

_images/tcp_socket_client_2.jpg

As you can see from above screenshot, the welcome message from Google’s STMP is displayed.

4.9.4 UDP socket - Spy mode

Similar to TCP socket, you need to add a UDP socket and a Multi Trace for it. Let’s sniff on DNS on port 53 now. When adding the UDP socket from the Source menu, configure the port to 53:

_images/spy_mode_add_udp_1.jpg

Then add a Multi Trace for the UDP:53 and set the nickname of the Multi Trace to UDP:53. Now you are ready to start recording in ViCANdo.

Now open command prompt if you have Windows OS to trigger a DNS reslove to see the traffic in UDP:53 Multi Trace.

For example, type below command in command prompt:

ping www.google.com

Then you will see the UDP traffic on port 53 in Multi Trace.

_images/spy_mode_add_udp_2.jpg

4.10 Working with FlexRay

Start by creating a source for the FlexRay device, this can be done by selecting the Source option available in the main menu.

_images/flexray_1.jpg

Next, choose the device and set the bitrate.

_images/flexray_2.jpg

The settings for each FlexRay channel are available under component properties.

_images/flexray_3.jpg

Just as is required with CAN and LIN, you have to associate this with a suitable database as well.

_images/flexray_4.jpg

In this case we choose a Fibex file, however, it can be a .dbc file as well.

_images/flexray_5.jpg

Going forward, the function is perfectly same as it is in the case of CAN or LIN. You can call up the signals for association actions like triggers or plots.

_images/flexray_6.jpg

And also create traffic generators.

_images/flexray_7.jpg

The method of associating the signals with trace or graph windows is exactly the same as with all other busses.

_images/flexray_8.jpg

Incase you want to have a signal list view, you can right click in the fixed trace window on a particular signal or press Ctrl+F12.

_images/flexray_9.jpg

4.11 Working with lane and vehicle detection

In ViCANdo 1.6 or later versions, there are options for detecting lanes, other vehicles and number plates. However, these functions may vary from market to market so please contact your local Zuragon contact in order to get appropriate advice.

If you want to activate the detection overlays, right click on the actual video presenter and choose whichever option(s) you want activated.

_images/lane_vehicle_detection_1.jpg

Once activated, they will show up in the video window right away.

_images/lane_vehicle_detection_2.jpg

4.12 Working with import of multiple video sources from other tools

When working on the development of algorithms, sometimes you need to be able to reuse the legacy of recorded videos. To import a legacy video, make sure that it is in .mpeg, .mp4 or .avi format. Next, right click on the session folder.

_images/import_multiple_video_sources_1.jpg

And then go to the Import video option. Thereafter, select the To new video source option, as there are currently no video sources that exist.

_images/import_multiple_video_sources_2.jpg

Now, choose the file of your interest and click Open.

_images/import_multiple_video_sources_3.jpg

ViCANdo will start importing the file so as to make it a part of the ViCANdo project. This activity might take sometime depending on the size of the file selected.

_images/import_multiple_video_sources_4.jpg

Once the file is imported and is part of the project, if you would like to import another video file in order to try out the algorithms on videos with various conditions, you just need to repeat the steps above and build up a library of video logs inside ViCANdo. It’s also possible to combine this with the import of other logs from existing CAN, FlexRay or Ethernet log files. The flow of work will be the same.

_images/import_multiple_video_sources_5.jpg

4.13 Working with LiDAR sensors

ViCANdo supports several market leading LiDARs, such as Velodyne , Hesai Pandar , IBEO and Robosense LiDARs.

LiDARs were used in a wide range of fields, like autonomous vehicles, industrial machinery, 3D mapping and surveillance. Most lidars outputs data via Ethernet. For example, Velodyne LiDAR sensor outputs UDP network packets which include range and intensity data of the lasers in the device. ViCANdo offers real-time visualization of live captured 3D LiDAR data from LiDAR sensors. Follow below instructions to learn how to use lidar presenter in ViCANdo.

4.13.1 Setup Velodyne LiDAR viewer

The Velodyne HDL-64e and HDL-32e sensor output UDP network packets on the 192.168.3 subnet, port 2368 by default. The HDL-32e with latest firmwrae allows you to customize this network subnet. You can connect the Velodyne sensor either to your computer or a network switch. Please read the user guide of the sensor from Velodyne to setup the network. Make sure your PC(where ViCANdo is running) is in the same network as Velodyne lidar.

Next step is to add a UDP socket from Source menu. The UDP socket port number should be the port number the sensor is using. For example, Velodyne lidar broadcasts data from 10.42.42.35 port 2368, in ViCANdo you need to add a UDP socket with server mode:

_images/velodyne_lidar_udp_socket.jpg

The listen address should be the address of the network interface on the host PC where Vicando is running. Set it to 0.0.0.0 will listen to all the UDP @configured port comming into the host PC.

In the Client filter you can specify the IP address of the lidar. This is useful if you have multiple lidars connected to the network.

Then you can add a Multi Trace from Presentation menu for this source to view the lidar data.

To visualize the point cloud data, click menu Prensentation and select Velodyne LiDAR viewer, set the UDP source as the Source of the viewer.

The viewer window looks like this:

_images/velodyne_lidar_viewer_window.png

The left part of the viewer displays the point cloud data from the Velodyne sensor. You can rotate the diagraph and change the view type to top view, side view, front view etc. using the icons on the bottom.

The right part of the viewer opens when you click on the bottom right corner icon called settings. It allows you to change e.g. update rate and distance factor.

The source and presenter/viewer configuration for other lidars such as Robosense and Pandar lidar is similar to the configuration for Velodyne.

For Robosense lidar, it is also good to configure the distance resolution mode ( 0.5 cm or 1 cm) if you know, type of lidar, if needed, add the calibration files from the lidar viewer’s component properties window:

_images/RS32.png

4.13.2 Import PCAP files

PCAP - a network packet capture file format, is used mostly by Wireshark which is a popular network packet analyzer program. Many people use this PCAP file format to record and playback lidar packets.

Lidar vendors offer some sample PCAP files on their websites which can be used for testing before purchasing the sensor.

To see how the sensor data works in ViCANdo, you can download the PCAP file and then create an empty project in ViCANdo. Right click on All sessions and select Import PCAP:

_images/import_pcap.png

Then a Ethernet source will be created after the import is finished. You can add a Multi Trace to view the data when playing the session.

Pause the session and check the data in Multi Trace, navigate to the UDP data row, find out the sender’s IP address and port number of the UDP data in the log. The IP address

and port number is used by the lidar to output point cloud data.

Then add a UDP socket from source, in Spy mode, configure the “from address” to the lidar’s IP address and port. Click on the Ethernet log file it will automatically

generate the UDP log file for the new UDP socket source.

Then add a multi trace and lidar viewer for the UDP socket source to view the data.

Then play the session, the point cloud data will be visualized in the lidar viewer.

4.14 Working with RS232 Source

ViCANdo 2.2.67 or later versions supports adding RS232 sources from the Source menu. You can setup a RS232 source to listen to the traffic from the serial port.

_images/rs232_source_menu.png

Then you can configure the RS232 port and baudrate etc. settings shown in below window:

_images/generic_rs232_source.png

After you have added the source to the project, click on it and you will see the Component properties window on the bottom:

_images/rs232_component_properties.png

There are two display modes for the traffic: Fixed packet size and text data. Then add a Multi Trace for this source to see the traffic. For example:

_images/rs232_trace.png

To learn how to use the RS232 source with QML, download and open this UDP to CAN demo The demo sent the data from UDP socket to CAN and RS232 sources.

4.15 Working with MATLAB

Matlab is a powerful tool to develop advanced driver assistance system. Click here to read more.

With ViCANdo, user can exchange data with Matlab and use the Matlab engine to process the data, e.g. video frames data, CAN data. To be able to use ViCANdo with Matlab, you need:

Step 1: Make sure you have installed Matlab on your PC

Note

Since Matlab is a 64-bits application, you need to use the 64-bits version of ViCANdo with it.

Step 2: On Windows, add the path of your Matlab to the System Variable “Path” to tell Windows where the matlab API shared libraries reside. An easier way to do it is to type below command in your Matlab window to get the path:

res = fullfile(matlabroot,'bin',computer('arch'))

Then type below command to add the path to your system variable “Path”:

set PATH=res;%PATH%

(Above steps are described from this link )

Step 3: Download the ViCANdo Matlab Demo project and open it(You may need to manually re-load the MatlabTest.qml under qml folder in the project due to the change of the absolute file path, The QML file needs to be attached to the video source):

_images/matlab_add_MatlabTest_qml_to_project.jpg

The QML file “MatlabTest.qml” under qml folder is the main file that sends the video frame(the top video view) data to Matlab engine and expects some result from it and display the result on the bottom video view area, see below screenshot:

_images/matlab_test_qml.JPG

When you click on the “record” button on the top left corner in ViCANdo, the QML will execute the matlab engine and a Matlab command window will open automatically after few seconds. The evaluate button is for matlab engine to evaluate the above command you have typed. For detailed description of the Matlab QML API in ViCANdo, please refer to this Matlab QML API

4.17 Working with LeddarTech Vu8 lidar sensor

LeddarTech is a leader in optical detection and ranging technology. The lidar sensors come with CAN interface. The detections can be transmitted on CAN bus. In ViCANdo it’s possible to capture the detections using QML & JavaScript to write an extention component. Download LeddarTech Vu8 Demo project to learn how to write your own custom QML script. The QML demo looks like this:

_images/leddartech_vu8_qml_demo.jpg

There are two logs/sessions inside the project, first one is logged when LeddarTech Vu8 is configured in single-message ID mode with default base IDs, i.e. all the detections will be transmitted via a CAN message. The second one is logged when the sensor is configured in multi-message ID mode, i.e. the detections will be transmitted via few CAN messages. To see how the detection looks like, select the session( if first session is selected, configure single-message ID mode in QML componnet), then click on the play button. You will see the detections from 8 segments displayed on the lower window.

Inside the demo project, under the spec folder you will find the LeddarTech Vu8 user guide and under qml folder you will find the QML demo source code. If you are new to LeddarTech lidar products, you need to register an account from LeddarTech support portal and download the specific configurator tool for your sensor first. Once the sensor is configured, then you need to set the same configuration in your ViCANdo QML component, after that, you are ready to go and make logs with ViCANdo.

4.18 Working with MccDAQ analog and digital I/O devices

Mcc DAQ provides PC-based data acquisition hardware. In Vicando it is possible to capture analog and digital inputs from MccDAQ devices.

Contact our support or distributors to check if your MccDAQ device is supported or not, or for recommendations on device selection.

To use MccDAQ device with Vicando/Vicanlog, first of all you need to install the drivers of the MccDAQ devices.

On Windows, InstaCal Driver from MccDAQ is needed, download it from:

https://www.mccdaq.com/Software-Downloads

On Linux, download and install the uldaq library:

https://github.com/mccdaq/uldaq

Below is a collection of the commands written in above uldaq library page. You need to execute them if you are using Ubuntu:

$ sudo apt-get install gcc g++ make
$ sudo apt-get install libusb-1.0-0-dev
cd to your downloads folder and
$ wget -N https://github.com/mccdaq/uldaq/releases/download/v1.2.0/libuldaq-1.2.0.tar.bz2
$ tar -xvjf libuldaq-1.2.0.tar.bz2
$ cd libuldaq-1.2.0
$ ./configure && make
$ sudo make install

if your MccDAQ device is not supported by uldaq library, you may need to check the third party library from here: https://github.com/wjasper/Linux_Drivers

Then plugin the device and open Vicando/vicanlog.

Go to menu Source -> MccDAQ device to add a new device, specify how many analog inputs and digital inputs you want to use.

_images/mccdaq_source.jpg

Multi Trace can be used to display the data for MccDAQ devices.

_images/mccdaq_multi_trace.jpg

If you want to add the single channel to graph, you can do so by right clicking on the MccDAQ device under source and select the channel and add it to graph or create a new graph.

_images/mccdaq_working.jpg
Below is a list of the MccDAQ devices we have tested:

4.19 Working with XCP and A2L

The XCP protocol is used for engineers to access the variables and memories of a ECU. ViCANdo supports XCP over Etherent(TCP and UDP) and XCP over CAN.

To use XCP, you need to first create a CAN source(with Fixed trace) or TCP/UDP source(except Spy mode) with a Multi trace in the software, then select Source -> XCP Transport Protocol:

_images/new_XCP.png

You can specifiy the source and path to A2L file in above dialog.

You can also change the settings and specify the path to HEX file(the firmware of the ECU) in the Component properties window of the XCP source:

_images/xcp_settings.png

To view the A2L file, right click on the XCP source(that is added as a slave source in the project tree) and select from the context menu:

_images/xcp_menu.png

It will open the A2L explorer window from where you can read and write the measurements, characteristics and memories:

_images/A2L_explorer.png

Measurement

Check the checkbox of the measurement and specify the channel on the A2L explorer. It will add the meassurement as a “slave source” to the project tree under the XCP “slave source”.

You can either right click on the measurement in the project tree to create a graph or use the Multi Trace to view the data.

Characteristics

Check the checkbox of the characteristic entry, it will be added to the project tree.

To view the characteristic you will need to add a XCP Characteristic viewer under Presentation menu.

To edit the characteristic:

_images/edit_xcp_characteristic.png

It will send a XCP write command via the source ( CAN or TCP or UDP) where the XCP source is attached to.