Spotlight on VSS featuring RemotiveLabs

Watch the recorded webinar with hands-on demos focused on why and how RemotiveLabs enables signal conversion with LUA-scripting and iterative development of VSS-signals.

RemotiveLabs is a startup member in COVESA and recognized as a change-maker in software-defined vehicles with their open platform challenging the legacy locked-in options.

VSS Remotive Labs

Reducing complexities for software developers in automotive includes solutions to share vehicle data without sending proprietary data to third parties – an important use case for VSS.

April 16, 2024
COVESA
April 16, 2024
COVESA

Turn live / recorded vehicle data into filtered VSS data

COVESA’s VSS Spotlight webinar March 2024 featuring RemotiveLabs. The webinar focuses on hands-on demos and how RemotiveLabs Platform caters to emitting Vehicle Signal Specification (VSS) with interactive LUA scripting using CLI.

How RemotiveLabs Platform incorporates VSS

The RemotiveBroker transforms the proprietary signals (live or recorded) into VSS. When you just need to rename a signal you can use a simple configuration file. For more complex transformations, we propose writing a small script in LUA to combine multiple signals, change frequency, and basically own your transformation setup. It is possible to configure the RemotiveBroker to only give access to the transformed signals, for more details see our documentation.

COVESA Spotlight Series, featuring VSS adoption by RemotiveLabs. RemotiveLabs is a startup member within COVESA

About

RemotiveLabs is one of our startup members at COVESA and is recognized as a change-maker in software-defined vehicles with their open platform challenging the legacy locked-in options.

Learn more: https://remotivelabs.com/

Everything RemotiveLabs presents in the webinar is available to try with their free limited version of RemotiveCloud. Create an account by signing up at cloud.remotivelabs.com. You automatically create your own project, and the free plan includes a few sample recordings of drive cycles. You can upload 1 Candump and invite 1 collaborator.

Related Pages

Sign up for a free limited version of RemotiveCloud (includes drive cycles) cloud.remotivelabs.com.

Share

Iterate VSS signals with LUA & RemotiveCLI

How to subscribe using a LUA script:

remotive broker signals subscribe --script <script.lua> --url <brokerUrl> --api-key <key>

Example of a lua script that merges two signals and changes its frequency:

(Vehicle.Powertrain.TractionBattery.StateOfCharge.Displayed_10Hz.lua)

local local_signals = {{
name = "ID352BMS_energyStatus.BMS_nominalFullPackEnergy",
namespace = "VehicleBus"
}, {
name = "ID352BMS_energyStatus.BMS_nominalEnergyRemaining",
namespace = "VehicleBus"
}}
local local_frequecy_hz = 10
local state_of_charge = 0

-- Required, declare which input is needed to operate this program.
function input_signals()
return local_signals
end

-- Provided parameters are used for populating metadata when listing signals.
function output_signals()
return "Vehicle.Powertrain.TractionBattery.StateOfCharge.Displayed_10Hz"
end

-- Required, declare what frequence you like to get "timer" invoked. 0 means no calls to "timer".
function timer_frequency_hz()
return local_frequecy_hz
end

-- Invoked with the frequecy returned by "timer_frequency_hz".
-- @param system_timestamp_us: system time stamp
function timer(system_timestamp_us)
return return_value_or_bytes(state_of_charge)
end

-- Invoked when ANY signal declared in "local_signals" arrive
-- @param signals_timestamp_us: signal time stamp
-- @param system_timestamp_us
-- @param signals: array of signals containing all or a subset of signals declared in "local_signals". Make sure to nil check before use.
function signals(signals, namespace, signals_timestamp_us, system_timestamp_us)
state_of_charge = signals["ID352BMS_energyStatus.BMS_nominalEnergyRemaining"] / signals["ID352BMS_energyStatus.BMS_nominalFullPackEnergy"]
return return_nothing()
end

-- helper return function, make sure to use return_value_or_bytes or return_nothing.
function return_value_or_bytes(value_or_bytes)
return value_or_bytes
end

-- helper return function, make sure to use return_value_or_bytes or return_nothing.
function return_nothing()
return
end

Why does RemotiveLabs use COVESA VSS?

  • Access: VSS allows developers to access curated signals while safeguarding proprietary data.
  • Transparency: A core part of RemotiveLabs cloud offering is to simplify vehicle data sharing between teams, allowing collaboration between the OEM, its partners, and 3rd party developers. Using VSS allows everyone to see the same data.
  • Compatibility: VSS has many business arguments related to working smarter and not harder. VSS increases the ability to reuse features/services developed between vehicle platforms.