Comments (5)
MoM: Quickly presented at meeting
from vehicle_signal_specification.
Some more aspects - on Actuator/Sensor/Attribute and how they currently are used in implementations
VISS
VISS API is intended only for the "northbound" connection for a VSS server. You can only "update" actuator signals, and it clearly states that if you do a "read" you will get current value (not target value) for an actuator.
Eclipse Kuksa
Kuksa has support to specify if a write or read concerns target value or current value and manages for actuators two values internally.
This brings up an interesting aspect - what value does the current actuator/sensor/attribute categorization serve? As of today it can as seen above be used to control which operations/methods you allow/support on a specific API, and if you should handle it as a "single" or "dual" value internally in the implementation. Historically we have sort of assumed that it is northbound interface that sets the wanted value (like "IsLocked=False") and the southbound interface that reports the actual value, but that may not always be correct. One could for instance imagine that it actually is the backend (i.e. northbound interface) that calculates time to service (Vehicle.Service.TimeToService
) and sends it to the vehicle. That signal is today a "sensor" and cannot be set using VISS. I would not really call it an actuator either, as it does not actuate anything.
So would it possibly be better to consider the old designations as legacy designations, and in addition add a new one that just says it is a datapoint with a single value which by default should be accessible with read+write requests
A.B.C:
type: datapoint
datatype: uint8
In an overlay one could possibly then specify alternative access, adapted to current implementation for a specific API. Like if you do not want an API to present a write-method or deny write requests an overlay like below could be used.
A.B.C:
type: datapoint
access: r
datatype: uint8
from vehicle_signal_specification.
MoM:
- Stefan: Thinks useful, like cruise control, target speed and target distance, we may not be able to achieve both
- Ulf: If we decide to have different values for target+current, then we shall have name rules, have a postfix added, like Vehicle.Speed (sens) and Vehicle.SpeedTarget (actuator)
- Erik: Taking SpeedRequest/SpeedTarget, that is not a "classic" actuator.
- Ulf: needs consideration to change, the term "actuator" has existed for long. legacy naming.
- Daniel: Something like this could be added in model. You may have button, knobs. We can have a vocabulary for actuators, no limitation adding metadata
- Erik: Conclusion that we in general are positive to having separate signals. We (Bosch) will come back with a PR using this approach for some new signals.
from vehicle_signal_specification.
Let me mention a few relevant points:
- I would not simply call it adding new
signal(s)
, as the term can be misleading. - In my opinion, VSS is currently a collection of vehicle
properties
, where:
Property: A quality of an entity. An aspect of an entity that is intrinsic to and cannot exist without the entity. source: SSN ontology
- In a practical implementation, the actual value associated with such a property can be..
- .. read (i.e., vss
type: sensor
). Making it a so-called ObservableProperty - .. read and written (i.e., vis
type: actuator
). Making it a so-called ActuatableProperty
- .. read (i.e., vss
With that said, I would like to point out that a property
and the value
of it at a particular time are two distinct things.
As you know, the actual value
is not specified in VSS
because that comes later in a real implementation and with instance data. Handling the difference between the target
value and the current
value for a property may be better suited at the API level, rather than within the hierarchical data model itself.
For example, the VSS
specification could describe the property someContext.sunroof.position
with a simple integer datatype, while the API would provide methods to set the target position, retrieve the current position, and handle any changes or events related to the sunroof position.
from vehicle_signal_specification.
MoM:
Stefan: can you elaborate
JD: read/write for non-safety critical signal(s) -> observe value while its moving (example seat position) -> vss does not have control over target and actual value. TL,DR introduce field to values instead new signal(s)
from vehicle_signal_specification.
Related Issues (20)
- Enforce "style" for VSS standard catalog HOT 6
- Need for release-branches? HOT 11
- Ranges for Float and Double HOT 1
- Supported encoding for string values HOT 1
- Need for release tar-ball HOT 4
- Hydrofoil signals HOT 1
- Vehicle Error Codes HOT 2
- Representing signals in VSS tree HOT 2
- Inconsistent terminology - attributes, members, elements, meta data HOT 3
- typo in vspec v3.0 makes vss-tools 4.x fail HOT 2
- vehicle signal specification generated fidl is not recognized by commonapi. HOT 1
- Overlay childrens are not merged causing extensions_attributes missing HOT 3
- Mathematical Operation in Vspec HOT 5
- Signal references inside structs? HOT 6
- Improve naming convention to distinguish instances from branches HOT 20
- Documentation generation framework (Learn) is deprecated HOT 1
- Allow instantiation of charging ports HOT 6
- Insurance relevant Parameters HOT 6
- Release prep for 5.0
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vehicle_signal_specification.