Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • romahnp/opSimulation
  • eclipse/openpass/opSimulation
  • dweiwg6/simopenpass
  • rbiegel/simopenpass
  • fweissenbacher/simopenpass
  • adascri/simopenpass
  • mbauerm6f/simopenpass
  • rcaloudis2v6/simopenpass
  • mscharfenberg/simopenpass
  • kblenz/simopenpass
  • wangkun970101/simopenpass
  • fgurr/simopenpass
  • m121212/simopenpass
  • victorhexad/simopenpass
  • senigueve/opSimulation
  • fgurr/opSimulation
  • malowe/opSimulation
  • heuerfin/opSimulation
  • nmraghu/opSimulation
  • naidagoro/opSimulation
  • rbiegel/opSimulation
  • benni/opSimulation
  • emaschke/open-pass-simulation
  • szipfel/opSimulation
  • arnauvazquez/opSimulation
  • jdobberstein/opSimulation
  • gwendallucas/op-simulation-gl
27 results
Show changes
Commits on Source (1725)
BasedOnStyle: llvm
Language: Cpp
ColumnLimit: 0
IndentWidth: 4
AccessModifierOffset: -4
IncludeBlocks: Regroup
---
BasedOnStyle: Google
AccessModifierOffset: -2
AllowShortFunctionsOnASingleLine: Inline
AlignOperands: AlignAfterOperator
BinPackArguments: false
BinPackParameters: false
BreakBeforeBraces: Allman
BreakBeforeBinaryOperators: All
ColumnLimit: 120
SpacesInLineCommentPrefix:
Minimum: 0
Maximum: 1
CommentPragmas: '^\\.+'
IncludeCategories:
- Regex: '^<(gtest|gmock)/)'
- Regex: '^((<|")(gtest|gmock)/)'
Priority: -1
- Regex: '^<[^Q]'
Priority: 1
- Regex: '^<Q'
Priority: 2
AlignTrailingComments: true
BreakConstructorInitializers: AfterColon
ConstructorInitializerAllOnOneLineOrOnePerLine: true
AllowShortFunctionsOnASingleLine: None
KeepEmptyLinesAtTheStartOfBlocks: false
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH, forever, Q_FOREVER, QBENCHMARK, QBENCHMARK_ONCE ]
\ No newline at end of file
Priority: 2
\ No newline at end of file
---
Checks: >
-*,
boost-*,
bugprone-*,
-bugprone-easily-swappable-parameters,
cppcoreguidelines-*,
-cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-special-member-functions,
-cppcoreguidelines-avoid-magic-numbers,
misc-*,
-misc-non-private-member-variables-in-classes,
llvm-*,
google-*,
-google-build-using-namespace,
-google-default-arguments,
-google-readability-todo,
modernize-*,
-modernize-use-trailing-return-type,
performance-*,
-readability-*,
-readability-magic-numbers,
-readability-implicit-bool-conversion
FormatStyle: file
CheckOptions:
- key: readability-identifier-naming.ClassCase
value: CamelCase
- key: readability-identifier-naming.ClassMemberCase
value: camelBack
- key: readability-identifier-naming.ClassMethodCase
value: CamelCase
- key: readability-identifier-naming.GlobalConstantCase
value: UPPER_CASE
- key: readability-identifier-naming.ConstantCase
value: camelBack
- key: readability-identifier-naming.ConstexprVariableCase
value: UPPER_CASE
- key: readability-identifier-naming.EnumCase
value: CamelCase
- key: readability-identifier-naming.EnumConstantCase
value: CamelCase
- key: readability-identifier-naming.FunctionCase
value: CamelCase
- key: readability-identifier-naming.FunctionIgnoredRegexp
value: 'OpenPASS_GetVersion|OpenPASS_CreateInstance|OpenPASS_DestroyInstance|OpenPASS_UpdateInput|OpenPASS_UpdateOutput|OpenPASS_Trigger|OpenPASS_OpSimulationPreHook|OpenPASS_OpSimulationPreRunHook|OpenPASS_OpSimulationUpdateHook|OpenPASS_OpSimulationPostRunHook|OpenPASS_OpSimulationPostHook'
- key: readability-identifier-naming.GlobalVariableCase
value: camelBack
- key: readability-identifier-naming.GlobalVariablePrefix
value: g_
- key: readability-identifier-naming.NamespaceCase
value: lower_case
- key: readability-identifier-naming.ParameterCase
value: camelBack
- key: readability-identifier-naming.StaticConstantCase
value: camelBack
- key: readability-identifier-naming.StructCase
value: CamelCase
- key: readability-identifier-naming.TemplateParameterCase
value: CamelCase
- key: readability-identifier-naming.VariableCase
value: camelBack
- key: readability-identifier-length.IgnoredVariableNames
value: "^(i|j|k|x|y|z|u|v|s|t|id)$"
- key: readability-identifier-length.IgnoredParameterNames
value: "^(os|x|y|z|u|v|s|id)$"
* text=auto
Thumbs.db
# qt artifact
**/build-*
/.project
*.autosave
*.orig
*.rej
*.user
.qmake*
.directory
DoxyGen/Function/doxy_build/*
.vscode
build
*.bak
Doxygen.log
Doxygen
DoxygenWarningLog.txt
.devcontainer
# autogenerated by cmake
doc/source/version.txt
# third party references
deps/*
sim/deps/*
# clangd cache
.cache
# pyOpenPASS artifacts
test_*.html
report.css
# python related stuff
__pychache__
.env
# built example fmus
sim/contrib/examples/**/*.fmu
sim/contrib/examples/**/*.ssp
################################################################################
# Copyright (c) 2020 in-tech GmbH
# Copyright (c) 2020-2021 in-tech GmbH
# 2022-2024 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
#
# This program and the accompanying materials are made
# available under the terms of the Eclipse Public License 2.0
# which is available at https://www.eclipse.org/legal/epl-2.0/
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
################################################################################
# be prepared for support of C++20
cmake_minimum_required(VERSION 3.13)
cmake_minimum_required(VERSION 3.14)
project(openPASS C CXX)
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/cmake")
if(WIN32 AND NOT MSYS AND NOT CMAKE_CROSSCOMPILING)
message(WARNING "It seems you are using a build environment different from MSYS. This is not officially supported by the openPASS project.")
endif()
list(PREPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
if(CMAKE_CROSSCOMPILING)
# where is the target environment located
set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32)
add_definitions(-DCROSS_COMPILING)
endif()
# used for collecting a list of targets for dependency resolving and installation at the bottom of this file
# these have to be set before creating targets
set_property(GLOBAL PROPERTY exe_target_list)
set_property(GLOBAL PROPERTY lib_target_list)
cmake_policy(SET CMP0087 NEW) # Install CODE|SCRIPT allow the use of generator expressions.
include(global)
set(CPACK_PACKAGE_NAME openPASS)
set(CPACK_PACKAGE_VENDOR "simopenpass Eclipse project team")
set(CPACK_PACKAGE_VENDOR "openPass Eclipse project team")
set(CPACK_PACKAGE_VERSION_MAJOR 0)
set(CPACK_PACKAGE_VERSION_MINOR 7)
set(CPACK_PACKAGE_VERSION_PATCH 0)
set(CPACK_PACKAGE_CHECKSUM "SHA1")
set(CPACK_STRIP_FILES TRUE)
if(SIMCORE_VERSION_MAJOR MATCHES "^[0-9]+$" AND
SIMCORE_VERSION_MINOR MATCHES "^[0-9]+$" AND
SIMCORE_VERSION_PATCH MATCHES "^[0-9]+$")
set(OPENPASS_VERSION "${SIMCORE_VERSION_MAJOR},${SIMCORE_VERSION_MINOR},${SIMCORE_VERSION_PATCH}")
elseif(DEFINED SIMCORE_VERSION_TAG)
set(OPENPASS_VERSION "\"${SIMCORE_VERSION_TAG}\"")
else()
set(OPENPASS_VERSION "9999,9999,9999")
endif()
include_directories(.)
# descend to sources
if(WITH_SIMCORE)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/sim)
if(WITH_SIMCORE OR WITH_TESTS OR WITH_ENDTOEND_TESTS)
add_subdirectory(sim/contrib/fmus)
add_subdirectory(sim/contrib/ssp)
endif()
if(WITH_GUI)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/gui)
if(WITH_SIMCORE OR WITH_ENDTOEND_TESTS)
add_subdirectory(sim/contrib/examples)
endif()
if(WITH_SIMCORE)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/sim/src)
endif()
if(WITH_TESTS)
enable_testing()
set_property(GLOBAL PROPERTY test_target_list)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/sim/tests)
if(WITH_COVERAGE)
include(cmake/TestCoverageReport.cmake)
endif()
endif()
include(CPack)
if(WITH_ENDTOEND_TESTS)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/sim/tests/endToEndTests)
endif()
get_property(EXE_TARGET_LIST GLOBAL PROPERTY exe_target_list)
get_property(LIB_TARGET_LIST GLOBAL PROPERTY lib_target_list)
if(WITH_DOC OR WITH_API_DOC)
string(REPLACE "," "." OPENPASS_DOC_VERSION ${OPENPASS_VERSION})
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/doc/source/version.txt.in
${CMAKE_CURRENT_SOURCE_DIR}/doc/source/version.txt
)
install(CODE
"
file(GET_RUNTIME_DEPENDENCIES
RESOLVED_DEPENDENCIES_VAR resolved_deps
UNRESOLVED_DEPENDENCIES_VAR unresolved_deps
EXECUTABLES ${EXE_TARGET_LIST}
LIBRARIES ${LIB_TARGET_LIST})
add_subdirectory(doc)
endif()
if(UNIX)
list(FILTER resolved_deps EXCLUDE REGEX \"^/lib|^/usr\")
endif()
# copies runtime dependencies to installation directory (on running 'make install')
# requires global properties defined above
if(INSTALL_SYSTEM_RUNTIME_DEPS OR INSTALL_EXTRA_RUNTIME_DEPS)
include(install_deps)
endif()
message(\"Installing deps: \${resolved_deps}\")
message(\"Not found deps: \${unresolved_deps}\")
include(install_xmlSchemas)
file(COPY \${resolved_deps}
DESTINATION ${CMAKE_INSTALL_PREFIX}
FOLLOW_SYMLINK_CHAIN)
"
)
if(INSTALL_EXAMPLES)
install(
DIRECTORY sim/contrib/examples/
DESTINATION ${SUBDIR_EXAMPLES}
MESSAGE_NEVER
)
endif()
include(CPack)
# Community Code of Conduct
**Version 2.0
January 1, 2023**
## Our Pledge
In the interest of fostering an open and welcoming environment, we as community members, contributors, Committers[^1], and Project Leads (collectively "Contributors") pledge to make participation in our projects and our community a harassment-free and inclusive experience for everyone.
This Community Code of Conduct ("Code") outlines our behavior expectations as members of our community in all Eclipse Foundation activities, both offline and online. It is not intended to govern scenarios or behaviors outside of the scope of Eclipse Foundation activities. Nor is it intended to replace or supersede the protections offered to all our community members under the law. Please follow both the spirit and letter of this Code and encourage other Contributors to follow these principles into our work. Failure to read or acknowledge this Code does not excuse a Contributor from compliance with the Code.
## Our Standards
Examples of behavior that contribute to creating a positive and professional environment include:
- Using welcoming and inclusive language;
- Actively encouraging all voices;
- Helping others bring their perspectives and listening actively. If you find yourself dominating a discussion, it is especially important to encourage other voices to join in;
- Being respectful of differing viewpoints and experiences;
- Gracefully accepting constructive criticism;
- Focusing on what is best for the community;
- Showing empathy towards other community members;
- Being direct but professional; and
- Leading by example by holding yourself and others accountable
Examples of unacceptable behavior by Contributors include:
- The use of sexualized language or imagery;
- Unwelcome sexual attention or advances;
- Trolling, insulting/derogatory comments, and personal or political attacks;
- Public or private harassment, repeated harassment;
- Publishing others' private information, such as a physical or electronic address, without explicit permission;
- Violent threats or language directed against another person;
- Sexist, racist, or otherwise discriminatory jokes and language;
- Posting sexually explicit or violent material;
- Sharing private content, such as emails sent privately or non-publicly, or unlogged forums such as IRC channel history;
- Personal insults, especially those using racist or sexist terms;
- Excessive or unnecessary profanity;
- Advocating for, or encouraging, any of the above behavior; and
- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
With the support of the Eclipse Foundation employees, consultants, officers, and directors (collectively, the "Staff"), Committers, and Project Leads, the Eclipse Foundation Conduct Committee (the "Conduct Committee") is responsible for clarifying the standards of acceptable behavior. The Conduct Committee takes appropriate and fair corrective action in response to any instances of unacceptable behavior.
## Scope
This Code applies within all Project, Working Group, and Interest Group spaces and communication channels of the Eclipse Foundation (collectively, "Eclipse spaces"), within any Eclipse-organized event or meeting, and in public spaces when an individual is representing an Eclipse Foundation Project, Working Group, Interest Group, or their communities. Examples of representing a Project or community include posting via an official social media account, personal accounts, or acting as an appointed representative at an online or offline event. Representation of Projects, Working Groups, and Interest Groups may be further defined and clarified by Committers, Project Leads, or the Staff.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the Conduct Committee via conduct@eclipse-foundation.org. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. Without the explicit consent of the reporter, the Conduct Committee is obligated to maintain confidentiality with regard to the reporter of an incident. The Conduct Committee is further obligated to ensure that the respondent is provided with sufficient information about the complaint to reply. If such details cannot be provided while maintaining confidentiality, the Conduct Committee will take the respondent‘s inability to provide a defense into account in its deliberations and decisions. Further details of enforcement guidelines may be posted separately.
Staff, Committers and Project Leads have the right to report, remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code, or to block temporarily or permanently any Contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. Any such actions will be reported to the Conduct Committee for transparency and record keeping.
Any Staff (including officers and directors of the Eclipse Foundation), Committers, Project Leads, or Conduct Committee members who are the subject of a complaint to the Conduct Committee will be recused from the process of resolving any such complaint.
## Responsibility
The responsibility for administering this Code rests with the Conduct Committee, with oversight by the Executive Director and the Board of Directors. For additional information on the Conduct Committee and its process, please write to <conduct@eclipse-foundation.org>.
## Investigation of Potential Code Violations
All conflict is not bad as a healthy debate may sometimes be necessary to push us to do our best. It is, however, unacceptable to be disrespectful or offensive, or violate this Code. If you see someone engaging in objectionable behavior violating this Code, we encourage you to address the behavior directly with those involved. If for some reason, you are unable to resolve the matter or feel uncomfortable doing so, or if the behavior is threatening or harassing, please report it following the procedure laid out below.
Reports should be directed to <conduct@eclipse-foundation.org>. It is the Conduct Committee’s role to receive and address reported violations of this Code and to ensure a fair and speedy resolution.
The Eclipse Foundation takes all reports of potential Code violations seriously and is committed to confidentiality and a full investigation of all allegations. The identity of the reporter will be omitted from the details of the report supplied to the accused. Contributors who are being investigated for a potential Code violation will have an opportunity to be heard prior to any final determination. Those found to have violated the Code can seek reconsideration of the violation and disciplinary action decisions. Every effort will be made to have all matters disposed of within 60 days of the receipt of the complaint.
## Actions
Contributors who do not follow this Code in good faith may face temporary or permanent repercussions as determined by the Conduct Committee.
This Code does not address all conduct. It works in conjunction with our [Communication Channel Guidelines](https://www.eclipse.org/org/documents/communication-channel-guidelines/), [Social Media Guidelines](https://www.eclipse.org/org/documents/social_media_guidelines.php), [Bylaws](https://www.eclipse.org/org/documents/eclipse-foundation-be-bylaws-en.pdf), and [Internal Rules](https://www.eclipse.org/org/documents/ef-be-internal-rules.pdf) which set out additional protections for, and obligations of, all contributors. The Foundation has additional policies that provide further guidance on other matters.
It’s impossible to spell out every possible scenario that might be deemed a violation of this Code. Instead, we rely on one another’s good judgment to uphold a high standard of integrity within all Eclipse Spaces. Sometimes, identifying the right thing to do isn’t an easy call. In such a scenario, raise the issue as early as possible.
## No Retaliation
The Eclipse community relies upon and values the help of Contributors who identify potential problems that may need to be addressed within an Eclipse Space. Any retaliation against a Contributor who raises an issue honestly is a violation of this Code. That a Contributor has raised a concern honestly or participated in an investigation, cannot be the basis for any adverse action, including threats, harassment, or discrimination. If you work with someone who has raised a concern or provided information in an investigation, you should continue to treat the person with courtesy and respect. If you believe someone has retaliated against you, report the matter as described by this Code. Honest reporting does not mean that you have to be right when you raise a concern; you just have to believe that the information you are providing is accurate.
False reporting, especially when intended to retaliate or exclude, is itself a violation of this Code and will not be accepted or tolerated.
Everyone is encouraged to ask questions about this Code. Your feedback is welcome, and you will get a response within three business days. Write to <conduct@eclipse-foundation.org>.
## Amendments
The Eclipse Foundation Board of Directors may amend this Code from time to time and may vary the procedures it sets out where appropriate in a particular case.
### Attribution
This Code was inspired by the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available [here](https://www.contributor-covenant.org/version/1/4/code-of-conduct/).
[^1]: Capitalized terms used herein without definition shall have the meanings assigned to them in the Bylaws.
# Contributing to Eclipse openpass
This guide provides all necessary information to enable [contributors and committers](https://www.eclipse.org/projects/dev_process/#2_3_1_Contributors_and_Committers) to contribute to Eclipse openPASS.
## Eclipse openPASS
Eclipse openPASS provides a software platform that enables the simulation of traffic scenarios to predict the real-world effectiveness of advanced driver assistance systems or automated driving functions.
## Developer resources
* [Working Group Website](https://openpass.eclipse.org/)
* [Developer Website](https://projects.eclipse.org/projects/automotive.openpass)
* Mailing list: Join our [developer list](https://accounts.eclipse.org/mailing-list/openpass-dev)
* Bugs can be reported in [GitLab](https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/issues) by anybody who owns an Eclipse account. Please use type “Incident”
* [Documentation](https://openpass.eclipse.org/resources/#documentation)
## Eclipse Contributor / Committer Agreement
Before your contribution can be accepted by the project team, contributors and committers must sign the correct agreement depending on their status. Please read on how to proceed on: https://www.eclipse.org/legal/committer_process/re-sign/.
For more information, please see the Eclipse Committer Handbook: https://www.eclipse.org/projects/handbook/#resources-commit.
## Contact
Contact the project developers via the project's "dev" list.
* openpass-dev@eclipse.org
## How to contribute
The openPASS source code can be found [here](https://gitlab.eclipse.org/eclipse/openpass/opSimulation).
To build the project, follow the guide in "pathToRepo\sim\doc\OSI World Setup Guide.pdf".
The branch 'develop' contains the contributions that will be included in the next release. The 'main' branch contains the latest stable release.
### Committer contribution process
1. (you) Discuss your planned contribution with the project lead first.
2. (you) If needed, create the Issue on GitLab and assign it to yourself.
3. (you) In GitLab, create a merge request. The related branch will be created from the branch 'develop'.
4. (you) Work on it and respect the following points:
- Stick to the [coding guideline](doc/source/developer_information/30_coding_conventions.rst)
- Amend the documentation if necessary
- Provide unit-tests in googletest format
- Make sure, the code base with your contribution compiles
5. (you) Assign the issue to another committer.
6. (other committer) Review the code.
7. (other committer) To merge new branch into 'develop' you can close the merge request via GitLab.
8. (you) Present your contribution to the openPASS WG
This diff is collapsed.
Eclipse Public License - v 2.0
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial content
Distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from
and are Distributed by that particular Contributor. A Contribution
"originates" from a Contributor if it was added to the Program by
such Contributor itself or anyone acting on such Contributor's behalf.
Contributions do not include changes or additions to the Program that
are not Modified Works.
"Contributor" means any person or entity that Distributes the Program.
"Licensed Patents" mean patent claims licensable by a Contributor which
are necessarily infringed by the use or sale of its Contribution alone
or when combined with the Program.
"Program" means the Contributions Distributed in accordance with this
Agreement.
"Recipient" means anyone who receives the Program under this Agreement
or any Secondary License (as applicable), including Contributors.
"Derivative Works" shall mean any work, whether in Source Code or other
form, that is based on (or derived from) the Program and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship.
"Modified Works" shall mean any work in Source Code or other form that
results from an addition to, deletion from, or modification of the
contents of the Program, including, for purposes of clarity any new file
in Source Code form that contains any contents of the Program. Modified
Works shall not include works that contain only declarations,
interfaces, types, classes, structures, or files of the Program solely
in each case in order to link to, bind by name, or subclass the Program
or Modified Works thereof.
"Distribute" means the acts of a) distributing or b) making available
in any manner that enables the transfer of a copy.
"Source Code" means the form of a Program preferred for making
modifications, including but not limited to software source code,
documentation source, and configuration files.
"Secondary License" means either the GNU General Public License,
Version 2.0, or any later versions of that license, including any
exceptions or additional permissions as identified by the initial
Contributor.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare Derivative Works of, publicly display,
publicly perform, Distribute and sublicense the Contribution of such
Contributor, if any, and such Derivative Works.
b) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free patent
license under Licensed Patents to make, use, sell, offer to sell,
import and otherwise transfer the Contribution of such Contributor,
if any, in Source Code or other form. This patent license shall
apply to the combination of the Contribution and the Program if, at
the time the Contribution is added by the Contributor, such addition
of the Contribution causes such combination to be covered by the
Licensed Patents. The patent license shall not apply to any other
combinations which include the Contribution. No hardware per se is
licensed hereunder.
c) Recipient understands that although each Contributor grants the
licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe the
patent or other intellectual property rights of any other entity.
Each Contributor disclaims any liability to Recipient for claims
brought by any other entity based on infringement of intellectual
property rights or otherwise. As a condition to exercising the
rights and licenses granted hereunder, each Recipient hereby
assumes sole responsibility to secure any other intellectual
property rights needed, if any. For example, if a third party
patent license is required to allow Recipient to Distribute the
Program, it is Recipient's responsibility to acquire that license
before distributing the Program.
d) Each Contributor represents that to its knowledge it has
sufficient copyright rights in its Contribution, if any, to grant
the copyright license set forth in this Agreement.
e) Notwithstanding the terms of any Secondary License, no
Contributor makes additional grants to any Recipient (other than
those set forth in this Agreement) as a result of such Recipient's
receipt of the Program under the terms of a Secondary License
(if permitted under the terms of Section 3).
3. REQUIREMENTS
3.1 If a Contributor Distributes the Program in any form, then:
a) the Program must also be made available as Source Code, in
accordance with section 3.2, and the Contributor must accompany
the Program with a statement that the Source Code for the Program
is available under this Agreement, and informs Recipients how to
obtain it in a reasonable manner on or through a medium customarily
used for software exchange; and
b) the Contributor may Distribute the Program under a license
different than this Agreement, provided that such license:
i) effectively disclaims on behalf of all other Contributors all
warranties and conditions, express and implied, including
warranties or conditions of title and non-infringement, and
implied warranties or conditions of merchantability and fitness
for a particular purpose;
ii) effectively excludes on behalf of all other Contributors all
liability for damages, including direct, indirect, special,
incidental and consequential damages, such as lost profits;
iii) does not attempt to limit or alter the recipients' rights
in the Source Code under section 3.2; and
iv) requires any subsequent distribution of the Program by any
party to be under a license that satisfies the requirements
of this section 3.
3.2 When the Program is Distributed as Source Code:
a) it must be made available under this Agreement, or if the
Program (i) is combined with other material in a separate file or
files made available under a Secondary License, and (ii) the initial
Contributor attached to the Source Code the notice described in
Exhibit A of this Agreement, then the Program may be made available
under the terms of such Secondary Licenses, and
b) a copy of this Agreement must be included with each copy of
the Program.
3.3 Contributors may not remove or alter any copyright, patent,
trademark, attribution notices, disclaimers of warranty, or limitations
of liability ("notices") contained within the Program from any copy of
the Program which they Distribute, provided that Contributors may add
their own appropriate notices.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities
with respect to end users, business partners and the like. While this
license is intended to facilitate the commercial use of the Program,
the Contributor who includes the Program in a commercial product
offering should do so in a manner which does not create potential
liability for other Contributors. Therefore, if a Contributor includes
the Program in a commercial product offering, such Contributor
("Commercial Contributor") hereby agrees to defend and indemnify every
other Contributor ("Indemnified Contributor") against any losses,
damages and costs (collectively "Losses") arising from claims, lawsuits
and other legal actions brought by a third party against the Indemnified
Contributor to the extent caused by the acts or omissions of such
Commercial Contributor in connection with its distribution of the Program
in a commercial product offering. The obligations in this section do not
apply to any claims or Losses relating to any actual or alleged
intellectual property infringement. In order to qualify, an Indemnified
Contributor must: a) promptly notify the Commercial Contributor in
writing of such claim, and b) allow the Commercial Contributor to control,
and cooperate with the Commercial Contributor in, the defense and any
related settlement negotiations. The Indemnified Contributor may
participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial
product offering, Product X. That Contributor is then a Commercial
Contributor. If that Commercial Contributor then makes performance
claims, or offers warranties related to Product X, those performance
claims and warranties are such Commercial Contributor's responsibility
alone. Under this section, the Commercial Contributor would have to
defend claims against the other Contributors related to those performance
claims and warranties, and if a court requires any other Contributor to
pay any damages as a result, the Commercial Contributor must pay
those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. Each Recipient is solely responsible for determining the
appropriateness of using and distributing the Program and assumes all
risks associated with its exercise of rights under this Agreement,
including but not limited to the risks and costs of program errors,
compliance with applicable laws, damage to or loss of data, programs
or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this Agreement, and without further
action by the parties hereto, such provision shall be reformed to the
minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against any entity
(including a cross-claim or counterclaim in a lawsuit) alleging that the
Program itself (excluding combinations of the Program with other software
or hardware) infringes such Recipient's patent(s), then such Recipient's
rights granted under Section 2(b) shall terminate as of the date such
litigation is filed.
All Recipient's rights under this Agreement shall terminate if it
fails to comply with any of the material terms or conditions of this
Agreement and does not cure such failure in a reasonable period of
time after becoming aware of such noncompliance. If all Recipient's
rights under this Agreement terminate, Recipient agrees to cease use
and distribution of the Program as soon as reasonably practicable.
However, Recipient's obligations under this Agreement and any licenses
granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement,
but in order to avoid inconsistency the Agreement is copyrighted and
may only be modified in the following manner. The Agreement Steward
reserves the right to publish new versions (including revisions) of
this Agreement from time to time. No one other than the Agreement
Steward has the right to modify this Agreement. The Eclipse Foundation
is the initial Agreement Steward. The Eclipse Foundation may assign the
responsibility to serve as the Agreement Steward to a suitable separate
entity. Each new version of the Agreement will be given a distinguishing
version number. The Program (including Contributions) may always be
Distributed subject to the version of the Agreement under which it was
received. In addition, after a new version of the Agreement is published,
Contributor may elect to Distribute the Program (including its
Contributions) under the new version.
Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
receives no rights or licenses to the intellectual property of any
Contributor under this Agreement, whether expressly, by implication,
estoppel or otherwise. All rights in the Program not expressly granted
under this Agreement are reserved. Nothing in this Agreement is intended
to be enforceable by any entity that is not a Contributor or Recipient.
No third-party beneficiary rights are created under this Agreement.
Exhibit A - Form of Secondary Licenses Notice
"This Source Code may also be made available under the following
Secondary Licenses when the conditions for such availability set forth
in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
version(s), and exceptions or additional permissions here}."
Simply including a copy of this Agreement, including this Exhibit A
is not sufficient to license the Source Code under Secondary Licenses.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to
look for such a notice.
You may add additional accurate notices of copyright ownership.
\ No newline at end of file
Eclipse Public License - v 2.0
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial content
Distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from
and are Distributed by that particular Contributor. A Contribution
"originates" from a Contributor if it was added to the Program by
such Contributor itself or anyone acting on such Contributor's behalf.
Contributions do not include changes or additions to the Program that
are not Modified Works.
"Contributor" means any person or entity that Distributes the Program.
"Licensed Patents" mean patent claims licensable by a Contributor which
are necessarily infringed by the use or sale of its Contribution alone
or when combined with the Program.
"Program" means the Contributions Distributed in accordance with this
Agreement.
"Recipient" means anyone who receives the Program under this Agreement
or any Secondary License (as applicable), including Contributors.
"Derivative Works" shall mean any work, whether in Source Code or other
form, that is based on (or derived from) the Program and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship.
"Modified Works" shall mean any work in Source Code or other form that
results from an addition to, deletion from, or modification of the
contents of the Program, including, for purposes of clarity any new file
in Source Code form that contains any contents of the Program. Modified
Works shall not include works that contain only declarations,
interfaces, types, classes, structures, or files of the Program solely
in each case in order to link to, bind by name, or subclass the Program
or Modified Works thereof.
"Distribute" means the acts of a) distributing or b) making available
in any manner that enables the transfer of a copy.
"Source Code" means the form of a Program preferred for making
modifications, including but not limited to software source code,
documentation source, and configuration files.
"Secondary License" means either the GNU General Public License,
Version 2.0, or any later versions of that license, including any
exceptions or additional permissions as identified by the initial
Contributor.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare Derivative Works of, publicly display,
publicly perform, Distribute and sublicense the Contribution of such
Contributor, if any, and such Derivative Works.
b) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free patent
license under Licensed Patents to make, use, sell, offer to sell,
import and otherwise transfer the Contribution of such Contributor,
if any, in Source Code or other form. This patent license shall
apply to the combination of the Contribution and the Program if, at
the time the Contribution is added by the Contributor, such addition
of the Contribution causes such combination to be covered by the
Licensed Patents. The patent license shall not apply to any other
combinations which include the Contribution. No hardware per se is
licensed hereunder.
c) Recipient understands that although each Contributor grants the
licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe the
patent or other intellectual property rights of any other entity.
Each Contributor disclaims any liability to Recipient for claims
brought by any other entity based on infringement of intellectual
property rights or otherwise. As a condition to exercising the
rights and licenses granted hereunder, each Recipient hereby
assumes sole responsibility to secure any other intellectual
property rights needed, if any. For example, if a third party
patent license is required to allow Recipient to Distribute the
Program, it is Recipient's responsibility to acquire that license
before distributing the Program.
d) Each Contributor represents that to its knowledge it has
sufficient copyright rights in its Contribution, if any, to grant
the copyright license set forth in this Agreement.
e) Notwithstanding the terms of any Secondary License, no
Contributor makes additional grants to any Recipient (other than
those set forth in this Agreement) as a result of such Recipient's
receipt of the Program under the terms of a Secondary License
(if permitted under the terms of Section 3).
3. REQUIREMENTS
3.1 If a Contributor Distributes the Program in any form, then:
a) the Program must also be made available as Source Code, in
accordance with section 3.2, and the Contributor must accompany
the Program with a statement that the Source Code for the Program
is available under this Agreement, and informs Recipients how to
obtain it in a reasonable manner on or through a medium customarily
used for software exchange; and
b) the Contributor may Distribute the Program under a license
different than this Agreement, provided that such license:
i) effectively disclaims on behalf of all other Contributors all
warranties and conditions, express and implied, including
warranties or conditions of title and non-infringement, and
implied warranties or conditions of merchantability and fitness
for a particular purpose;
ii) effectively excludes on behalf of all other Contributors all
liability for damages, including direct, indirect, special,
incidental and consequential damages, such as lost profits;
iii) does not attempt to limit or alter the recipients' rights
in the Source Code under section 3.2; and
iv) requires any subsequent distribution of the Program by any
party to be under a license that satisfies the requirements
of this section 3.
3.2 When the Program is Distributed as Source Code:
a) it must be made available under this Agreement, or if the
Program (i) is combined with other material in a separate file or
files made available under a Secondary License, and (ii) the initial
Contributor attached to the Source Code the notice described in
Exhibit A of this Agreement, then the Program may be made available
under the terms of such Secondary Licenses, and
b) a copy of this Agreement must be included with each copy of
the Program.
3.3 Contributors may not remove or alter any copyright, patent,
trademark, attribution notices, disclaimers of warranty, or limitations
of liability ("notices") contained within the Program from any copy of
the Program which they Distribute, provided that Contributors may add
their own appropriate notices.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities
with respect to end users, business partners and the like. While this
license is intended to facilitate the commercial use of the Program,
the Contributor who includes the Program in a commercial product
offering should do so in a manner which does not create potential
liability for other Contributors. Therefore, if a Contributor includes
the Program in a commercial product offering, such Contributor
("Commercial Contributor") hereby agrees to defend and indemnify every
other Contributor ("Indemnified Contributor") against any losses,
damages and costs (collectively "Losses") arising from claims, lawsuits
and other legal actions brought by a third party against the Indemnified
Contributor to the extent caused by the acts or omissions of such
Commercial Contributor in connection with its distribution of the Program
in a commercial product offering. The obligations in this section do not
apply to any claims or Losses relating to any actual or alleged
intellectual property infringement. In order to qualify, an Indemnified
Contributor must: a) promptly notify the Commercial Contributor in
writing of such claim, and b) allow the Commercial Contributor to control,
and cooperate with the Commercial Contributor in, the defense and any
related settlement negotiations. The Indemnified Contributor may
participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial
product offering, Product X. That Contributor is then a Commercial
Contributor. If that Commercial Contributor then makes performance
claims, or offers warranties related to Product X, those performance
claims and warranties are such Commercial Contributor's responsibility
alone. Under this section, the Commercial Contributor would have to
defend claims against the other Contributors related to those performance
claims and warranties, and if a court requires any other Contributor to
pay any damages as a result, the Commercial Contributor must pay
those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. Each Recipient is solely responsible for determining the
appropriateness of using and distributing the Program and assumes all
risks associated with its exercise of rights under this Agreement,
including but not limited to the risks and costs of program errors,
compliance with applicable laws, damage to or loss of data, programs
or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this Agreement, and without further
action by the parties hereto, such provision shall be reformed to the
minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against any entity
(including a cross-claim or counterclaim in a lawsuit) alleging that the
Program itself (excluding combinations of the Program with other software
or hardware) infringes such Recipient's patent(s), then such Recipient's
rights granted under Section 2(b) shall terminate as of the date such
litigation is filed.
All Recipient's rights under this Agreement shall terminate if it
fails to comply with any of the material terms or conditions of this
Agreement and does not cure such failure in a reasonable period of
time after becoming aware of such noncompliance. If all Recipient's
rights under this Agreement terminate, Recipient agrees to cease use
and distribution of the Program as soon as reasonably practicable.
However, Recipient's obligations under this Agreement and any licenses
granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement,
but in order to avoid inconsistency the Agreement is copyrighted and
may only be modified in the following manner. The Agreement Steward
reserves the right to publish new versions (including revisions) of
this Agreement from time to time. No one other than the Agreement
Steward has the right to modify this Agreement. The Eclipse Foundation
is the initial Agreement Steward. The Eclipse Foundation may assign the
responsibility to serve as the Agreement Steward to a suitable separate
entity. Each new version of the Agreement will be given a distinguishing
version number. The Program (including Contributions) may always be
Distributed subject to the version of the Agreement under which it was
received. In addition, after a new version of the Agreement is published,
Contributor may elect to Distribute the Program (including its
Contributions) under the new version.
Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
receives no rights or licenses to the intellectual property of any
Contributor under this Agreement, whether expressly, by implication,
estoppel or otherwise. All rights in the Program not expressly granted
under this Agreement are reserved. Nothing in this Agreement is intended
to be enforceable by any entity that is not a Contributor or Recipient.
No third-party beneficiary rights are created under this Agreement.
Exhibit A - Form of Secondary Licenses Notice
"This Source Code may also be made available under the following
Secondary Licenses when the conditions for such availability set forth
in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
version(s), and exceptions or additional permissions here}."
Simply including a copy of this Agreement, including this Exhibit A
is not sufficient to license the Source Code under Secondary Licenses.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to
look for such a notice.
You may add additional accurate notices of copyright ownership.
\ No newline at end of file
# Notices for openPASS
This content is produced and maintained by the Eclipse openPASS project.
* Project home: https://projects.eclipse.org/projects/automotive.openpass
[TOC]
## Copyright
All content is the property of the respective authors or their employers.
For more information regarding authorship of content, please consult the listed source code repository logs.
## Declared Project Licenses
This program and the accompanying materials are made available under the terms
of the Eclipse Public License v. 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0/.
SPDX-License-Identifier: EPL-2.0
## Source Code
The project maintains the following source code repositories:
* https://gitlab.eclipse.org/eclipse/openpass/opSimulation.git
* git@gitlab.eclipse.org:eclipse/openpass/opSimulation.git
## Third-party Content
### Required Dependencies
The listed versions are confirmed working versions, not minimum requirements:
| Name | Purpose | License | Version | Source |
| ------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| antlr4 | Parser generator | [New BSD](https://opensource.org/license/bsd-3-clause) | 4.8.0 | [Homepage](https://www.antlr.org/), [GitHub](https://github.com/antlr/antlr4) |
| boost | C++ development libraries | [BSL-1.0](https://opensource.org/license/bsl-1-0) | 1.85.0 | [Homepage](https://www.boost.org/), [GitHub](https://github.com/boostorg/boost) |
| bzip2 | Data compressor | [bzip2-1.0.6](https://spdx.org/licenses/bzip2-1.0.6.html) | 1.0.8 | [Homepage](https://sourceware.org/bzip2/), [GitLab](https://gitlab.com/federicomenaquintero/bzip2) |
| CMake | Build system generator | [New BSD](https://opensource.org/license/bsd-3-clause) | 3.28.1 | [Homepage](https://cmake.org/), [GitLab](https://gitlab.kitware.com/cmake/cmake) |
| fmilibrary | FMU importer | [New BSD](https://opensource.org/license/bsd-3-clause) | 2.0.3 | [GitHub](https://github.com/modelon-community/fmi-library) |
| libiconv | Character set conversion | [LGPL-2.0](https://www.gnu.org/licenses/old-licenses/lgpl-2.0.de.html) | 1.17.0 | [Homepage](https://www.gnu.org/software/libiconv/), [GitHub](https://github.com/bnoordhuis/libiconv) |
| libxml2 | XML toolkit | [MIT](https://opensource.org/license/mit) | 2.12.5 | [GitLab](https://gitlab.gnome.org/GNOME/libxml2), [Documentation](https://gitlab.gnome.org/GNOME/libxml2/-/wikis/home) |
| mantleapi | Interface between scenario engine & environment simulator | [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) | 5.1.0 | [GitLab](https://gitlab.eclipse.org/eclipse/openpass/mantle-api) |
| minizip | .zip file unpacker | [zlib](https://www.zlib.net/zlib_license.html) | 1.2.13 | See zlib |
| open-simulation-interface | Simulation data interface | [MPL-2.0](https://www.mozilla.org/en-US/MPL/2.0/) | 3.5.0 | [Homepage](https://www.asam.net/standards/detail/osi/), [GitHub](https://github.com/OpenSimulationInterface/open-simulation-interface), [Documentation](https://opensimulationinterface.github.io/osi-antora-generator/asamosi/latest/specification/index.html) |
| openscenario_api | [ASAM OpenSCENARIO](https://www.asam.net/standards/detail/openscenario/) library | [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0) | 1.3.1 | [GitHub](https://github.com/RA-Consulting-GmbH/openscenario.api.test) |
| protobuf(-shared) | Data serialization interface | [New BSD](https://opensource.org/license/bsd-3-clause) | 3.20.0 | [GitHub](https://github.com/protocolbuffers/protobuf), [Documentation](https://protobuf.dev/) |
| units | Dimensional analysis library | [MIT](https://opensource.org/license/mit) | 2.3.3 | [GitHub](https://github.com/nholthaus/units), [Documentation](https://nholthaus.github.io/units/) |
| yase | Vehicle simulation engine | [EPL-2.0](https://www.eclipse.org/legal/epl-2.0/) | 0.1 | [GitLab](https://gitlab.eclipse.org/eclipse/openpass/yase) |
| zlib | File decompression | [zlib](https://www.zlib.net/zlib_license.html) | 1.3.1 | [Homepage](https://www.zlib.net/), [GitHub](https://github.com/madler/zlib) |
For more information, please refer to the [openPASS Documentation](https://eclipse.dev/openpass), section `Installing Prerequisites`.
### Optional Dependencies
These dependencies are for optional features for continuous development such as package management, documentation generation and test execution.
The listed versions are confirmed working versions, not minimum requirements:
| Name | Purpose | License | Version | Source |
| ---------------------- | ------------------------------------ | ------------------------------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------- |
| breathe | Sphinx plugin for Doxygen | [New BSD](https://opensource.org/license/bsd-3-clause) | 4.35.0 | [Homepage](https://www.breathe-doc.org/), [GitHub](https://github.com/breathe-doc/breathe) |
| conan | Package management | [MIT](https://opensource.org/license/mit) | 2.9.3 | [Homepage](https://conan.io/), [GitHub](https://github.com/conan-io/conan) |
| ctcache | Cache for clang-tidy results | [BSL-1.0](https://opensource.org/license/bsl-1-0) | 1.1.0 | [GitHub](https://github.com/matus-chochlik/ctcache) |
| doxygen | C++ doc generator | [GPL-2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html#SEC1) | 1.10.0 | [Homepage](https://www.doxygen.nl/), [GitHub](https://github.com/doxygen/doxygen) |
| exhale | C++ API doc generator | [New BSD](https://opensource.org/license/bsd-3-clause) | 0.3.7 | [Github](https://github.com/svenevs/exhale), [Documentation](https://exhale.readthedocs.io/en/latest/) |
| filelock | File lock for Python | [Unlicense](https://unlicense.org/) | 3.12.3 | [GitHub](https://github.com/tox-dev/filelock), [Documentation](https://py-filelock.readthedocs.io/en/latest/index.html) |
| gtest | C++ test framework | [New BSD](https://opensource.org/license/bsd-3-clause) | 1.14.0 | [GitHub](https://github.com/google/googletest), [Documentation](https://google.github.io/googletest/) |
| junitparser | XML unit test result parser | [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) | 3.1.0 | [GitHub](https://github.com/weiwei/junitparser), [Documentation](https://junitparser.readthedocs.io/en/latest/) |
| lxml | Python binding of libxml2 | [New BSD](https://opensource.org/license/bsd-3-clause) | 4.9.3 | [Homepage](https://lxml.de/), [GitHub](https://github.com/lxml/lxml) |
| myst-parser | Markdown extensions for Sphinx | [MIT](https://opensource.org/license/mit) | 4.0.0 | [GitHub](https://github.com/executablebooks/MyST-Parser), [Documentation](https://myst-parser.readthedocs.io/en/latest/) |
| pandas | Python data analysis library | [New BSD](https://opensource.org/license/bsd-3-clause) | 2.2.2 | [Homepage](https://pandas.pydata.org/), [GitHub](https://github.com/pandas-dev/pandas) |
| pip | Python package installer | [MIT](https://opensource.org/license/mit) | 24.3.1 | [GitHub](https://github.com/pypa/pip), [Documentation](https://pip.pypa.io/en/stable/) |
| pytest | Python test framework | [MIT](https://opensource.org/license/mit) | 7.4.2 | [GitHub](https://github.com/pytest-dev/pytest), [Documentation](https://docs.pytest.org/en/stable/) |
| pyYAML | YAML framework for merging CSV files | [MIT](https://opensource.org/license/mit) | 6.0.2 | [Homepage](https://pyyaml.org/), [GitHub](https://github.com/yaml/pyyaml) |
| psutil | Profiling library | [New BSD](https://opensource.org/license/bsd-3-clause) | 5.9.5 | [GitHub](https://github.com/giampaolo/psutil), [Documentation](https://psutil.readthedocs.io/en/latest/) |
| sphinx | HTML doc generator | [FreeBSD](https://www.freebsd.org/copyright/freebsd-license/) | 7.2.6 | [Homepage](https://www.sphinx-doc.org/en/master/), [GitHub](https://github.com/sphinx-doc/sphinx) |
| sphinx-rtd-theme | ReadTheDocs theme | [MIT](https://opensource.org/license/mit) | 2.0.0 | [GitHub](https://github.com/readthedocs/sphinx_rtd_theme), [Documentation](https://sphinx-rtd-theme.readthedocs.io/en/stable/) |
| sphinx-tabs | Adds tabs to HTML doc | [MIT](https://opensource.org/license/mit) | 3.4.7 | [GitHub](https://github.com/executablebooks/sphinx-tabs), [Documentation](https://sphinx-tabs.readthedocs.io/en/latest/) |
| sphinxcontrib-spelling | Spell-checker for Sphinx | [FreeBSD](https://www.freebsd.org/copyright/freebsd-license/) | 8.0.0 | [GitHub](https://github.com/sphinx-contrib/spelling), [Documentation](https://sphinxcontrib-spelling.readthedocs.io/en/latest/) |
## Cryptography
Content may contain encryption software. The country in which you are currently
may have restrictions on the import, possession, and use, and/or re-export to
another country, of encryption software. BEFORE using any encryption software,
please check the country's laws, regulations and policies concerning the import,
possession, or use, and re-export of encryption software, to see if this is
permitted.
# What is openPASS
openPASS (Open Platform for Assessment of Safety Systems) is an open source simulation platform for the effectiveness analysis of advanced driver assistance systems (ADAS) and autonomous driving (AD) systems. openPASS takes a specific but configurable traffic situation and offers possibilities to repeat this situation under varying conditions, each generated from a diverse set of user defined probability distributions, such as for vehicle speeds. As a result, multiple simulation outputs are generated which can be evaluated in each case.
The software suite of openPASS started as a set of stand-alone applications, which can be installed and configured individually. Over time, especially the graphical user interface evolved to a single entry point, enabling the average user to use openPASS as a “monolithic” tool.
Please find more information on the offical openPASS homepage:
https://openpass.eclipse.org
# Where to get it
As the program is still under development and is extended continuously, we advice you to use the latest sources from our [GitLab repository](https://gitlab.eclipse.org/eclipse/openpass/opSimulation).
The `main` branch contains the most stable and recent openPASS version.
The `develop` branch contains current developments which are planned to be pushed to the main branch after a comprehensive review by the openPASS Working Group.
# Documentation & Installation Guide
The documentation can be found [here](https://www.eclipse.org/openpass/content/html/index.html). The documentation contains an installation guide.
# Continuous Integration
Continuous integration (CI) is used to automatically integrate and test code changes. The CI can be found here: https://ci.eclipse.org/openpass/.
# FAQs
A list of frequently asked questions:
1. __Which standards does openPASS support?__
* ASAM OpenSCENARIO
* ASAM OpenDRIVE
* ASAM OSI (Open Simulation Interface)
* FMI
* SSP (upcoming)
For detail information regarding supported versions and features please visit our [documentation](https://www.eclipse.org/openpass/content/html/index.html).
2. __Which traffic signs does openPASS support?__
[Here](https://www.eclipse.org/openpass/content/html/advanced_topics/simulator/world_osi.html#traffic-signs-road-markings-and-trafficlights) is an overview over the supported traffic signs.
3. __Can openPASS simulate multiple simulation runs in parallel?__
openPASS has a strong focus on performance. Simulations commonly run multiple times faster than real time, even though no parallelization is used within a simulation so far. As each simulation only uses a single core, multiple independent simulations are executed as parallel processes to speed up simulation campaigns.
4. __Where do I find information about the accidents?__
Depending on the chosen logger library, the output of each simulation is written to a single file (simulationOutput.xml) or a pair of files (Cyclics_Run_XXX.csv + simulationOutput.xml). They contain information on the agents of the simulation along with cyclic data from all timesteps. Further events are logged which will contain detailed data on collisions along with a lot of other information.
5. __Can openPASS calculate criticality KPIs?__
openPASS can calculate Time-To-Collision (TTC) and Time-Headway (THW). The output of those numbers is quite challenging. It is possible to extract those numbers over an FMU.
6. __Which probability distributions for parameter variations can be used in openPASS?__
Parameters can either be simple or stochastic. Simple parameters only have one value, while stochastic parameters have a minimum and maximum value as well as distribution specific parameters. If a parameter is stochastic, a distribution can be choosen from [this list](https://gitlab.eclipse.org/eclipse/openpass/opSimulation/-/blob/main/sim/src/core/opSimulation/modules/Stochastics/stochastics_implementation.h). In future (with OpenSCENARIO) the number of distributions will be extended.
# Contact
For more information, contact or subscribe to the [public WG mailing list](https://dev.eclipse.org/mailman/listinfo/openpass-wg).
For addressing especially developers of openPASS, contact or subscribe to the [developer mailing list]( openpass-dev@eclipse.org).
<!--- https://www.eclipse.org/security/ --->
_ISO 27005 defines vulnerability as:
"A weakness of an asset or group of assets that can be exploited by one or more threats."_
## The Eclipse Security Team
The Eclipse Security Team provides help and advice to Eclipse projects
on vulnerability issues and is the first point of contact
for handling security vulnerabilities.
Members of the Security Team are committers on Eclipse Projects
and members of the Eclipse Architecture Council.
Contact the [Eclipse Security Team](mailto:security@eclipse.org).
**Note that, as a matter of policy, the security team does not open attachments.**
## Reporting a Security Vulnerability
Vulnerabilities can be reported either via email to the Eclipse Security Team
or directly with a project via the Eclipse Foundation's Bugzilla instance.
The general security mailing list address is security@eclipse.org.
Members of the Eclipse Security Team will receive messages sent to this address.
This address should be used only for reporting undisclosed vulnerabilities;
regular issue reports and questions unrelated to vulnerabilities in Eclipse software
will be ignored.
Note that this email address is not encrypted.
The community is also encouraged to report vulnerabilities using the
[Eclipse Foundation's Bugzilla instance](https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Community&component=Vulnerability%20Reports&keywords=security&groups=Security_Advisories).
Note that you will require an Eclipse Foundation account to create an issue report,
but by doing so you will be able to participate directly in the resolution of the issue.
Issue reports related to vulnerabilities must be marked as "committers-only",
either automatically by clicking the provided link, by the reporter,
or by a committer during the triage process.
Note that issues marked "committers-only" are visible to all Eclipse committers.
By default, a "committers-only" issue is also accessible to the reporter
and individuals explicitly indicated in the "cc" list.
## Disclosure
Disclosure is initially limited to the reporter and all Eclipse Committers,
but is expanded to include other individuals, and the general public.
The timing and manner of disclosure is governed by the
[Eclipse Security Policy](https://www.eclipse.org/security/policy.php).
Publicly disclosed issues are listed on the
[Disclosed Vulnerabilities Page](https://www.eclipse.org/security/known.php).
################################################################################
# Copyright (c) 2020 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
################################################################################
# - Find FMILibrary
# Find the FMILibrary includes and library
#
......
################################################################################
# Copyright (c) 2021 in-tech GmbH
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
################################################################################
#
# Find Package Adapter for "Fastcov"
#
# - FASTCOV_EXECUTABLE: The executable
# - FASTCOV_FOUND: True if fastcov was found
#
include(FindPackageHandleStandardArgs)
find_program(FASTCOV_EXECUTABLE NAMES fastcov fastcov.py "Path to the fastcov executable")
find_package_handle_standard_args(Fastcov "Unable to locate fastcov" FASTCOV_EXECUTABLE)
\ No newline at end of file
################################################################################
# Copyright (c) 2021 in-tech GmbH
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
################################################################################
#
# Find Package Adapter for "Gcov"
#
# - GCOV_EXECUTABLE: The executable
# - GCOV_FOUND: True if gcov was found
#
include(FindPackageHandleStandardArgs)
find_program(GCOV_EXECUTABLE NAMES gcov gcov.py "Path to the gcov executable")
find_package_handle_standard_args(Gcov "Unable to locate gcov" GCOV_EXECUTABLE)
\ No newline at end of file
################################################################################
# Copyright (c) 2021 in-tech GmbH
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
################################################################################
#
# Find Package Adapter for "Genhtml"
#
# - GENHTML_EXECUTABLE: The executable
# - GENHTML_FOUND: True if genhtml was found
#
include(FindPackageHandleStandardArgs)
find_program(GENHTML_EXECUTABLE NAMES genhtml genhtml.perl genhtml.bat )
find_package_handle_standard_args(Genhtml "Unable to locate genhtml" GENHTML_EXECUTABLE)
\ No newline at end of file
# - Find OSI
# Find the OSI includes and library
#
# OSI_INCLUDE_DIR - Where to find OSI includes
# OSI_LIBRARIES - List of libraries when using OSI
# OSI_FOUND - True if OSI was found
IF(OSI_INCLUDE_DIR)
SET(OSI_FIND_QUIETLY TRUE)
ENDIF(OSI_INCLUDE_DIR)
FIND_PATH(OSI_INCLUDE_DIR "osi3/osi_version.pb.h"
PATHS
${PREFIX_PATH}
$ENV{OSI_HOME}/include
$ENV{EXTERNLIBS}/OSI/include
/usr/local/include
/usr/include
DOC "OSI - Headers"
)
SET(OSI_NAMES
osi3/open_simulation_interface.lib
osi3/libopen_simulation_interface.dll.a
osi3/libopen_simulation_interface_pic.lib
osi3/libopen_simulation_interface.so
)
SET(OSI_DBG_NAMES
osi3/open_simulation_interfaced.lib
osi3/libopen_simulation_interfaced.dll.a
osi3/libopen_simulation_interface_picd.lib
)
FIND_LIBRARY(OSI_LIBRARY NAMES ${OSI_NAMES}
PATHS
${PREFIX_PATH}
$ENV{OSI_HOME}
$ENV{EXTERNLIBS}/OSI
/usr/local
/usr
PATH_SUFFIXES lib lib64
DOC "OSI - Library"
)
INCLUDE(FindPackageHandleStandardArgs)
IF(MSVC)
# VisualStudio needs a debug version
FIND_LIBRARY(OSI_LIBRARY_DEBUG NAMES ${OSI_DBG_NAMES}
PATHS
${PREFIX_PATH}
$ENV{OSI_HOME}/lib
$ENV{EXTERNLIBS}/OSI/lib
DOC "OSI - Library (Debug)"
)
IF(OSI_LIBRARY_DEBUG AND OSI_LIBRARY)
SET(OSI_LIBRARIES optimized ${OSI_LIBRARY} debug ${OSI_LIBRARY_DEBUG})
ENDIF(OSI_LIBRARY_DEBUG AND OSI_LIBRARY)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OSI DEFAULT_MSG OSI_LIBRARY OSI_LIBRARY_DEBUG OSI_INCLUDE_DIR)
MARK_AS_ADVANCED(OSI_LIBRARY OSI_LIBRARY_DEBUG OSI_INCLUDE_DIR)
ELSE(MSVC)
# rest of the world
SET(OSI_LIBRARIES ${OSI_LIBRARY})
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OSI DEFAULT_MSG OSI_LIBRARY OSI_INCLUDE_DIR)
MARK_AS_ADVANCED(OSI_LIBRARY OSI_INCLUDE_DIR)
ENDIF(MSVC)
################################################################################
# Copyright (c) 2021-2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
################################################################################
#
# Find Package Adapter for OSI (Open Simulation Interface)
#
# Creates the follwoing imported targets (if available):
# - open_simulation_interface::open_simulation_interface_shared
# - open_simulation_interface::open_simulation_interface_static
# - open_simulation_interface::open_simulation_interface_pic
set(OSI_SHARED_NAMES
open_simulation_interface.lib
libopen_simulation_interface.dll.a
libopen_simulation_interface.so
)
set(OSI_STATIC_NAMES
open_simulation_interface_static.lib
libopen_simulation_interface_static.a
)
set(OSI_PIC_NAMES
open_simulation_interface_pic.lib
libopen_simulation_interface_pic.a
)
find_library(OSI_SHARED_LIBRARY NAMES ${OSI_SHARED_NAMES}
PATHS
${PREFIX_PATH}
/usr/local
/usr
PATH_SUFFIXES
lib/osi3
lib
lib64
)
find_library(OSI_STATIC_LIBRARY NAMES ${OSI_STATIC_NAMES}
PATHS
${PREFIX_PATH}
/usr/local
/usr
PATH_SUFFIXES
lib/osi3
lib
lib64
)
find_library(OSI_PIC_LIBRARY NAMES ${OSI_PIC_NAMES}
PATHS
${PREFIX_PATH}
/usr/local
/usr
PATH_SUFFIXES
lib/osi3
lib
lib64
)
if(OSI_SHARED_LIBRARY)
message(STATUS "Found OSI (shared): ${OSI_SHARED_LIBRARY}")
get_filename_component(OSI_SHARED_LIBRARY_DIR "${OSI_SHARED_LIBRARY}" DIRECTORY)
add_library(open_simulation_interface::open_simulation_interface_shared IMPORTED SHARED)
set_target_properties(open_simulation_interface::open_simulation_interface_shared
PROPERTIES
IMPORTED_LOCATION ${OSI_SHARED_LIBRARY}
IMPORTED_IMPLIB ${OSI_SHARED_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${OSI_SHARED_LIBRARY_DIR}/../../include
INTERFACE_LINK_LIBRARIES protobuf::libprotobuf)
else()
message(STATUS "Didn't find OSI (shared)")
endif()
if(OSI_STATIC_LIBRARY)
message(STATUS "Found OSI (static): ${OSI_STATIC_LIBRARY}")
get_filename_component(OSI_STATIC_LIBRARY_DIR "${OSI_STATIC_LIBRARY}" DIRECTORY)
add_library(open_simulation_interface::open_simulation_interface_static IMPORTED STATIC)
set_target_properties(open_simulation_interface::open_simulation_interface_static
PROPERTIES
IMPORTED_LOCATION ${OSI_STATIC_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${OSI_STATIC_LIBRARY_DIR}/../../include
INTERFACE_LINK_LIBRARIES protobuf::libprotobuf_static)
else()
message(STATUS "Didn't find OSI (static)")
endif()
if(OSI_PIC_LIBRARY)
message(STATUS "Found OSI (pic): ${OSI_PIC_LIBRARY}")
get_filename_component(OSI_PIC_LIBRARY_DIR "${OSI_PIC_LIBRARY}" DIRECTORY)
add_library(open_simulation_interface::open_simulation_interface_pic IMPORTED STATIC)
set_target_properties(open_simulation_interface::open_simulation_interface_pic
PROPERTIES
IMPORTED_LOCATION ${OSI_PIC_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${OSI_PIC_LIBRARY_DIR}/../../include
INTERFACE_LINK_LIBRARIES protobuf::libprotobuf_static)
else()
message(STATUS "Didn't find OSI (pic)")
endif()
unset(OSI_SHARED_LIBRARY)
unset(OSI_STATIC_LIBRARY)
unset(OSI_PIC_LIBRARY)
################################################################################
# Copyright (c) 2021 Bayerische Motoren Werke Aktiengesellschaft (BMW AG)
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0.
#
# SPDX-License-Identifier: EPL-2.0
################################################################################
#
# find_package adapter for protobuf
#
# Original protpbuf CMake Config file doesn't provide static targets.
#
# Creates the follwoing imported targets (if available):
# - protobuf::libprotobuf
# - protobuf::libprotobuf_static
set(PROTOBUF_SHARED_NAMES
protobuf.lib
libprotobuf.dll.a
libprotobuf.so
)
set(PROTOBUF_STATIC_NAMES
protobuf_static.lib
libprotobuf.a
)
find_library(PROTOBUF_SHARED_LIBRARY NAMES ${PROTOBUF_SHARED_NAMES}
PATHS
${PREFIX_PATH}
/usr/local
/usr
PATH_SUFFIXES
lib
lib64
)
find_library(PROTOBUF_STATIC_LIBRARY NAMES ${PROTOBUF_STATIC_NAMES}
PATHS
${PREFIX_PATH}
/usr/local
/usr
PATH_SUFFIXES
lib
lib64
)
if(PROTOBUF_SHARED_LIBRARY)
message(STATUS "Found protobuf (shared): ${PROTOBUF_SHARED_LIBRARY}")
get_filename_component(PROTOBUF_SHARED_LIBRARY_DIR "${PROTOBUF_SHARED_LIBRARY}" DIRECTORY)
add_library(protobuf::libprotobuf IMPORTED SHARED)
set_target_properties(protobuf::libprotobuf
PROPERTIES
IMPORTED_LOCATION ${PROTOBUF_SHARED_LIBRARY}
IMPORTED_IMPLIB ${PROTOBUF_SHARED_LIBRARY}
INTERFACE_COMPILE_DEFINITIONS PROTOBUF_USE_DLLS
INTERFACE_INCLUDE_DIRECTORIES ${PROTOBUF_SHARED_LIBRARY_DIR}/../include
INTERFACE_LINK_LIBRARIES pthread)
else()
message(STATUS "Didn't find protobuf (shared)")
endif()
if(PROTOBUF_STATIC_LIBRARY)
message(STATUS "Found protobuf (static): ${PROTOBUF_STATIC_LIBRARY}")
get_filename_component(PROTOBUF_STATIC_LIBRARY_DIR "${PROTOBUF_STATIC_LIBRARY}" DIRECTORY)
add_library(protobuf::libprotobuf_static IMPORTED STATIC)
set_target_properties(protobuf::libprotobuf_static
PROPERTIES
IMPORTED_LOCATION ${PROTOBUF_STATIC_LIBRARY}
INTERFACE_INCLUDE_DIRECTORIES ${PROTOBUF_STATIC_LIBRARY_DIR}/../include
INTERFACE_LINK_LIBRARIES pthread)
else()
message(STATUS "Didn't find protobuf (static)")
endif()
unset(PROTOBUF_SHARED_LIBRARY)
unset(PROTOBUF_STATIC_LIBRARY)